BT-158Item classification identifier
Official rule text
[BR-TMP-CVD-01] The scheme for … "Item classification identifier" (BT-158) must be chosen from the code list UNTDID 7143.
Official text (German): Das Bildungsschema für … "Item classification identifier" (BT-158) ist aus der Codeliste UNTDID 7143 zu wählen.
Why this error occurs
The value must come from a fixed code list and the value in your file is not on it. Common causes: a free-text value instead of a code ("Invoice" instead of 380), a code from an older list version, lower-case codes, or a code valid in another standard but not in this one.
How to fix it
Replace the value with a code from the list named in the rule text (UNTDID 1001 for document types, UNTDID 5305 for VAT categories, ISO 4217 for currencies, ISO 3166-1 for countries, UN/ECE Recommendation 20/21 for units, EAS for electronic addresses, ISO 6523 ICD for scheme identifiers). Codes are case-sensitive.
What the validator checks
Checked element (context):
UBL
(/ubl:Invoice[$isCVD]/cac:InvoiceLine | /cn:CreditNote[$isCVD]/cac:CreditNoteLine)/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCodeTest (XPath):
((not(contains(normalize-space(@listID), ' ')) and contains($UNTDID-7143-CVD-CODES, concat(' ', normalize-space(@listID), ' '))))CII
/rsm:CrossIndustryInvoice[$isCVD]/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCodeTest (XPath):
((not(contains(normalize-space(@listID), ' ')) and contains($UNTDID-7143-CVD-CODES, concat(' ', normalize-space(@listID), ' '))))
Check your invoice
Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.
Same check via API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRelated rules
BR-DE-CVD-03An invoice must contain at least one … INVOICE LINE in which the Scheme identifier of…BR-DE-CVD-04An … "Item classification identifier" with the Scheme identifier 'CVD' must contain a…BR-DE-CVD-06-aIf the Scheme identifier of … "Item classification identifier" is given with the value…BR-DE-CVD-06-bIf … "Item attribute name" is given with the value 'cva', exactly one … "Item…
Frequently asked questions
What does BR-TMP-CVD-01 mean?
BR-TMP-CVD-01 is a xrechnung rule: The scheme for … "Item classification identifier" (BT-158) must be chosen from the code list UNTDID 7143.
Will my invoice be rejected because of BR-TMP-CVD-01?
Yes. BR-TMP-CVD-01 is flagged "fatal"; validators (KoSIT, Peppol access points, the German ZRE/OZG-RE portals) reject the invoice until it is fixed.
Which formats does BR-TMP-CVD-01 apply to?
XRechnung in UBL or CII syntax, including ZUGFeRD / Factur-X PDFs with the XRECHNUNG profile. Invoices to German public authorities (federal, state and municipal) must pass it. Syntax: UBL and CII.
Source: XRechnung 3.0.2, schematron 2.6.0 (KoSIT, September 2026). Catalogue generated from the official schematron on 2026-10-14.