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

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.