Aller au contenu

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

BR-Z-01 : Ajouter exactement une ventilation de la TVA au taux zéro quand le document a un contenu au taux zéro

Un document comportant une ligne, une remise ou des frais au niveau du document au taux zéro a besoin d'exactement une ventilation de la TVA au taux zéro : ni aucune, ni deux.

EN 16931Erreur : le document n'est pas valideTVA

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.

TermeSignificationÉlément UBL
BG-23Ventilation de la TVAcac:TaxTotal/cac:TaxSubtotal
BT-118Code de catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID
BT-151Code de catégorie de TVA de l'article facturécac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID
BT-95Code de catégorie de TVA de la remise au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID
BT-102Code de catégorie de TVA des charges ou frais au niveau du documentcac: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 Z par 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

  1. Confirmez à partir des données source que les articles marqués Z sont 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.
  2. 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.
  3. Émettez un cac:TaxSubtotal avec ce cbc:TaxableAmount, un cbc:TaxAmount de 0.00, et une cac:TaxCategory avec cbc:ID égal à Z, cbc:Percent égal à 0 et le schéma fiscal VAT.
  4. 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é

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, é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 Z sous le schéma fiscal VAT compte. 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.

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.