Sur cette page
La réponse courte
BR-Z-10 échoue lorsque la cac:TaxCategory d'une ventilation de la TVA de catégorie Z contient cbc:TaxExemptionReason ou cbc:TaxExemptionReasonCode. Retirez l'élément ; la ventilation au taux zéro n'a besoin que de sa catégorie, d'un taux de 0 et du schéma VAT.
Le taux zéro et l'exonération sont des traitements distincts. Si la fourniture est réellement exonérée, elle relève de la catégorie E, où un motif est exigé au lieu d'être interdit.
Ce que la règle vérifie
La règle lit chaque cac:TaxCategory dont le cbc:ID vaut Z sous le schéma VAT dans un cac:TaxSubtotal du cac:TaxTotal racine, et échoue lorsque l'un ou l'autre élément de motif y apparaît.
Un code sans texte échoue aussi. Lors d'un essai, une ventilation au taux zéro ne portant qu'un cbc:TaxExemptionReasonCode de VATEX-EU-132 a été signalée par cette règle.
Le libellé n'est jamais lu. Zero rated, qui ne fait que répéter la catégorie, suffit à la faire échouer.
Les catégories d'article sur les lignes sont hors du périmètre de cette règle. Lors d'un essai, un motif dans la cac:ClassifiedTaxCategory d'une ligne au taux zéro a laissé le document valide, avec seulement l'avertissement 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 :
- L'export écrit une description pour chaque ventilation, et le code de taxe du taux zéro dans le système source en a une, comme
Zero rated. - Les fournitures au taux zéro et exonérées partagent un même code de taxe, et le libellé d'exonération qui y est rattaché atteint les deux.
- Une ventilation est passée de
EàZet son élément de motif a suivi. - Le champ de motif est mappé pour toutes les catégories sans TVA ensemble, sans séparer celles qui en ont besoin de
Z, qui l'interdit.
Comment corriger le document
- Retirez
cbc:TaxExemptionReasonetcbc:TaxExemptionReasonCodede lacac:TaxCategoryde la ventilation au taux zéro. - Lisez ce que disait le motif avant de le supprimer. S'il décrit une exonération plutôt qu'un taux zéro, la fourniture relève de la catégorie
Esur les lignes et dans la ventilation, et le motif la suit. - Empêchez l'export d'écrire des éléments de motif pour les ventilations
Z, quel que soit le contenu du code de taxe.
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 : un texte de motif dans la catégorie de taxe au taux zéro
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">10.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>Z</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReason>Zero rated</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>Fragment de la facture corrigée : la ventilation au taux zéro sans motif
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">10.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>Z</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>La facture en échec a cbc:TaxExemptionReason avec le texte Zero rated dans sa ventilation au taux zéro, le second cac:TaxSubtotal, et la facture corrigée n'y a aucun motif. C'est la seule différence, et le document en échec ne signale que BR-Z-10.
Ce que le validateur a signalé
- La facture en erreur signale BR-Z-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. Un avoir avec le même texte dans sa ventilation au taux zéro a signalé cette règle lors d'un essai. - Signalée par l'étape EN 16931 comme constat fatal sur la
cac:TaxCategoryde la ventilation au taux zéro. - Les ventilations au taux normal sont soumises à la même interdiction par
BR-S-10. Les ventilations exonérées fonctionnent à l'inverse et exigent un motif selonBR-E-10.
Règles liées
- BR-S-10 interdit de la même manière les motifs d'exonération sur les ventilations au taux normal
- BR-E-10 exige un motif sur une ventilation exonérée, la catégorie à utiliser si la fourniture est exonérée
- BR-Z-01 exige exactement une ventilation au taux zéro lorsqu'il existe un contenu 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-Z-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.

