Aller au contenu

Ironfang Finance - Référence des règles

BR-CL-25 : Utiliser un code EAS comme schemeID d'une adresse électronique

Le schemeID de chaque cbc:EndpointID doit être un code de la liste Electronic Address Scheme (EAS), comme 0088, avec une correspondance exacte.

EN 16931Erreur : le document n'est pas valideListes de codesParties et adresses

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.

TermeSignificationÉlément UBL
BT-34Adresse électronique du vendeur : son attribut d'identifiant de schémacac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID
BT-49Adresse électronique de l'acheteur : son attribut d'identifiant de schémacac: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 0088 en 88.
  • 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:PartyIdentification et cac:PartyLegalEntity ne recoupent EAS qu'en partie.

Comment corriger le document

  1. Déterminez à quelle partie appartient le constat en lisant le schemeID de chaque cbc:EndpointID.
  2. 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.
  3. Stockez le code sous forme de texte, quatre caractères avec les éventuels zéros de tête, et écrivez-le dans schemeID sans remplissage.
  4. 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é

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 à Invoice et CreditNote en 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.

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.