Sur cette page
La réponse courte
BR-01 échoue lorsque la racine Invoice ou CreditNote n'a pas de cbc:CustomizationID, ou en a un sans contenu. Ajoutez l'élément avant cbc:ProfileID avec la valeur de Peppol BIS Billing 3.0 : urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0.
Cette règle demande seulement un texte. Savoir si ce texte est le bon identifiant relève d'un contrôle distinct, PEPPOL-EN16931-R004, et un identifiant absent fait échouer les deux.
Ce que la règle vérifie
La règle examine le cbc:CustomizationID enfant direct de la racine du document et échoue lorsqu'il est absent ou ne contient que des espaces. Tout autre texte la satisfait : un document qui porte seulement urn:cen.eu:en16931:2017 passe BR-01 et n'est signalé que par PEPPOL-EN16931-R004.
Absent et vide ne se comportent pas tout à fait de la même façon. Le schéma UBL considère cbc:CustomizationID comme facultatif : un document sans cet élément passe donc l'étape XSD et signale BR-01 et PEPPOL-EN16931-R004. Un élément présent mais vide, ou qui ne contient que des espaces, signale ces deux règles ainsi que PEPPOL-EN16931-R008, la règle Peppol contre les éléments vides.
Des espaces autour d'une valeur correcte sont sans conséquence ici. Un élément mis en forme, avec l'identifiant sur sa propre ligne, passe toutes les étapes.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-24 | Identifiant de spécification | cbc:CustomizationID |
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 :
- L'identifiant est une constante de configuration définie pour le modèle de facture, mais jamais pour le modèle d'avoir.
- Le sérialiseur omet les éléments dont la valeur source est nulle, et l'identifiant est recherché par destinataire ou par profil dans une table qui n'a aucune entrée pour ce cas.
- La même recherche renvoie une chaîne vide, et l'élément est écrit sans contenu.
- L'export UBL a été conçu pour un destinataire hors Peppol et n'a jamais porté d'identifiant de spécification.
- L'intégration renseigne l'identifiant dans l'enveloppe de transport et suppose que le document lui-même n'en a pas besoin.
Comment corriger le document
- Produisez
cbc:CustomizationIDcomme enfant direct de la racineInvoiceouCreditNote, avantcbc:ProfileID. - Renseignez-le à partir d'une constante propre à la spécification que vous produisez. Pour Peppol BIS Billing 3.0, c'est
urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0. - Appliquez la même constante aux avoirs ; l'élément et la valeur sont identiques.
- Laissez
cbc:ProfileIDporter l'identifiant du processus métier. Ce sont deux champs différents, et l'un ne peut pas remplacer l'autre.
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 : la racine passe directement à l'identifiant de profil
<!-- first children of the Invoice root; there is no 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 -->Début de la facture corrigée : l'identifiant de spécification vient en premier
<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 -->La facture corrigée contient l'élément cbc:CustomizationID, la facture en échec non ; rien d'autre ne diffère. Le document en échec signale aussi PEPPOL-EN16931-R004, qui exige que l'identifiant commence par la valeur de Peppol BIS Billing 3.0 et ne peut pas être satisfait par un identifiant absent. Ajouter l'élément avec cette valeur lève les deux constats.
Ce que le validateur a signalé
- La facture en erreur signale BR-01 et PEPPOL-EN16931-R004. 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. L'avoir enregistré sans cet élément signale les deux mêmes règles. - La valeur indiquée ici est celle de Peppol BIS Billing 3.0, le périmètre de cette référence. D'autres spécifications fondées sur EN 16931 ont leurs propres identifiants et leurs propres règles à leur sujet.
- L'identifiant indique la spécification que le document déclare suivre. Il ne dit rien sur le fait que le destinataire soit enregistré pour accepter ce type de document.
Règles liées
- PEPPOL-EN16931-R004 vérifie que l'identifiant est celui de Peppol BIS Billing 3.0
- PEPPOL-EN16931-R001 est le contrôle de présence correspondant pour le processus métier dans ProfileID
- PEPPOL-EN16931-R008 est aussi signalé lorsque l'élément est présent mais vide
- BR-02 est le même type de contrôle pour le numéro de facture
- 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-01 (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.

