# BR-CO-4 Each invoice line must have a VAT category code

Every invoice line (BG-25) must carry an Invoiced item VAT category code (BT-151) so that each line can be assigned to a VAT breakdown.

## Problem Description

> **ERROR**: EN 16931 calculation and consistency rule (BR-CO)

> **Where BR-CO-04 is checked**
>
> A validator checks an e-invoice in stages. First the file must be well-formed XML that matches the UBL or CII schema (XSD). Then the EN 16931 business rules run: BR core rules, BR-CO calculations, BR-CL code lists, BR-DEC decimals and VAT-category rules such as BR-S. Next come the national or network rules that BT-24 selects: BR-DE for XRechnung, PEPPOL-EN16931 for Peppol BIS Billing. The report lists every failed rule: one error means reject, warnings alone still mean accept. BR-CO-04: EN 16931 calculation rule, reported in the stage “EN 16931 rules”.

## Context and Significance

Without a category code per line, the validator cannot assign the line to a VAT breakdown (BG-23), and all category checks such as BR-S, BR-Z, BR-E and BR-AE lose their basis. In UBL the code sits in cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID, in CII in ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode. The error often occurs on lines for shipping or handling costs for which the ERP sends no VAT code.

## Solution

Add BT-151 to every invoice line, for example "S" for standard rate, "Z" for zero rate or "AE" for reverse charge. In UBL, the cac:ClassifiedTaxCategory must also contain cac:TaxScheme/cbc:ID = VAT; without it the validator does not find the code.

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

## Valid Examples

- Line 1 BT-151 = "S" with BT-152 = 19
- Line 2 BT-151 = "Z" (zero rated) with BT-152 = 0

## Invalid Examples

- Invoice line without any ClassifiedTaxCategory element
- Invoice line with empty BT-151
- UBL line with cac:ClassifiedTaxCategory/cbc:ID = "S" but without cac:TaxScheme/cbc:ID = VAT

## Affected Fields

- [BT-151 Invoiced item VAT category code](/resources/xrechnung/bt-151-invoice-line-vat-category-code)

## Related Rules

- [BR-CL-18](/resources/kosit-validator-errors/br-cl-18-uncl5305-line-tax-category)
- [BR-S-1](/resources/kosit-validator-errors/br-s-01-standard-rated-items-require-standard-rated-vat-breakdown)
- [BR-CO-17](/resources/kosit-validator-errors/br-co-17-vat-category-tax-amount-must-match-base-times-rate)

## 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.
