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

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.

Spotted something?

Bug, missing feature, wrong validation result — tell us. The page you're on is attached automatically; email optional.