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.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-157 | Identifiant standard de l'article : son attribut d'identifiant de schéma | cac:InvoiceLine/cac:Item/cac:StandardItemIdentification/cbc:ID/@schemeID (under cac:CreditNoteLine in a credit note) |
| BT-157 | Identifiant standard de l'article | cac: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,EANouUPC, et le mapping le copie dansschemeID. - Le code ICD est stocké dans une colonne numérique et perd son zéro de tête, si bien que
0160est écrit160. - 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
- 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. - 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
schemeIDsurcac:StandardItemIdentification/cbc:ID. - 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:IDet envoyez-le là sans schéma. - 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é
- La facture en erreur signale BR-CL-21. Le document corrigé passe toutes les étapes de validation sans constat.Télécharger le XML en erreurTélécharger le XML corrigé
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
Invoicequ'à celles d'unCreditNoteen UBL. Lors d'un essai, un avoir avecschemeID="GTIN"sur l'identifiant standard de l'article a signalé cette règle seule. - La règle se limite à
cac:StandardItemIdentification. UnschemeIDsurcac:SellersItemIdentification/cbc:IDn'est pas contrôlé par rapport à la liste ICD : lors d'un essai avec la valeurGTIN, il n'a produit que l'avertissementUBL-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.
Règles liées
- BR-64 exige l'attribut schemeID dont cette règle contrôle la valeur
- BR-CL-13 est le contrôle de liste de codes pour le schéma du code de classification de l'article
- BR-CL-10 contrôle les schémas des identifiants de partie par rapport à la même liste ICD
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : Understanding EN 16931 validation errors
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.

