Sur cette page
La réponse courte
BR-Z-08 échoue lorsque le cbc:TaxableAmount de la ventilation au taux zéro diffère du contenu au taux zéro du document : les montants nets des lignes de catégorie Z, plus les frais au niveau racine en Z, moins les remises au niveau racine en Z. Dans l'exemple enregistré, cela donne 25.00 + 4.00 = 29.00, et la ventilation indiquait 25.00 parce que les frais de livraison avaient été oubliés.
La comparaison est exacte : un montant faux d'un penny échoue aussi sûrement qu'un montant qui oublie des frais entiers.
Ce que la règle vérifie
Pour chaque cac:TaxCategory dont le cbc:ID vaut Z sous le schéma VAT dans le cac:TaxTotal de la racine, la règle additionne le cbc:LineExtensionAmount des lignes dont la catégorie d'article est Z, ajoute le cbc:Amount des frais au niveau racine en Z, et soustrait celui des remises au niveau racine en Z.
Il n'y a de tolérance dans aucun sens. Lors d'un essai, 29.01 et 28.99 face à un montant calculé de 29.00 ont chacun échoué, tandis que 29 a passé comme le même nombre que 29.00.
Le signe d'une remise compte. Lors d'un essai, la facture avec remise sur quantité dont les 2.50 étaient ajoutés au lieu d'être soustraits, soit une base imposable de 27.50 face à 22.50, a signalé cette règle.
Le contenu au taux zéro n'est pas regroupé par taux. Une remise ou des frais de catégorie Z comptent même avec un taux faux, c'est pourquoi une remise à 20 dans la catégorie Z signale BR-Z-06 mais laisse cette règle satisfaite.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-116 | Base imposable de la catégorie de TVA | cac:TaxTotal/cac:TaxSubtotal/cbc:TaxableAmount |
| BT-118 | Code de catégorie de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
| BT-131 | Montant net de ligne de facture | cac:InvoiceLine/cbc:LineExtensionAmount (cac:CreditNoteLine/cbc:LineExtensionAmount in a credit note) |
| BT-99 | Montant des charges ou frais au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = true]/cbc:Amount |
| BT-92 | Montant de la remise au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = false]/cbc:Amount |
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 base imposable est reprise de la somme des montants nets des lignes, et des frais de livraison au taux zéro ajoutés au niveau du document ne l'atteignent jamais.
- Une remise au niveau du document est appliquée aux totaux mais pas à la ventilation au taux zéro, ou elle est ajoutée là où elle devrait être soustraite.
- Les frais au niveau du document sont affectés par défaut à la ventilation au taux normal, même quand leur propre catégorie est
Z. - La ventilation est recalculée à partir des quantités et des prix, et l'arrondi la décale d'un penny par rapport aux montants nets des lignes écrits dans le document.
Comment corriger le document
- Additionnez
cbc:LineExtensionAmountde chaque ligne dontcac:Item/cac:ClassifiedTaxCategory/cbc:IDvautZ, en gardant négatives les lignes négatives. - Ajoutez le
cbc:Amountde chaquecac:AllowanceChargeau niveau racine de catégorieZdont lecbc:ChargeIndicatorvauttrue, et soustrayez ceux àfalse. Laissez de côté les remises et frais de ligne : ils sont déjà compris dans les montants des lignes. - Écrivez le résultat, à deux décimales, comme
cbc:TaxableAmountde l'uniquecac:TaxSubtotalau taux zéro. Soncbc:TaxAmountreste0.00. - Vérifiez
cbc:TaxExclusiveAmountséparément. Il couvre toutes les catégories et est contrôlé parBR-CO-13, non par cette règle.
L'exemple enregistré comporte une ligne au taux zéro et des frais de livraison au taux zéro.
Ligne au taux zéro : 25.00 Frais au niveau du document au taux zéro : + 4.00 Remises au niveau du document au taux zéro : aucune Base imposable pour Z : 25.00 + 4.00 = 29.00 Envoyé : 25.00, soit 4.00 de moins, et tout écart échoue
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 ventilation au taux zéro compte la ligne de 25.00 mais pas les frais de livraison de 4.00
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<!-- reason code and reason omitted from this fragment -->
<cbc:Amount currencyID="GBP">4.00</cbc:Amount>
<!-- tax category Z at 0 omitted from this fragment -->
</cac:AllowanceCharge>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.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>
<!-- Zero rated line: LineExtensionAmount 25.00 -->Fragment de la facture corrigée : 25.00 + 4.00 = 29.00
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">29.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>Seul le cbc:TaxableAmount au taux zéro diffère : 25.00 dans la facture en échec, 29.00 dans la facture corrigée. Le document en échec ne signale que BR-Z-08. Ses totaux incluent les frais de livraison et concordent entre eux, et le montant de taxe de la ventilation vaut 0.00 dans les deux, si bien qu'aucune règle de totaux ne réagit à la mauvaise base imposable.
Ce que le validateur a signalé
- La facture en erreur signale BR-Z-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; un avoir additionne plutôt ses élémentscac:CreditNoteLine. La version avoir de l'exemple enregistré 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. - Contrairement à
BR-S-08, qui admet un écart inférieur à 1.00 et travaille par taux, cette règle n'a aucune tolérance et un seul montant au taux zéro.BR-Z-01garantit qu'il n'y a qu'une ventilation au taux zéro à comparer.
Règles liées
- BR-Z-09 exige que le montant de taxe de la même ventilation soit nul
- BR-S-08 est la règle de base imposable au taux normal, avec une tolérance et un montant par taux
- BR-Z-01 exige exactement une ventilation au taux zéro
- BR-CO-13 contrôle le total hors TVA, qui reçoit les mêmes lignes, remises et frais
- 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-08 (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.

