Aller au contenu

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

BR-14 : Ajouter le montant total TVA comprise aux totaux monétaires

cac:LegalMonetaryTotal n'a pas de cbc:TaxInclusiveAmount. Ajoutez le total TVA comprise : le total hors TVA plus le total de la TVA, base du montant à payer.

EN 16931Erreur : le document n'est pas valideTotaux

Sur cette page

La réponse courte

BR-14 échoue lorsque cac:LegalMonetaryTotal ne contient pas de cbc:TaxInclusiveAmount. Ajoutez-le après cbc:TaxExclusiveAmount, avec le total hors TVA plus le total de la TVA tiré de cac:TaxTotal/cbc:TaxAmount, arrondi à deux décimales : 25.00 + 5.00 = 30.00 dans l'exemple enregistré.

Deux contrôles arithmétiques perdent leur donnée d'entrée tant qu'il manque. BR-CO-15 ne peut pas confirmer la somme de TVA et BR-CO-16 ne peut pas confirmer le montant à payer, si bien que les deux sont signalés à côté de BR-14, et les trois sont levés ensemble.

Ce que la règle vérifie

La règle s'exécute sur cac:LegalMonetaryTotal et demande seulement si un enfant cbc:TaxInclusiveAmount est présent. Le montant lui-même relève de BR-CO-15 : lors d'un essai, un total TVA comprise de 25.00 au lieu de 30.00 a passé BR-14 et signalé BR-CO-15 et BR-CO-16.

Aucune forme vide de l'élément ne passe. Lors d'un essai, un cbc:TaxInclusiveAmount auto-fermant, portant seulement son currencyID, a été rejeté à l'étape XSD, et les étapes EN 16931 et Peppol ont été ignorées.

Le contrôle n'est soumis à aucune condition : chaque document a donc besoin de l'élément, y compris un document sans TVA due, où il répète simplement le total hors TVA.

TermeSignificationÉlément UBL
BT-112Montant total de la facture TVA comprisecac:LegalMonetaryTotal/cbc:TaxInclusiveAmount
BT-109Montant total de la facture hors TVAcac:LegalMonetaryTotal/cbc:TaxExclusiveAmount
BT-110Montant total de la TVA de la facturecac:TaxTotal/cbc:TaxAmount
BT-115Montant à payercac:LegalMonetaryTotal/cbc:PayableAmount

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 :

  • L'export n'écrit que les montants que la source stocke, comme le total net et le montant à payer, et ne dérive rien entre les deux.
  • Le mapping juge le total TVA comprise superflu lorsque rien n'a été payé d'avance, puisqu'il est alors égal au montant à payer, et l'omet.
  • Le total TTC est mappé directement sur cbc:PayableAmount, et l'élément qui devrait aussi le contenir n'est jamais écrit.
  • L'étape de calcul de la TVA renvoie null pour le montant TTC et le sérialiseur ignore l'élément.

Comment corriger le document

  1. Fixez d'abord le total de la TVA : cac:TaxTotal/cbc:TaxAmount dans la devise du document, que BR-CO-14 vérifie par rapport à la ventilation de la TVA.
  2. Ajoutez-le à cbc:TaxExclusiveAmount en arithmétique décimale et arrondissez le résultat à deux décimales.
  3. Écrivez le résultat comme cbc:TaxInclusiveAmount, avec la devise du document dans currencyID, après cbc:TaxExclusiveAmount et avant cbc:AllowanceTotalAmount.
  4. Vérifiez le montant à payer par rapport à lui : total TVA comprise moins cbc:PrepaidAmount plus cbc:PayableRoundingAmount, ce que BR-CO-16 recalcule.

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 : les totaux passent du total hors TVA au total des remises

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
  <!-- VAT breakdown omitted from this fragment -->
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="GBP">25.00</cbc:TaxExclusiveAmount>
  <cbc:AllowanceTotalAmount currencyID="GBP">0.00</cbc:AllowanceTotalAmount>
  <!-- charge total, prepaid and rounding amounts omitted from this fragment -->
  <cbc:PayableAmount currencyID="GBP">30.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>

Fragment de la facture corrigée : le total TVA comprise de 30.00 suit le total hors TVA

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="GBP">25.00</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="GBP">30.00</cbc:TaxInclusiveAmount>
  <cbc:AllowanceTotalAmount currencyID="GBP">0.00</cbc:AllowanceTotalAmount>
  <!-- charge total, prepaid and rounding amounts omitted from this fragment -->
  <cbc:PayableAmount currencyID="GBP">30.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>

La facture corrigée a un cbc:TaxInclusiveAmount de 30.00 entre le total hors TVA et le total des remises ; la facture en échec ne l'a pas et est identique par ailleurs. À côté de BR-14, le document en échec signale BR-CO-15 à la racine du document, qui ne peut pas montrer que 25.00 plus la TVA de 5.00 donne le total TVA comprise, et BR-CO-16 aux totaux monétaires, qui ne peut pas montrer que le montant à payer de 30.00 en découle. Ce seul élément lève 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 de la même façon aux documents Invoice et CreditNote. Lors d'un essai, un avoir sans l'élément a signalé les trois mêmes règles, tout comme la facture complète, dont le montant à payer de 70.00 dépend aussi d'un montant payé d'avance et d'un montant d'arrondi.
  • Le schéma UBL permet d'omettre l'élément : un document qui ne l'a pas passe donc l'étape XSD, et seules les règles EN 16931 remarquent le manque.
  • À l'étape Peppol, rien ne réagit au manque ; elle a validé la facture en échec enregistrée.
  • La limite de deux décimales pour ce montant est une règle distincte, BR-DEC-14.

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-28.1 : source vérifiée le 2026-09-28, explication mise à jour le 2026-09-28.

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