Sur cette page
La réponse courte
BR-G-05 échoue lorsqu'un cac:ClassifiedTaxCategory d'article a un cbc:ID à G et un cbc:Percent non nul. La ligne d'exportation enregistrée indique G à 20 ; remplacez le taux par 0.
Une exportation hors UE est au taux zéro : le taux national que l'article porterait dans une vente intérieure ne s'y applique pas.
Ce que la règle vérifie
Chaque catégorie G d'article sous le régime VAT, sur une ligne de facture ou d'avoir, est contrôlée séparément, et le constat pointe sur ce cac:ClassifiedTaxCategory.
Le taux est comparé à zéro en tant que nombre décimal. Lors d'un essai, 0.00 sur la ligne d'exportation a passé, comme le 0 d'origine.
Un taux absent échoue aussi. Lors d'un essai, la ligne d'exportation privée de son cbc:Percent a signalé cette règle et rien d'autre ; un cbc:Percent vide a échoué à l'étape XSD à la place, si bien que les règles métier ne se sont jamais exécutées.
Rien d'autre dans le document ne remarque ce taux parasite. La facture en échec a toujours une ventilation G à 0 avec 0.00 de taxe, et BR-G-08 totalise les montants de ligne par catégorie seulement, donc cette règle est le seul constat.
| Terme | Signification | Élément UBL |
|---|---|---|
| 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-152 | Taux de TVA de l'article facturé | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent in a credit note) |
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 :
- Le taux de la ligne est copié depuis la fiche article, qui contient le taux national de 20, tandis que la catégorie est fixée d'après la destination.
- La catégorie et le taux proviennent de deux tables de codes fiscaux qui n'ont pas été mises à jour ensemble.
- Un code fiscal d'exportation a été créé par copie du code au taux normal, et son taux n'a jamais été modifié.
Comment corriger le document
- Mettez
cbc:Percentà0dans chaquecac:ClassifiedTaxCategoryd'article dont lecbc:IDestG. - Corrigez le code fiscal à la source, afin que le code d'exportation donne un taux de 0 partout où le taux de la ligne est lu.
- Si l'article est réellement taxable à 20, la ligne n'est pas une exportation en
G: donnez-luiSà ce taux et placez-la plutôt dans une ventilation au taux normal.
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 : une ligne d'exportation en catégorie G à un taux de 20
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Example service</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>G</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<!-- price omitted from this fragment -->
</cac:InvoiceLine>Fragment de la facture corrigée : la ligne d'exportation à un taux de 0
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Example service</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>G</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<!-- price omitted from this fragment -->
</cac:InvoiceLine>Seul le taux de l'article diffère : 20 dans la facture en échec, 0 dans la facture corrigée. BR-G-05 est le seul constat, car la ventilation, les montants de taxe et les totaux sont identiques dans les deux documents et aucun ne dépend du taux de la ligne.
Ce que le validateur a signalé
- La facture en erreur signale BR-G-05. 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. En avoir, avec le taux sur unecac:CreditNoteLine, la facture en échec a signalé le même constat lors d'un essai. - Signalée par l'étape EN 16931 comme un constat fatal sur le
cac:ClassifiedTaxCategoryde l'article. - Les remises et frais en
Gont leurs propres contrôles de taux,BR-G-06etBR-G-07. Les lignes au taux zéro et en autoliquidation suiventBR-Z-05etBR-AE-05.
Règles liées
- BR-G-06 applique le même taux zéro à une remise au niveau du document en G
- BR-G-01 exige l'unique ventilation d'exportation à laquelle appartient la ligne corrigée
- BR-Z-05 est le contrôle de taux pour les lignes au taux zéro
- BR-AE-05 est le contrôle de taux pour les lignes en autoliquidation
- 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-05 (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.

