Skip to content

Rule family BR-DE-CVD

BR-DE-CVD-04: vehicle category (BT-158) not in the allowed list

ErrorXRechnung business rule (KoSIT)

The rule's own wording

[BR-DE-CVD-04] Ein "Item classification identifier" (BT-158) mit dem Scheme identifier 'CVD' muss einen Wert aus der Liste der zulässigen Fahrzeugkategorien enthalten.

Source: KoSIT XRechnung, version 3.0.2 (Schematron 2.6.0)

The fix in the XML

Enter in cbc:ItemClassificationCode with listID CVD exactly one of the categories M1, M2, M3, N1, N2 or N3, in capitals and without any addition; in CII in ram:ClassCode with listID CVD. The category stands in field J of the registration certificate part I.

Before – invalid
<cac:CommodityClassification>
  <cbc:ItemClassificationCode listID="CVD">car</cbc:ItemClassificationCode>
</cac:CommodityClassification>
After – corrected
<cac:CommodityClassification>
  <cbc:ItemClassificationCode listID="CVD">M1</cbc:ItemClassificationCode>
</cac:CommodityClassification>

Meaning of the rule

A line of your invoice carries a classification in the scheme CVD, but the value is not one of the permitted vehicle categories. Allowed are the EU categories M1, M2 and M3 for passenger vehicles and buses and N1, N2 and N3 for commercial vehicles, as they appear in the registration certificate. Other spellings, such as car, truck, M1G or a lower-case letter, are rejected because the public body evaluates the categories by machine.

What usually goes wrong

  • The category was entered as plain text such as car or van instead of a code.
  • A subcategory such as M1G or N1 class II was copied although only the main category counts.
  • The code was written in lower case or with spaces.

Questions and answers

Which category does a minibus with nine seats have?

M1 if it has at most eight seats besides the driver's; from nine passenger seats M2 or M3, depending on the total mass. The registration certificate is decisive.

Does the rule also apply to lines without the CVD scheme?

No. A classification with another scheme is untouched; only codes with listID CVD are checked.

EN 16931 fields

  • BT-158
  • BG-25

See also

Check your invoice

The XRechnung validator reports this rule with the line number and location – right in your browser, without upload.

Open the XRechnung validator

The rule in detail
UBL · Context (XPath)
(/ubl:Invoice[$isCVD]/cac:InvoiceLine | /cn:CreditNote[$isCVD]/cac:CreditNoteLine)/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode
UBL · Schematron test
not(normalize-space(@listID) = 'CVD') or normalize-space(.) = $CVD-VEHICLE-CATEGORY
CII · Context (XPath)
/rsm:CrossIndustryInvoice[$isCVD]/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode
CII · Schematron test
not(normalize-space(@listID) = 'CVD') or normalize-space(.) = $CVD-VEHICLE-CATEGORY

Explanation written on 14 September 2026