Aller au contenu

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

BR-CO-12 : Corriger un total des frais du document qui ne correspond pas à ses frais

Le total des frais dans les totaux monétaires doit être égal à la somme des montants des frais au niveau du document, arrondie à deux décimales.

EN 16931Erreur : le document n'est pas valideTotauxRemises et frais

Sur cette page

La réponse courte

BR-CO-12 échoue lorsque cac:LegalMonetaryTotal/cbc:ChargeTotalAmount ne concorde pas avec les frais au niveau du document. Additionnez le cbc:Amount des éléments cac:AllowanceCharge placés directement sous la racine du document avec un cbc:ChargeIndicator à true, arrondissez à deux décimales et envoyez ce résultat comme total des frais.

Les frais rattachés à une ligne restent en dehors de ce montant ; ils font partie du montant net de la ligne.

Ce que la règle vérifie

Seuls les enfants cac:AllowanceCharge de la racine Invoice ou CreditNote dont le cbc:ChargeIndicator vaut true sont additionnés. Les remises au niveau du document, ainsi que tout cac:AllowanceCharge situé dans une ligne ou un prix, sont laissés de côté.

Les frais additionnés sont arrondis à deux décimales et doivent être exactement égaux au total. Un total de 3.51 face à un seul montant de frais de 3.50 échoue.

Omettre cbc:ChargeTotalAmount n'est accepté que si le document n'a aucun frais au niveau du document. Des frais sans total échouent. Sans aucun frais, un total de 0.00 passe et toute autre valeur échoue.

TermeSignificationÉlément UBL
BT-108Somme des charges ou frais au niveau du documentcac:LegalMonetaryTotal/cbc:ChargeTotalAmount
BT-99Montant des charges ou frais au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = true]/cbc:Amount

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 frais de port, de manutention ou similaires sont stockés comme montant d'en-tête dans le système source, et les éléments cac:AllowanceCharge sont générés à partir d'une autre source qui ne concorde pas avec lui.
  • Des frais de ligne sont comptés dans le total des frais du document en plus de leur montant net de ligne.
  • Le cbc:ChargeIndicator est erroné sur un élément, si bien que des frais sont additionnés avec les remises, ou une remise avec les frais.
  • Les éléments de frais sont écrits, mais le total est ignoré parce que le mapping le considère comme facultatif.
  • Des frais exprimés en pourcentage sont recalculés pour le total au lieu de réutiliser le cbc:Amount arrondi qui a été écrit.

Comment corriger le document

  1. Rassemblez les éléments cac:AllowanceCharge placés directement sous la racine du document dont le cbc:ChargeIndicator vaut true.
  2. Additionnez leurs valeurs cbc:Amount, telles qu'elles sont écrites dans le XML, en arithmétique décimale et arrondissez à deux décimales.
  3. Écrivez le résultat dans cac:LegalMonetaryTotal/cbc:ChargeTotalAmount. En l'absence de frais au niveau du document, omettez l'élément ou envoyez 0.00.
  4. Reconstruisez le total hors TVA à partir du total des frais corrigé, puisque BR-CO-13 le lit.

L'exemple enregistré comporte des frais au niveau du document, égaux à 10 pour cent d'une base de 35.00.

Frais au niveau du document : 3.50
Total des frais envoyé (BT-108) : 4.50, donc BR-CO-12 échoue
Total hors TVA envoyé : 68.50, soit 66.00 - 1.00 + 3.50
Face aux 4.50 envoyés, BR-CO-13 attend 66.00 - 1.00 + 4.50 = 69.50, 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 : le total indique 4.50, les seuls frais au niveau du document sont de 3.50

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
  <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
  <cbc:Amount currencyID="GBP">3.50</cbc:Amount>
  <cbc:BaseAmount currencyID="GBP">35.00</cbc:BaseAmount>
  <!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>

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

Fragment de la facture corrigée : le total est égal au seul montant de frais

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="GBP">68.50</cbc:TaxExclusiveAmount>
  <!-- total with VAT omitted from this fragment -->
  <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:ChargeTotalAmount diffère : 4.50 dans le document en échec, 3.50 dans le document corrigé. Le document en échec signale aussi BR-CO-13, car son total hors TVA de 68.50 a été calculé avec un total des frais de 3.50 et ne correspond pas aux 4.50 envoyés. Rectifier le total des frais 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 de la même façon aux documents UBL Invoice et CreditNote ; un avoir comportant la même erreur signale les deux mêmes constats.
  • Omettre le total alors que des frais sont présents signale aussi BR-CO-13, qui traite alors le total des frais manquant comme si rien n'était ajouté.
  • Cette règle ne fait qu'additionner. Le motif, la catégorie de TVA, le montant de base et le pourcentage de chaque montant de frais sont vérifiés ailleurs.

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