Sur cette page
La réponse courte
BR-02 échoue lorsque le cbc:ID placé directement sous la racine Invoice ou CreditNote n'a pas de contenu. Écrivez dans cet élément le numéro que votre système a attribué au document.
En pratique, vous ne verrez cette règle que pour un élément présent mais vide. Si l'élément est omis, l'étape XSD rejette d'abord le document et cette règle n'est jamais exécutée.
Ce que la règle vérifie
La règle lit un seul élément, le cbc:ID enfant de la racine, et échoue lorsqu'il ne contient que des espaces. Un élément qui ne contient qu'un commentaire XML compte aussi comme vide. Les identifiants de ligne, les identifiants des parties et le cbc:ID de cac:BillingReference dans un avoir sont d'autres éléments et n'interviennent pas.
Il n'y a aucun contrôle de format ni d'unicité. N'importe quel texte passe cette règle ; garder des numéros uniques et séquentiels relève du système émetteur.
Absent ou vide : cbc:ID est obligatoire dans le schéma UBL, donc un document qui ne l'a pas échoue à l'étape XSD avec une erreur de schéma, les étapes EN 16931 et Peppol sont ignorées et BR-02 n'est pas signalé. Un cbc:ID vide ou qui ne contient que des espaces est valide au regard du schéma, atteint les règles métier et signale BR-02 avec PEPPOL-EN16931-R008.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-1 | Numéro de facture | 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 :
- Le XML est produit alors que le document est encore un brouillon, avant que la séquence de numérotation lui ait attribué un numéro.
- Le mapping lit un champ renseigné pour les factures mais pas pour les avoirs, qui sont numérotés à partir d'une autre séquence ou d'une autre colonne.
- Le numéro existe dans la source, mais le mapping pointe vers la mauvaise propriété, et le sérialiseur écrit un élément vide.
- Un chemin d'export d'aperçu ou de test saute l'étape qui réserve le numéro.
Comment corriger le document
- Repérez l'endroit où le
cbc:IDde niveau racine est renseigné et vérifiez quel champ source il lit pour chaque type de document. - Générez le XML seulement une fois le document émis et numéroté.
- Écrivez le numéro exactement tel qu'il a été émis. Une valeur provisoire passerait cette règle, puisque n'importe quel texte suffit, mais l'acheteur fait son rapprochement sur cette valeur.
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.
Début de la facture en échec : l'identifiant du document est un élément vide
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID/>
<cbc:IssueDate>2026-09-08</cbc:IssueDate>
<!-- rest of the document omitted -->Début de la facture corrigée : l'identifiant porte le numéro de facture
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>EXAMPLE-INV-001</cbc:ID>
<cbc:IssueDate>2026-09-08</cbc:IssueDate>
<!-- rest of the document omitted -->Seul le contenu du cbc:ID de niveau racine diffère : vide dans la facture en échec, EXAMPLE-INV-001 dans la facture corrigée. Le document en échec signale aussi PEPPOL-EN16931-R008, car Peppol n'autorise nulle part dans le document un élément sans contenu, et le cbc:ID vide en est un. Renseigner le numéro lève les deux constats.
Ce que le validateur a signalé
- La facture en erreur signale BR-02 et PEPPOL-EN16931-R008. 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 de la même façon aux documents UBL
InvoiceetCreditNote. Dans un avoir, le mêmecbc:IDde niveau racine porte le numéro de l'avoir, et un élément vide signale les deux mêmes règles. - Un avoir peut aussi porter le numéro de la facture qu'il corrige, dans
cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID. Cette référence ne satisfait pas cette règle, et cette règle ne la contrôle pas.
Règles liées
- PEPPOL-EN16931-R008 est signalé en même temps chaque fois que l'élément est présent mais vide
- BR-01 est le contrôle de présence voisin pour l'identifiant de spécification
- BR-06 applique le même type de contrôle au nom du vendeur
- BR-CL-01 contrôle le code de type de document qui suit le numéro et les dates
- 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-20.
La définition officielle de BR-02 (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.

