# BT-121 VAT Exemption Reason Code

A coded reason for VAT categories E, AE, K, G, or O, taken from the allowed code list. Do not use it for S, Z, L, or M.

## Quick answer

> **Taxes and totals**: VAT treatment, tax breakdowns, and document totals that validators check closely.

- [Validate XML](/en/xrechnung-validator?source=resource&bt=BT-121)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&bt=BT-121)

## In plain language

A coded reason for VAT categories E, AE, K, G, or O, taken from the allowed code list. Do not use it for S, Z, L, or M.

A coded reason for VAT categories E, AE, K, G, or O, taken from the allowed code list. Do not use it for S, Z, L, or M.

Lets receiving systems process exempt and special VAT treatments without relying only on free text.

## What you usually enter here

Code from the VAT exemption reason code list

Typical valid values include: VATEX-EU-AE, VATEX-EU-IC, VATEX-EU-O

Provide BT-120 or BT-121 for E, AE, K, G, and O. If you use BT-121, select an allowed code. Do not provide either field for S, Z, L, or M.

## What goes wrong often

Avoid values like: AE, REVERSE_CHARGE, 0

Relevant rule codes: BR-AE-10, BR-E-10, BR-G-10, BR-IC-10, BR-O-10, BR-S-10, BR-Z-10, BR-AF-10, BR-AG-10, BR-CL-22

## Examples in context

Lets receiving systems process exempt and special VAT treatments without relying only on free text.

Provide BT-120 or BT-121 for E, AE, K, G, and O. If you use BT-121, select an allowed code. Do not provide either field for S, Z, L, or M.

## Valid Examples

- VATEX-EU-AE
- VATEX-EU-IC
- VATEX-EU-O

## Invalid Examples

- AE
- REVERSE_CHARGE
- 0

## Related Fields

Lets receiving systems process exempt and special VAT treatments without relying only on free text.

- [BT-118 VAT Category Code](/resources/xrechnung/bt-118-vat-category-code)
- [BT-119 VAT Category Rate](/resources/xrechnung/bt-119-vat-category-rate)
- [BT-120 VAT Exemption Reason Text](/resources/xrechnung/bt-120-vat-exemption-reason-text)

## XML mapping and field facts

Open the technical reference if you need XML paths, validator rule codes, legal wording, or schema-specific mapping details.

### Field ID:
BT-121

### Data Type:
code

### Cardinality:
0..1

### Requirement:
Optional

### Since Version:
Conditional

## XML Implementation

### UBL 2.1 Syntax
```
/Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode
```

### CII (UN/CEFACT) Syntax
```
/CrossIndustryInvoice/SupplyChainTradeTransaction/ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode
```

## Validation Rules

### BR-AE-10
BR-AE-10

### BR-E-10
BR-E-10

### BR-G-10
BR-G-10

### BR-IC-10
BR-IC-10

### BR-O-10
BR-O-10

### BR-S-10
BR-S-10

### BR-Z-10
BR-Z-10

### BR-AF-10
BR-AF-10

### BR-AG-10
BR-AG-10

### BR-CL-22
BR-CL-22

## Check whether your XRechnung sets BT-121 correctly

Upload the XML file to the free validator. It applies the KoSIT rules for XRechnung 3.0 and names each finding with its rule ID, for this field for example BR-CL-22, BR-AE-10. Creating a new invoice instead? The converter checks the invoice against the same rules and shows the findings before download.

- [Validate XML](/en/xrechnung-validator)
- [Convert invoice](/en/pdf-to-xrechnung)

Free, no account needed. XML file up to 2 MB.

## Why the standard cares about this field

### Business Context
Lets receiving systems process exempt and special VAT treatments without relying only on free text.

### Legal Requirement
Provide BT-120 or BT-121 for E, AE, K, G, and O. If you use BT-121, select an allowed code. Do not provide either field for S, Z, L, or M.

## Official sources and tools

- [KoSIT Validator](https://erechnungsvalidator.service-bw.de/)
- [XRechnung Standard](https://xeinkauf.de/xrechnung/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
