Sur cette page
La réponse courte
BR-Z-01 échoue lorsque la catégorie de TVA Z 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 de catégorie Z. Une ventilation reste obligatoire même quand son montant de taxe est nul. Ajoutez une seule ventilation au taux zéro qui couvre tout le contenu au taux zéro.
Ce que la règle vérifie
La règle cherche un cbc:ID égal à Z, sous le schéma fiscal VAT, dans n'importe quelle cac:ClassifiedTaxCategory ou cac:TaxCategory du document. S'il y en a un, le nombre d'éléments cac:TaxSubtotal au taux zéro dans cac:TaxTotal sous la racine du document doit être exactement un.
Deux ventilations au taux zéro échouent tout comme aucune. En cela, la règle diffère de BR-S-01, qui accepte plusieurs ventilations au taux normal parce que les taux normaux varient ; le taux zéro est un taux unique, donc une seule entrée le contient entièrement.
Le cas inverse n'est pas détecté ici. Une ventilation au taux zéro de 0.00 dans une facture sans ligne, remise ni frais au taux zéro passe cette règle, et a passé toute la validation lors de notre essai.
Les montants ne sont pas examinés. BR-Z-08 contrôle la base imposable au taux zéro et BR-Z-09 exige que le montant de taxe soit nul.
| 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 |
| 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 :
- Les ventilations ne sont générées que pour les catégories dont le montant de taxe n'est pas nul, si bien que celle au taux zéro n'apparaît jamais.
- Le récapitulatif fiscal est tiré des écritures de TVA du grand livre, et les ventes au taux zéro ne produisent aucune écriture.
- Une ventilation est écrite par ligne ou par code de taxe, et deux codes internes correspondent tous deux à
Z. - Une ligne au taux zéro a été ajoutée tardivement, par exemple un article de livraison, après la construction de la ventilation.
- Une ligne porte
Zpar une valeur par défaut du mapping alors que la fourniture relève en réalité d'une autre catégorie. Dans ce cas, c'est la catégorie qu'il faut corriger, à sa source.
Comment corriger le document
- Confirmez à partir des données source que les articles marqués
Zsont bien des fournitures au taux zéro. La catégorie décrit l'opération et n'est pas une valeur à modifier pour faire taire la règle. - Additionnez le contenu au taux zéro en un seul montant. Dans la facture enregistrée, il s'agit de l'unique ligne au taux zéro de 10.00.
- Émettez un
cac:TaxSubtotalavec cecbc:TaxableAmount, uncbc:TaxAmountde0.00, et unecac:TaxCategoryaveccbc:IDégal àZ,cbc:Percentégal à0et le schéma fiscalVAT. - Si le générateur a émis plusieurs ventilations au taux zéro, fusionnez-les en celle-ci au lieu d'en ajouter une autre.
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 ligne 2 est au taux zéro, et la ventilation de la TVA n'a qu'une entrée au taux normal
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">58.50</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:InvoiceLine>
<cbc:ID>2</cbc:ID>
<!-- quantity omitted from this fragment -->
<cbc:LineExtensionAmount currencyID="GBP">10.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Example zero-rated item</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>Z</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>Fragment de la facture corrigée : une ventilation au taux zéro pour la ligne de 10.00
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<!-- Standard rated breakdown unchanged, omitted from this fragment -->
<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>
</cac:TaxTotal>La facture corrigée contient le cac:TaxSubtotal au taux zéro (10.00 de base imposable, 0.00 de taxe, Z à 0) qui manque à la facture en échec ; rien d'autre ne diffère. Le document en échec ne signale que BR-Z-01. La ventilation manquante ne portait aucune taxe, donc le total de TVA de 11.70 est toujours égal à la somme des ventilations restantes et les règles sur les totaux restent silencieuses.
Ce que le validateur a signalé
- La facture en erreur signale BR-Z-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, évaluée à la racine du document. Un avoir dont la ventilation au taux zéro est retirée signale la même règle, seule. - Seule la catégorie
Zsous le schéma fiscalVATcompte. Les catégories d'exonération, d'autoliquidation et les autres catégories sans taxe ont leurs propres règles et ne sont pas interchangeables avec le taux zéro.
Règles liées
- BR-S-01 est l'équivalent pour le taux normal, qui accepte plus d'une ventilation
- BR-CO-17 contrôle le montant de taxe de chaque ventilation, y compris une ventilation au taux de 0
- BR-CO-18 exige au moins une ventilation de la TVA dans chaque document
- 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-20.
La définition officielle de BR-Z-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.

