Validation rules

BR-O-02 — EN 16931 rule

The invoice has "not subject to VAT" (O) lines, which forbid a seller VAT identifier (BT-31), the VAT identifier of a seller tax representative (BT-63) and a buyer VAT identifier (BT-48) on the invoice.

Rule
BR-O-02 — official EN 16931 / XRechnung rule
Severity
error
Business term
BT-31 — Seller VAT identifier
Field in your JSON
invoice.seller.vat_id
Detected by
tier 3 — KoSIT validator (authoritative)
Reachability
Triggerable from your request JSON (generate & validate)

How to fix it

Remove invoice.seller.vat_id and invoice.buyer.vat_id, or correct the lines' vat_category. Without a VAT id, BR-CO-26 then needs invoice.seller.id or invoice.seller.legal_registration_id — the tax number (BT-32) does not count there.

BR-O-02 auf Deutsch — was bedeutet der Fehler?

Die Rechnung enthält Positionen der Kategorie "O" (nicht umsatzsteuerbar); dann dürfen weder eine USt-IdNr. des Verkäufers (BT-31) noch die seines Steuervertreters (BT-63) noch eine USt-IdNr. des Käufers (BT-48) angegeben sein.

So beheben Sie den Fehler

Entfernen Sie invoice.seller.vat_id und invoice.buyer.vat_id — oder korrigieren Sie die vat_category der Positionen. Ohne USt-IdNr. verlangt BR-CO-26 dann invoice.seller.id oder invoice.seller.legal_registration_id — die Steuernummer (BT-32) zählt dort nicht.

Related rules

  • BR-DE-16 — A seller VAT identifier (BT-31), tax registration number (BT-32) or seller tax representative (BG-11) is…
  • BR-S-02 — The invoice has standard-rated (S) lines, which require the seller VAT identifier (BT-31), the tax…
  • BR-CO-26 — The seller carries none of: VAT identifier (BT-31), legal registration identifier (BT-30) or seller…
  • BR-CO-09 — A VAT identifier (seller BT-31, buyer BT-48, or tax representative BT-63) does not start with an ISO 3166-1…
  • BR-AF-02 — The invoice has IGIC (L) lines, which require the seller VAT identifier (BT-31), the tax registration number…
  • BR-AF-03 — A document-level allowance uses VAT category L (IGIC), which requires the seller VAT identifier (BT-31), the…

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.