Skip to main content

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)

Interactive pipeline

Click a stage to see what it checks, or type a rule ID to light up the stage that reports it.

Try:

BR-CO-04 EN 16931 calculation rule

Reported in stage 2: EN 16931 rules.

Level error: the report recommends rejecting the invoice.

Stage 2 · What it checks

  • The core business terms are present (BR-01 to BR-65).
  • Totals add up and related fields agree (BR-CO); codes and decimals are valid (BR-CL, BR-DEC).
  • Each VAT category is consistent: S, Z, E, AE, K, G, O, L, M (BR-S, BR-Z, BR-AE, BR-IC …).

Example codes

Typical fix

Recalculate totals and VAT from the line data, and correct the VAT category in the source data.

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”. Rule sets: KoSIT validator 1.6.3 with the XRechnung configuration of 31 Aug 2026 (EN 16931 artefacts 1.3.16), Peppol BIS Billing 3.0.21.

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.

Quick actions

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

Validation Tools