Aller au contenu

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

BR-S-09 : Corriger le montant de TVA d'une ventilation au taux normal

Dans une ventilation de la TVA au taux normal, le montant de taxe doit correspondre à la base imposable multipliée par le taux. Les écarts inférieurs à 1.00 passent le contrôle mais restent faux.

EN 16931Erreur : le document n'est pas valideTVA

Sur cette page

La réponse courte

BR-S-09 échoue lorsqu'une ventilation de la TVA de catégorie S porte un cbc:TaxAmount qui ne correspond pas à son cbc:TaxableAmount multiplié par son cbc:Percent. Recalculez le montant comme base imposable x taux / 100, arrondi à deux décimales, et mettez à jour les totaux qui l'incluent.

Elle arrive normalement avec BR-CO-17, qui fait la même comparaison sur chaque ventilation quelle que soit sa catégorie ; une ventilation au taux normal avec un montant faux signale donc les deux. Une seule correction lève la paire.

Ce que la règle vérifie

La règle sélectionne les éléments cac:TaxCategory dont le cbc:ID vaut S et le cac:TaxScheme/cbc:ID vaut VAT, dans un cac:TaxSubtotal d'un cac:TaxTotal placé directement sous la racine du document. Les ventilations de toute autre catégorie sont laissées à BR-CO-17 et à leurs propres règles de catégorie.

Elle calcule base imposable x taux / 100, arrondi à deux décimales, et passe lorsque le montant de taxe s'écarte de moins de 1.00 de ce montant. Un écart d'exactement 1.00 échoue. Sur 25.00 à 20 %, 5.99 passe et 6.00 échoue ; de même 4.01 et 4.00 du côté inférieur.

La tolérance tient à la façon dont le contrôle publié est écrit ; elle ne dit rien de ce qui est acceptable sur une facture. Un montant faux de 0.90 est validé et reste faux de 0.90.

Contrairement à BR-CO-17, il n'y a pas de branche pour un taux absent. Une ventilation au taux normal sans cbc:Percent échoue à cette règle, ainsi qu'à BR-CO-17 et BR-48, qui exige le taux.

Les montants sont comparés en valeur absolue ; le signe n'est donc pas examiné.

TermeSignificationÉlément UBL
BT-118Code de catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID
BT-117Montant de la TVA de la catégoriecac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount
BT-116Base imposable de la catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cbc:TaxableAmount
BT-119Taux de la catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent

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 :

  • Le montant de taxe de la ventilation est une somme de TVA par ligne, et une ligne au taux normal a été taxée à un autre taux que celui de la ventilation dans laquelle elle a été regroupée.
  • Deux taux normaux sont utilisés, et leur taxe a été additionnée dans une seule ventilation alors que les bases imposables étaient séparées, ou l'inverse.
  • Le taux de la ventilation vient d'une table de codes de taxe et le montant de taxe d'une écriture passée sous un taux antérieur.
  • La base imposable a été réduite par une remise au niveau du document après le calcul de la TVA.
  • Le taux est écrit 0.2 au lieu de 20.

Comment corriger le document

  1. Construisez une ventilation au taux normal pour chaque taux distinct, afin que chaque ventilation ait un seul cbc:Percent.
  2. Pour chacune, calculez cbc:TaxableAmount x cbc:Percent / 100 en arithmétique décimale, arrondissez à deux décimales, et écrivez le résultat dans le cbc:TaxAmount de la ventilation.
  3. Si cela diffère de la TVA comptabilisée par votre système, résolvez l'écart à la source. La catégorie reste S ; la règle porte sur le montant, pas sur la classification.
  4. Refaites la somme des montants de taxe des ventilations dans cac:TaxTotal/cbc:TaxAmount (BR-CO-14) et recalculez cbc:TaxInclusiveAmount et cbc:PayableAmount.

L'exemple enregistré a une seule ventilation au taux normal.

Base imposable 25.00, taux 20
Taxe calculée : 25.00 x 20 / 100 = 5.00
Envoyé : 6.50, soit un écart de 1.50, hors de la tolérance de moins de 1.00
Montant de taxe corrigé : 5.00

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 ventilation au taux normal avec 6.50 de TVA sur 25.00 à 20 %

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">6.50</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>

Fragment de la facture corrigée : le montant vaut 25.00 x 20 / 100

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">5.00</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>

Dans la ventilation, seul cbc:TaxAmount diffère, 6.50 contre 5.00. Hors de ce fragment, la facture corrigée a aussi un total de TVA de 5.00 au lieu de 6.50, et un total TTC et un montant à payer de 30.00 au lieu de 31.50, car le document en échec avait reporté le mauvais montant dans ses totaux. Le document en échec signale aussi BR-CO-17, la forme indépendante de la catégorie du même contrôle. Rien d'autre ne se déclenche, puisque ces totaux étaient cohérents entre eux.

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 de la même façon aux documents UBL Invoice et CreditNote ; un avoir avec les mêmes chiffres signale les deux mêmes règles.
  • Seule la catégorie S sous le schéma fiscal VAT est concernée. Lorsque BR-CO-17 est signalé sans BR-S-09, cherchez la ventilation fautive dans une autre catégorie.
  • Cette règle prend la base imposable telle quelle. La correspondance de ce montant avec les lignes, remises et frais au taux normal est contrôlée par BR-S-08.

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