Peppol BIS 3.0.21 (May 2026) · UBL · Severity: ERROR

Invoice line net amount does not match quantity and net price

Each invoice line net amount (BT-131) must equal invoiced quantity multiplied by net unit price (divided by base quantity), plus line charges, minus line allowances.

Rule ID & Severity
PEPPOL-EN16931-R120 · ERROR
Standard & Scope
Peppol BIS 3.0.21 (May 2026) · UBL
XPath Condition
u:slack($lineExtensionAmount, ($quantity * ($priceAmount div $baseQuantity)) + $charges - $allowances, 0.02)
Target XML Path
cac:InvoiceLine/cbc:LineExtensionAmount

Find the source field

cac:InvoiceLine/cbc:LineExtensionAmount

Match namespace URI and element name, not a particular prefix spelling. The validator reports the full expanded-name source path when the published rule supplies a location.

Common causes

Invalid and corrected fragments

<cbc:InvoicedQuantity unitCode="HUR">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">140.00</cbc:LineExtensionAmount>
<cbc:InvoicedQuantity unitCode="HUR">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">150.00</cbc:LineExtensionAmount>

Ensure PriceAmount is the net unit price and that any line-level discounts or charges are explicitly represented in cac:AllowanceCharge.

Open PEPPOL-EN16931-R120 in peppol-validator →

Verify the whole document

These are fragments, not complete invoices. The exact rule is exercised by synthetic mutation tests against the stated package. Correcting one field does not prove conformance; run the full selected validator again. Published messages and severity remain authoritative.

Official PEPPOL-EN16931-R120 source ↗

Explanation record: 2026-10-14 · Local WebAssembly / SaxonJS validation. No invoice-derived report is published as a search page.

Peppol BIS / Validate
No invoice uploads or storage
No invoice uploads or storage

Validate

Choose files · Peppol BIS

XML · PDF
5 MB XML · 20 MB PDF · 500 documents per batch

Related tools and rules