Sur cette page
La réponse courte
BR-DEC-16 échoue lorsque cac:LegalMonetaryTotal/cbc:PrepaidAmount a plus de deux caractères après le point décimal. Écrivez le montant payé avec deux décimales au plus, 10.00 au lieu de 10.000.
Le paiement d'avance de 10.00 dans la facture enregistrée est correct, et seule sa forme écrite échoue. UBL-DT-01 signale le même cbc:PrepaidAmount.
Ce que la règle vérifie
La règle compte les caractères après le point décimal dans le cbc:PrepaidAmount de cac:LegalMonetaryTotal et en admet deux. Un document sans montant payé n'a rien à compter ; lors d'un essai, la facture minimale a été validée une fois l'élément supprimé.
Le contrôle du montant à payer ne voit pas toujours une petite erreur dans le montant payé. Lors d'un essai, 10.004 n'a signalé que cette règle et UBL-DT-01, car BR-CO-16 arrondit 80.20 - 10.004 à 70.20 avant de comparer. Avec 10.006, la différence s'arrondit à 70.19, et BR-CO-16 a aussi été signalé.
Un paiement d'avance nul est compté comme toute autre valeur. Lors d'un essai, la facture minimale avec 0.000 comme montant payé a signalé cette règle et UBL-DT-01.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-113 | Montant payé | cac:LegalMonetaryTotal/cbc:PrepaidAmount |
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 :
- L'acompte est enregistré dans un journal des paiements avec trois ou quatre décimales et recopié tel qu'il est stocké.
- Le montant payé est calculé comme une part du total TVA comprise et écrit sans arrondi.
- Un montant payé nul par défaut est écrit par un formateur réglé sur trois décimales.
Comment corriger le document
- Arrondissez le montant déjà reçu à deux décimales, conformément à ce qui a réellement été payé.
- Écrivez-le dans
cac:LegalMonetaryTotal/cbc:PrepaidAmount, avec deux décimales au plus et sans espaces, ou supprimez l'élément si rien n'a été payé d'avance. - Soustrayez le montant payé arrondi du total TVA comprise lorsque vous calculez le montant à payer, afin que
BR-CO-16concorde.
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 : un paiement d'avance de 10.00 écrit 10.000
<cac:LegalMonetaryTotal>
<!-- line and net totals omitted from this fragment -->
<cbc:TaxInclusiveAmount currencyID="GBP">80.20</cbc:TaxInclusiveAmount>
<!-- allowance and charge totals omitted from this fragment -->
<cbc:PrepaidAmount currencyID="GBP">10.000</cbc:PrepaidAmount>
<!-- rounding amount and amount due omitted from this fragment -->
</cac:LegalMonetaryTotal>Fragment de la facture corrigée : le paiement d'avance écrit 10.00
<cac:LegalMonetaryTotal>
<!-- line and net totals omitted from this fragment -->
<cbc:TaxInclusiveAmount currencyID="GBP">80.20</cbc:TaxInclusiveAmount>
<!-- allowance and charge totals omitted from this fragment -->
<cbc:PrepaidAmount currencyID="GBP">10.00</cbc:PrepaidAmount>
<!-- rounding amount and amount due omitted from this fragment -->
</cac:LegalMonetaryTotal>Les deux factures ne diffèrent que par le montant payé : 10.000 dans la facture en échec et 10.00 dans la facture corrigée. Le montant à payer de 70.00 vaut 80.20 - 10.00 - 0.20 dans les deux, donc BR-CO-16 passe. Le document en échec signale BR-DEC-16 sur cac:LegalMonetaryTotal et UBL-DT-01 sur le cbc:PrepaidAmount. Tout élément dont le nom se termine par Amount relève de UBL-DT-01, sauf les prix des articles et les montants d'une remise au niveau du prix ; le montant payé est à cet égard un total ordinaire, c'est pourquoi son constat accompagne celui-ci.
Ce que le validateur a signalé
- La facture en erreur signale BR-DEC-16 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 montant payé de10.000a signalé les deux mêmes constats. - La limite ne change pas avec
currencyID.
Règles liées
- UBL-DT-01 signale le montant payé dans la même exécution
- BR-CO-16 soustrait le montant payé du total TVA comprise pour contrôler le montant à payer
- BR-DEC-14 applique la même limite au total TVA comprise dont le montant payé est déduit
- BR-DEC-17 applique la même limite au montant d'arrondi
- 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-16 (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.

