Validation rules
PEPPOL-EN16931-R120 — Peppol BIS rule
An invoice line net amount must equal quantity × (price / base quantity) plus line charges minus line allowances.
- Rule
PEPPOL-EN16931-R120— official EN 16931 / XRechnung rule- Severity
- warning
- Business term
BT-131— Line net amount- Field in your JSON
invoice.lines[*]- Detected by
- tier 3 — KoSIT validator (authoritative)
- Reachability
- Only reachable when validating your own XML — normbill-generated documents cannot trigger it
The engine computes every line net exactly this way (calc/totals.ts).
How to fix it
Recompute the line's cbc:LineExtensionAmount from its quantity, price and line allowances/charges.
PEPPOL-EN16931-R120 auf Deutsch — was bedeutet der Fehler?
Der Positionsnettobetrag muss Menge × (Preis / Basismenge) plus Positionszuschläge minus Positionsnachlässe entsprechen.
So beheben Sie den Fehler
Berechnen Sie cbc:LineExtensionAmount aus Menge, Preis und Positionsnachlässen/-zuschlägen neu.
Related rules
BR-24— An invoice line has no line net amount (BT-131).BR-DEC-23— An invoice line net amount (BT-131) uses more than 2 decimal places — EN 16931 allows at most 2.PEPPOL-EN16931-R121— An item price base quantity must be a positive number above zero.PEPPOL-EN16931-R111— An invoice line period end date must lie within the document invoicing period.PEPPOL-EN16931-R110— An invoice line period start date must lie within the document invoicing period.PEPPOL-EN16931-R130— The unit code of an item price base quantity must equal the invoiced quantity's unit code.
Official sources
- XRechnung specification (KoSIT / xeinkauf.de)
- KoSIT validator on GitHub and the XRechnung validator configuration
Every 422 from the API lists the rule id, the path in your request JSON, a plain-language message and a suggested fix — see the docs overview for the report format.
Or try it live: drop any XRechnung XML on the free validator — same KoSIT-backed report, no account.