Sur cette page
La réponse courte
BR-DEC-09 échoue lorsque le total des lignes au niveau du document, cac:LegalMonetaryTotal/cbc:LineExtensionAmount, est écrit avec plus de deux caractères après le point décimal. Écrivez-le 66.00, pas 66.000.
Chaque ligne porte un élément du même nom, et ceux-là sont comptés par BR-DEC-23. Ce constat est situé sur cac:LegalMonetaryTotal, ce qui indique que c'est le total, et non une ligne, qu'il faut arrondir ; UBL-DT-01 signale aussi le total.
Ce que la règle vérifie
La règle lit le cbc:LineExtensionAmount enfant de cac:LegalMonetaryTotal et échoue lorsque plus de deux caractères suivent son premier point. Les montants de ligne du même nom ne sont pas examinés.
Lors d'un essai avec la facture minimale, compléter à 25.000 à la fois son unique ligne et son total des lignes a donné quatre constats : cette règle sur les totaux monétaires, BR-DEC-23 sur la ligne, et UBL-DT-01 une fois pour chaque élément.
Un total des lignes non arrondi échoue aussi à l'arithmétique. Lors d'un essai, 66.004 a en plus signalé BR-CO-10, qui arrondit la somme des lignes à 66.00 et compare exactement ; BR-CO-13 n'a rien objecté, car il arrondit 66.004 + 3.50 - 1.00 à 68.50.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-106 | Somme des montants nets des lignes de facture | cac:LegalMonetaryTotal/cbc:LineExtensionAmount |
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 des lignes est additionné à partir de montants de ligne avant leur arrondi, puis écrit à la précision de la somme.
- Le total est calculé en virgule flottante et formaté avec trois décimales fixes.
- Le même formateur écrit les prix nets des articles, qui peuvent garder plus de décimales, et les totaux du document.
Comment corriger le document
- Arrondissez d'abord chaque montant net de ligne à deux décimales, puis additionnez les montants arrondis pour obtenir le total.
- Écrivez la somme dans
cac:LegalMonetaryTotal/cbc:LineExtensionAmount, avec deux décimales au plus et sans espaces. - Déduisez le total hors TVA du même montant arrondi, afin que
BR-CO-10etBR-CO-13concordent tous deux avec ce qui est écrit.
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 : des lignes de 58.00, 10.00 et -2.00 totalisées en 66.000
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">66.000</cbc:LineExtensionAmount>
<!-- remaining totals omitted from this fragment -->
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note and quantity omitted from this fragment -->
<cbc:LineExtensionAmount currencyID="GBP">58.00</cbc:LineExtensionAmount>
<!-- rest of line 1 omitted from this fragment -->
</cac:InvoiceLine>
<!-- lines 2 and 3 omitted from this fragment -->Fragment de la facture corrigée : le même total écrit 66.00
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
<!-- remaining totals omitted from this fragment -->
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note and quantity omitted from this fragment -->
<cbc:LineExtensionAmount currencyID="GBP">58.00</cbc:LineExtensionAmount>
<!-- rest of line 1 omitted from this fragment -->
</cac:InvoiceLine>
<!-- lines 2 and 3 omitted from this fragment -->Le total des lignes dans cac:LegalMonetaryTotal vaut 66.000 dans la facture en échec et 66.00 dans la facture corrigée, tandis que les trois lignes, 58.00, 10.00 et -2.00, sont inchangées. Le total est la bonne somme, donc BR-CO-10 passe dans les deux. Le document en échec signale BR-DEC-09 sur cac:LegalMonetaryTotal et UBL-DT-01 sur le cbc:LineExtensionAmount qu'il contient. UBL-DT-01 couvre tout élément dont le nom se termine par Amount, hormis les prix des articles et les montants d'une remise au niveau du prix, et la somme des montants nets des lignes n'est pas exclue ; les deux constats apparaissent donc par paire.
Ce que le validateur a signalé
- La facture en erreur signale BR-DEC-09 et UBL-DT-01. 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 aux documents UBL
InvoiceetCreditNote. Lors d'un essai, un avoir avec un total des lignes de66.000a signalé les deux mêmes constats. - La limite est la même, deux décimales, dans toutes les devises.
- Le total des lignes est obligatoire selon
BR-12; dans un document complet, cette règle a donc toujours une valeur à compter.
Règles liées
- UBL-DT-01 signale aussi le total des lignes complété par un zéro, au titre de sa limite sur tous les montants
- BR-CO-10 vérifie que le total des lignes est la somme arrondie des montants nets des lignes
- BR-DEC-23 compte les décimales de chaque montant net de ligne
- BR-DEC-10 applique la même limite au total des remises dans le même bloc
- 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-28.1 : source vérifiée le 2026-09-28, explication mise à jour le 2026-09-28.
La définition officielle de BR-DEC-09 (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.

