Aller au contenu

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

BR-45 : Ajouter la base imposable à chaque ventilation de la TVA

Chaque cac:TaxSubtotal exige un cbc:TaxableAmount : le montant net sur lequel la TVA de cette ventilation est calculée.

EN 16931Erreur : le document n'est pas valideTVATotaux

Sur cette page

La réponse courte

BR-45 échoue pour chaque cac:TaxSubtotal qui n'a pas d'enfant cbc:TaxableAmount. Ajoutez-le comme premier enfant de la ventilation, avec le total net pour cette catégorie et ce taux : les montants nets des lignes, plus les frais au niveau du document, moins les remises au niveau du document, dans la devise du document.

Attendez-vous à ce que les règles de calcul de la ventilation échouent à côté. Elles partent de la base imposable et ne peuvent pas réussir tant qu'elle manque.

Ce que la règle vérifie

La règle s'exécute sur chaque cac:TaxSubtotal d'un cac:TaxTotal et est satisfaite lorsqu'un élément cbc:TaxableAmount est présent. L'emplacement du constat est la ventilation à laquelle il manque.

UBL traite l'élément comme facultatif : une base imposable manquante passe donc l'étape XSD et est signalée d'abord ici. Un cbc:TaxableAmount vide est un cas différent : ce n'est pas un montant valide, et lors d'un essai il a échoué à l'étape XSD, si bien que ni cette règle ni les autres règles métier ne se sont exécutées.

N'importe quelle valeur satisfait cette règle, zéro compris. Lors d'un essai, une base imposable de 0.00 sur une ventilation à 20% avec 5.00 de taxe a satisfait BR-45 et a tout de même signalé BR-CO-17, BR-S-08 et BR-S-09.

La catégorie ne change rien pour cette règle. Une ventilation exonérée sans base imposable l'a signalée lors d'un essai, avec BR-E-08, le contrôle de la base imposable exonérée.

TermeSignificationÉlément UBL
BG-23Ventilation de la TVAcac:TaxTotal/cac:TaxSubtotal
BT-116Base imposable de la catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cbc:TaxableAmount

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 ventilation est construite à partir d'un récapitulatif de TVA qui ne stocke que le taux et la taxe, et le montant net par taux n'est jamais reporté.
  • La base imposable est facultative dans le mapping et est omise lorsqu'elle n'a pas de valeur, par exemple sur une ventilation créée par un ajustement manuel de TVA.
  • Une base imposable de zéro est traitée comme une absence de valeur et supprimée par le sérialiseur.

Comment corriger le document

  1. Pour chaque cac:TaxSubtotal, lisez sa catégorie et son taux dans cac:TaxCategory.
  2. Additionnez le cbc:LineExtensionAmount des lignes de cette catégorie et de ce taux, ajoutez les frais au niveau racine et soustrayez les remises au niveau racine de la même catégorie et du même taux, en arithmétique décimale.
  3. Écrivez le résultat en tant que cbc:TaxableAmount, avec la devise du document dans currencyID, comme premier enfant de la ventilation et avant cbc:TaxAmount.
  4. Vérifiez le cbc:TaxAmount de la ventilation par rapport au chiffre rétabli, car BR-CO-17 et la règle de la catégorie le comparent à base imposable x taux / 100.

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 de la TVA a un montant de taxe mais pas de base imposable

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

Fragment de la facture corrigée : la base imposable de 25.00 ouvre la ventilation

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

La facture corrigée a <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount> au début de la ventilation ; rien d'autre ne diffère. Le document en échec signale trois autres règles, toutes parce que le chiffre de base a disparu. BR-CO-17 et BR-S-09 multiplient la base imposable par le taux pour vérifier les 5.00 de taxe, et sans base imposable il n'y a pas de produit à comparer. BR-S-08 compare la base imposable au taux normal avec la ligne de 25.00 et ne trouve aucun montant du côté de la ventilation. Rétablir l'élément fait disparaître les quatre 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 sans base imposable a signalé les quatre mêmes règles.
  • Signalé par l'étape EN 16931 ; l'étape Peppol accepte l'exemple enregistré.
  • Les règles de calcul qui l'accompagnent dépendent de la catégorie de la ventilation : BR-S-08 et BR-S-09 pour le taux normal, BR-E-08 pour l'exonération, et les règles correspondantes pour les autres catégories.
  • Le total de taxe dans une devise de comptabilisation de la TVA n'a pas de ventilation : il n'a donc pas de base imposable et n'est pas contrôlé ici.

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