Validation rules
BR-42 — EN 16931 rule
A line-level allowance must state why it is granted (BT-139/BT-140).
- Rule
BR-42— official EN 16931 / XRechnung rule- Severity
- error
- Business term
BT-139— Line allowance reason- Field in your JSON
invoice.lines[*].allowances
How to fix it
Set the allowance's reason (e.g. "Mengenrabatt") or a UNCL 5189 reason_code.
BR-42 auf Deutsch — was bedeutet der Fehler?
Ein Nachlass auf Positionsebene muss begründet werden (BT-139 Freitext oder BT-140 Code).
So beheben Sie den Fehler
Setzen Sie reason (z. B. "Mengenrabatt") oder einen reason_code aus der Codeliste UNCL 5189.
Related rules
BR-CO-23— An invoice line allowance (BG-27) carries neither a reason text (BT-139) nor a reason code (BT-140) — at…BR-41— An invoice line allowance (BG-27) has no allowance amount (BT-136).BR-43— An invoice line charge (BG-28) has no charge amount (BT-141).BR-44— A line-level charge must state what it is for (BT-144/BT-145).BR-45— A VAT breakdown (BG-23) has no taxable amount (BT-116).BR-38— A document-level charge must state what it is for (BT-104/BT-105).
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.