Sur cette page
La réponse courte
BR-DEC-12 échoue lorsque cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount est écrit avec plus de deux chiffres après le point décimal. Écrivez le total hors TVA avec deux décimales au plus, par exemple 68.50 plutôt que 68.500.
Le contrôle porte sur la forme écrite, pas sur la valeur : un seul zéro de remplissage suffit à le faire échouer. UBL-DT-01 signale le même élément lors de la même exécution.
Ce que la règle vérifie
La règle s'exécute sur cac:LegalMonetaryTotal, lit le texte de son cbc:TaxExclusiveAmount et autorise au plus deux caractères après le point décimal. Moins convient ; lors d'un essai, 68.5 a été validé sans constat.
Chaque total monétaire a sa propre règle de décimales, donc un formateur qui les complète tous produit un constat par total. Cette règle ne couvre que le total hors TVA ; le montant à payer, par exemple, relève de BR-DEC-18.
L'arithmétique est contrôlée ailleurs. Lors d'un essai, une valeur non arrondie de 68.504 a aussi signalé BR-CO-13, car elle n'est pas le total des lignes moins les remises plus les frais, tandis que BR-CO-15 passait toujours, puisque cette règle arrondit sa propre somme avant de comparer.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-109 | Montant total de la facture hors TVA | cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount |
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 additionné à partir de montants de ligne conservés avec trois ou quatre décimales et n'est jamais arrondi avant d'être écrit.
- Une colonne décimale d'échelle trois ou quatre est sérialisée à pleine échelle, si bien qu'un 68.5 stocké sort sous la forme
68.500. - Le formateur choisi pour les quantités et les prix, qui peuvent porter plus de décimales, est réutilisé pour les totaux.
Comment corriger le document
- Calculez le total hors TVA à partir des totaux arrondis des lignes, des remises et des frais, et arrondissez le résultat à deux décimales.
- Formatez-le avec deux décimales au plus et sans espaces, et écrivez-le dans
cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount. - Utilisez le même formatage à deux décimales pour tous les montants du document, pas seulement celui-ci ; chaque total et chaque montant de ventilation est soumis à la même limite.
- Si l'arrondi a modifié la valeur, recalculez le total TVA comprise à partir du montant arrondi.
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 hors TVA est écrit 68.500
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="GBP">68.500</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="GBP">80.20</cbc:TaxInclusiveAmount>
<!-- remaining totals omitted from this fragment -->
</cac:LegalMonetaryTotal>Fragment de la facture corrigée : le même total écrit 68.50
<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>
<!-- remaining totals omitted from this fragment -->
</cac:LegalMonetaryTotal>Les deux documents ne diffèrent que par la façon d'écrire le total hors TVA : 68.500 contre 68.50. La valeur est la même, donc aucun total qui en dépend n'est perturbé. Le document en échec signale BR-DEC-12 sur cac:LegalMonetaryTotal et UBL-DT-01 sur le cbc:TaxExclusiveAmount lui-même. UBL-DT-01 est la limite au niveau de la syntaxe qui couvre tous les éléments de montant, hormis les prix des articles et les montants d'une remise au niveau du prix ; le total hors TVA n'en est pas exempté, donc pour cet élément les deux constats vont toujours ensemble.
Ce que le validateur a signalé
- La facture en erreur signale BR-DEC-12 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 de la même façon aux documents UBL
InvoiceetCreditNote. Lors d'un essai, un avoir avec un total hors TVA de68.500a signalé les deux mêmes constats. - La limite ne change pas avec la devise, puisque
currencyIDn'est pas lu. - Le schéma refuse une virgule décimale dans tout montant, donc une telle valeur échoue à l'étape XSD avant que cette règle puisse s'exécuter.
Règles liées
- UBL-DT-01 est signalé sur le même élément chaque fois que cette règle échoue
- BR-CO-13 contrôle la valeur du total hors TVA, alors que cette règle n'en contrôle que la forme
- BR-13 exige la présence du total hors TVA
- BR-DEC-18 applique la même limite au montant à payer
- 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-24.
La définition officielle de BR-DEC-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.

