Technique

Erreur format date Factur-X : yyyymmdd avec format 102 — conversion depuis ISO 8601

2 min de lecture Par FacturX API

Les dates Factur-X CII utilisent format=102 et la valeur yyyymmdd sans tirets. Code 102 défini dans UN/EDIFACT 2379. Conversion depuis ISO 8601 (YYYY-MM-DD).

En bref

  • Les dates métier Factur-X CII utilisent DateTimeString format="102" avec une valeur CCYYMMDD (yyyymmdd sur 8 chiffres, sans tirets).
  • Le code 102 est défini dans UN/EDIFACT 2379 et correspond au format CCYYMMDD.
  • Erreur la plus fréquente : export ISO 8601 (2026-04-01) conservé tel quel au lieu de 20260401.
  • S’applique à toutes les dates métier : émission, échéance, période.
  • Réparable automatiquement par /repair (conversion ISO 8601 → format 102).

Ce que l’erreur veut dire

Les dates dans Factur-X (basé sur CII / UN/CEFACT) utilisent un format spécifique : un attribut format qui désigne le standard EDIFACT ("102" = CCYYMMDD, soit yyyymmdd sur 8 chiffres consécutifs). La valeur ne doit PAS contenir de tirets, de slashs ni d’espace. C’est différent du format ISO 8601 (2026-04-01) que beaucoup d’ERP exportent par défaut.

Quand cette erreur arrive

Cause #1 : ERP exporte la date en ISO 8601 ; Cause #2 : format européen dd/mm/yyyy ou anglais mm/dd/yyyy ; Cause #3 : oubli de l’attribut format ou valeur non conforme — selon le champ et l’artefact utilisé, l’échec se produit dès la validation syntaxique / CII ; Cause #4 : confusion entre format="102" (date seule) et format="610" (mois calendaire YYYYMM).

Exemple XML qui déclenche l’erreur

<ram:IssueDateTime>
  <udt:DateTimeString format="102">2026-04-01</udt:DateTimeString>  <!-- ❌ tirets -->
</ram:IssueDateTime>

Exemple XML corrigé

<ram:IssueDateTime>
  <udt:DateTimeString format="102">20260401</udt:DateTimeString>
</ram:IssueDateTime>

Correction manuelle

Convertir toute date ISO 8601 (YYYY-MM-DD) en YYYYMMDD avant export : '2026-04-01'.replace(/-/g, ''). Toujours déclarer format="102". S’applique à IssueDateTime (BT-2), DueDateDateTime (BT-9), BillingSpecifiedPeriod/StartDateTime (BT-73), OccurrenceDateTime (BT-72), etc.

Réparable automatiquement par /repair ?

Oui — l’endpoint /repair corrige automatiquement cette erreur dans la majorité des cas.

Et maintenant ?

Réparer mon Factur-X →

curl -X POST https://api.facturxapi.com/api/v1/repair \
  -H "Authorization: Bearer VOTRE_CLE" \
  -F "[email protected]"

Voir aussi

#en16931 #schematron #factur-x #erreurs #validation