Peppol error codes

BR-CO-04: VAT category missing on an invoice line

Error code BR-CO-04 means: an invoice line has no VAT category.

Rule set: EN 16931 · Severity: error (fatal): an Access Point rejects the invoice · Checked against the official rules of May 2026

What does BR-CO-04 mean?

The validator shows this message (as worded in the official rules):

[BR-CO-04]-Each Invoice line (BG-25) shall be categorized with an Invoiced item VAT category code (BT-151).

Every invoice line must have a VAT category (BT-151, Item/ClassifiedTaxCategory/ID), such as S for the standard rate, AE for reverse charge or E for an exemption. Without that category, nobody can tell which rate applies to the line. In our test, the missing category also triggered UBL-SR-48, BR-S-01 and BR-S-08: one missing element therefore causes several messages.

Common causes

  • An item or service in the software has no VAT code.
  • A free text line (for example a remark) was exported as an invoice line.
  • The export only puts VAT in the breakdown at the bottom, not per line.

How to fix it as the sender

  1. Give every item and service in your software a VAT code.
  2. Do not put remarks in an invoice line, but in a note on the invoice or on a line.
  3. Validate again: once the category is there, the accompanying messages usually disappear too.

Received an invoice with this error?

An invoice with this error is not compliant. Ask the supplier for a corrected invoice and do not change the XML yourself.

Example in the XML

❌ Wrong

<cac:InvoiceLine>
  ...
  <cac:Item>
    <cbc:Name>Advies e-facturatie</cbc:Name>
    <!-- no ClassifiedTaxCategory -->
  </cac:Item>
  ...
</cac:InvoiceLine>

✅ Correct

<cac:InvoiceLine>
  ...
  <cac:Item>
    <cbc:Name>Advies e-facturatie</cbc:Name>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>21</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  ...
</cac:InvoiceLine>

Both snippets come from a complete test invoice that we checked with our validator: the wrong version gives exactly this message, the correct version no errors at all.

Good to know

The VAT category on the line must also appear in the VAT breakdown at the bottom. That is why BR-S-01 and BR-S-08 often come together with BR-CO-04.

Check your invoice

Drop your XML into the free validator. You see right away whether this error still occurs, with a link to the explanation for every message.

Official rule

The full rule with its technical test (Schematron) is in the official Peppol documentation:

Related error codes

  • BR-CO-17: The VAT amount for a VAT rate does not equal the taxable amount × the rate.
  • BR-AE-10: The VAT breakdown with reverse charge (AE) states no reason.

Frequently asked questions about BR-CO-04

Which VAT categories exist?

Among others S (standard rate), Z (zero rate), E (exempt), AE (reverse charge), K (intra-community supply), G (export outside the EU) and O (not subject to VAT).

What is UBL-SR-48?

A syntax rule: every invoice line must have exactly one ClassifiedTaxCategory. If the category is missing, BR-CO-04 and UBL-SR-48 both give a message.

← All Peppol error codes