Sur cette page
La réponse courte
BR-DEC-27 échoue lorsque des frais sur une ligne, c'est-à-dire un cac:AllowanceCharge à l'intérieur de cac:InvoiceLine ou de cac:CreditNoteLine dont le cbc:ChargeIndicator vaut true, ont un cbc:Amount avec plus de deux chiffres après le point décimal. Arrondissez les frais à deux décimales et écrivez-les par exemple 2.50.
Des frais de ligne s'ajoutent au montant net de ligne et doivent donc être un montant payable. Contrairement à une remise, ils n'ont pas de forme au niveau du prix qui pourrait garder des décimales supplémentaires : PEPPOL-EN16931-R044 n'autorise aucuns frais à l'intérieur de cac:Price.
Ce que la règle vérifie
La règle retient les remises et frais de ligne dont l'indicateur vaut true et compte ce qui suit le point décimal dans leur cbc:Amount. Plus de deux caractères échouent, si bien que le 2.500 enregistré échoue alors que sa valeur est 2.5.
Moins de décimales sont toujours acceptées. Lors d'un essai, le même supplément écrit 2.5 a passé toutes les étapes.
Que les frais soient un pourcentage ne change rien. Lors d'un essai, un supplément fixe de 2.500 sans montant de base ni pourcentage a signalé cette règle et UBL-DT-01, exactement comme les frais en pourcentage.
Des frais non arrondis peuvent aussi fausser les calculs. Lors d'un essai, 2.525 a en plus déclenché PEPPOL-EN16931-R040 et PEPPOL-EN16931-R120, car il s'écarte de plus de 0.02 de 10 pour cent de 25.00 et du montant net de ligne qu'il devrait produire ; 2.504 est resté dans les deux tolérances et n'a signalé que les constats sur les décimales.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-141 | Montant des charges ou frais 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 true |
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 supplément est calculé comme un pourcentage de la valeur de la ligne et écrit avec la précision du calcul.
- Les frais et les prix unitaires partagent un même format numérique, réglé sur trois décimales parce que certains prix en ont besoin.
- Des frais stockés dans une colonne à trois ou quatre décimales sont sérialisés à pleine précision.
Comment corriger le document
- Arrondissez les frais de ligne à deux décimales là où ils sont calculés, selon la règle d'arrondi de votre système de facturation.
- Écrivez la valeur arrondie dans
cbc:Amountducac:AllowanceChargede la ligne dont lecbc:ChargeIndicatorvauttrue, sans zéros de remplissage et sans espace. - Utilisez les frais arrondis, et non les frais non arrondis, pour construire le montant net de ligne, et gardez-les à 0.02 au plus de la base multipliée par le pourcentage et divisée par 100 si vous transmettez les deux.
- Formatez le montant de base des frais, s'il existe, selon la même règle de deux décimales ; il est contrôlé séparément.
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 supplément de 10 pour cent sur 25.00 écrit 2.500
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">27.50</cbc:LineExtensionAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Out-of-hours surcharge</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">2.500</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">25.00</cbc:BaseAmount>
</cac:AllowanceCharge>
<!-- item and price omitted from this fragment -->
</cac:InvoiceLine>Fragment de la facture corrigée : le supplément écrit 2.50, deux unités à 12.5 formant le reste des 27.50
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">27.50</cbc:LineExtensionAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Out-of-hours surcharge</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">2.50</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">25.00</cbc:BaseAmount>
</cac:AllowanceCharge>
<!-- item omitted from this fragment -->
<cac:Price>
<cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
</cac:Price>
</cac:InvoiceLine>Seul le cbc:Amount du supplément change : 2.500 dans la facture en échec, 2.50 dans la facture corrigée. Les deux valent 10 pour cent de la base de 25.00, et deux unités à 12.5 plus le supplément donnent le montant net de ligne de 27.50 dans chacune, si bien que les calculs Peppol réussissent dans les deux cas. Le document en échec signale BR-DEC-27 sur le cac:AllowanceCharge de la ligne et UBL-DT-01 sur son cbc:Amount : tout montant autre que le prix de l'article et les remises au niveau du prix est plafonné à deux décimales, frais de ligne compris. Réécrire cette seule valeur lève les deux constats.
Ce que le validateur a signalé
- La facture en erreur signale BR-DEC-27 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 à
Invoiceet àCreditNote. Lors d'un essai, une ligne d'avoir portant le même supplément écrit2.500a signalé la même paire. - Les frais au niveau du document sont hors du champ de cette règle ;
BR-DEC-05les limite de la même façon. - C'est l'étape EN 16931 qui la signale. L'étape Peppol contrôle les valeurs plutôt que leur forme écrite, et ne s'y ajoute donc que lorsque les frais sont aussi faux sur le plan du calcul, comme le montre le cas
2.525ci-dessus.
Règles liées
- BR-DEC-28 limite le montant de base des mêmes frais de ligne
- UBL-DT-01 est signalé sur le montant des frais en même temps que cette règle
- PEPPOL-EN16931-R120 vérifie que le montant net de ligne inclut les frais de ligne
- BR-DEC-05 est la même limite pour les frais au niveau du document
- 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-27 (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.

