Aller au contenu

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

BR-64 : Ajouter l'attribut schemeID à l'identifiant standard de l'article

Un identifiant standard d'article dans cac:StandardItemIdentification/cbc:ID doit indiquer son schéma dans schemeID : 0160 pour un GTIN.

EN 16931Erreur : le document n'est pas valideLignes et prixListes de codes

Sur cette page

La réponse courte

BR-64 échoue lorsque cac:Item/cac:StandardItemIdentification/cbc:ID sur une ligne n'a pas d'attribut schemeID. Ajoutez schemeID avec le code ICD ISO 6523 du système de numérotation auquel appartient l'identifiant. Pour un GTIN GS1, comme dans l'exemple enregistré, c'est 0160.

Si le numéro est votre propre référence article et ne provient pas d'un schéma enregistré, il va dans cac:SellersItemIdentification/cbc:ID, qui ne prend pas de schéma. Lors d'un essai, le même numéro déplacé à cet endroit sans attribut a passé toutes les étapes.

Ce que la règle vérifie

La règle s'exécute sur chaque cbc:ID dans cac:StandardItemIdentification d'une ligne de facture ou d'avoir et contrôle une seule chose : la présence d'un attribut schemeID.

La valeur de l'attribut relève de BR-CL-21. Lors d'un essai, schemeID="" a passé cette règle et a été signalé par celle-là.

L'identifiant n'est pas contrôlé par rapport à son schéma. Avec schemeID="0160", un numéro à 13 chiffres avec une clé de contrôle GS1 erronée et le texte ABC ont tous deux passé toutes les étapes lors d'un essai ; l'exactitude du GTIN relève donc de votre responsabilité.

D'autres attributs ne remplacent pas schemeID. Lorsque le code a été écrit dans schemeAgencyID à la place, cette règle a été signalée avec l'avertissement UBL-DT-27.

Un cbc:ID vide qui porte bien schemeID passe cette règle ; lors d'un essai, il n'a été signalé que par PEPPOL-EN16931-R008.

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

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 :

  • Le référentiel produits stocke le numéro de code-barres sans indiquer à quel schéma il appartient, et le mapping écrit le numéro seul.
  • La référence article du vendeur est associée à cac:StandardItemIdentification au lieu de cac:SellersItemIdentification, si bien qu'il n'y a pas de schéma à indiquer.
  • Le sérialiseur supprime les attributs dont la colonne source est nulle, et la colonne du schéma est vide pour certains produits.
  • Le schéma est écrit dans schemeAgencyID au lieu de schemeID.

Comment corriger le document

  1. Déterminez ce qu'est le numéro dans cbc:ID. Un GTIN, qui englobe les numéros de code-barres EAN-13 et UPC, prend 0160. Un identifiant issu d'un autre système enregistré de numérotation d'articles prend le code de ce schéma dans la liste ICD.
  2. Écrivez le code dans l'attribut schemeID de cac:StandardItemIdentification/cbc:ID, orthographié exactement ainsi, sous la forme du code à quatre chiffres et non du nom du schéma.
  3. Si l'identifiant est interne au vendeur ou à l'acheteur, déplacez-le vers cac:SellersItemIdentification ou cac:BuyersItemIdentification et supprimez cac:StandardItemIdentification pour cette ligne. Envoyez ces identifiants sans schéma : lors d'un essai, un schemeID sur l'identifiant article du vendeur a entraîné l'avertissement UBL-CR-668.
  4. Conservez le schéma à côté de l'identifiant dans les données produit, afin que chaque identifiant standard soit exporté avec un schéma.

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 : le GTIN n'a pas d'attribut de schéma

<cac:Item>
  <cbc:Name>Example service</cbc:Name>
  <cac:StandardItemIdentification>
    <cbc:ID>5012345678900</cbc:ID>
  </cac:StandardItemIdentification>
  <!-- classification, tax category and item attribute omitted from this fragment -->
</cac:Item>

Fragment de la facture corrigée : schemeID 0160 désigne l'identifiant comme un GTIN

<cac:Item>
  <cbc:Name>Example service</cbc:Name>
  <cac:StandardItemIdentification>
    <cbc:ID schemeID="0160">5012345678900</cbc:ID>
  </cac:StandardItemIdentification>
  <!-- classification, tax category and item attribute omitted from this fragment -->
</cac:Item>

La seule différence est schemeID="0160" sur l'identifiant standard de l'article, absent de la facture en échec. Le document en échec ne signale que BR-64. BR-CL-21 n'est pas signalé en même temps, car cette règle contrôle la valeur de l'attribut et il n'y a pas d'attribut à contrôler.

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 à cac:InvoiceLine dans une Invoice et à cac:CreditNoteLine dans un CreditNote, où la structure de l'article est identique. Lors d'un essai, un avoir dont le GTIN avait perdu l'attribut a signalé cette règle seule.
  • L'identifiant standard est facultatif. Une ligne sans cac:StandardItemIdentification passe ; il n'y a donc aucune raison d'en ajouter un sans véritable identifiant.
  • Les identifiants article du vendeur et de l'acheteur sont hors du champ de cette règle, tout comme les identifiants des parties, qui ont leurs propres règles de schéma, comme BR-62.

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-64 (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.