Sur cette page
La réponse courte
BR-E-01 échoue lorsque la catégorie E apparaît sur une ligne, une remise au niveau du document ou des frais au niveau du document, et que cac:TaxTotal ne contient pas exactement un cac:TaxSubtotal dont le cac:TaxCategory/cbc:ID vaut E. Émettez une seule ventilation exonérée qui couvre tout le contenu exonéré, en l'ajoutant si elle manque et en la fusionnant si elle est scindée.
Des motifs d'exonération différents ne justifient pas des ventilations distinctes. La ventilation est regroupée par catégorie et par taux, la catégorie exonérée n'a que le taux 0, et le document n'a donc de place que pour une ventilation exonérée avec un seul motif.
Ce que la règle vérifie
La règle cherche d'abord du contenu exonéré : tout cac:ClassifiedTaxCategory ou cac:TaxCategory du document avec un cbc:ID à E sous le régime VAT. S'il y en a, elle compte les éléments cac:TaxCategory exonérés dans les cac:TaxSubtotal sous le cac:TaxTotal racine, et ce nombre doit être exactement 1.
Aucune ventilation fait échouer la règle, et plus d'une aussi. Lors d'un essai, une facture mixte avec une ligne exonérée et sans ventilation exonérée a signalé cette règle seule, tout comme une facture dont le seul élément exonéré était des frais au niveau du document.
Des motifs identiques ne changent rien. Lors d'un essai, reproduire la scission enregistrée avec le même texte de motif dans les deux moitiés a donné les trois mêmes constats.
Comme la catégorie de la ventilation elle-même compte comme contenu exonéré, la règle ne détecte pas une ventilation exonérée sans rien d'exonéré derrière elle. Lors d'un essai, une ventilation E de 0.00 ajoutée à une facture ne comportant que des lignes au taux normal a laissé le document valide.
Empiler les motifs dans l'unique ventilation n'est pas une issue non plus. Lors d'un essai, deux éléments cbc:TaxExemptionReason dans une même ventilation exonérée ont été rejetés par UBL-SR-32.
| 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 regroupée par code fiscal interne au lieu de la catégorie et du taux, et deux codes fiscaux exonérés produisent deux entrées
E. - Le motif d'exonération fait partie de la clé de regroupement, si bien que chaque motif distinct obtient sa propre ventilation.
- Les ventilations ne sont émises que là où une taxe est facturée, donc rien n'apparaît pour les montants exonérés.
- Des frais exonérés au niveau du document sont ajoutés après que la ventilation a été construite à partir des lignes.
Comment corriger le document
- Rassemblez les éléments exonérés : les lignes par
cac:Item/cac:ClassifiedTaxCategory/cbc:ID, et les élémentscac:AllowanceChargeau niveau racine parcac:TaxCategory/cbc:ID. - Émettez un
cac:TaxSubtotalpour la catégorieE, avec uncbc:TaxableAmountégal aux lignes exonérées plus les frais exonérés moins les remises exonérées, uncbc:TaxAmountde0.00et uncbc:Percentde0. - Donnez-lui un seul motif d'exonération, sous forme de texte, de code VATEX, ou des deux. Si les livraisons exonérées reposent sur des fondements différents, reprenez de votre détermination fiscale une formulation qui les couvre tous ; si chaque fondement doit être indiqué séparément, ces livraisons nécessitent des factures distinctes.
- Là où la ventilation était scindée, supprimez les entrées
Een trop plutôt que de les compléter. Le total de TVA reste le même, puisque chacune portait 0.00.
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'unique ligne exonérée de 25.00 est répartie sur deux ventilations exonérées
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">15.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>E</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReason>Exempt from VAT</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">10.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>E</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReason>Exempt financial service</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<!-- the only line: LineExtensionAmount 25.00, category E at 0 -->Fragment de la facture corrigée : une seule ventilation exonérée de 25.00 avec un seul motif
<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>E</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReason>Exempt from VAT</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>La facture en échec a deux ventilations exonérées, 15.00 avec Exempt from VAT et 10.00 avec Exempt financial service ; la facture corrigée a une seule ventilation de 25.00. Le document en échec signale aussi BR-E-08 deux fois, une fois par ventilation exonérée, car cette règle compare chaque base d'imposition exonérée à l'ensemble des lignes exonérées, soit 25.00, et ni 15.00 ni 10.00 ne correspond. Fusionner les deux lève les trois constats.
Ce que le validateur a signalé
- La facture en erreur signale BR-E-01 et BR-E-08. 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, un avoir exonéré scindé de la même façon a signalé cette règle et deux foisBR-E-08. - Signalée par l'étape EN 16931 comme un seul constat de gravité fatal à la racine du document.
- Seule la catégorie
Esous le régimeVATcompte. Le contenu au taux zéro a la règle équivalenteBR-Z-01, tandis que le contenu au taux normal peut avoir une ventilation par taux selonBR-S-01. - L'unique ventilation exonérée doit encore porter un motif selon
BR-E-10, correspondre au contenu exonéré selonBR-E-08et n'indiquer aucune taxe selonBR-E-09.
Règles liées
- BR-E-08 échoue sur chaque ventilation exonérée en trop, car chacune est comparée à tout le contenu exonéré
- BR-E-10 exige le motif d'exonération sur l'unique ventilation exonérée
- BR-Z-01 applique la même règle d'une seule ventilation aux ventilations au taux zéro
- 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-24.1 : source vérifiée le 2026-09-24, explication mise à jour le 2026-09-24.
La définition officielle de BR-E-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.

