Peppol error codes

BR-CO-18: VAT breakdown (BG-23) is missing

Error code BR-CO-18 means: the invoice does not contain any VAT breakdown.

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-18 mean?

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

[BR-CO-18]-An Invoice shall at least have one VAT breakdown group (BG-23).

Every e-invoice under EN 16931 contains at least one VAT breakdown (BG-23, in UBL cac:TaxSubtotal). That also applies when no VAT is due. For an exemption, reverse charge or the zero rate, there is a breakdown with VAT amount 0.00, the right category and, where needed, a reason. In our test, an invoice without a breakdown also triggered BR-S-01, PEPPOL-EN16931-R053 and PEPPOL-EN16931-R054. They disappear together with BR-CO-18.

Common causes

  • The software omits the breakdown because no VAT is due, for example for an exemption or the small business scheme.
  • A custom XML export only writes the total VAT amount.
  • The VAT data is only on line level and is not summarised.

How to fix it as the sender

  1. In cac:TaxTotal, add one cac:TaxSubtotal per VAT category and rate, with the taxable amount and the VAT amount.
  2. If no VAT is due, use 0.00 as VAT amount, the right category (E, AE, Z, K, G or O) and an exemption reason where required.
  3. Validate again. Then also check the amounts with BR-S-08 and BR-CO-17.

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:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">63.00</cbc:TaxAmount>
  <!-- no TaxSubtotal -->
</cac:TaxTotal>

✅ Correct

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">63.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">300.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">63.00</cbc:TaxAmount>
    <cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>21</cbc:Percent>...</cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>

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

For small businesses under the VAT exemption scheme, you use category E with an exemption reason. See also our explanation of BR-E-10.

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-S-08: The taxable amount in the VAT breakdown does not equal the sum of the lines at that rate.
  • PEPPOL-EN16931-R053: The invoice contains more than one tax total (TaxTotal) with subtotals.

Frequently asked questions about BR-CO-18

Does an invoice without VAT still need a VAT breakdown?

Yes. The breakdown then states the category, the taxable amount and a VAT amount of 0.00.

Why does the same invoice also give BR-S-01?

BR-S-01 requires a breakdown in category S as soon as a line has the standard rate. Without a breakdown, that rule fails as well.

← All Peppol error codes