Texte officiel de la règle
[PEPPOL-EN16931-R120] Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount
Le texte normatif est en anglais ; il est cité tel quel.
Pourquoi cette erreur apparaît
Peppol vérifie l'arithmétique de chaque ligne : le montant net de ligne (BT-131) doit être égal à la quantité facturée (BT-129) multipliée par le prix net (BT-146) et divisée par la quantité de base du prix (BT-149, 1 par défaut), plus les majorations de ligne moins les remises de ligne, avec une tolérance de 0,02. La règle lit cbc:LineExtensionAmount, cbc:InvoicedQuantity, cac:Price/cbc:PriceAmount, cac:Price/cbc:BaseQuantity et les montants des cac:AllowanceCharge de ligne (UBL), ou ram:LineTotalAmount, ram:BilledQuantity, ram:NetPriceProductTradePrice/ram:ChargeAmount, ram:BasisQuantity et ram:SpecifiedTradeAllowanceCharge (CII). Causes typiques : prix brut exporté à la place du prix net, prix pour 100 unités sans quantité de base, remises de ligne déjà déduites du prix puis soustraites à nouveau, ou écart d'arrondi supérieur à deux centimes.
Comment corriger
Formule : BT-131 = round(BT-129 x (BT-146 / BT-149) + Σ majorations de ligne - Σ remises de ligne, 2). Exportez le prix unitaire net dans cbc:PriceAmount ; si le prix s'entend pour 10 ou 100 unités, renseignez cac:Price/cbc:BaseQuantity en conséquence, avec le même unitCode que la quantité. Modélisez une remise de ligne soit dans le prix (remise au niveau du prix), soit comme cac:AllowanceCharge de ligne, mais pas les deux. Calculez cbc:LineExtensionAmount à partir des valeurs exportées afin que l'écart reste dans la limite de 0,02.
Exemple (valide)
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">250</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">31.25</cbc:LineExtensionAmount>
...
<cac:Price><cbc:PriceAmount currencyID="EUR">12.50</cbc:PriceAmount><cbc:BaseQuantity unitCode="C62">100</cbc:BaseQuantity></cac:Price>
</cac:InvoiceLine>
Ce que le validateur vérifie
Élément vérifié (contexte):
UBL
cac:InvoiceLine | cac:CreditNoteLineTest (XPath):
u:slack($lineExtensionAmount, ($quantity * ($priceAmount div $baseQuantity)) + $chargesTotal - $allowancesTotal, 0.02)CII
ram:IncludedSupplyChainTradeLineItemTest (XPath):
u:slack($lineExtensionAmount, ($quantity * ($priceAmount div $baseQuantity)) + $chargesTotal - $allowancesTotal, 0.02)
Corriger automatiquement
Cette erreur peut être corrigée automatiquement : après confirmation, le vérificateur recalcule les totaux et la TVA à partir des lignes.
La même vérification par API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRègles liées
PEPPOL-EN16931-R001Identifiant du processus métier (BT-23) absentPEPPOL-EN16931-R002Une seule note autorisée au niveau document, sauf si l'acheteur et le vendeur…PEPPOL-EN16931-R003Ni référence acheteur ni référence de bon de commandePEPPOL-EN16931-R004Identifiant de spécification autre que Peppol BIS Billing 3.0PEPPOL-EN16931-R005Devise de comptabilisation de la TVA identique à la devise de facturePEPPOL-EN16931-R006Un seul objet facturé autorisé au niveau documentPEPPOL-EN16931-R007Identifiant du processus métier au format incorrectPEPPOL-EN16931-R008Le document contient des éléments vides
Questions fréquentes
Que signifie PEPPOL-EN16931-R120 ?
PEPPOL-EN16931-R120 est une règle peppol bis billing 3.0 : Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount
Ma facture sera-t-elle rejetée à cause de PEPPOL-EN16931-R120 ?
Oui. PEPPOL-EN16931-R120 est classée « bloquante » ; les validateurs (plateformes agréées, points d'accès Peppol, KoSIT, KSeF) rejettent la facture tant qu'elle n'est pas corrigée.
À quels formats s'applique PEPPOL-EN16931-R120 ?
Factures et avoirs transmis via le réseau Peppol (UBL) et, XRechnung reprenant ces règles, toute XRechnung. Syntaxe : UBL et CII.
Source: Peppol BIS Billing 3.0.20 (November 2025). Catalogue généré à partir des jeux de règles officiels le 2026-10-15.