Aller au contenu

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

BR-DEC-16 : Écrire le montant payé avec deux décimales au plus

cbc:PrepaidAmount a plus de deux chiffres après le point décimal. Écrivez le montant déjà payé, par exemple un acompte, avec deux décimales au plus.

EN 16931Erreur : le document n'est pas valideTotaux

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.

TermeSignificationÉlément UBL
BT-113Montant 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

  1. Arrondissez le montant déjà reçu à deux décimales, conformément à ce qui a réellement été payé.
  2. É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.
  3. Soustrayez le montant payé arrondi du total TVA comprise lorsque vous calculez le montant à payer, afin que BR-CO-16 concorde.

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é

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 Invoice et CreditNote. Lors d'un essai, un avoir avec un montant payé de 10.000 a signalé les deux mêmes constats.
  • La limite ne change pas avec currencyID.

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.