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

ERREUR

Règle Peppol BIS Billing 3.0 (OpenPeppol)

Contexte et importance

PEPPOL-EN16931-R120 échoue dès que la valeur BT-131 exportée 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 frais de ligne. Causes typiques : une remise de ligne perdue lors de 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