Sur cette page
La réponse courte
PEPPOL-EN16931-R001 échoue lorsque la racine Invoice ou CreditNote n'a pas d'enfant cbc:ProfileID. Ajoutez l'élément juste après cbc:CustomizationID et donnez-lui l'identifiant du processus Peppol Billing, urn:fdc:peppol.eu:2017:poacc:billing:01:1.0.
Le même document signalera aussi PEPPOL-EN16931-R007. Cette règle contrôle la valeur de l'identifiant, et un élément absent n'a aucune valeur approuvée. Ajouter l'élément avec la bonne valeur lève les deux.
Ce que la règle vérifie
La règle est un contrôle de présence sur un seul élément : cbc:ProfileID en tant qu'enfant direct de la racine du document. Elle ne lit pas la valeur.
Comme seule la présence est testée, un cbc:ProfileID vide ne signale pas cette règle. Il signale à la place PEPPOL-EN16931-R007 pour la valeur et PEPPOL-EN16931-R008 pour l'élément vide.
Un élément présent avec un identifiant que l'artefact Peppol ne reconnaît pas signale PEPPOL-EN16931-R007 seul. Les espaces avant ou après un identifiant reconnu sont ignorés par ce contrôle.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-23 | Type de processus métier | cbc:ProfileID |
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 mapping a été construit pour EN 16931 seul, où le type de processus métier est facultatif, et l'élément n'a jamais été ajouté pour Peppol.
- L'identifiant de processus est conservé comme paramètre par client ou par route et il est vide pour ce destinataire, si bien que le sérialiseur omet l'élément.
- L'identifiant a été écrit par erreur dans
cbc:CustomizationID, ou les deux identifiants ont été fusionnés en un seul champ dans le système source. - Un modèle d'avoir a été copié du modèle de facture sans les identifiants d'en-tête.
Comment corriger le document
- Produisez
cbc:ProfileIDcomme deuxième enfant de la racine, immédiatement aprèscbc:CustomizationID. Le schéma UBL impose cet ordre. - Donnez-lui la valeur
urn:fdc:peppol.eu:2017:poacc:billing:01:1.0. Traitez-la comme une constante du profil Billing, et non comme une donnée qui varie selon le client. - Faites de même pour les documents
CreditNote; le nom et la position de l'élément sont identiques.
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 : l'en-tête passe de l'identifiant de spécification directement au numéro de facture
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ID>EXAMPLE-INV-001</cbc:ID>
<cbc:IssueDate>2026-09-08</cbc:IssueDate>
<!-- rest of the document omitted from this fragment -->Fragment de la facture corrigée : l'identifiant de processus métier suit l'identifiant de spécification
<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 from this fragment -->La seule différence est la ligne cbc:ProfileID. Le document en échec signale deux constats, tous deux dans l'étape Peppol : PEPPOL-EN16931-R001 parce que l'élément est absent, et PEPPOL-EN16931-R007 parce que cette règle déduit le processus de l'identifiant et, faute de quoi lire, le traite comme inconnu. L'étape EN 16931 réussit, puisque la norme de base n'exige pas l'élément.
Ce que le validateur a signalé
- La facture en erreur signale PEPPOL-EN16931-R001 et PEPPOL-EN16931-R007. 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 à UBL
Invoicequ'àCreditNote. Un avoir sanscbc:ProfileIDsignale les deux mêmes règles. - C'est une exigence Peppol qui s'ajoute à EN 16931. Un document peut réussir l'étape EN 16931 et échouer quand même ici.
- La règle ne regarde pas
cbc:CustomizationID. Cet identifiant est contrôlé séparément et doit lui aussi être présent.
Règles liées
- PEPPOL-EN16931-R004 contrôle l'identifiant de spécification qui se trouve à côté du processus métier
- BR-01 exige que l'identifiant de spécification soit présent
- PEPPOL-EN16931-R008 est ce que signale un élément de processus métier vide
- PEPPOL-EN16931-R003 est une autre exigence d'en-tête propre à Peppol : une référence de l'acheteur ou de commande
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : How Peppol invoice validation actually works
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 PEPPOL-EN16931-R001 (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.

