Aller au contenu

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

BR-09 : Donner un code pays à l'adresse postale du vendeur

Le cac:PostalAddress du vendeur doit contenir cac:Country/cbc:IdentificationCode avec un code ISO 3166-1 tel que GB. Un code absent ou vide échoue.

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

Sur cette page

La réponse courte

BR-09 échoue lorsque le cac:PostalAddress du vendeur n'a pas de cac:Country/cbc:IdentificationCode, ou en a un vide. Écrivez le code ISO 3166-1 alpha-2 à deux lettres du pays où se trouve l'adresse du vendeur, comme dernier enfant de cette adresse : GB dans l'exemple enregistré.

Un nom de pays ne remplace pas le code. Lors d'un essai, cac:Country/cbc:Name contenant United Kingdom à la place du code a laissé BR-09 en échec et ajouté l'avertissement UBL-CR-166, car le nom est hors du modèle de facture.

Ce que la règle vérifie

La règle est évaluée dans chaque cac:PostalAddress du vendeur et signale à cette adresse. Elle supprime les espaces en début et en fin du texte de cac:Country/cbc:IdentificationCode et échoue s'il ne reste rien, que le groupe cac:Country manque ou que le code qu'il contient soit vide.

Un code vide ou fait d'espaces entraîne deux constats de plus. Lors d'un essai, un cbc:IdentificationCode vide et un autre contenant une seule espace ont chacun signalé BR-09, BR-CL-14 pour une valeur absente de la liste des pays, et PEPPOL-EN16931-R008 pour l'élément sans contenu.

La règle ne vérifie pas si le texte est un vrai code. Lors d'un essai, gb en minuscules a passé BR-09 et a été rejeté par BR-CL-14, qui compare exactement avec la liste ISO 3166-1, majuscules comprises.

Lorsque le vendeur n'a aucune adresse, la règle n'a nulle part où s'exécuter. Un tel document signale BR-08 à la place, et BR-09 reste muet.

TermeSignificationÉlément UBL
BT-40Code de pays du vendeurcac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode
BG-5Adresse postale du vendeurcac:AccountingSupplierParty/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 :

  • Les paramètres de la société conservent le pays du vendeur sous forme de nom, et le mapping l'écrit dans cac:Country/cbc:Name ou l'omet parce que ce n'est pas un code.
  • Le pays d'origine est supposé plutôt qu'enregistré, si bien que la fiche du vendeur n'a pas de champ pays et que l'export n'écrit aucun cac:Country.
  • Les adresses du vendeur et de l'acheteur sont construites par du code distinct, et le pays n'a jamais été ajouté qu'au mapping de l'acheteur.
  • La conversion d'un nom de pays enregistré en code échoue sur une orthographe inattendue et renvoie une chaîne vide, écrite comme un élément vide.

Comment corriger le document

  1. Prenez le pays dans les données de référence du vendeur : le pays de l'adresse envoyée dans cac:AccountingSupplierParty/cac:Party/cac:PostalAddress.
  2. Convertissez-le en code ISO 3166-1 alpha-2 en majuscules, par exemple GB, DE ou NL.
  3. Écrivez-le comme cac:Country/cbc:IdentificationCode à la fin de l'adresse, après cbc:PostalZone et après un éventuel cbc:CountrySubentity ou cac:AddressLine.
  4. N'envoyez pas de cac:Country/cbc:Name. Le code est le seul élément de pays que le modèle utilise, et le nom entraîne un avertissement.
  5. Si la fiche du vendeur n'a pas de pays, arrêtez l'export et complétez la fiche au lieu d'écrire un élément vide.

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 du vendeur s'arrête au code postal

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

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

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

La facture corrigée termine l'adresse du vendeur par un cac:Country contenant GB ; la facture en échec s'arrête après le code postal et est identique par ailleurs. BR-09 est le seul constat du document en échec. L'adresse de l'acheteur garde son pays, donc BR-11 reste muet, et sans code présent BR-CL-14 n'a rien à vérifier.

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 aussi bien aux documents Invoice qu'aux CreditNote. Lors d'un essai, un avoir dont l'adresse du vendeur n'avait pas de pays a signalé BR-09 seul, au cac:PostalAddress du vendeur.
  • Une règle EN 16931. Dans l'exemple enregistré, l'étape Peppol n'a rien relevé concernant le pays manquant du vendeur.
  • L'adresse de l'acheteur a la même exigence sous son propre identifiant. Lors d'un essai, la suppression des deux pays a signalé BR-09 et BR-11 côte à côte, chacun à sa propre adresse.
  • Un représentant fiscal du vendeur, s'il existe, a lui aussi besoin d'un code pays dans sa propre adresse, ce que vérifie BR-20.

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-28.1 : source vérifiée le 2026-09-28, explication mise à jour le 2026-09-28.

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