Sur cette page
La réponse courte
BR-Z-09 échoue lorsque le cbc:TaxAmount à côté d'une cac:TaxCategory égale à Z dans la ventilation de la TVA n'est pas nul. Mettez-le à 0.00, et retirez le même montant du total de TVA, du total TVA comprise et du montant à payer ; dans l'exemple enregistré, cela retire 4.50 de chacun.
Les 4.50 représentent 20 pour cent de la base imposable au taux zéro de 22.50, la marque d'un calcul de taxe qui a appliqué le taux normal à toutes les ventilations. Si de la TVA est réellement due, les livraisons ou prestations ne sont pas au taux zéro et la catégorie doit changer à la source.
Ce que la règle vérifie
La règle s'exécute sur chaque cac:TaxCategory au taux zéro sous le schéma VAT dans le cac:TaxTotal de la racine et lit le cbc:TaxAmount de son cac:TaxSubtotal. Ce montant doit valoir zéro en tant que nombre, si bien que -0.00 a passé lors d'un essai.
Aucun arrondi n'est admis. Lors d'un essai, 0.01 dans la ventilation au taux zéro, avec les totaux relevés en conséquence, a échoué sur cette seule règle.
BR-CO-17 est plus tolérant au taux de 0 et n'échoue que lorsque le montant s'arrondit à un nombre entier autre que 0. À 0.50, il s'est ajouté à cette règle lors d'un essai, et aux 4.50 enregistrés il se déclenche aussi.
Le total de TVA est hors du champ de cette règle. Avec 4.50 dans la ventilation au taux zéro mais un total de TVA laissé à 0.00, la facture a signalé BR-CO-14 à côté de cette règle et de BR-CO-17.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-117 | Montant de la TVA de la catégorie | cac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount |
| BT-118 | Code de catégorie de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
| BT-110 | Montant total de la TVA de la facture | cac:TaxTotal/cbc:TaxAmount |
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 :
- Chaque ventilation est taxée au taux par défaut du document au lieu de son propre
cbc:Percent. - L'article était au taux normal à la prise de commande et au taux zéro à la facturation, et le montant de TVA enregistré a survécu au changement.
- La TVA de la facture est calculée une fois et répartie entre les ventilations au prorata de la base imposable.
- Les écarts d'arrondi au penny des ventilations au taux normal sont reportés sur la dernière ventilation écrite, qui se trouve être celle au taux zéro.
Comment corriger le document
- Vérifiez le code de taxe des lignes, remises et frais au taux zéro. S'ils sont au taux zéro, le montant de taxe de leur ventilation est
0.00. - Mettez
cbc:TaxAmountducac:TaxSubtotalau taux zéro à0.00. - Refaites la somme de
cac:TaxTotal/cbc:TaxAmountà partir des ventilations, puis recalculezcbc:TaxInclusiveAmountetcbc:PayableAmount: 27.00 devient 22.50 dans l'exemple enregistré. - Si de la TVA est vraiment due sur ces livraisons ou prestations, déplacez-les vers la catégorie et le taux applicables, par exemple
Sà 20, et construisez cette ventilation au lieu de taxer une ventilation au taux zéro.
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 : 4.50 de TVA dans la ventilation au taux zéro, reportés dans les totaux
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">4.50</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">22.50</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">4.50</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>
<cac:LegalMonetaryTotal>
<!-- line and tax exclusive amounts omitted from this fragment -->
<cbc:TaxInclusiveAmount currencyID="GBP">27.00</cbc:TaxInclusiveAmount>
<!-- allowance, charge, prepaid and rounding amounts omitted from this fragment -->
<cbc:PayableAmount currencyID="GBP">27.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>Fragment de la facture corrigée : aucune TVA dans la ventilation au taux zéro, et des totaux sans elle
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">22.50</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>
<cac:LegalMonetaryTotal>
<!-- line and tax exclusive amounts omitted from this fragment -->
<cbc:TaxInclusiveAmount currencyID="GBP">22.50</cbc:TaxInclusiveAmount>
<!-- allowance, charge, prepaid and rounding amounts omitted from this fragment -->
<cbc:PayableAmount currencyID="GBP">22.50</cbc:PayableAmount>
</cac:LegalMonetaryTotal>Le cbc:TaxAmount au taux zéro et le total de TVA valent 4.50 dans la facture en échec et 0.00 dans la facture corrigée, et le total TVA comprise et le montant à payer 27.00 contre 22.50 ; rien d'autre ne diffère. Le document en échec signale aussi BR-CO-17, qui n'accepte un montant de taxe au taux de 0 que s'il s'arrondit à zéro, ce que 4.50 ne fait pas. Les totaux concordent entre eux, donc BR-CO-14 et BR-CO-15 restent silencieux.
Ce que le validateur a signalé
- La facture en erreur signale BR-CO-17 et BR-Z-09. 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 tiré de l'exemple enregistré a signaléBR-CO-17etBR-Z-09lors 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 exonérées et en autoliquidation ont la même exigence de zéro, selon
BR-E-09etBR-AE-09.
Règles liées
- BR-CO-17 contrôle le montant de taxe de chaque ventilation, et se montre plus tolérant au taux de 0
- BR-Z-08 contrôle la base imposable de la même ventilation au taux zéro
- BR-CO-14 compare le total de TVA à la somme des montants de taxe des ventilations
- BR-E-09 est l'équivalent pour l'exonération, avec la même exigence de 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-28.1 : source vérifiée le 2026-09-28, explication mise à jour le 2026-09-28.
La définition officielle de BR-Z-09 (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.

