Aller au contenu

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

BR-11 : Ajouter le code pays à l'adresse postale de l'acheteur

Un cac:PostalAddress de l'acheteur doit contenir cac:Country/cbc:IdentificationCode avec une valeur. Un code absent, vide ou ne contenant que des espaces échoue de la même façon.

EN 16931Erreur : le document n'est pas valideParties et adresses

Sur cette page

La réponse courte

BR-11 échoue lorsque le cac:PostalAddress de l'acheteur n'a pas de cac:Country/cbc:IdentificationCode, ou en a un sans texte visible. Ajoutez le code ISO 3166-1 à deux lettres du pays de l'adresse de l'acheteur, par exemple GB, sous la forme de cac:Country/cbc:IdentificationCode à la fin de cette adresse.

Un nom de pays ne compte pas. cac:Country/cbc:Name est hors du modèle de facture : lors d'un essai, il a laissé BR-11 en échec et ajouté l'avertissement UBL-CR-229.

Ce que la règle vérifie

La règle s'exécute une fois pour chaque cac:PostalAddress de l'acheteur, et le constat est localisé à cette adresse. Elle prend le texte de cac:Country/cbc:IdentificationCode, retire les espaces qui l'entourent et échoue s'il ne reste rien.

Absent et vide sont traités de la même façon. Lors d'un essai, un cac:Country absent, un <cac:Country/> vide, un code vide et un code de deux espaces ont tous signalé BR-11. Chaque variante vide a aussi entraîné PEPPOL-EN16931-R008, et le code vide ou blanc a entraîné en plus BR-CL-14, puisqu'une valeur vide ne figure pas dans la liste des pays.

Savoir si la valeur est un vrai code pays relève d'une autre règle : UK contient du texte, passe donc BR-11, puis est rejeté par BR-CL-14.

La règle a besoin d'une adresse où s'exécuter. Si la partie acheteur n'a pas de cac:PostalAddress, c'est BR-10 qui le signale, et BR-11 reste muet.

TermeSignificationÉlément UBL
BT-55Code de pays de l'acheteurcac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode
BG-8Adresse postale de l'acheteurcac:AccountingCustomerParty/cac:Party/cac:PostalAddress

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 fiche client stocke le pays sous forme de nom, comme United Kingdom, et le mapping l'écrit dans cac:Country/cbc:Name ou l'abandonne parce que ce n'est pas un code.
  • Les clients nationaux n'ont pas de pays renseigné parce que le système suppose le pays d'origine, et l'export n'écrit rien pour eux.
  • Une correspondance entre noms de pays et codes ne renvoie rien pour une orthographe inattendue, et le sérialiseur écrit un élément vide ou aucun élément.
  • L'adresse est construite à partir des champs rue, ville et code postal, et le pays n'a jamais été ajouté au mapping.

Comment corriger le document

  1. Conservez un code pays sur chaque adresse client, en convertissant les noms en codes ISO 3166-1 alpha-2 lorsque la source stocke des noms.
  2. Écrivez-le sous la forme de cac:Country/cbc:IdentificationCode dans le cac:PostalAddress de l'acheteur, après les éléments de rue, de ville, de code postal et de subdivision.
  3. Ne remplissez pas par défaut un pays d'acheteur manquant avec le pays du vendeur. Comblez le manque dans la fiche client, là où la véritable adresse est connue.

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'adresse de l'acheteur s'arrête au code postal, sans pays

<cac:AccountingCustomerParty>
  <cac:Party>
    <cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
    <cac:PostalAddress>
      <cbc:StreetName>2 Example Street</cbc:StreetName>
      <cbc:CityName>London</cbc:CityName>
      <cbc:PostalZone>SW1A 2AA</cbc:PostalZone>
    </cac:PostalAddress>
    <!-- legal entity omitted from this fragment -->
  </cac:Party>
</cac:AccountingCustomerParty>

Fragment de la facture corrigée : l'adresse de l'acheteur se termine par le code pays GB

<cac:AccountingCustomerParty>
  <cac:Party>
    <cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
    <cac:PostalAddress>
      <cbc:StreetName>2 Example Street</cbc:StreetName>
      <cbc:CityName>London</cbc:CityName>
      <cbc:PostalZone>SW1A 2AA</cbc:PostalZone>
      <cac:Country>
        <cbc:IdentificationCode>GB</cbc:IdentificationCode>
      </cac:Country>
    </cac:PostalAddress>
    <!-- legal entity omitted from this fragment -->
  </cac:Party>
</cac:AccountingCustomerParty>

La facture corrigée ajoute cac:Country avec le cbc:IdentificationCode GB comme dernier enfant de l'adresse de l'acheteur ; la rue, la ville et le code postal sont inchangés. BR-11 est le seul constat du document en échec. L'adresse du vendeur a toujours son pays, donc BR-09, la règle équivalente pour le vendeur, n'a rien à signaler.

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

  • L'adresse de l'acheteur d'un document CreditNote est contrôlée de la même façon. Lors d'un essai, la version avoir a signalé BR-11 au cac:PostalAddress de l'acheteur.
  • Le vendeur a sa propre règle pour le même champ, BR-09, tout comme le représentant fiscal, BR-20. L'adresse de livraison relève de BR-57, plus faible : elle vérifie seulement que l'élément de code existe, donc un code de livraison vide la passe.
  • BR-11 appartient à l'étape EN 16931. Peppol n'ajoute un constat propre que lorsqu'un élément cac:Country ou de code vide est laissé en place ; lorsque le pays est entièrement absent, comme dans l'exemple enregistré, l'étape Peppol passe.

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-24.

La définition officielle de BR-11 (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.