Aller au contenu

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

BR-E-08 : Rendre la base d'imposition exonérée égale aux lignes, frais et remises exonérés

La base d'imposition de la ventilation exonérée doit égaler exactement les lignes exonérées, plus les frais exonérés, moins les remises exonérées au niveau du document.

EN 16931Erreur : le document n'est pas valideTVATotaux

Sur cette page

La réponse courte

BR-E-08 échoue lorsque le cbc:TaxableAmount d'une ventilation de la TVA de catégorie E n'est pas le contenu net exonéré du document : le cbc:LineExtensionAmount de chaque ligne de catégorie E, plus les frais au niveau racine de catégorie E, moins les remises au niveau racine de catégorie E. Calculez ce montant et écrivez-le comme base d'imposition.

Il n'y a aucune tolérance. L'équivalent pour le taux normal laisse passer un écart inférieur à 1.00 ; ici, un seul centime suffit à échouer.

Ce que la règle vérifie

La règle s'exécute pour chaque cac:TaxCategory avec un cbc:ID à E sous le régime VAT dans le cac:TaxTotal racine, et compare la base d'imposition de cette ventilation à une somme construite à partir de tout le document.

La somme prend les montants nets des lignes dont la catégorie d'article est E, ajoute le cbc:Amount des éléments cac:AllowanceCharge au niveau racine de catégorie E avec un cbc:ChargeIndicator à true, et soustrait ceux à false. Lors d'un essai, une remise exonérée au niveau du document de 5.00 à côté d'une ligne exonérée de 25.00 a été validée avec une base d'imposition de 20.00 et a fait échouer cette règle avec 25.00.

Les remises et frais au niveau de la ligne ne sont pas ajoutés à nouveau, car chaque montant net de ligne les contient déjà.

Les deux montants sont comparés exactement, en tant que nombres décimaux. Lors d'un essai, une base d'imposition de 25.01 face à des lignes exonérées de 25.00 a échoué. La notation n'a pas d'importance, donc 25 est égal à 25.00.

Rien n'est regroupé par taux. Si le document a plus d'une ventilation exonérée, chacune est comparée à la somme complète et chacune échoue, ce qui est le schéma que produit BR-E-01.

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 d'imposition provient d'un récapitulatif fiscal stocké qui n'a pas été actualisé après la modification ou la suppression d'une ligne exonérée.
  • Une remise ou des frais exonérés au niveau du document sont omis de la ventilation, ou appliqués avec le mauvais signe.
  • Des montants au taux zéro ou hors du champ d'application sont ajoutés au montant exonéré, parce que les trois ne portent aucune taxe.
  • Le montant est recalculé à partir de la quantité multipliée par le prix au lieu d'additionner les montants nets de ligne écrits dans le document, et l'arrondi le décale d'un centime.
  • Le contenu exonéré est réparti sur plusieurs ventilations E, chacune détenant une part du total.

Comment corriger le document

  1. Prenez chaque ligne dont cac:Item/cac:ClassifiedTaxCategory/cbc:ID vaut E et additionnez son cbc:LineExtensionAmount exactement tel qu'il est écrit, en conservant le signe des lignes négatives.
  2. Ajoutez les montants des cac:AllowanceCharge au niveau racine de catégorie E dont le cbc:ChargeIndicator vaut true, et soustrayez ceux où il vaut false.
  3. Écrivez le résultat, avec deux décimales, comme cbc:TaxableAmount de l'unique cac:TaxSubtotal exonéré. Son montant de taxe reste 0.00.
  4. Si une ligne ou une remise a changé de catégorie pendant votre analyse, reconstruisez aussi la ventilation qu'elle a quittée.

L'exemple enregistré a une ligne exonérée et ni remise ni frais au niveau du document.

Montant net de la ligne exonérée : 25.00
Frais exonérés au niveau du document : 0.00 ; remises exonérées au niveau du document : 0.00
Base d'imposition exonérée attendue : 25.00 + 0.00 - 0.00 = 25.00
Envoyé : 30.00, soit un écart de 5.00, donc la règle é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 : une base d'imposition exonérée de 30.00 pour une ligne exonérée de 25.00

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">30.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cbc:TaxExemptionReason>Exempt from VAT</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cbc:Name>Example service</cbc:Name>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>E</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <!-- tax scheme omitted from this fragment -->
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <!-- price omitted from this fragment -->
</cac:InvoiceLine>

Fragment de la facture corrigée : la base d'imposition exonérée est le montant de 25.00 de la ligne exonérée

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cbc:TaxExemptionReason>Exempt from VAT</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

Seul le cbc:TaxableAmount exonéré diffère : 30.00 dans la facture en échec, 25.00 dans la facture corrigée. Le document en échec ne signale que BR-E-08. Ses totaux monétaires sont construits à partir de la ligne et concordent entre eux, et le montant de taxe de la ventilation est 0.00 dans les deux documents, donc aucune des règles sur les totaux n'est déclenchée par la mauvaise base d'imposition.

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 ; dans un avoir, la règle additionne les éléments cac:CreditNoteLine. Lors d'un essai, un avoir exonéré avec une base d'imposition de 30.00 face à une ligne de 25.00 a signalé cette règle.
  • Signalée par l'étape EN 16931 comme un constat de gravité fatal sur le cac:TaxCategory de chaque ventilation exonérée.
  • Les ventilations au taux normal sont contrôlées par BR-S-08, qui regroupe par taux et tolère un écart inférieur à 1.00. Rien de tel ne s'applique au montant exonéré.
  • La ventilation exonérée doit aussi apparaître exactement une fois (BR-E-01), porter un motif (BR-E-10) et n'indiquer aucune taxe (BR-E-09).

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-24.

La définition officielle de BR-E-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.