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.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-109 | Montant total de la facture hors TVA | cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount |
| BT-106 | Somme des montants nets des lignes de facture | cac:LegalMonetaryTotal/cbc:LineExtensionAmount |
| BT-107 | Somme des remises au niveau du document | cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount |
| BT-108 | Somme des charges ou frais au niveau du document | cac: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
- 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). - Calculez total des lignes, moins total des remises, plus total des frais, en arithmétique décimale, et arrondissez à deux décimales.
- Écrivez le résultat dans
cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount. - 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é
- La facture en erreur signale BR-CO-13 et BR-CO-15. Le document corrigé passe toutes les étapes de validation sans constat.Télécharger le XML en erreurTélécharger le XML corrigé
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
Invoicequ'auxCreditNote; 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-11etBR-CO-12sont 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
currencyIDet ne convertit rien.
Règles liées
- BR-CO-10 vérifie le total des lignes dont part ce calcul
- BR-CO-11 vérifie le total des remises qui est soustrait
- BR-CO-12 vérifie le total des frais qui est ajouté
- BR-CO-15 ajoute le total de la TVA à ce montant pour vérifier le total TVA comprise
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : Understanding EN 16931 validation errors
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.

