BR-65The Item classification identifier (BT-158) shall have a Scheme identifier.

Official rule text

Where the item classification identifier (BT-158) is sent, it must carry a scheme identifier. The attribute says which register the identifier comes from — without it the value is only a string.

Severity
Error
Applies to
CII, UBL
Rule set
v2026-08-31
Checked on

Written and checked against the official KoSIT rule set by Dmytro Yalanskyi, NormAPI.

Why does BR-65 happen?

Commodity groups are assigned in house and copied across unchanged. Without naming the classification scheme the number means nothing to the recipient.

What the validator checks

The expression the official KoSIT rule set evaluates — not paraphrased, but read from the Schematron file it ships. UBL and CII address different document trees, so the same rule reads differently in each.

UBL
exists(@listID)
CII
normalize-space(ram:ClassCode/@listID) != '' or not (ram:ClassCode)

Source: rule set v2026-08-31

How do you fix BR-65?

Set the listID attribute on cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode in UBL. CII shares neither the element name nor the path: there listID goes on ram:ClassCode inside ram:DesignatedProductClassification. TST stands in for a real scheme in the example; eCl@ss and UNSPSC are the usual ones.

In the XML

A UBL fragment. The CII path is named above — same change, different element names.

Fails
<cac:Item>
  <cbc:Name>Beratungsleistung</cbc:Name>
  <cac:CommodityClassification>
    <cbc:ItemClassificationCode>12345678</cbc:ItemClassificationCode>
  </cac:CommodityClassification>
</cac:Item>
Fixed
<cac:Item>
  <cbc:Name>Beratungsleistung</cbc:Name>
  <cac:CommodityClassification>
    <cbc:ItemClassificationCode listID="TST">12345678</cbc:ItemClassificationCode>
  </cac:CommodityClassification>
</cac:Item>

Related rules

NormAPI provides technical validation, not tax or legal advice.