# BR-65 Item classification identifier must have a scheme identifier

The Item classification identifier (BT-158) shall have a Scheme identifier that names the classification scheme used.

## Problem Description

> **ERROR**: EN 16931 core business rule (CEN)

## Context and Significance

This is an EN 16931 core rule. A classification code, such as a CPV code in public procurement or a UNSPSC code, only makes sense together with the list it comes from. The error usually appears when an export copies the code but leaves out the listID attribute. The listID value itself must belong to UNTDID 7143 (BR-CL-13), so a plain scheme name such as "CPV" also fails. Product identifiers such as a GTIN belong in BT-157 and are covered by BR-64.

## Solution

Set the listID attribute on cac:CommodityClassification/cbc:ItemClassificationCode (CII: ram:DesignatedProductClassification/ram:ClassCode/@listID) to a UNTDID 7143 code, for example TST for UNSPSC, STI for CPV (Common Procurement Vocabulary) or HS for the Harmonised System.

- [Validate XML](/en/xrechnung-validator?source=resource&rule=BR-65)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&rule=BR-65)

## Valid Examples

- BT-158 = 30192000 with listID="STI" (CPV: office supplies)
- BT-158 = 43211503 with listID="TST" (UNSPSC)

## Invalid Examples

- BT-158 classification code present but with no listID attribute

## Code Examples

### Valid XML
```
<cac:Item>
  <cac:CommodityClassification>
    <cbc:ItemClassificationCode listID="STI">30192000</cbc:ItemClassificationCode>
  </cac:CommodityClassification>
</cac:Item>
```

### Invalid XML
```
<cac:Item>
  <cac:CommodityClassification>
    <cbc:ItemClassificationCode>30192000</cbc:ItemClassificationCode>
  </cac:CommodityClassification>
</cac:Item>
```

## Affected Fields

- [BT-158 Item classification identifier](/resources/xrechnung/bt-158-item-classification-identifier)

## Related Rules

- [BR-64](/resources/kosit-validator-errors/br-64-item-standard-identifier-scheme-required)

## Validation Tools

- [Official KoSIT Validator](https://github.com/itplr-kosit/validator): Run the official KoSIT validator with the XRechnung configuration to check EN 16931 and XRechnung rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Find validation errors during conversion and review each correction.

## Related Resources

- [Official Specification](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [All validation errors](/resources/kosit-validator-errors): Overview of the EN 16931, XRechnung and Peppol validation rules explained here.
