Aller au contenu

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

BR-48 : Ajouter le taux de TVA à chaque ventilation de la TVA

Chaque ventilation de la TVA exige cbc:Percent dans sa catégorie de taxe, même lorsque le taux est 0. Seule la catégorie O, non soumise à la TVA, peut l'omettre.

EN 16931Erreur : le document n'est pas valideTVA

Sur cette page

La réponse courte

BR-48 échoue pour chaque cac:TaxSubtotal dont la catégorie de taxe TVA n'a pas de cbc:Percent, sauf si la catégorie est O. Ajoutez cbc:Percent au cac:TaxCategory de la ventilation, juste après cbc:ID, avec le taux en pourcentage : 20 pour 20%, et 0 pour le taux zéro, l'exonération et les autres catégories qui n'appliquent pas de TVA.

La catégorie O est la seule exception. Une livraison ou prestation hors du champ d'application de la TVA n'a pas de taux à indiquer : sa ventilation peut donc omettre l'élément.

Ce que la règle vérifie

La règle s'exécute sur chaque cac:TaxSubtotal d'un cac:TaxTotal et lit le cac:TaxCategory dont le schéma fiscal est VAT. Elle est satisfaite lorsque cette catégorie a un élément cbc:Percent, ou lorsque son cbc:ID est O.

Zéro est un taux comme un autre. Une ventilation exonérée sans cbc:Percent a été signalée par cette seule règle lors d'un essai ; la correction consiste alors à écrire 0, pas à omettre l'élément.

L'exception permet seulement que le taux soit absent. Une ventilation de catégorie O portant un cbc:Percent de 0 a elle aussi été acceptée lors d'un essai.

Un cbc:Percent vide n'est pas un nombre. Lors d'un essai, il a échoué à l'étape XSD, si bien que cette règle et les autres règles métier n'ont jamais été évaluées.

Les taux des lignes ne sont pas lus. Lorsque le taux a été retiré d'une ligne au taux normal à la place, les constats ont été BR-S-05 et BR-S-08 lors d'un essai, et non cette règle.

TermeSignificationÉlément UBL
BT-119Taux de la catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent
BT-118Code de catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/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 taux nuls sont traités comme une absence de taux et supprimés, si bien que les ventilations au taux zéro et exonérées perdent cbc:Percent.
  • Le récapitulatif de TVA n'est regroupé que par catégorie, et le taux n'est pas reporté dans la ventilation.
  • L'exception pour O est appliquée à toutes les catégories qui n'appliquent pas de TVA, ce qui retire aussi le taux des ventilations exonérées ou en autoliquidation.
  • Le taux est conservé sous forme de texte, comme Standard, et l'export l'abandonne lorsqu'il ne peut pas l'écrire sous forme de nombre.

Comment corriger le document

  1. Pour chaque ventilation, prenez le taux des lignes, remises et frais qu'elle couvre. Une ventilation regroupe les éléments par catégorie et par taux : il y en a donc exactement un.
  2. Écrivez-le dans cbc:Percent à l'intérieur du cac:TaxCategory de la ventilation, après cbc:ID et avant un éventuel motif d'exonération, sous forme de pourcentage : 20, et non 0.2 ou 20%.
  3. Pour Z, E, AE, K et G, écrivez 0. N'omettez l'élément que pour O.
  4. Recalculez le cbc:TaxAmount de la ventilation à partir de la base imposable et du taux, car BR-CO-17 les contrôle ensemble.

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 normal n'indique aucun taux

<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>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

Fragment de la facture corrigée : le taux de 20 suit le code de catégorie

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

La facture corrigée a <cbc:Percent>20</cbc:Percent> après le code de catégorie dans la ventilation ; rien d'autre ne diffère. Le document en échec signale aussi BR-CO-17 et BR-S-09, qui vérifient tous deux les 5.00 de taxe comme base imposable x taux / 100 et ne peuvent pas arriver à 5.00 sans taux. BR-CO-17 traite un taux manquant comme un taux nul et attend une taxe qui s'arrondit à rien ; BR-S-09 n'a aucune réponse sans taux. Rétablir le taux fait disparaître les trois constats.

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 à Invoice et à CreditNote en UBL. Lors d'un essai, un avoir dont le taux avait été retiré de la ventilation a signalé les trois mêmes règles.
  • Signalé par l'étape EN 16931 ; l'étape Peppol accepte l'exemple enregistré.
  • Une ventilation dont le schéma fiscal n'est pas VAT n'a pas de taux de TVA pour cette règle : lors d'un essai, une ventilation relevant de GST a échoué ici malgré son cbc:Percent, en même temps que BR-47 et BR-CO-17.

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-48 (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.