Aller au contenu principal

Référence

Export Markdown

PEPPOL-EN16931-R120 Le montant net de ligne de facture doit être égal à la quantité multipliée par le prix net ajusté des remises et frais de ligne

Conformément à la règle Peppol PEPPOL-EN16931-R120, le montant net de la ligne dans BT-131 (LineExtensionAmount) doit correspondre à la formule : montant net = quantité facturée × (prix net ÷ quantité de base) + total des frais de ligne − total des remises de ligne. Le Schematron Peppol accepte un écart de ±0,02 pour absorber les arrondis. Les causes fréquentes d’erreur sont la perte des remises de ligne lors de la conversion en XML, l’arrondi prématuré des prix unitaires ou l’omission de la quantité de base (BT-149).

Description du problème

AVERTISSEMENT

Règle Peppol BIS Billing 3.0 (OpenPeppol)

Chaîne de validation interactive

Cliquez sur une étape pour voir ce qu’elle contrôle, ou saisissez un identifiant de règle pour trouver l’étape qui la signale.

Essayer:

PEPPOL-EN16931-R120 règle Peppol BIS Billing

Signalée à l’étape 3 : Règles nationales (CIUS).

Niveau avertissement : à lui seul, il n’empêche pas l’acceptation.

Étape 3 · Ce qui est contrôlé

  • L’identifiant de spécification en BT-24 sélectionne le jeu de règles, par exemple XRechnung 3.0 ou Peppol BIS Billing 3.0.
  • XRechnung ajoute les règles allemandes BR-DE : référence acheteur (BT-10), contact du vendeur, instructions de paiement.
  • Peppol ajoute les règles PEPPOL-EN16931 et des règles par pays. XRechnung applique aussi certaines règles PEPPOL-EN16931.

Codes d’exemple

Correction type

Renseignez dans vos données de base les champs exigés par le jeu de règles, comme la Leitweg-ID en BT-10 ou le contact du vendeur.

Un validateur contrôle une facture électronique par étapes. D’abord, le fichier doit être un XML bien formé conforme au schéma UBL ou CII (XSD). Viennent ensuite les règles métier de l’EN 16931 : règles de base BR, calculs BR-CO, listes de codes BR-CL, décimales BR-DEC et règles par catégorie de TVA comme BR-S. Puis les règles nationales ou de réseau sélectionnées par BT-24 : BR-DE pour XRechnung, PEPPOL-EN16931 pour Peppol BIS Billing. Le rapport liste chaque règle en échec : une erreur signifie rejet, des avertissements seuls signifient toujours acceptation. PEPPOL-EN16931-R120 : règle Peppol BIS Billing, étape « Règles nationales (CIUS) ». Jeux de règles : validateur KoSIT 1.6.3 avec la configuration XRechnung du 31 août 2026 (artefacts EN 16931 1.3.16), Peppol BIS Billing 3.0.21.

Contexte et importance

La configuration KoSIT pour XRechnung 3.0.2 signale PEPPOL-EN16931-R120 comme avertissement ; les artefacts de validation Peppol BIS Billing 3.0.21 la signalent comme erreur fatale. Elle se déclenche dès que BT-131 s’écarte de plus de 0,02 du montant recalculé à partir de la quantité, du prix net, de la quantité de base et des remises et charges de ligne. Causes fréquentes : une remise de ligne perdue à la conversion, un prix unitaire arrondi trop tôt à 2 décimales ou une quantité de base (BT-149) non prise en compte.

Solution

Dans votre ERP ou votre chaîne de conversion, conservez la précision décimale des prix unitaires et intégrez toutes les remises et frais de ligne dans le calcul de BT-131 avant l’arrondi final à 2 décimales ; divisez par la quantité de base (BT-149) si elle est renseignée. En UBL 2.1, renseignez <cbc:LineExtensionAmount currencyID="EUR">190.00</cbc:LineExtensionAmount> pour une quantité 2 à 100.00 avec 10.00 de remise.

Actions rapides

Exemples valides

  • Quantité 2 x Prix unitaire 100.00 EUR moins Remise de ligne 10.00 EUR donne BT-131 = 190.00 EUR
  • Quantité 50 x Prix unitaire 1.2550 EUR (62.75 EUR) donne BT-131 = 62.75 EUR

Exemples invalides

  • Quantité 2 x Prix 100.00 EUR moins Remise 10.00 EUR = 190.00 EUR, mais BT-131 est exporté à 200.00 EUR car la remise a été oubliée dans le calcul
  • La formule donne 190.00 EUR mais BT-131 est exporté à 189.90 EUR en raison d’un mauvais arrondi

Exemples de code

XML valide
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="H87">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">190.00</cbc:LineExtensionAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">10.00</cbc:Amount>
  </cac:AllowanceCharge>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
  </cac:Price>
</cac:InvoiceLine>
XML invalide
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="H87">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">200.00</cbc:LineExtensionAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">10.00</cbc:Amount>
  </cac:AllowanceCharge>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
  </cac:Price>
</cac:InvoiceLine>

Champs concernés

Outils de validation