Skip to content

BR-TMP-CVD-01: Item classification scheme (BT-158-1) not permitted in the CVD invoice

Official message

[BR-TMP-CVD-01] Das Bildungsschema für … "Item classification identifier" (BT-158) ist aus der Codeliste UNTDID 7143 zu wählen.

XRechnung (CII) · Error · Message language: German · Version: xrechnung-3.0.2-validator-configuration-2026-08-31

[BR-TMP-CVD-01] Das Bildungsschema für … "Item classification identifier" (BT-158) ist aus der Codeliste UNTDID 7143 zu wählen.

XRechnung (UBL) · Error · Message language: German · Version: xrechnung-3.0.2-validator-configuration-2026-08-31
Severity
Error The invoice is invalid and may be rejected by the recipient.
Applies to
XRechnung (CII), XRechnung (UBL)
Affected fields
BT-158

What does this mean?

In an XRechnung invoice of the CVD variant (Clean Vehicles Directive, identifier in BT-24) the scheme of every item classification identifier (BT-158, scheme BT-158-1) must come from the UNTDID 7143 code list; the value CVD is permitted in addition. The value given is not permitted.
CII: ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode/@listID is checked. UBL: cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode/@listID is checked.

Typical causes

The name of the classification system instead of the code.
Lower case (cvd) or spaces in the code.
The listID attribute is empty.

How to fix the error

Fill listID with a code from UNTDID 7143; for the classification according to the CVD rules use the value CVD.
If no CVD invoice is intended, use the regular XRechnung identifier in BT-24.
Generate and validate the invoice again.

In E-Rechnungsfreund

In the invoice form, "Experte" view, section "Rechnungspositionen (BG-25)" (invoice lines), enter CVD or a code from UNTDID 7143 in the field "Schema (BT-158-1)" on the tab "Klassifizierungen (BT-158)" (classifications) of the line.

Example

Wrong

<ram:DesignatedProductClassification>
  <ram:ClassCode listID="cvd">M1</ram:ClassCode>
</ram:DesignatedProductClassification>

Correct

<ram:DesignatedProductClassification>
  <ram:ClassCode listID="CVD">M1</ram:ClassCode>
</ram:DesignatedProductClassification>
For developers: test expression per syntax

XRechnung (CII) (CII)

Context: /rsm:CrossIndustryInvoice[$isCVD]/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode

((not(contains(normalize-space(@listID), ' ')) and contains($UNTDID-7143-CVD-CODES, concat(' ', normalize-space(@listID), ' '))))

XRechnung (UBL) (UBL)

Context: (/ubl:Invoice[$isCVD]/cac:InvoiceLine | /cn:CreditNote[$isCVD]/cac:CreditNoteLine)/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode

((not(contains(normalize-space(@listID), ' ')) and contains($UNTDID-7143-CVD-CODES, concat(' ', normalize-space(@listID), ' '))))

Last updated:
Explanation of the validation rule, not legal or tax advice.