Sur cette page
La réponse courte
BR-CL-25 échoue lorsqu'un cbc:EndpointID a un schemeID absent de la liste de codes EAS fournie avec les artefacts de validation. Remplacez-le par le code EAS du schéma sous lequel l'identifiant a réellement été émis, par exemple 0088 pour un GLN.
Le message ne dit pas quelle partie est concernée. Vérifiez le schemeID du cbc:EndpointID du vendeur comme de l'acheteur.
Ce que la règle vérifie
La règle s'exécute sur chaque cbc:EndpointID du document qui a un attribut schemeID. Dans Peppol, il s'agit des adresses du vendeur et de l'acheteur ; un cbc:EndpointID sur une autre partie serait également testé. Un élément sans l'attribut est ignoré ici et signalé par BR-62 ou BR-63.
Les espaces de début et de fin sont ignorés, et ce qui reste doit être exactement un code de la liste. La correspondance est sensible à la casse : em échoue alors que EM est un code de la liste. Un attribut vide, schemeID="", échoue.
Seul le code du schéma est testé. La correspondance entre l'identifiant et le schéma est une autre question : Peppol contrôle le format de la valeur pour certains schémas, et un identifiant 0088 avec un chiffre de contrôle faux signale PEPPOL-COMMON-R040.
Peppol teste le même attribut par rapport à sa propre liste dans PEPPOL-EN16931-CL008, et ce contrôle est le plus strict des deux. schemeID=" 0088 " passe BR-CL-25 et échoue à PEPPOL-EN16931-CL008 ; il en va de même pour EM, qui figure dans la liste EN 16931 mais n'est pas accepté par la règle Peppol dans cette version.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-34 | Adresse électronique du vendeur : son attribut d'identifiant de schéma | cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID |
| BT-49 | Adresse électronique de l'acheteur : son attribut d'identifiant de schéma | cac:AccountingCustomerParty/cac:Party/cbc:EndpointID/@schemeID |
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 écrit le nom du schéma, comme
GLN, là où le code à quatre caractères est attendu. - Le code a perdu ses zéros de tête en passant par une colonne numérique ou un tableur, ce qui transforme
0088en88. - Un type d'identifiant interne du système source est transmis sans changement.
- La colonne du schéma est vide et le sérialiseur écrit quand même l'attribut, ce qui produit
schemeID="". - La valeur provient d'une autre liste de codes. Les codes ICD de l'ISO 6523 utilisés pour
cac:PartyIdentificationetcac:PartyLegalEntityne recoupent EAS qu'en partie.
Comment corriger le document
- Déterminez à quelle partie appartient le constat en lisant le
schemeIDde chaquecbc:EndpointID. - Identifiez le schéma de l'identifiant stocké et recherchez son code EAS. Si l'identifiant n'a pas de schéma EAS, il ne peut pas servir d'adresse électronique ; obtenez auprès de la partie concernée un identifiant qui en a un.
- Stockez le code sous forme de texte, quatre caractères avec les éventuels zéros de tête, et écrivez-le dans
schemeIDsans remplissage. - Ne mettez pas à la place un code de la liste simplement parce qu'il passe. Un code qui ne décrit pas l'identifiant produit une adresse qui ne mène nulle part, ou chez quelqu'un d'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.
Fragment de la facture en échec : XXXX n'est pas un code EAS
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="XXXX">7300010000001</cbc:EndpointID>
<!-- postal address, tax scheme and legal entity omitted from this fragment -->
</cac:Party>
</cac:AccountingSupplierParty>Fragment de la facture corrigée : 0088 est le code EAS d'un GLN
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<!-- postal address, tax scheme and legal entity omitted from this fragment -->
</cac:Party>
</cac:AccountingSupplierParty>Seul le schemeID du cbc:EndpointID du vendeur diffère : XXXX dans le fichier en échec, 0088 dans le fichier corrigé. Le document en échec signale aussi PEPPOL-EN16931-CL008, car Peppol contrôle le même attribut par rapport à sa propre liste de schémas d'adresse électronique et XXXX ne figure dans aucune des deux. Corriger le code efface les deux constats.
Ce que le validateur a signalé
- La facture en erreur signale BR-CL-25 et PEPPOL-EN16931-CL008. 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 à
InvoiceetCreditNoteen UBL. Un avoir avec un schéma inconnu sur l'adresse de l'acheteur signale la même paire de constats. - La liste est celle figée dans les artefacts EN 16931 1.3.16. EAS est révisée de temps à autre : un code ajouté ou retiré en amont ne prend effet ici qu'avec une nouvelle version des artefacts.
- Un schéma de la liste et un identifiant bien formé décrivent une adresse ; ils ne montrent pas que quelqu'un y est enregistré. Le validateur n'interroge pas le réseau Peppol : l'accessibilité doit donc être confirmée séparément.
Règles liées
- BR-62 signale un EndpointID du vendeur qui n'a pas d'attribut schemeID
- BR-63 signale un EndpointID de l'acheteur qui n'a pas d'attribut schemeID
- PEPPOL-EN16931-R020 exige la présence de l'EndpointID du vendeur
- PEPPOL-EN16931-R010 exige la présence de l'EndpointID de l'acheteur
- 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-CL-25 (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.

