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-646— official 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
- 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.