Sur cette page
La réponse courte
BR-DEC-24 échoue lorsqu'un cac:AllowanceCharge sur une ligne, avec un cbc:ChargeIndicator à false, a un cbc:Amount avec plus de deux chiffres après le point décimal. Écrivez le montant de la remise de ligne avec deux décimales au plus, par exemple 2.00.
Une remise sur le prix n'est pas une remise de ligne. Une remise à l'intérieur de cac:Price explique comment le prix net a été obtenu et peut garder plus de décimales, comme le prix lui-même.
Ce que la règle vérifie
La règle sélectionne chaque remise directement à l'intérieur d'une cac:InvoiceLine ou d'une cac:CreditNoteLine et autorise au plus deux caractères après le point décimal dans son cbc:Amount. La valeur enregistrée 2.000 échoue sur le seul troisième caractère.
Les remises à l'intérieur de cac:Price sont hors de sa portée, et hors de celle de UBL-DT-01 aussi. Lors d'un essai, une remise sur le prix de 0.005 sur un prix brut de 20.000 a été validée sans constat.
Les frais de ligne et le montant de base de la remise ont leurs propres règles, BR-DEC-27 et BR-DEC-25. Lors d'un essai, des frais de ligne écrits 0.010 ont signalé BR-DEC-27 et UBL-DT-01, pas cette règle.
Le pourcentage dans cbc:MultiplierFactorNumeric n'est pas un montant. Lors d'un essai, l'écrire 5.000 a passé toutes les étapes.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-136 | Montant de la remise sur la ligne de facture | cac:InvoiceLine/cac:AllowanceCharge/cbc:Amount (cac:CreditNoteLine/cac:AllowanceCharge/cbc:Amount in a credit note), where cbc:ChargeIndicator is false |
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 :
- La remise de ligne est calculée comme un pourcentage de la quantité multipliée par un prix à trois décimales, et écrite sans arrondi.
- Le même formateur écrit le prix et la remise de ligne, et il est réglé sur la précision du prix.
- Une remise enregistrée sur le prix dans le système source est mappée vers une remise de ligne sans être arrondie à nouveau.
Comment corriger le document
- Déterminez si la remise appartient au prix ou à la ligne. Une remise sur le prix va dans
cac:Price/cac:AllowanceChargeet peut garder la précision du prix ; une remise de ligne réduit le montant net de ligne et prend deux décimales. - Pour une remise de ligne, arrondissez le montant à deux décimales au moment du calcul et écrivez-le dans
cbc:Amountsans aucune de plus. - Écrivez aussi avec deux décimales le montant de base d'une remise en pourcentage, et gardez le montant cohérent avec la base multipliée par le pourcentage.
- Recalculez le montant net de ligne avec la remise arrondie, afin qu'il concorde toujours avec la quantité, le prix et les frais.
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 : une remise de ligne de 5 pour cent sur 40.00 écrite 2.000
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note omitted from this fragment -->
<cbc:InvoicedQuantity unitCode="C62">3</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">58.00</cbc:LineExtensionAmount>
<!-- accounting cost and order line reference omitted from this fragment -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example discount</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>5</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">2.000</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">40.00</cbc:BaseAmount>
</cac:AllowanceCharge>
<!-- line charge, item and price omitted from this fragment -->
</cac:InvoiceLine>Fragment de la facture corrigée : la même remise écrite 2.00
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example discount</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>5</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">2.00</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">40.00</cbc:BaseAmount>
</cac:AllowanceCharge>Seul le montant de la remise de ligne est écrit différemment : 2.000 dans la facture en échec et 2.00 dans la facture corrigée. Le montant net de ligne de 58.00 tient déjà compte d'une remise de 2.00, donc aucun autre montant ne change. Le document en échec signale BR-DEC-24 sur le cac:AllowanceCharge de la ligne et UBL-DT-01 sur le cbc:Amount qu'il contient. UBL-DT-01 plafonne les décimales de tout élément de montant du document autre que les prix des articles et les remises sur un prix, et une remise de ligne n'en est pas exemptée ; les deux constats vont donc par paire. Réécrire le montant lève les deux.
Ce que le validateur a signalé
- La facture en erreur signale BR-DEC-24 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 à
cac:InvoiceLinedans uneInvoiceet àcac:CreditNoteLinedans unCreditNote. Lors d'un essai, la version avoir a signalé la même paire de constats. - Les remises au niveau du document ne sont pas concernées ici ;
BR-DEC-01leur applique la même limite. - Le numéro de ligne dans l'emplacement du constat indique quelle ligne corriger lorsque plusieurs lignes portent des remises.
Règles liées
- UBL-DT-01 signale le même montant de remise de ligne dans le cadre de sa limite sur tous les montants
- BR-DEC-01 est la même limite pour les remises au niveau du document
- PEPPOL-EN16931-R120 vérifie que le montant net de ligne tient compte de cette remise
- PEPPOL-EN16931-R046 couvre la remise à l'intérieur du prix, qui n'est pas limitée à deux décimales
- 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-24 (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.

