Validation rules
BR-DE-18 — XRechnung rule
A payment-terms line starting with # is not a valid Skonto segment — XRechnung requires the exact format #SKONTO#TAGE=n#PROZENT=n.nn# (optionally #BASISBETRAG=n.nn#), one per line.
- Rule
BR-DE-18— official EN 16931 / XRechnung rule- Severity
- error
- Business term
BT-20— Payment terms- Field in your JSON
invoice.payment.terms
How to fix it
Format cash-discount terms exactly like "#SKONTO#TAGE=14#PROZENT=2.00#", or describe them without a leading #.
BR-DE-18 auf Deutsch — was bedeutet der Fehler?
Eine Zeile der Zahlungsbedingungen (BT-20), die mit # beginnt, ist kein gültiges Skonto-Segment. Die XRechnung verlangt exakt das Format #SKONTO#TAGE=n#PROZENT=n.nn# (optional #BASISBETRAG=n.nn#), je Skonto eine eigene Zeile.
So beheben Sie den Fehler
Formatieren Sie Skonto-Angaben exakt wie "#SKONTO#TAGE=14#PROZENT=2.00#" — oder beschreiben Sie sie ohne führendes #.
Related rules
UBL-SR-05— Payment terms (BT-20) appear more than once — across all cac:PaymentTerms elements only a single cbc:Note is…BR-DE-17— This invoice type code is not recommended in XRechnung.BR-DE-19— The payment account identifier (BT-84) does not look like a valid IBAN — for SEPA credit transfers (means…BR-DE-16— A seller VAT identifier (BT-31), tax registration number (BT-32) or seller tax representative (BG-11) is…BR-DE-20— The debited account identifier (BT-91) does not look like a valid IBAN — for SEPA direct debits (means code…BR-DE-15— Buyer reference (BT-10) is missing. XRechnung requires it; public-sector buyers in Germany use their…
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.