Sur cette page
La réponse courte
BR-G-01 échoue lorsque le document utilise la catégorie G quelque part, sur une ligne, une remise ou des frais au niveau du document, et que le cac:TaxTotal racine ne contient pas exactement un cac:TaxSubtotal en G. La facture en échec répète sa ventilation d'exportation ; supprimez la copie pour qu'il reste une seule ventilation G de 25.00.
L'exportation hors UE a toujours un taux de 0, il n'y a donc jamais de raison d'avoir une deuxième ventilation G : toutes les lignes, remises et frais en G sont additionnés dans une seule.
Ce que la règle vérifie
La règle s'exécute une fois par document et signale à la racine. Tout cac:ClassifiedTaxCategory ou cac:TaxCategory avec un cbc:ID à G sous le régime VAT la déclenche, ce qui couvre les articles, les remises et frais au niveau du document, et la ventilation elle-même.
Elle compte ensuite les catégories G parmi les éléments cac:TaxSubtotal du cac:TaxTotal racine et en exige exactement 1.
Un doublon est détecté ici et nulle part ailleurs. Chaque copie de la ventilation enregistrée vaut à elle seule les 25.00 de la ligne, donc BR-G-08, qui compare chaque ventilation G à la somme d'exportation entière, les laisse passer toutes les deux.
Un fractionnement est signalé deux fois. Lors d'un essai, l'exemple avec frais de transport divisé en une ventilation G de 25.00 pour la ligne et une de 4.00 pour les frais a signalé cette règle et BR-G-08 sur chaque ventilation, puisqu'aucune ne vaut 29.00.
Des frais seuls suffisent à exiger la ventilation. Lors d'un essai, des frais de transport de 4.00 en G sur une facture au taux normal sans ventilation G ont signalé cette règle et rien d'autre.
L'inverse n'est pas contrôlé. La ventilation compte elle-même comme contenu G : lors d'un essai, une ventilation G de 0.00 ajoutée à une facture au taux normal sans aucun contenu d'exportation a passé toutes les étapes.
| Terme | Signification | Élément UBL |
|---|---|---|
| BG-23 | Ventilation de la TVA | cac:TaxTotal/cac:TaxSubtotal |
| BT-118 | Code de catégorie de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
| BT-151 | Code de catégorie de TVA de l'article facturé | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID in a credit note) |
| BT-95 | Code de catégorie de TVA de la remise au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID |
| 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 |
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 ventilation est ajoutée une fois par le moteur fiscal et une seconde fois par le modèle de facture.
- Les ventilations sont construites par source, une pour les lignes et une pour les frais au niveau du document, au lieu de par catégorie.
- Les lignes d'exportation sont rattachées à un code fiscal de taux zéro lors de la construction de la ventilation, si bien que le document a des lignes
Gsous une ventilationZ. - Des frais de transport d'exportation sont classés
Galors que la construction de la ventilation ne regarde que les lignes.
Comment corriger le document
- Rassemblez chaque ligne, remise racine et frais racine dont la catégorie est
G. - Écrivez pour eux un seul
cac:TaxSubtotaldans lecac:TaxTotalracine, avec uncbc:IDàG, uncbc:Percentà0, le motifVATEX-EU-G, et les lignes plus les frais moins les remises comme base imposable. - Supprimez toute autre ventilation
G, ainsi que toute ventilation d'une autre catégorie derrière laquelle il n'y a rien. - Lorsque les ventilations sont regroupées par catégorie et par taux, vérifiez qu'aucun article
Gne porte un taux parasite, afin que le regroupement ne puisse pas produire une deuxième ventilation d'exportation.
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 : la ventilation d'exportation apparaît deux fois, avec 25.00 dans chacune
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>G</cbc:ID>
<!-- rate 0, reason VATEX-EU-G, reason text and tax scheme omitted from this fragment -->
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>G</cbc:ID>
<!-- rate 0, reason VATEX-EU-G, reason text and tax scheme omitted from this fragment -->
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>Fragment de la facture corrigée : une ventilation d'exportation pour la ligne d'exportation de 25.00
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>G</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-EU-G</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Export outside the EU</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>La facture en échec a deux ventilations G identiques de 25.00 dans son cac:TaxTotal ; la facture corrigée en a une. Le document en échec ne signale que BR-G-01 : chaque copie correspond à elle seule à la ligne d'exportation, et avec 0.00 de taxe dans chacune, le total de TVA de 0.00 reste égal à leur somme.
Ce que le validateur a signalé
- La facture en erreur signale BR-G-01. 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 ventilation en double dans un avoir a signalé le même constat. - Lorsque des lignes d'exportation relèvent d'une ventilation d'une autre catégorie, les contrôles propres à cette catégorie s'ajoutent à cette règle. Lors d'un essai, la ligne d'exportation avec sa ventilation renommée en
Z, sans le motif d'exportation, a signalé cette règle etBR-Z-08. - Lors d'un essai, supprimer la seule ventilation a aussi signalé
BR-CO-18,PEPPOL-EN16931-R053etPEPPOL-EN16931-R054, car le document n'avait alors plus aucune ventilation de la TVA. - Le même compte d'exactement une s'applique aux autres catégories avec
BR-Z-01,BR-E-01,BR-AE-01,BR-IC-01etBR-O-01. Le contenu au taux normal peut en revanche avoir une ventilation par taux (BR-S-01).
Règles liées
- BR-G-08 contrôle la base imposable de l'unique ventilation d'exportation exigée par cette règle
- BR-G-10 exige le motif d'exportation dans cette ventilation
- BR-IC-01 est le même compte pour les livraisons intracommunautaires
- BR-E-01 applique le même compte aux ventilations exonérées
- 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-01 (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.

