Aller au contenu

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

BR-DEC-01 : Écrire le montant de la remise au niveau du document avec deux décimales au plus

Le montant d'une remise au niveau du document a plus de deux chiffres après le point décimal. Écrivez-en deux au plus : 1.00 passe, 1.000 échoue.

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

Sur cette page

La réponse courte

BR-DEC-01 échoue lorsque le cbc:Amount d'une remise au niveau du document, c'est-à-dire un cac:AllowanceCharge directement sous la racine avec un cbc:ChargeIndicator à false, a plus de deux caractères après le point décimal. Arrondissez la remise à deux décimales et écrivez-la sans aucune de plus.

La valeur enregistrée 1.000 est égale à 1.00 en tant que nombre et échoue quand même, car le contrôle lit le texte tel qu'il est écrit. UBL-DT-01 est signalé pour le même cbc:Amount, puisqu'il applique la même limite de deux décimales aux montants en général.

Ce que la règle vérifie

La règle sélectionne chaque cac:AllowanceCharge qui est un enfant direct de la racine Invoice ou CreditNote et dont le cbc:ChargeIndicator vaut false, prend le texte de son cbc:Amount et compte ce qui suit le premier point. Plus de deux caractères font échouer la règle.

Un nombre entier n'a rien à compter après un point décimal ; lors d'un essai, une remise au niveau du document de 1 a été validée sans constat.

Chaque caractère après le point compte, chiffre ou non. Lors d'un essai, 1.00 suivi d'une espace à l'intérieur de l'élément a fait échouer cette règle, bien que le schéma l'accepte comme nombre.

Les montants voisins ont leurs propres règles. Les frais au niveau du document relèvent de BR-DEC-05, le montant de base de la remise de BR-DEC-02, et les remises sur une ligne de BR-DEC-24. Lors d'un essai, des frais au niveau du document de 3.500 ont signalé BR-DEC-05 et UBL-DT-01, pas cette règle.

TermeSignificationÉlément UBL
BT-92Montant de la remise au niveau du documentcac:AllowanceCharge/cbc:Amount (where cac:AllowanceCharge/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 est stockée avec trois ou quatre décimales et sérialisée à la pleine échelle de la colonne.
  • Un seul formateur de nombres sert tout le document et est réglé sur la précision dont les prix unitaires ont besoin.
  • La remise est un pourcentage d'un total et elle est écrite avant l'arrondi. Lors d'un essai, une valeur non arrondie de 1.005 a aussi fait échouer BR-CO-11, car le total des remises de 1.00 ne lui correspondait plus.

Comment corriger le document

  1. Arrondissez le montant de la remise à deux décimales une seule fois, au moment du calcul, selon l'arrondi prévu par vos règles de facturation.
  2. Formatez la valeur avec deux décimales au plus et sans espaces autour, et écrivez-la dans cbc:Amount du cac:AllowanceCharge au niveau du document.
  3. Construisez cbc:AllowanceTotalAmount à partir des montants de remise arrondis, puis le total hors TVA à partir de celui-ci, afin que chaque montant concorde avec ce qui est écrit.
  4. Si la remise est un pourcentage d'un montant de base, écrivez aussi la base avec deux décimales ; elle a sa propre limite.

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 : la remise sur le document est écrite 1.000

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">1.000</cbc:Amount>
  <!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>

Fragment de la facture corrigée : la même remise écrite 1.00

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">1.00</cbc:Amount>
  <!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>

Seul le texte du cbc:Amount de la remise diffère : 1.000 dans la facture en échec, 1.00 dans la facture corrigée, soit la même valeur. Le total des remises et les autres totaux ont été construits sur 1.00, donc aucun d'eux n'est perturbé. Le document en échec signale deux constats EN 16931 pour ce seul élément : BR-DEC-01 situé sur le cac:AllowanceCharge, et UBL-DT-01 situé sur son cbc:Amount. UBL-DT-01 limite à deux décimales tout élément dont le nom se termine par Amount, en excluant seulement le prix net de l'article et les remises à l'intérieur de cac:Price ; une remise au niveau du document qui enfreint cette règle enfreint donc aussi celle-là. Écrire deux décimales lève les deux constats.

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 une remise au niveau du document de 1.000 a signalé la même paire de constats.
  • Le décompte est le même pour toutes les devises, y compris celles dont l'unité divisionnaire n'a pas deux chiffres, car currencyID n'y joue aucun rôle.
  • Une virgule décimale n'atteint jamais cette règle. Lors d'un essai, 1,00 a échoué à l'étape XSD, et les étapes EN 16931 et Peppol ont été ignorées.

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