Sur cette page
La réponse courte
BR-G-04 échoue lorsqu'un cac:AllowanceCharge avec un cbc:ChargeIndicator à true est en catégorie G et qu'il n'existe aucun identifiant TVA du vendeur ni de son représentant fiscal. Le vendeur enregistré envoie bien GB123456789, mais sous le régime fiscal TAX, qui ne compte pas ; changez le régime en VAT.
Les frais de transport de 4.00 et la ligne d'exportation ont le même vendeur, donc BR-G-02 signale la même lacune pour la ligne.
Ce que la règle vérifie
Des frais en G déclenchent la règle même sans aucune ligne d'exportation. Lors d'un essai, des frais de transport de 4.00 en G sur une facture dont la seule ligne était au taux normal de 20 %, avec un vendeur immatriculé seulement sous TAX, ont signalé cette règle seule. Des frais à l'intérieur d'une ligne comptent aussi : lors d'un essai, des frais de 0.00 en G placés dans cette ligne au taux normal, là encore avec un vendeur seulement sous TAX, ont signalé cette règle et l'avertissement UBL-CR-558.
L'identifiant du vendeur doit se trouver dans un cac:PartyTaxScheme dont le cac:TaxScheme/cbc:ID vaut VAT. Le régime est toute la différence entre la facture en échec et la facture corrigée : le même GB123456789 sous TAX échoue.
Un représentant fiscal est une alternative. Lors d'un essai, la facture avec frais de transport, sans identifiant TVA du vendeur mais avec une cac:TaxRepresentativeParty portant GB987654321 sous VAT, a passé toutes les étapes.
Un identifiant vide n'est pas signalé ici. Lors d'un essai, un cbc:CompanyID du vendeur sans contenu sous VAT a franchi cette règle et BR-G-02, et n'a échoué qu'à PEPPOL-EN16931-R008.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-102 | Code de catégorie de TVA des charges ou frais au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:ID |
| BT-31 | Identifiant à la TVA du vendeur | cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID |
| BT-63 | Identifiant à la TVA du représentant fiscal du vendeur | cac:TaxRepresentativeParty/cac:PartyTaxScheme/cbc:CompanyID |
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 immatriculations fiscales sont exportées avec un seul code de régime générique,
TAX, quelle que soit leur nature. - La section TVA du vendeur est supprimée pour les acheteurs hors UE, au motif qu'aucune TVA n'est facturée.
- Le transport est ajouté comme frais distincts par un module logistique qui attribue
Gd'après la destination, tandis que la partie vendeur vient d'un profil sans immatriculation à la TVA.
Comment corriger le document
- Repérez l'endroit où le
cac:PartyTaxSchemedu vendeur est écrit, et donnez-lui uncac:TaxScheme/cbc:IDàVATlorsque soncbc:CompanyIDest le numéro d'immatriculation à la TVA. - Si le vendeur a aussi une immatriculation fiscale qui ne concerne pas la TVA, elle peut aller dans un second
cac:PartyTaxSchemesous un autre régime ; celui enVATdoit tout de même être présent. - Lorsqu'un représentant fiscal déclare la TVA pour le compte du vendeur, ajoutez plutôt
cac:TaxRepresentativePartyavec son proprecac:PartyTaxSchemeVAT. - Laissez les frais de transport en
Gau taux de0s'ils font partie de la livraison exportée.
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 : des frais de transport de catégorie G, et l'immatriculation du vendeur sous TAX
<cac:AccountingSupplierParty>
<cac:Party>
<!-- endpoint and postal address in London, GB, omitted from this fragment -->
<cac:PartyTaxScheme>
<cbc:CompanyID>GB123456789</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>TAX</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<!-- legal entity omitted from this fragment -->
</cac:Party>
</cac:AccountingSupplierParty>
<!-- buyer in New York, US, omitted from this fragment -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Freight to New York</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">4.00</cbc:Amount>
<cac:TaxCategory>
<cbc:ID>G</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<!-- tax scheme VAT omitted from this fragment -->
</cac:TaxCategory>
</cac:AllowanceCharge>Fragment de la facture corrigée : la même immatriculation sous le régime VAT
<cac:AccountingSupplierParty>
<cac:Party>
<!-- endpoint and postal address in London, GB, omitted from this fragment -->
<cac:PartyTaxScheme>
<cbc:CompanyID>GB123456789</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<!-- legal entity omitted from this fragment -->
</cac:Party>
</cac:AccountingSupplierParty>
<!-- buyer and the freight charge of 4.00 in G omitted from this fragment -->Seul le régime fiscal du vendeur diffère : TAX dans la facture en échec, VAT dans la facture corrigée, tous deux autour de GB123456789. Les frais de transport de 4.00 en G sont inchangés. Le document en échec signale aussi BR-G-02, puisque sa ligne d'exportation exige le même identifiant TVA du vendeur.
Ce que le validateur a signalé
- La facture en erreur signale BR-G-02 et BR-G-04. 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 aux documents UBL
InvoiceetCreditNote. Lors d'un essai, la facture en échec transformée en avoir a signaléBR-G-02et cette règle. - Les remises en
Gsont contrôlées de la même façon parBR-G-03. Le taux propre des frais doit valoir 0 selonBR-G-07, et leur montant entre dans la base imposable de l'exportation contrôlée parBR-G-08. BR-CO-09ne lit que les identifiants sous le régimeVAT: passerGB123456789enVATsoumet donc aussi son préfixe pays à ce contrôle.
Règles liées
- BR-G-03 est le même contrôle pour une remise au niveau du document en catégorie G
- BR-G-07 exige un taux de 0 pour les frais G
- BR-G-02 demande l'identifiant TVA du vendeur lorsqu'une ligne d'exportation est présente, et se déclenche avec cette règle
- BR-S-02 accepte pour les lignes au taux normal une immatriculation du vendeur sous TAX, contrairement à cette règle
- 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-G-04 (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.

