Aller au contenu

Ironfang Finance - Référence des règles

BR-CL-21 : Utiliser un code ICD de l'ISO 6523 dans le schemeID de l'identifiant d'article

Le schemeID d'un identifiant standard d'article doit être un code de la liste ICD de l'ISO 6523. Pour un GTIN, c'est 0160, et non le texte GTIN.

EN 16931Erreur : le document n'est pas valideListes de codesLignes et prix

Sur cette page

La réponse courte

BR-CL-21 échoue lorsque le schemeID de cac:StandardItemIdentification/cbc:ID n'est pas un code de la liste ICD de l'ISO 6523. L'exemple enregistré écrit GTIN, le nom du schéma. Écrivez plutôt son code à quatre chiffres : 0160 est le code ICD du GTIN, le Global Trade Item Number.

Les codes ICD sont des chiffres avec des zéros de tête et doivent être envoyés sous forme de texte, exactement comme dans la liste. 160 n'est pas 0160, et il échoue.

Ce que la règle vérifie

La règle s'applique à chaque cbc:ID de cac:StandardItemIdentification qui a un schemeID, et recherche la valeur parmi les codes ICD fournis avec les artefacts figés. Les identifiants sans l'attribut relèvent de BR-64.

Les espaces autour de la valeur sont retirés avant la recherche : " 0160 " a donc été accepté lors d'un essai. Tout le reste doit correspondre caractère par caractère à un code de la liste : 160, GTIN, le code UNTDID 7143 SRV et un schemeID="" vide ont tous échoué.

La correspondance entre l'identifiant et le schéma n'est pas examinée. Avec 0160, un numéro dont le chiffre de contrôle GS1 était faux a passé toutes les étapes lors d'un essai.

Tout code de la liste est accepté, y compris des codes de systèmes de numérotation de lieux et d'organisations qui ne disent rien d'utile sur un produit. Choisissez le code d'après le schéma sous lequel le numéro a été attribué, et non d'après ce qui passe la validation.

TermeSignificationÉlément UBL
BT-157Identifiant standard de l'article : son attribut d'identifiant de schémacac:InvoiceLine/cac:Item/cac:StandardItemIdentification/cbc:ID/@schemeID (under cac:CreditNoteLine in a credit note)
BT-157Identifiant standard de l'articlecac:InvoiceLine/cac:Item/cac:StandardItemIdentification/cbc:ID

Comment une intégration en arrive là

Causes possibles, déduites de la forme de la règle et non d'une utilisation mesurée :

  • Les données produit contiennent le schéma sous forme de nom, comme GTIN, EAN ou UPC, et le mapping le copie dans schemeID.
  • Le code ICD est stocké dans une colonne numérique et perd son zéro de tête, si bien que 0160 est écrit 160.
  • Un code UNTDID 7143 destiné aux classifications, comme SRV, que cette liste définit comme le GS1 Global Trade Item Number, est écrit ici, où c'est la liste ICD qui s'applique.

Comment corriger le document

  1. Déterminez à quel système de numérotation appartient l'identifiant. Un GTIN GS1, y compris les numéros de code-barres EAN-13 et UPC, utilise 0160.
  2. Faites correspondre les noms de schéma aux codes ICD dans une seule table et écrivez le code sous forme de texte, avec ses zéros de tête, dans schemeID sur cac:StandardItemIdentification/cbc:ID.
  3. Si l'identifiant ne provient pas d'un schéma public, comme votre propre référence d'article, déplacez-le vers cac:SellersItemIdentification/cbc:ID et envoyez-le là sans schéma.
  4. Vérifiez vous-même le chiffre de contrôle du GTIN si l'acheteur s'appuie sur ce numéro ; le validateur ne le fait pas.

Valider votre facture corrigée

Avant et après

Ce sont des extraits, pas des documents complets. Les documents synthétiques complets dont ils proviennent sont liés ci-dessous.

Fragment de la facture en échec : schemeID contient le nom de schéma GTIN

<cac:StandardItemIdentification>
  <cbc:ID schemeID="GTIN">5012345678900</cbc:ID>
</cac:StandardItemIdentification>

Fragment de la facture corrigée : schemeID contient 0160, le code ICD du GTIN

<cac:StandardItemIdentification>
  <cbc:ID schemeID="0160">5012345678900</cbc:ID>
</cac:StandardItemIdentification>

Seule la valeur de schemeID diffère : GTIN dans la facture en échec, 0160 dans la facture corrigée. Le document en échec ne signale que BR-CL-21. BR-64 est respectée, car elle demande seulement que l'attribut soit présent, quel que soit son contenu.

Ce que le validateur a signalé

Enregistré avec phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, le moteur du validateur gratuit, sur des données synthétiques. Un résultat enregistré est une preuve de non-régression pour ces documents ; ce n'est pas une certification.

Où la règle s'applique

  • S'applique aussi bien aux lignes d'un Invoice qu'à celles d'un CreditNote en UBL. Lors d'un essai, un avoir avec schemeID="GTIN" sur l'identifiant standard de l'article a signalé cette règle seule.
  • La règle se limite à cac:StandardItemIdentification. Un schemeID sur cac:SellersItemIdentification/cbc:ID n'est pas contrôlé par rapport à la liste ICD : lors d'un essai avec la valeur GTIN, il n'a produit que l'avertissement UBL-CR-668, et le document est resté valide.
  • Les identifiants de partie utilisent la même liste ICD au titre d'une règle distincte, BR-CL-10.

Portée et source

Rédigé pour Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, tel qu'appliqué aux documents Invoice et CreditNote en UBL 2.1. D'autres profils, syntaxes et versions peuvent définir cet identifiant autrement. Version du catalogue d'aide 2026-09-24.1 : source vérifiée le 2026-09-24, explication mise à jour le 2026-09-24.

La définition officielle de BR-CL-21 (en anglais) contient le texte normatif et le test. Cette page en est notre explication, pas une copie.

Cette aide ne modifie pas le verdict du moteur. Corriger ce constat ne signifie pas que le document passe toutes les étapes de validation, et la validation ne certifie pas la conformité juridique ou fiscale et ne transmet aucun document via Peppol.