Aller au contenu

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

BR-CO-13 : Corriger un total hors TVA qui ne découle pas des autres totaux

Le total hors TVA doit être égal au total des lignes, moins le total des remises du document, plus le total des frais du document, à deux décimales.

EN 16931Erreur : le document n'est pas valideTotaux

Sur cette page

La réponse courte

BR-CO-13 échoue lorsque cbc:TaxExclusiveAmount n'est pas égal à cbc:LineExtensionAmount moins cbc:AllowanceTotalAmount plus cbc:ChargeTotalAmount, les quatre étant pris dans cac:LegalMonetaryTotal. Recalculez le total hors TVA à partir des trois autres et écrivez-le à deux décimales.

Ce constat arrive souvent par voie de conséquence. Si BR-CO-10, BR-CO-11 ou BR-CO-12 est signalé à côté, corrigez d'abord ce total : le total hors TVA est peut-être déjà juste pour la valeur corrigée.

Ce que la règle vérifie

La règle ne lit que les quatre totaux contenus dans cac:LegalMonetaryTotal. Elle n'examine ni les lignes ni les éléments cac:AllowanceCharge individuels ; ceux-ci sont rattachés à leurs totaux par d'autres règles.

Un total des remises ou un total des frais omis ne compte pour rien. En l'absence des deux, le total hors TVA doit simplement être égal au total des lignes.

La valeur calculée est arrondie à deux décimales et comparée exactement. Un total hors TVA de 68.51 alors que les autres totaux donnent 68.50 échoue.

TermeSignificationÉlément UBL
BT-109Montant total de la facture hors TVAcac:LegalMonetaryTotal/cbc:TaxExclusiveAmount
BT-106Somme des montants nets des lignes de facturecac:LegalMonetaryTotal/cbc:LineExtensionAmount
BT-107Somme des remises au niveau du documentcac:LegalMonetaryTotal/cbc:AllowanceTotalAmount
BT-108Somme des charges ou frais au niveau du documentcac:LegalMonetaryTotal/cbc:ChargeTotalAmount

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 total hors TVA est copié depuis le système source tandis qu'un des autres totaux est recalculé lors du mapping : les quatre valeurs proviennent alors de deux calculs différents.
  • Les remises au niveau du document sont ajoutées au lieu d'être soustraites, ou les frais soustraits au lieu d'être ajoutés.
  • Le total des remises ou des frais est absent du XML alors qu'il a servi à calculer le total hors TVA.
  • Les remises de ligne sont soustraites une seconde fois, alors qu'elles sont déjà comprises dans le total des lignes.
  • Le total hors TVA est déduit à rebours d'un montant TVA comprise et tombe à un centime du calcul direct.

Comment corriger le document

  1. Réglez d'abord les données d'entrée : le total des lignes (BR-CO-10), le total des remises (BR-CO-11) et le total des frais (BR-CO-12).
  2. Calculez total des lignes, moins total des remises, plus total des frais, en arithmétique décimale, et arrondissez à deux décimales.
  3. Écrivez le résultat dans cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount.
  4. Reportez la nouvelle valeur : le total TVA comprise est ce montant plus le total de la TVA, ce que vérifie BR-CO-15.

L'exemple enregistré comporte un total des lignes de 66.00, une remise et des frais au niveau du document.

Total hors TVA attendu : 66.00 - 1.00 + 3.50 = 68.50
Total hors TVA envoyé (BT-109) : 69.50, donc BR-CO-13 échoue
Total TVA comprise envoyé : 80.20, soit 68.50 + 11.70
Face aux 69.50 envoyés, BR-CO-15 attend 69.50 + 11.70 = 81.20, et échoue donc aussi

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 : 66.00 - 1.00 + 3.50 donne 68.50, mais le total hors TVA indique 69.50

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="GBP">69.50</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="GBP">80.20</cbc:TaxInclusiveAmount>
  <cbc:AllowanceTotalAmount currencyID="GBP">1.00</cbc:AllowanceTotalAmount>
  <cbc:ChargeTotalAmount currencyID="GBP">3.50</cbc:ChargeTotalAmount>
  <!-- prepaid, rounding and payable amounts omitted from this fragment -->
</cac:LegalMonetaryTotal>

Fragment de la facture corrigée : le total hors TVA découle des trois autres

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="GBP">68.50</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="GBP">80.20</cbc:TaxInclusiveAmount>
  <cbc:AllowanceTotalAmount currencyID="GBP">1.00</cbc:AllowanceTotalAmount>
  <cbc:ChargeTotalAmount currencyID="GBP">3.50</cbc:ChargeTotalAmount>
  <!-- prepaid, rounding and payable amounts omitted from this fragment -->
</cac:LegalMonetaryTotal>

Seul cbc:TaxExclusiveAmount diffère : 69.50 dans le document en échec, 68.50 dans le document corrigé. Le document en échec signale aussi BR-CO-15, car le total TVA comprise de 80.20 a été construit sur 68.50 et n'est pas égal aux 69.50 envoyés plus le total de la TVA de 11.70. Corriger le total hors TVA lève les deux 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 aussi bien aux documents UBL Invoice qu'aux CreditNote ; les totaux portent les mêmes noms dans les deux, et un avoir comportant la même erreur signale les deux mêmes constats.
  • Comme seuls les totaux sont lus, cette règle peut passer alors qu'un total est lui-même faux. BR-CO-10, BR-CO-11 et BR-CO-12 sont les contrôles qui rattachent chaque total aux lignes, aux remises et aux frais.
  • La règle ne compare que les nombres. Elle ne lit pas currencyID et ne convertit rien.

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-CO-13 (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.