Skip to content

Rule family BR-DE-CVD

BR-DE-CVD-06-b: cva attribute without exactly one vehicle category

ErrorXRechnung business rule (KoSIT)

The rule's own wording

[BR-DE-CVD-06-b] Wenn "Item attribute name" (BT-160) mit dem Wert 'cva' angegeben ist, muss in derselben Rechnungszeile genau ein "Item classification identifier" (BT-158) mit dem Scheme identifier 'CVD' vorhanden sein.

Source: KoSIT XRechnung, version 3.0.2 (Schematron 2.6.0)

The fix in the XML

Add to every line with the attribute cva exactly one cac:CommodityClassification/cbc:ItemClassificationCode with listID CVD and a category from M1 to N3, and remove duplicates; in CII ram:DesignatedProductClassification/ram:ClassCode with listID CVD.

Before – invalid
<cac:Item>
  <cbc:Name>Electric van</cbc:Name>
  <cac:AdditionalItemProperty>
    <cbc:Name>cva</cbc:Name>
    <cbc:Value>zero-emission</cbc:Value>
  </cac:AdditionalItemProperty>
</cac:Item>
After – corrected
<cac:Item>
  <cbc:Name>Electric van</cbc:Name>
  <cac:CommodityClassification>
    <cbc:ItemClassificationCode listID="CVD">N1</cbc:ItemClassificationCode>
  </cac:CommodityClassification>
  <cac:AdditionalItemProperty>
    <cbc:Name>cva</cbc:Name>
    <cbc:Value>zero-emission</cbc:Value>
  </cac:AdditionalItemProperty>
</cac:Item>

Meaning of the rule

An invoice line contains the clean vehicle attribute cva, but the matching vehicle category in the scheme CVD is missing or present several times. The attribute alone does not tell the public body which kind of vehicle is classified, and it needs the category to calculate its quota by vehicle category. The CVD extension therefore requires in every line with the attribute exactly one classification with listID CVD.

What usually goes wrong

  • The attribute was taken from the article master data, the classification was not.
  • The category was transmitted with a scheme other than CVD.
  • The classification appears twice in the line, once per data source.

Questions and answers

May the line carry an additional classification in another scheme?

Yes. Only that exactly one classification with listID CVD exists is checked; further schemes such as UNSPSC do not interfere.

What happens if I simply leave the attribute cva out?

Then 06-b does not apply, but the extension still requires at least one complete vehicle line in the invoice.

EN 16931 fields

  • BT-158
  • BT-160
  • BG-25
  • BG-32

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
UBL · Schematron test
not(cac:AdditionalItemProperty[cbc:Name = 'cva']) or count(cac:CommodityClassification/cbc:ItemClassificationCode[@listID = 'CVD']) = 1
CII · Context (XPath)
/rsm:CrossIndustryInvoice[$isCVD]/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct
CII · Schematron test
not(ram:ApplicableProductCharacteristic/ram:Description = 'cva') or count(ram:DesignatedProductClassification/ram:ClassCode[@listID = 'CVD']) = 1

Explanation written on 14 September 2026