Aller au contenu

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

BR-DEC-28 : Écrire le montant de base de frais de ligne avec deux décimales au plus

Des frais en pourcentage sur une ligne de facture ont un cbc:BaseAmount avec plus de deux chiffres après le point décimal. Écrivez la base des frais avec deux au plus.

EN 16931Erreur : le document n'est pas valideRemises et fraisLignes et prix

Sur cette page

La réponse courte

BR-DEC-28 échoue lorsqu'un cac:AllowanceCharge de ligne dont le cbc:ChargeIndicator vaut true a un cbc:BaseAmount avec plus de deux chiffres après le point décimal. Dans l'exemple enregistré, le supplément vaut 10 pour cent de 25.000 ; écrivez la base 25.00.

Le montant des frais à côté peut être parfaitement écrit, la règle échoue quand même, car elle ne lit que le montant de base. Arrondir la base ne change ici rien au résultat du pourcentage, si bien qu'aucun autre montant ne doit bouger.

Ce que la règle vérifie

La règle s'exécute sur tous les frais directement à l'intérieur d'une ligne et ne lit que leur cbc:BaseAmount. Plus de deux caractères après le point décimal échouent ; des frais sans montant de base réussissent.

Lorsque les deux montants des frais sont complétés par des zéros, chacun a sa propre règle. Lors d'un essai, écrire le supplément 2.500 sur une base de 25.000 a signalé cette règle, BR-DEC-27 et deux fois UBL-DT-01, une fois pour chaque élément.

Une base légèrement fausse peut passer le contrôle du pourcentage et échouer quand même ici. Lors d'un essai, 24.995 n'a signalé que cette règle et UBL-DT-01, puisque 10 pour cent de ce montant restent à 0.02 près du supplément de 2.50.

L'étape EN 16931 lit cbc:ChargeIndicator comme un booléen pour décider de ce qui est un frais. Lors d'un essai, un indicateur à 1 a encore fait signaler la base complétée par cette règle, tandis que l'étape Peppol rejetait le 1 avec PEPPOL-EN16931-R043 et, ne comptant plus les frais dans le montant net de ligne, signalait PEPPOL-EN16931-R120.

TermeSignificationÉlément UBL
BT-142Montant de base des charges ou frais sur la ligne de facturecac:InvoiceLine/cac:AllowanceCharge/cbc:BaseAmount (cac:CreditNoteLine/cac:AllowanceCharge/cbc:BaseAmount 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 :

  • La base est la valeur de la ligne avant le supplément, calculée à partir d'un prix unitaire à trois décimales et jamais arrondie.
  • Le code arrondit le montant des frais qu'il écrit, mais transmet au sérialiseur le montant de base comme donnée brute du calcul.
  • Un formateur commun complète chaque montant des frais jusqu'à l'échelle de sa colonne de base de données.

Comment corriger le document

  1. Arrondissez le montant de base des frais à deux décimales, puis calculez les frais à partir de la base arrondie.
  2. Écrivez la base arrondie dans cbc:BaseAmount, après cbc:Amount, dans le cac:AllowanceCharge de la ligne.
  3. Gardez cbc:MultiplierFactorNumeric à côté : un montant de base sans pourcentage est rejeté par PEPPOL-EN16931-R042.
  4. Vérifiez que le montant des frais reste à 0.02 près de la base arrondie multipliée par le pourcentage et divisée par 100, et que le montant net de ligne tombe toujours juste.

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 dont la base est écrite 25.000

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <!-- quantity and line net amount omitted from this fragment -->
  <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.000</cbc:BaseAmount>
  </cac:AllowanceCharge>
  <!-- item and price omitted from this fragment -->
</cac:InvoiceLine>

Fragment de la facture corrigée : la même base écrite 25.00

<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>

La facture corrigée écrit la base du supplément 25.00 là où la facture en échec a 25.000 ; les frais de 2.50, le pourcentage de 10 et le montant net de ligne de 27.50 sont identiques dans les deux. Le document en échec signale BR-DEC-28 sur le cac:AllowanceCharge de la ligne et UBL-DT-01 sur le cbc:BaseAmount, la limite générale de deux décimales sur les montants qui atteint le même élément. Rien dans l'étape Peppol ne s'y oppose, car la valeur de la base ne change pas.

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 à Invoice et à CreditNote. Lors d'un essai, une ligne d'avoir portant le même supplément avec une base de 25.000 a signalé la même paire.
  • La base de frais au niveau du document est contrôlée par BR-DEC-06 à la place. Lors d'un essai, la base des frais de document de la facture d'exemple complète, écrite 35.000, a signalé BR-DEC-06 et UBL-DT-01.
  • Les remises de ligne ont la règle symétrique BR-DEC-25 pour leur montant de base.
  • Un montant de base n'est attendu qu'avec un pourcentage. Lors d'un essai, la base complétée sans cbc:MultiplierFactorNumeric a aussi signalé PEPPOL-EN16931-R042.

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-28 (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.