# BR-E-05: Set the VAT rate of an exempt line to 0

A line whose item VAT category is `E` must state a VAT rate of exactly 0. A reduced or Standard rate on it fails, and so does a missing rate.

- Layer: EN 16931
- Severity: fatal (the document is invalid)
- Topics: VAT, Lines and prices
- Official definition: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-05/
- Explanation last updated: 2026-09-28

## The short answer

`BR-E-05` fails on each line whose `cac:Item/cac:ClassifiedTaxCategory` has `cbc:ID` of `E` and a `cbc:Percent` that is not 0. The exempt line of the recorded example carries 5; set it to `0`.

An exempt line with a rate says two different things. If VAT at 5 really is due on the item, it is not exempt and belongs in category `S` at 5; if it is exempt, the rate is the error.

## What the rule checks

Each `cac:ClassifiedTaxCategory` with `cbc:ID` of `E` under the `VAT` scheme, in a `cac:InvoiceLine` or `cac:CreditNoteLine` item, is checked separately, and the finding points at that element.

The rate has to equal zero as a decimal. When tried, `0.00` on the exempt line passed and 20 failed as 5 does, while a line with its `cbc:Percent` removed reported this rule alone, so leaving the rate out is no way round it.

Only line rates are read. When tried, the exempt breakdown given a rate of 5 while the line stayed at 0 did not trigger this rule; `BR-CO-17` rejected it instead, since 5% of the 25.00 taxable amount is 1.25, too far from a tax amount of 0.00.

Exempt document-level allowances and charges have rate rules of their own, `BR-E-06` and `BR-E-07`, with the same requirement of 0.

| Term | Meaning | UBL element |
|---|---|---|
| BT-151 | Invoiced item VAT category code | `cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID in a credit note)` |
| BT-152 | Invoiced item VAT rate | `cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent in a credit note)` |

## How an integration ends up here

Possible causes, from the shape of the rule rather than from measured usage:

- The rate comes from the item record while the category comes from the customer or contract, and nothing reconciles the two.
- An item once taxed at the reduced rate was reclassified as exempt, and only its category code was updated.
- Every line gets a default rate from the seller's settings, and the default is not 0.
- An empty rate on exempt items is serialised by leaving `cbc:Percent` out, which fails in the same way.

## How to fix it

1. Check the tax determination for the item. If the supply is exempt, set `cbc:Percent` in the line's `cac:ClassifiedTaxCategory` to `0`; nothing else on the line changes.
2. Always write `cbc:Percent` for exempt lines, as `0`, rather than omitting it.
3. If VAT at 5 is due, change the line category to `S` and keep the 5, move its net amount out of the exempt breakdown into a Standard rated breakdown at 5, and calculate the tax. Drop the exempt breakdown and its reason if nothing exempt is left.
4. Correct the item or tax code at source, so that the category and the rate on a line come from one record.

## Before and after

These are fragments, not complete documents. The complete synthetic documents they come from are linked below.

Fragment of the failing invoice: an exempt line with a rate of 5

```xml
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cbc:Name>Example service</cbc:Name>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>E</cbc:ID>
      <cbc:Percent>5</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <!-- price omitted from this fragment -->
</cac:InvoiceLine>
```

Fragment of the corrected invoice: the exempt line at 0

```xml
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cbc:Name>Example service</cbc:Name>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>E</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <!-- price omitted from this fragment -->
</cac:InvoiceLine>
```

Only the `cbc:Percent` of the exempt line differs: `5` in the failing invoice, `0` in the corrected one. The failing document reports only `BR-E-05`. Its exempt breakdown keeps the rate of 0 and the taxable amount of 25.00, which `BR-E-08` still accepts because it adds up exempt lines whatever their rates, and no tax is charged anywhere.

### What the validator reported

- The failing invoice reports **BR-E-05**. The corrected document passes every layer with no findings.
  - [Download the failing XML](https://ironfang.com/finance/rule-examples/BR-E-05-invalid.xml)
  - [Download the corrected XML](https://ironfang.com/finance/rule-examples/exempt-valid.xml)

Recorded on phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, the engine behind the free validator, using synthetic data. A recorded result is regression evidence for these documents; it is not a certification.

## Where it applies

- Applies to UBL `Invoice` and `CreditNote`. An exempt `cac:CreditNoteLine` at 5 reported the same rule when tried.
- Reported by the EN 16931 layer as a fatal finding at each exempt `cac:ClassifiedTaxCategory` whose rate is not 0.
- Zero rated and reverse-charge lines carry the same requirement under `BR-Z-05` and `BR-AE-05`, while a line not subject to VAT must have no rate at all under `BR-O-05`.

## Related rules

- [BR-E-06 requires the same rate of 0 on an exempt document-level allowance](https://ironfang.com/docs/finance/rules/BR-E-06.md)
- [BR-AE-05 is the reverse-charge line rule, also fixed at 0](https://ironfang.com/docs/finance/rules/BR-AE-05.md)
- [BR-Z-05 is the Zero rated line rule, also fixed at 0](https://ironfang.com/docs/finance/rules/BR-Z-05.md)
- [BR-CO-17 rejected the exempt breakdown given a rate of 5, a case this rule leaves alone](https://ironfang.com/docs/finance/rules/BR-CO-17.md)

## Scope and source

Written for Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, as applied to UBL 2.1 Invoice and CreditNote documents. Other profiles, syntaxes and releases can define this identifier differently. Guidance version 2026-09-28.1: source checked 2026-09-28, explanation last updated 2026-09-28.

[The official definition of BR-E-05](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-05/) carries the normative wording and test. This page is our explanation of it, not a copy.

Guidance does not change the engine verdict. Fixing this finding does not mean the document passes every layer, and validation does not certify legal or tax compliance or transmit a document over Peppol.

## Links

- [This rule as a web page](https://ironfang.com/docs/finance/rules/BR-E-05)
- [Free Peppol invoice validator](https://ironfang.com/tools/peppol-validator)
- [Rule index](https://ironfang.com/docs/finance/rules.md)
- [Ironfang Finance API docs](https://ironfang.com/docs/finance)
- The same rule is available to MCP clients as the tool `finance.rule.get` on https://mcp.ironfang.com/mcp
