Technique

Erreur schemeID organisation EN16931 : SIREN, SIRET, GLN, DUNS — codes ISO 6523

3 min de lecture Par FacturX API

Le schemeID des identifiants d'organisation en CII utilise la liste ISO 6523 ICD. BT-29 via GlobalID avec 0002 (SIREN), 0009 (SIRET), 0088 (GLN), 0060 (DUNS). IBAN a un mécanisme différent (voir BT-84).

En bref

  • Les identifiants d’organisation en CII utilisent un schemeID issu de la liste ISO 6523 ICD.
  • 0002 = SIREN. 0009 = SIRET. 0088 = GLN. 0060 = DUNS.
  • Identification fiscale (BT-31) : schemeID="VA" (éventuellement FC) sur SpecifiedTaxRegistration/ID — ce n’est pas un code ICD.
  • ICD ≠ fiscal ≠ EAS : le routage électronique (BT-34 / BT-49, liste Electronic Address Scheme) est une autre règle — voir BR-CL-25.
  • BT-84 (compte bancaire / IBAN) n’utilise PAS ce mécanisme — il passe par IBANID ou ProprietaryID dédiés (voir l’article BT-84).
  • Réparable automatiquement par /repair quand le format de la valeur est reconnaissable (14 chiffres = SIRET, 13 chiffres = GLN).

Trois mécanismes schemeID (ne pas mélanger)

Trois usages distincts portent un attribut XML nommé schemeID. Ce ne sont pas les mêmes référentiels ni les mêmes Business Terms.

MécanismeRôleBusiness Terms typiquesExemples de codesFiche / article
ISO 6523 ICDRegistre d’un identifiant d’organisationBT-29, BT-30, BT-460002 SIREN, 0009 SIRET, 0088 GLN, 0060 DUNSCet article
Identification fiscaleMarqueur CII du n° de TVA (ou fiscal)BT-31 (SpecifiedTaxRegistration/ID)VA (TVA), éventuellement FCCet article (section fiscale) + format TVA pays
EAS (Electronic Address Scheme)Schéma d’une adresse électronique de routageBT-34, BT-49 (EndpointID / équivalent CII)codes EAS (ex. France CTC 0225, pas 0204)BR-CL-25

Un SIRET correct avec un mauvais schemeID ICD reste invalide ici. Un SIRET correct utilisé comme valeur de routage avec un mauvais schemeID EAS tombe sous BR-CL-25 — ne créez pas une deuxième page « FRCTC electronic address ».

Ce que l’erreur veut dire

Plusieurs identifiants d’organisation dans Factur-X portent un attribut XML schemeID qui désigne le registre/standard d’identification. Cet attribut doit valoir un code ISO 6523 ICD (International Code Designator) valide. Sans schemeID ou avec un code inconnu, le validateur Schematron rejette le champ. Concerne les identifiants d’organisation : BT-29 (GlobalID, identifiant vendeur), BT-30 (SpecifiedLegalOrganization/ID, identifiant légal) et BT-46 (identifiant acheteur).

L’identification fiscale BT-31 utilise le même attribut XML schemeID, mais avec les marqueurs fiscaux CII (VA, éventuellement FC) sur SpecifiedTaxRegistration/ID — ce n’est pas un code de la liste ICD. Note importante : BT-84 (compte bancaire IBAN) n’utilise PAS schemeID — il a ses propres éléments IBANID et ProprietaryID. Le routage électronique (BT-34 / BT-49) relève de la liste EAS, documentée sur BR-CL-25, pas de cet article.

Quand cette erreur arrive

Très fréquent quand : (a) ERP qui exporte le SIRET en valeur seule sans schemeID="0009" ; (b) ERP qui invente un code maison comme schemeID="FR-SIRET" au lieu du code ISO ; (c) code GLN (logistique) confondu avec SIRET ; (d) tentative d’exposer l’IBAN via un GlobalID avec schemeID="IBAN" — mauvais mécanisme.

Exemple XML qui déclenche l’erreur

<ram:SellerTradeParty>
  <ram:ID>78495023600015</ram:ID>  <!-- ❌ pas de schemeID -->
  <ram:GlobalID schemeID="FR-SIRET">78495023600015</ram:GlobalID>  <!-- ❌ schemeID non-ISO -->
  <ram:SpecifiedTaxRegistration>
    <ram:ID schemeID="FR">FR12345678901</ram:ID>  <!-- ❌ schemeID doit être "VA" -->
  </ram:SpecifiedTaxRegistration>
</ram:SellerTradeParty>

Exemple XML corrigé

<ram:SellerTradeParty>
  <ram:GlobalID schemeID="0009">78495023600015</ram:GlobalID>
  <ram:SpecifiedLegalOrganization>
    <ram:ID schemeID="0002">784950236</ram:ID>
  </ram:SpecifiedLegalOrganization>
  <ram:SpecifiedTaxRegistration>
    <ram:ID schemeID="VA">FR12345678901</ram:ID>
  </ram:SpecifiedTaxRegistration>
</ram:SellerTradeParty>

Correction manuelle

Utiliser les codes ISO 6523 ICD canoniques pour les identifiants d’organisation : 0002 SIREN, 0009 SIRET, 0088 GLN, 0060 DUNS. Pour le numéro de TVA (BT-31) : schemeID="VA" (marqueur fiscal CII, pas un code ICD). Ne JAMAIS inventer un code maison (FR-SIRET, FR-SIREN). Pour l’IBAN bancaire, voir l’article dédié BT-84 — mécanisme totalement différent. Pour le routage électronique, voir BR-CL-25.

Réparable automatiquement par /repair ?

Oui, sous conditions — l’endpoint /repair corrige automatiquement cette erreur quand les données structurées sont récupérables. Dans les cas ambigus, une décision humaine reste nécessaire.

Et maintenant ?

Réparer mon Factur-X →

curl -X POST https://api.facturxapi.com/api/v1/repair \
  -H "Authorization: Bearer VOTRE_CLE" \
  -F "file=@./facture.xml"

Voir aussi

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