# BR-E-06: Set the VAT rate of an exempt document-level allowance to 0

A document-level allowance in category `E` must carry a VAT rate of exactly 0. An exempt discount at the Standard rate of 20 fails.

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

## The short answer

`BR-E-06` fails when an allowance, an `cac:AllowanceCharge` with `cbc:ChargeIndicator` of `false`, has a `cac:TaxCategory` with `cbc:ID` of `E` and a `cbc:Percent` other than 0. Set that `cbc:Percent` to `0`, the rate of the exempt supplies the discount reduces.

The 20 in the recorded example is the Standard rate. A discount on exempt supplies shares their category and their zero rate; one that really reduces Standard rated supplies belongs in category `S` at 20 instead.

## What the rule checks

Every allowance tax category with `cbc:ID` of `E` under the `VAT` scheme is checked, and the finding points at that `cac:TaxCategory`. The rule is not limited to the document root: when tried, an allowance inside an exempt line with its own `cac:TaxCategory` of `E` at 20 reported this rule as well, next to the `UBL-CR-558` warning.

The allowance rate is read as a decimal and must equal 0, so `0.00` passes, as it did when tried. A missing `cbc:Percent` fails: removing it from the exempt discount reported this rule and nothing else.

Only the allowance is looked at. The exempt breakdown of 20.00 does not depend on the allowance rate, because `BR-E-08` subtracts exempt allowances by category, whatever rate they carry.

| Term | Meaning | UBL element |
|---|---|---|
| BT-95 | Document level allowance VAT category code | `cac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID` |
| BT-96 | Document level allowance VAT rate | `cac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:Percent` |

## How an integration ends up here

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

- Document-level discounts are created with a default tax code at the Standard rate, and only the category is changed to match the exempt lines.
- The discount takes its rate from the first line of the order, which was Standard rated when the discount was set up.
- The allowance rate is filled from the seller's default VAT rate whenever the allowance has a category.
- An empty allowance rate is serialised by dropping `cbc:Percent`.

## How to fix it

1. Confirm that the discount applies to exempt supplies. If it does, set `cbc:Percent` in its `cac:TaxCategory` to `0` and keep `cbc:ID` as `E`.
2. Leave the exempt breakdown as it is. Its taxable amount already nets the discount off the exempt line: 25.00 - 5.00 = 20.00 in the recorded example.
3. If the discount reduces Standard rated supplies instead, change its category to `S` at the rate, take it out of the exempt taxable amount and into the Standard rated breakdown, and recalculate that breakdown's tax.
4. Where one discount covers exempt and taxed supplies together, split it into one allowance per category, each with its own category and rate.

## 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 discount of 5.00 at a rate of 20

```xml
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">5.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
```

Fragment of the corrected invoice: the exempt discount at 0

```xml
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">5.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
```

Only the `cbc:Percent` of the exempt discount differs: `20` in the failing invoice, `0` in the corrected one. The failing document reports only `BR-E-06`. Its exempt breakdown of 20.00 still equals the exempt line of 25.00 less the discount of 5.00, and it carries no tax, so the rate on the discount affects no other rule.

### What the validator reported

- The failing invoice reports **BR-E-06**. The corrected document passes every layer with no findings.
  - [Download the failing XML](https://ironfang.com/finance/rule-examples/BR-E-06-invalid.xml)
  - [Download the corrected XML](https://ironfang.com/finance/rule-examples/exempt-allowance-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 credit note with the discount at 20 reported the same rule when tried.
- Reported by the EN 16931 layer as a fatal finding at each exempt allowance `cac:TaxCategory` whose rate is not 0.
- Zero rated and reverse-charge allowances have the same requirement under `BR-Z-06` and `BR-AE-06`.
- An exempt allowance also requires a seller tax identifier in the document, under `BR-E-03`.

## Related rules

- [BR-E-05 requires the rate of 0 on the exempt lines the discount reduces](https://ironfang.com/docs/finance/rules/BR-E-05.md)
- [BR-E-07 requires the same rate of 0 on an exempt document-level charge](https://ironfang.com/docs/finance/rules/BR-E-07.md)
- [BR-E-03 asks for the seller tax identifier once an exempt allowance is present](https://ironfang.com/docs/finance/rules/BR-E-03.md)
- [BR-E-08 subtracts the exempt allowance from the exempt taxable amount](https://ironfang.com/docs/finance/rules/BR-E-08.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-06](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-06/) 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-06)
- [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
