Aller au contenu

Ironfang Finance - Référence des règles

BR-Z-08 : Rendre la base imposable au taux zéro égale aux lignes, frais et remises au taux zéro

La base imposable de la ventilation au taux zéro doit être exactement les montants nets des lignes au taux zéro plus les frais moins les remises au niveau du document au taux zéro.

EN 16931Erreur : le document n'est pas valideTVATotaux

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.

TermeSignificationÉlément UBL
BT-116Base imposable de la catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cbc:TaxableAmount
BT-118Code de catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID
BT-131Montant net de ligne de facturecac:InvoiceLine/cbc:LineExtensionAmount (cac:CreditNoteLine/cbc:LineExtensionAmount in a credit note)
BT-99Montant des charges ou frais au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = true]/cbc:Amount
BT-92Montant de la remise au niveau du documentcac: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

  1. Additionnez cbc:LineExtensionAmount de chaque ligne dont cac:Item/cac:ClassifiedTaxCategory/cbc:ID vaut Z, en gardant négatives les lignes négatives.
  2. Ajoutez le cbc:Amount de chaque cac:AllowanceCharge au niveau racine de catégorie Z dont le cbc:ChargeIndicator vaut true, et soustrayez ceux à false. Laissez de côté les remises et frais de ligne : ils sont déjà compris dans les montants des lignes.
  3. Écrivez le résultat, à deux décimales, comme cbc:TaxableAmount de l'unique cac:TaxSubtotal au taux zéro. Son cbc:TaxAmount reste 0.00.
  4. Vérifiez cbc:TaxExclusiveAmount séparément. Il couvre toutes les catégories et est contrôlé par BR-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é

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 Invoice et CreditNote ; un avoir additionne plutôt ses éléments cac: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:TaxCategory de 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-01 garantit qu'il n'y a qu'une ventilation au taux zéro à comparer.

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.