Aller au contenu

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

BR-13 : Ajouter le total hors TVA aux totaux monétaires

cac:LegalMonetaryTotal n'a pas de cbc:TaxExclusiveAmount. Ajoutez le total hors TVA : le total des lignes, moins les remises, plus les frais au niveau du document.

EN 16931Erreur : le document n'est pas valideTotaux

Sur cette page

La réponse courte

BR-13 échoue lorsque cac:LegalMonetaryTotal n'a pas d'enfant cbc:TaxExclusiveAmount. Ajoutez-le juste après cbc:LineExtensionAmount, avec le total des lignes, moins cbc:AllowanceTotalAmount, plus cbc:ChargeTotalAmount, arrondi à deux décimales.

C'est le montant net sur lequel la TVA est calculée, et deux contrôles ultérieurs partent de lui. Attendez-vous à voir BR-CO-13 et BR-CO-15 à côté de cette règle tant que l'élément est absent.

Ce que la règle vérifie

La règle s'exécute sur cac:LegalMonetaryTotal et passe dès qu'un enfant cbc:TaxExclusiveAmount existe. Elle ne regarde pas le montant ; BR-CO-13 en contrôle la valeur.

Un document valide au regard du schéma ne peut pas contenir de montant vide. Lors d'un essai, un cbc:TaxExclusiveAmount auto-fermant qui ne portait que son currencyID a échoué à l'étape XSD, et cette règle n'a jamais été atteinte.

Le total est requis même lorsqu'il répète une autre valeur, par exemple lorsqu'il n'y a ni remise ni frais au niveau du document et qu'il est égal au total des lignes.

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 système source ne stocke que le total brut et la TVA, et le total net n'est jamais calculé pour l'export.
  • Le mapping omet les totaux qu'il juge redondants, comme un total net égal au total des lignes.
  • Les totaux net et brut proviennent d'un seul champ de la source, et seul l'élément brut est écrit.
  • Un calcul en amont a renvoyé une valeur nulle pour le total net, et le sérialiseur a omis l'élément.

Comment corriger le document

  1. Fixez d'abord les données d'entrée : le total des lignes, le total des remises au niveau du document et le total des frais au niveau du document. BR-CO-10, BR-CO-11 et BR-CO-12 les contrôlent.
  2. Calculez le total des lignes, moins le total des remises, plus le total des frais, en arithmétique décimale, et arrondissez à deux décimales. Laissez de côté un total des remises ou des frais qui n'est pas envoyé.
  3. Écrivez le résultat sous la forme de cbc:TaxExclusiveAmount, avec la devise du document dans currencyID, entre cbc:LineExtensionAmount et cbc:TaxInclusiveAmount.
  4. Vérifiez que le total TVA comprise est égal à ce montant plus le total de TVA, ce que BR-CO-15 contrôle ensuite.

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 monétaires passent directement du total des lignes au total TVA comprise

<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:TaxInclusiveAmount currencyID="GBP">30.00</cbc:TaxInclusiveAmount>
  <cbc:AllowanceTotalAmount currencyID="GBP">0.00</cbc:AllowanceTotalAmount>
  <cbc:ChargeTotalAmount currencyID="GBP">0.00</cbc:ChargeTotalAmount>
  <!-- prepaid, rounding and payable amounts omitted from this fragment -->
</cac:LegalMonetaryTotal>

Fragment de la facture corrigée : le total hors TVA de 25.00 se place entre les deux

<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>
  <cbc:ChargeTotalAmount currencyID="GBP">0.00</cbc:ChargeTotalAmount>
  <!-- prepaid, rounding and payable amounts omitted from this fragment -->
</cac:LegalMonetaryTotal>

La facture corrigée a un cbc:TaxExclusiveAmount de 25.00 entre le total des lignes et le total TVA comprise ; il est absent de la facture en échec, identique par ailleurs. Deux règles EN 16931 échouent à côté de BR-13. BR-CO-13, aux totaux monétaires, attend un total hors TVA égal à 25.00 - 0.00 + 0.00 et ne trouve rien à comparer. BR-CO-15, à la racine du document, a besoin du total hors TVA pour confirmer qu'en y ajoutant le total de TVA de 5.00 on obtient le total TVA comprise de 30.00. Ajouter l'é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 UBL Invoice et CreditNote. Lors d'un essai, un avoir sans ce total a signalé les trois mêmes règles, tout comme l'exemple plus riche avec remises et frais au niveau du document.
  • Le schéma UBL n'exige pas cet élément : c'est pourquoi le document en échec passe l'étape XSD et le manque n'est détecté que par les règles EN 16931.
  • Tant que le total manque, BR-CO-15 ne peut pas vous dire si le total TVA comprise est correct. Contrôlez-le à nouveau une fois l'élément rétabli.

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