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
- Gross unit price was exported instead of net unit price.
- A line discount was applied without exporting a line AllowanceCharge element.
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.