Sur cette page
La réponse courte
BR-G-10 échoue lorsque le cac:TaxCategory d'une ventilation G n'a ni cbc:TaxExemptionReasonCode ni cbc:TaxExemptionReason. Remettez le code VATEX-EU-G, le texte Export outside the EU ou la formulation standard dans la langue de la facture, ou les deux, entre cbc:Percent et cac:TaxScheme.
Le code est le choix le plus sûr : Peppol lie VATEX-EU-G à la catégorie G, donc un mapping qui l'écrit à partir de la catégorie ne peut pas dériver.
Ce que la règle vérifie
Chaque ventilation G sous le régime VAT dans le cac:TaxTotal racine est contrôlée à la recherche d'un enfant de motif de l'un ou l'autre type, et le constat est signalé sur son cac:TaxCategory.
L'un des deux suffit. Lors d'un essai, l'exportation enregistrée avec seulement VATEX-EU-G, puis avec seulement le texte anglais, a passé toutes les étapes ; il en a été de même du texte allemand Ausfuhrlieferung seul.
Ce que dit le motif n'est pas contrôlé par cette règle. Le code VATEX-EU-132, un code d'exonération prévu pour la catégorie E, a passé toutes les étapes sur la ventilation G lors d'un essai. Peppol rejette en revanche les codes qu'il réserve à d'autres catégories : VATEX-EU-IC a signalé PEPPOL-EN16931-P0106, et VATEX-EU-O a signalé PEPPOL-EN16931-P0105.
Un cbc:TaxExemptionReason vide compte comme un motif pour cette règle. Lors d'un essai, la ventilation d'exportation avec un texte vide et sans code a déclenché à la place PEPPOL-EN16931-R008 pour l'élément vide.
La ligne ne peut pas porter le motif à la place de la ventilation. Lors d'un essai, le code et le texte placés dans le cac:ClassifiedTaxCategory de l'article exporté ont laissé cette règle en place et ajouté les avertissements UBL-CR-600 et UBL-CR-601.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-118 | Code de catégorie de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
| BT-120 | Motif d'exonération de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason |
| BT-121 | Code du motif d'exonération de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode |
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 motif d'exonération n'est écrit que pour la catégorie
E, et l'exportation a été ajoutée au mapping plus tard. - La mention d'exportation est imprimée sur le PDF en note de bas de page, mais jamais mappée dans la ventilation.
- Le motif est configuré sur le code fiscal de l'article et n'est pas recopié lors du regroupement des lignes dans la ventilation.
- Les chaînes vides sont supprimées à la sortie, et le code fiscal d'exportation n'avait aucun texte de motif configuré.
Comment corriger le document
- Confirmez que les biens sont exportés hors de l'UE ; si c'est le cas, la ventilation reste
G. - Dans son
cac:TaxCategory, ajoutezcbc:TaxExemptionReasonCodeavecVATEX-EU-G,cbc:TaxExemptionReasonavecExport outside the EUou son équivalent standard, ou les deux. - Écrivez-les dans l'ordre du schéma après
cbc:Percent: d'abord le code, puis le texte. Avec le texte avant le code, l'exportation a échoué à l'étape XSD lors d'un essai. - Définissez le motif sur le code fiscal d'exportation à la source, afin que chaque ventilation
Gsoit générée avec lui.
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 ventilation G avec un taux mais sans motif
<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>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>Fragment de la facture corrigée : VATEX-EU-G et la mention d'exportation après le taux
<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>La facture corrigée a cbc:TaxExemptionReasonCode VATEX-EU-G et cbc:TaxExemptionReason Export outside the EU dans sa catégorie fiscale G ; la facture en échec n'a ni l'un ni l'autre. Rien d'autre ne diffère, et BR-G-10 est le seul constat.
Ce que le validateur a signalé
- La facture en erreur signale BR-G-10. 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é cette règle sur la même ventilation. - Peppol ajoute le contrôle inverse avec
PEPPOL-EN16931-P0104:VATEX-EU-Gsur une ventilation de toute autre catégorie est rejeté. - Un motif ne suffit pas à compléter un document d'exportation : le vendeur a besoin d'un identifiant TVA (
BR-G-02), et la ventilation doit apparaître une seule fois (BR-G-01) et ne porter aucune taxe (BR-G-09).
Règles liées
- PEPPOL-EN16931-P0104 rejette VATEX-EU-G sur une ventilation qui n'est pas de catégorie G
- BR-IC-10 est le contrôle du motif pour une ventilation intracommunautaire
- BR-G-02 exige l'identifiant TVA du vendeur sur la même facture d'exportation
- BR-CL-22 vérifie qu'un code de motif comme VATEX-EU-G figure dans la liste VATEX
- 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-10 (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.

