Codes d'erreur Peppol

BR-DEC-23 : le montant de ligne a plus de deux décimales

Le code d’erreur BR-DEC-23 signifie : le montant net d’une ligne de facture a plus de deux chiffres après la virgule.

Jeu de règles: EN 16931 · Gravité: erreur (fatal) : un point d’accès rejette la facture · Vérifié avec les règles officielles de mai 2026

Que signifie BR-DEC-23 ?

Le validateur affiche ce message (en anglais, comme dans les règles officielles) :

[BR-DEC-23]-The allowed maximum number of decimals for the Invoice line net amount (BT-131) is 2.

Le montant net d’une ligne de facture (BT-131, InvoiceLine/LineExtensionAmount) peut avoir au maximum deux décimales. Même 300.000 est incorrect, bien que la valeur soit égale à 300.00. Dans notre test, cela a aussi provoqué UBL-DT-01, la règle générale selon laquelle les montants ont au maximum deux décimales. Un prix unitaire (PriceAmount) peut en revanche avoir plus de décimales : 100.0000 n’a donné aucune erreur dans notre test.

Causes fréquentes

  • Le logiciel calcule avec quatre décimales et exporte le montant de ligne sans arrondi.
  • Un format fixe dans l’export écrit toujours trois ou quatre décimales.
  • Un montant de ligne a été calculé comme quantité fois un prix à nombreuses décimales, sans arrondi.

Comment corriger en tant qu’émetteur

  1. Arrondissez chaque montant de ligne à deux décimales avant de le placer dans le XML.
  2. Les prix peuvent garder plus de décimales, les montants non.
  3. Vérifiez ensuite PEPPOL-EN16931-R120 : le montant de ligne arrondi doit encore correspondre à la quantité fois le prix.

Vous avez reçu une facture avec cette erreur ?

Une facture avec cette erreur n’est pas conforme. Demandez une facture corrigée au fournisseur et ne modifiez pas le XML vous-même.

Exemple dans le XML

❌ Incorrect

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="HUR">3</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">300.000</cbc:LineExtensionAmount>
  ...
</cac:InvoiceLine>

✅ Correct

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="HUR">3</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">300.00</cbc:LineExtensionAmount>
  ...
</cac:InvoiceLine>

Les deux extraits proviennent d’une facture de test complète vérifiée avec notre validateur : la version incorrecte donne exactement ce message, la version correcte aucune erreur.

Bon à savoir

Des règles similaires existent pour d’autres montants, de BR-DEC-01 à BR-DEC-28, chacune avec un maximum de deux décimales.

Vérifiez votre facture

Déposez votre XML dans le validateur gratuit. Vous voyez tout de suite si cette erreur se produit encore, avec un lien vers l’explication pour chaque message.

Règle officielle

La règle complète avec son test technique (Schematron) figure dans la documentation officielle Peppol :

Codes d’erreur liés

  • BR-CL-23: L’unité d’une quantité n’est pas un code valide de la liste officielle.
  • PEPPOL-EN16931-R120: Le montant net d’une ligne de facture n’est pas égal à quantité × prix unitaire, plus les suppléments et moins les remises de cette ligne.

Questions fréquentes sur BR-DEC-23

Un prix unitaire peut-il avoir plus de deux décimales ?

Oui. Dans notre test, un prix de 100.0000 n’a donné aucune erreur. La limite vaut pour les montants, comme les montants de ligne et les totaux.

Qu’est-ce que UBL-DT-01 ?

Une règle générale d’UBL : les montants ont au maximum deux décimales. Elle apparaît souvent avec une règle BR-DEC.

← Tous les codes d’erreur Peppol