Validation rules

UBL-CR-646

An invoice line contains cac:SubInvoiceLine. XRechnung prohibits sub-invoice lines — the KoSIT validator raises this from a warning to an error, so the document is rejected.

Rule
UBL-CR-646official EN 16931 / XRechnung rule
Severity
error
Detected by
tier 3 — KoSIT validator (authoritative)
Reachability
Only reachable when validating your own XML — normbill-generated documents cannot trigger it

Error via the KoSIT configuration's customLevel (CEN ships it as a warning). normbill lines are always flat, so generated XML never contains SubInvoiceLine.

How to fix it

Flatten the hierarchy: model every sub-line as its own top-level cac:InvoiceLine.

UBL-CR-646 auf Deutsch — was bedeutet der Fehler?

Der KoSIT-Validator lehnt die Rechnung ab, weil eine Rechnungsposition cac:SubInvoiceLine enthält. Die XRechnung verbietet Unterpositionen — die Validator-Konfiguration stuft diese Regel von einer Warnung zu einem Fehler hoch.

So beheben Sie den Fehler

Lösen Sie die Hierarchie auf: Modellieren Sie jede Unterposition als eigene cac:InvoiceLine auf oberster Ebene.

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.