Sur cette page
La réponse courte
PEPPOL-EN16931-R003 échoue lorsque le document ne porte ni référence de l'acheteur ni référence de bon de commande. Ajoutez cbc:BuyerReference, ou cac:OrderReference avec un cbc:ID, en utilisant la référence que l'acheteur vous a réellement donnée. L'une ou l'autre satisfait la règle ; les deux peuvent être envoyées.
La valeur doit venir de l'acheteur. C'est ce que son système utilise pour acheminer le document vers la bonne personne ou le rapprocher d'une commande : une valeur inventée passe donc la validation, puis reste bloquée de son côté.
Ce que la règle vérifie
La règle cherche deux choses à la racine du document : un élément cbc:BuyerReference, et un cbc:ID dans cac:OrderReference. Elle réussit lorsqu'au moins l'un des deux existe. Une facture avec seulement une référence de bon de commande réussit, tout comme une facture avec seulement une référence de l'acheteur.
Seules les références au niveau du document comptent. Une référence de ligne de commande sur une ligne de facture (cac:OrderLineReference) ne satisfait pas la règle.
Le contrôle porte sur la présence, pas sur le contenu. Un cbc:BuyerReference vide ne signale pas cette règle, mais il signale PEPPOL-EN16931-R008 pour l'élément vide : ce n'est donc pas un moyen de contourner l'exigence.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-10 | Référence de l'acheteur | cbc:BuyerReference |
| BT-13 | Référence du bon de commande | cac:OrderReference/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 :
- La référence de l'acheteur est un champ facultatif de la fiche client ou de commande et a été laissée vide pour ce client.
- La facture source a un numéro de bon de commande, mais il est associé à une note ou à un champ au niveau de la ligne, et non à
cac:OrderReference/cbc:ID. - Le sérialiseur omet les éléments dont la valeur source est nulle, si bien qu'une référence manquante disparaît sans bruit et que rien en amont ne bloque la facture.
- Un numéro de commande client est disponible, mais pas de numéro de bon de commande, et
cac:OrderReferencea été omis parce que soncbc:IDne pouvait pas être renseigné.
Comment corriger le document
- Déterminez quelle référence l'acheteur attend : une référence d'acheminement qu'il communique à ses fournisseurs, ou le numéro du bon de commande facturé.
- S'il s'agit d'une référence de l'acheteur, écrivez-la dans
cbc:BuyerReference. Dans l'ordre UBL, elle suitcbc:DocumentCurrencyCodeetcbc:AccountingCost, et précèdecac:OrderReference. - S'il s'agit d'un numéro de bon de commande, écrivez-le dans
cac:OrderReference/cbc:ID. Le schéma UBL exigecbc:IDdès quecac:OrderReferenceest présent : uncac:OrderReferencene contenant quecbc:SalesOrderIDéchoue donc à l'étape XSD avant que cette règle ne s'exécute. - Rendez la référence obligatoire à la saisie de la commande ou à l'approbation de la facture pour les clients facturés via Peppol, afin que le manque soit détecté avant la création du XML.
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 : aucune référence de l'acheteur, et le document n'a pas non plus de référence de commande
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cac:AccountingSupplierParty>
<!-- seller party omitted from this fragment -->
</cac:AccountingSupplierParty>Fragment de la facture corrigée : la référence de l'acheteur est présente
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>
<cac:AccountingSupplierParty>
<!-- seller party omitted from this fragment -->
</cac:AccountingSupplierParty>La seule différence est la ligne cbc:BuyerReference. Le document en échec ne signale que PEPPOL-EN16931-R003 ; l'étape EN 16931 réussit, car la norme de base traite les deux références comme facultatives.
Ce que le validateur a signalé
- La facture en erreur signale PEPPOL-EN16931-R003. 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 sans aucune des deux références signale la même règle, et un avoir avec seulementcac:OrderReference/cbc:IDréussit. - C'est une exigence Peppol qui s'ajoute à EN 16931 ; elle n'apparaît donc que dans l'étape Peppol.
- La règle ne vérifie pas que l'acheteur reconnaît la référence. Cela ne peut se régler qu'avec l'acheteur.
Règles liées
- PEPPOL-EN16931-R008 est ce que signale un élément de référence de l'acheteur vide
- PEPPOL-EN16931-R001 est une autre exigence d'en-tête propre à Peppol : l'identifiant de processus métier
- PEPPOL-EN16931-R010 exige l'adresse électronique de l'acheteur, l'autre donnée d'acheminement côté acheteur
- 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-R003 (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.

