diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0661adcc44953bb9fe6a5268a657b8e9ecbd7d8b..dbfe0db421b5635a6afbcd126665487272c10e33 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,7 @@ Tous les changements de ce projet seront documentés dans ce document.
 ## [Non livré]
 - Intégrer des nouveaux impacts au référentiel -> [Issue1](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/numecoeval/-/issues/1)
 - Defect: Mauvaise description de l'API de chargement des données d'entrées
+- Defect : Erreur sur le calcul comparant la date de retrait et la date d'achat pour les équipements physiques
 - Mise à jour de Java 17 vers 21 et des dépendances
 - Defect: Libellé erreur erroné quand donnée de référence manquante
 - Ajout du mode d'utilisation et taux d'utilisation
diff --git a/assets/docker-compose/docker-compose.yml b/assets/docker-compose/docker-compose.yml
index f0eb0f0d8c5cb3132843d0c8c550c7467360a061..5d890da1366ea0e30ae031378665349322110f85 100644
--- a/assets/docker-compose/docker-compose.yml
+++ b/assets/docker-compose/docker-compose.yml
@@ -19,7 +19,7 @@ services:
       - "numecoeval_zookeeper_data:/bitnami"
     environment:
       ALLOW_ANONYMOUS_LOGIN: "yes"
-  
+
   # Kafka basé sur la documentation officielle de Bitnami
   ## https://github.com/bitnami/containers/blob/main/bitnami/kafka/docker-compose.yml
   ## https://hub.docker.com/r/bitnami/kafka/
@@ -72,7 +72,7 @@ services:
       LOGGING_LEVEL_ORG_SPRINGFRAMEWORK: $LOGGING_LEVEL_ORG_SPRINGFRAMEWORK
 
   api-rest-expositiondonneesentrees:
-    image:  ${REGISTRY_URL}/api-expositiondonneesentrees:${TAG}
+    image: ${REGISTRY_URL}/api-expositiondonneesentrees:${TAG}
     depends_on:
       - postgresdb
       - api-rest-referentiels
@@ -95,6 +95,7 @@ services:
       NUMECOEVAL_URLS_ALLOWED: "http://localhost,http://api-rest-expositiondonneesentrees"
       LOGGING_LEVEL_ROOT: $LOGGING_LEVEL_ROOT
       LOGGING_LEVEL_ORG_SPRINGFRAMEWORK: $LOGGING_LEVEL_ORG_SPRINGFRAMEWORK
+      NUMECOEVAL_CALCULS_SERVER_URL: "http://api-event-calculs:8080"
 
   api-event-donneesentrees:
     image: ${REGISTRY_URL}/api-event-donneesentrees:${TAG}
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/MessageProperties.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/MessageProperties.java
index 2b155075ddec16d50ac936ab41858b4f18393588..6675bb9df2ef2255b7f3218d8d22790e6ce28a45 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/MessageProperties.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/MessageProperties.java
@@ -6,7 +6,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.stereotype.Component;
 
-import java.util.HashMap;
+import java.util.Map;
 
 @Component
 @EnableConfigurationProperties
@@ -15,6 +15,6 @@ import java.util.HashMap;
 @Setter
 public class MessageProperties {
 
-    private HashMap<String, String> messages;
+    private Map<String, String> messages;
 
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java
index 952379b7acbcdeaf9a01a8488019dd731bf7dd52..473a1a4e1fed90602ece904dcfee3464a3919c43 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java
@@ -92,7 +92,7 @@ public class ErrorManagementService {
         // CA 3.1
         // L'ajout d'un équipement dont le date de retrait (equipementPhysique.DateRetrait) précède la date d'achat (equipementPhysique.DateAchat)
         if (equipementPhysique.getDateAchat() != null && equipementPhysique.getDateRetrait() != null &&
-                equipementPhysique.getDateAchat().isBefore(equipementPhysique.getDateRetrait())) {
+                equipementPhysique.getDateAchat().isAfter(equipementPhysique.getDateRetrait())) {
 
             erreurs.add(messageProperties.getMessages().get("EQUIPEMENT_DATE_INCOHERENTE").formatted(equipementPhysique.getNomEquipementPhysique()));
         }
diff --git a/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java b/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e4adc46067632e80213c44e6c6ee6bb155b6e2b
--- /dev/null
+++ b/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java
@@ -0,0 +1,89 @@
+package org.mte.numecoeval.expositiondonneesentrees.infrastructure.service;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mte.numecoeval.expositiondonneesentrees.domain.model.EquipementPhysique;
+import org.mte.numecoeval.expositiondonneesentrees.domain.ports.output.ReferentielServicePort;
+import org.mte.numecoeval.expositiondonneesentrees.infrastructure.config.MessageProperties;
+
+import java.io.IOException;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+@ExtendWith(MockitoExtension.class)
+public class ErrorManagementServiceTest {
+    @Mock
+    MessageProperties messageProperties;
+    @InjectMocks
+    ErrorManagementService errorManagementService;
+    @Mock
+    ReferentielServicePort referentielServicePort;
+
+    private Map<String, String> messages = new HashMap<>();
+
+    @BeforeEach
+    public void init() {
+        List<String> modeUtilisationList = new ArrayList<>();
+        errorManagementService = new ErrorManagementService(messageProperties, referentielServicePort, modeUtilisationList);
+        messages.put("LIGNE_INCONSISTENTE", "Fichier %s , La ligne n°%d n'est pas consistente avec les headers du fichier");
+        messages.put("LIGNE_INCORRECTE", "Fichier %s , La ligne n°%d est incorrecte pour l'objet %s requise");
+        messages.put("TYPE_EQUIPEMENT_INCONNU", "Le type d'équipement %s correspondant à l'équipement %s n'existe pas dans la table des références ref_TypeEquipement");
+        messages.put("EQUIPEMENT_MIX_ELEC_LOCALISATION_INCONNUE", "Le pays %s correspondant à l'équipement physique %s n'existe pas dans la table des mix électriques ref_MixElec.pays");
+        messages.put("DATACENTER_MIX_ELEC_LOCALISATION_INCONNUE", "La localisation %s du centre de données %s n'existe pas dans la table des mix électriques ref_MixElec.pays");
+        messages.put("EQUIPEMENT_CORRESPONDANCE_INCONNUE", "L'équipement %s de type %s ne possède pas de référence d'équipement par défaut dans la table ref_typeEquipement et pas de correspondance dans la table ref_CorrespondanceRefEqP");
+        messages.put("EQUIPEMENT_IMPACT_INCONNU", "L'impact de l'équipement de référence %s pour l'étape %s et le critère %s ne pourra pas être calculé en raison de l'absence de facteur d'impact sur l'équipement");
+        messages.put("EQUIPEMENT_DATE_INCOHERENTE", "L'âge de l'équipement %s ne peut être calculé car sa date de retrait précède sa date d'achat");
+        messages.put("EQUIPEMENT_MODE_UTILISATION_INCONNU", "Le mode d'utilisation renseigné '%s' est inconnu du référentiel");
+        messages.put("EQUIPEMENT_TAUX_UTILISATION_INVALIDE", "Le taux d'utilisation renseigné '%s' n'est pas valide, il doit être compris entre 0 et 1, le taux par défaut sera appliqué.");
+        messages.put("EQUIPEMENT_DATACENTER_INCONNU", "L'équipement %s n'est lié à aucun datacenter");
+        messages.put("EQUIPEMENT_VIRTUEL_INCONNU", "L'équipement virtuel %s n'est supporté par aucun équipement physique");
+        messages.put("APPLICATION_AVEC_EQUIPEMENT_PHYSIQUE_INCONNU", "L'application %s n'est supporté par aucun équipement physique");
+        messages.put("APPLICATION_AVEC_EQUIPEMENT_VIRTUEL_INCONNU", "L'application %s n'est supporté par aucun équipement virtuel");
+        Mockito.lenient().when(messageProperties.getMessages()).thenReturn(messages);
+    }
+
+    @Test
+    void importEqPhysique_with_DateEntreeAfterDateRetrait_shouldReturnReportWith1Error() throws IOException {
+        EquipementPhysique eq1 = EquipementPhysique.builder()
+                .nomEquipementPhysique("physical-eq-001")
+                .modele("P2719")
+                .quantite(1.0)
+                .dateAchat(LocalDate.of(2023, 3, 30))
+                .dateRetrait(LocalDate.of(2023, 1, 17))
+                .type("Monitor")
+                .statut("In use")
+                .paysDUtilisation("France")
+                .modeUtilisation("COPE").build();
+
+        var actual = errorManagementService.checkEquipementPhysique(eq1, "");
+        assertTrue(actual.getKey().stream().anyMatch(ds -> "L'âge de l'équipement physical-eq-001 ne peut être calculé car sa date de retrait précède sa date d'achat".equals(ds)));
+    }
+
+    @Test
+    void importEqPhysique_with_DateEntreeAfterDateRetrait_shouldNotReturnReportWith1Error() throws IOException {
+        EquipementPhysique eq1 = EquipementPhysique.builder()
+                .nomEquipementPhysique("physical-eq-001")
+                .modele("P2719")
+                .quantite(1.0)
+                .dateAchat(LocalDate.of(2021, 3, 30))
+                .dateRetrait(LocalDate.of(2023, 1, 17))
+                .type("Monitor")
+                .statut("In use")
+                .paysDUtilisation("France")
+                .modeUtilisation("COPE").build();
+
+        var actual = errorManagementService.checkEquipementPhysique(eq1, "");
+        assertFalse(actual.getKey().stream().anyMatch(ds -> "L'âge de l'équipement physical-eq-001 ne peut être calculé car sa date de retrait précède sa date d'achat".equals(ds)));
+    }
+}
diff --git a/services/api-expositiondonneesentrees/src/test/resources/equipementPhysique.csv b/services/api-expositiondonneesentrees/src/test/resources/equipementPhysique.csv
index dec2cbe1fa34fe8d08aa4031b70da63b6399cc3f..76afcce70ff76ee90f90d4d15968a22d2d206f0f 100644
--- a/services/api-expositiondonneesentrees/src/test/resources/equipementPhysique.csv
+++ b/services/api-expositiondonneesentrees/src/test/resources/equipementPhysique.csv
@@ -1,2 +1,2 @@
 test
-test
+test
\ No newline at end of file