Technique

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

2 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.
  • Pour le numéro de TVA (BT-31) : schemeID="VA" sur SpecifiedTaxRegistration/ID.
  • 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).

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 : BT-29 (GlobalID, identifiant vendeur), BT-30 (SpecifiedLegalOrganization/ID, identifiant légal), BT-46 (identifiant acheteur), et BT-31 (VAT ID via SpecifiedTaxRegistration/ID avec schemeID="VA"). Note importante : BT-84 (compte bancaire IBAN) n’utilise PAS schemeID — il a ses propres éléments IBANID et ProprietaryID.

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 : 0002 SIREN, 0009 SIRET, 0088 GLN, 0060 DUNS. Pour le numéro de TVA : schemeID="VA". 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.

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