# BR-E-01

Quoted from a public specification. This page is not a validator, and it is not tax, legal, or accounting advice.

- Country: EU
- Syntax: UBL
- Severity: fatal
- Statement language: en
- Last verified: 2026-10-17

## Official statement

> An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Exempt from VAT" shall contain exactly one VAT breakdown (BG-23) with the VAT category code (BT-118) equal to "Exempt from VAT".

Source: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-E-01/

Peppol BIS Billing 3.0, May 2026 release, EN 16931 model bound to UBL

Severity note: fatal, from the Flag column of the Peppol BIS Billing 3.0 UBL rules index retrieved 2026-10-17.

## Plain-language reading

If a line, a document allowance, or a document charge uses the VAT category "Exempt from VAT", the invoice must contain exactly one VAT breakdown with that same category. The published UBL test compares the code to E.

## What to change

Add one VAT breakdown (BG-23) with category code E, and do not add a second E breakdown.

## Illustration

Illustration of the condition in the official statement. Not an example published by the source.

**Fails the stated condition.** A line, allowance, or charge uses VAT category code E, and the VAT breakdown has no E category or has two.

**Passes the stated condition.** One of those uses E, and the VAT breakdown has exactly one E category.

## Published context and test

Copied from the source. Not reimplemented on this page.

```
/ubl:Invoice | /cn:CreditNote
```

```
((exists(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'E']) or exists(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'E'])) and (count(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'E']) = 1)) or (not(//cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'E']) and not(//cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'E']))
```

[All rule notes](https://einvoicegoblin.com/rules/index.md) · [JSON](https://einvoicegoblin.com/rules/BR-E-01.json) · [HTML](https://einvoicegoblin.com/rules/BR-E-01/) · [llms.txt](https://einvoicegoblin.com/llms.txt) · [Invoice page](https://einvoicegoblin.com/) · [Privacy](https://einvoicegoblin.com/privacy.html)
