Validation rules
BR-CL-21 — EN 16931 rule
The scheme of an item standard identifier (BT-157 schemeID) is not part of the ISO/IEC 6523 ICD list.
- Rule
BR-CL-21— official EN 16931 / XRechnung rule- Severity
- warning
- Detected by
- tier 3 — KoSIT validator (authoritative)
- Reachability
- Only reachable when validating your own XML — normbill-generated documents cannot trigger it
invoice.lines[i].standard_item_id.scheme is free text (required with the id); ISO 6523 ICD membership is left to the KoSIT tier. Officially fatal in EN 16931, but the pinned KoSIT configuration downgrades BR-CL-21 to a warning (customLevel).
How to fix it
Use an ISO 6523 ICD value (e.g. "0160" for GS1 GTIN) as the schemeID on cac:StandardItemIdentification/cbc:ID.
BR-CL-21 auf Deutsch — was bedeutet der Fehler?
Das Schemakennzeichen der Standard-Artikelkennung (BT-157, schemeID) stammt nicht aus der ISO/IEC-6523-ICD-Liste. Über normbill ist standard_item_id.scheme Pflicht-Freitext; die Listenmitgliedschaft prüft KoSIT. Offiziell ein Fehler, in der gepinnten KoSIT-Konfiguration jedoch zur Warnung herabgestuft.
So beheben Sie den Fehler
Verwenden Sie einen ICD-Code (z. B. "0160" für GS1 GTIN) als schemeID an cac:StandardItemIdentification/cbc:ID.
Related rules
BR-CL-20— A charge reason code (BT-105 document level, BT-145 line level) is not a UNTDID 7161 code.BR-CL-22— A VAT exemption reason code (BT-121) is not part of the VATEX code list.BR-CL-19— An allowance reason code (BT-98 document level, BT-140 line level) is not part of the UNCL 5189 subset EN…BR-CL-23— A unit code (BT-130 invoiced quantity, BT-150 price base quantity) is not part of UN/ECE Recommendation…BR-CL-18— A line VAT category code (BT-151) is not one of the UNCL 5305 values EN 16931 permits (AE, L, M, E, S, Z, G,…BR-CL-24— The MIME type of an embedded attachment (BT-125 mimeCode) is not one of the types EN 16931 permits (PDF,…
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.
Or try it live: drop any XRechnung XML on the free validator — same KoSIT-backed report, no account.