Validation rules

BR-DE-28 — XRechnung rule

The seller contact email (BT-43) does not look like an email address — exactly one @, at least two characters on each side, no leading/trailing dot.

Rule
BR-DE-28 — official EN 16931 / XRechnung rule
Severity
warning
Business term
BT-43 — Seller contact email
Field in your JSON
invoice.seller.contact.email
Detected by
tier 3 — KoSIT validator (authoritative)
Reachability
Only reachable when validating your own XML — normbill-generated documents cannot trigger it

The request schema already validates emails strictly (z.email), so generated documents cannot carry an implausible BT-43.

How to fix it

Correct invoice.seller.contact.email.

BR-DE-28 auf Deutsch — was bedeutet der Fehler?

Die E-Mail-Adresse der Ansprechperson (BT-43) sieht nicht wie eine E-Mail-Adresse aus — genau ein @, mindestens zwei Zeichen auf jeder Seite, kein Punkt am Anfang oder Ende. Der Validator meldet eine Warnung.

So beheben Sie den Fehler

Korrigieren Sie invoice.seller.contact.email.

Related rules

  • BR-DE-7 — Seller contact email (BT-43) is missing.
  • BR-DE-27 — The seller contact phone number (BT-42) should contain at least three digits.
  • BR-DE-26 — A corrected invoice (type_code 384) should reference the invoice it corrects (BT-25).
  • BR-DE-30 — Direct-debit information (BG-19) is present but the creditor identifier (BT-90) is missing.
  • BR-DE-31 — Direct-debit information (BG-19) is present but the debited account identifier (BT-91) is missing.
  • BR-DE-22 — Two embedded attachments share the same filename — every attached document's filename must be unique within…

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.