Sur cette page
La réponse courte
PEPPOL-EN16931-R020 échoue lorsque cac:AccountingSupplierParty/cac:Party n'a pas d'enfant cbc:EndpointID. Ajoutez l'élément comme premier enfant du cac:Party du vendeur, avec l'adresse électronique du vendeur et un attribut schemeID qui nomme le schéma auquel appartient l'adresse.
EN 16931 considère l'adresse électronique du vendeur comme facultative : l'étape EN 16931 passe donc sans elle. L'exigence vient de Peppol, c'est pourquoi le constat n'apparaît qu'à l'étape Peppol.
Ce que la règle vérifie
La règle s'exécute une fois pour le cac:Party du vendeur et pose une seule question : existe-t-il un élément enfant cbc:EndpointID ? Elle ne lit ni le contenu ni l'attribut schemeID.
Comme il s'agit d'un contrôle de présence, un cbc:EndpointID présent mais vide la satisfait. L'élément vide est signalé à la place par PEPPOL-EN16931-R008 et, s'il porte un schéma dont Peppol contrôle le format de valeur, aussi par la règle de format correspondante : un élément vide avec schemeID="0088" signale PEPPOL-EN16931-R008 et PEPPOL-COMMON-R040, pas cette règle.
Un cbc:EndpointID ailleurs dans le document ne compte pas. L'adresse de l'acheteur est contrôlée séparément par PEPPOL-EN16931-R010, et un document auquel manquent les deux signale les deux règles.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-34 | Adresse électronique du vendeur | cac:AccountingSupplierParty/cac:Party/cbc:EndpointID |
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é écrit pour EN 16931, où l'adresse électronique du vendeur est facultative, et n'a jamais été étendu pour Peppol.
- L'endpoint du vendeur est conservé dans la configuration du point d'accès ou du locataire plutôt que dans les données de facture, si bien que le générateur de documents n'a rien à émettre.
- Le générateur omet les éléments dont la valeur source est nulle, et la fiche du vendeur n'a aucune adresse électronique renseignée.
- L'adresse a été écrite dans
cac:PartyIdentification/cbc:IDou danscac:Contact/cbc:ElectronicMail, en pensant que l'un ou l'autre tient lieu d'adresse électronique.
Comment corriger le document
- Trouvez l'adresse électronique du vendeur et le schéma sous lequel elle est émise, par exemple un GLN sous
0088. Utilisez l'identifiant que le vendeur détient réellement ; n'en empruntez pas un à une autre partie et n'en inventez pas un pour satisfaire la règle. - Émettez
cbc:EndpointIDcomme premier enfant decac:AccountingSupplierParty/cac:Party, avantcac:PartyIdentification,cac:PartyNameetcac:PostalAddress. UBL fixe l'ordre des enfants decac:Party: si l'élément est placé aprèscac:PostalAddress, l'étape XSD rejette le document et les étapes EN 16931 et Peppol sont ignorées. - Donnez à l'attribut
schemeIDla valeur du code de schéma.BR-62exige l'attribut etBR-CL-25contrôle le code. - Rendez l'endpoint du vendeur obligatoire là où le vendeur est configuré, afin que le manque soit repéré avant la construction d'un document.
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'élément Party du vendeur commence par son adresse postale et n'a pas d'EndpointID
<cac:AccountingSupplierParty>
<cac:Party>
<cac:PostalAddress>
<cbc:StreetName>1 Example Street</cbc:StreetName>
<!-- rest of the address omitted from this fragment -->
</cac:PostalAddress>
<!-- tax scheme and legal entity omitted from this fragment -->
</cac:Party>
</cac:AccountingSupplierParty>Fragment de la facture corrigée : EndpointID est le premier enfant de l'élément Party du vendeur
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<cac:PostalAddress>
<cbc:StreetName>1 Example Street</cbc:StreetName>
<!-- rest of the address omitted from this fragment -->
</cac:PostalAddress>
<!-- tax scheme and legal entity omitted from this fragment -->
</cac:Party>
</cac:AccountingSupplierParty>Le document corrigé ajoute une ligne, le cbc:EndpointID avec schemeID="0088" en tête du cac:Party du vendeur. Rien d'autre ne diffère. Le document en échec ne signale que PEPPOL-EN16931-R020 ; son étape EN 16931 passe, car BR-62 n'a rien à examiner lorsque l'élément est absent. L'identifiant de l'exemple est une valeur d'exemple, pas un participant enregistré.
Ce que le validateur a signalé
- La facture en erreur signale PEPPOL-EN16931-R020. 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 aux documents UBL
Invoicequ'auxCreditNote. Un avoir sans lecbc:EndpointIDdu vendeur signale le même constat unique. - Il s'agit d'une règle Peppol BIS Billing 3.0. Elle signale à l'étape Peppol et n'a pas d'équivalent dans EN 16931.
- Passer cette règle, et les règles de schéma qui la suivent, montre que l'adresse est bien formée. Le validateur ne recherche pas le participant : il ne dit donc rien sur le fait que le vendeur soit enregistré ou joignable sur le réseau Peppol.
Règles liées
- PEPPOL-EN16931-R010 est le même contrôle de présence pour l'adresse électronique de l'acheteur
- BR-62 exige l'attribut schemeID dès que l'EndpointID du vendeur est présent
- BR-CL-25 vérifie que le code de schéma figure dans la liste de codes EAS
- PEPPOL-EN16931-R008 signale un EndpointID présent mais vide
- 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-R020 (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.

