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.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-40 | Code de pays du vendeur | cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode |
| BG-5 | Adresse postale du vendeur | cac: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:Nameou 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
- 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. - Convertissez-le en code ISO 3166-1 alpha-2 en majuscules, par exemple
GB,DEouNL. - Écrivez-le comme
cac:Country/cbc:IdentificationCodeà la fin de l'adresse, aprèscbc:PostalZoneet après un éventuelcbc:CountrySubentityoucac:AddressLine. - 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. - 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é
- La facture en erreur signale BR-09. 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
Invoicequ'auxCreditNote. Lors d'un essai, un avoir dont l'adresse du vendeur n'avait pas de pays a signaléBR-09seul, aucac:PostalAddressdu 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-09etBR-11cô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.
Règles liées
- BR-08 exige l'adresse postale du vendeur dans laquelle ce code se place
- BR-11 demande la même chose pour l'adresse postale de l'acheteur
- BR-CL-14 vérifie le code par rapport à la liste des pays ISO 3166-1 une fois qu'il est présent
- BR-20 exige aussi un code pays dans l'adresse du représentant fiscal
- 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-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.

