# BT-118 VAT Category Code

For most German invoices with 19% or 7% VAT, BT-118 is simply "S". The percentage itself does not live in BT-118. You put the actual rate in BT-119.

## Quick answer

For most German invoices with 19% or 7% VAT, BT-118 is simply "S". The percentage itself does not live in BT-118. You put the actual rate in BT-119.

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

## In plain language

Coded identification of a VAT category. The VAT category code must be taken from the UN/CEFACT code list UNCL5305 and determines how VAT is applied to the invoice line or document level charges/allowances. This field is critical for automated VAT processing, compliance verification, and cross-border transaction handling.

BT-118 tells the receiving system what kind of VAT treatment applies to a VAT breakdown. It is not the place where you type “19%” or “7%”. It is the place where you classify the VAT scenario itself.

That distinction matters because XRechnung validators check whether the VAT code, VAT rate, taxable amount, and VAT amount all tell the same story. If one part says “standard rate” and another part behaves like “exempt” or “reverse charge”, the invoice will usually fail validation.

## What you usually enter here

In day-to-day German invoicing, the most common code is "S". You use it both for the normal 19% rate and for the reduced 7% rate. The difference between those two cases is handled by BT-119, not by a different BT-118 code.

Only switch away from "S" when the tax treatment itself changes: for example "E" for exempt, "AE" for reverse charge, or "Z" for zero-rated cases. If you are unsure, start by checking the legal VAT scenario first and then set BT-118, BT-119, and BT-117 together.

## Common cases

### Domestic standard or reduced VAT
Use code "S". The actual German rate, such as 19.00 or 7.00, belongs in BT-119.

### VAT exempt transaction
Use code "E" and keep the VAT rate and VAT amount aligned with the exemption scenario.

### Reverse charge
Use code "AE" when the buyer owes the VAT instead of the seller.

### Zero-rated export
Use code "Z" for taxable transactions that legally carry a 0% rate.

## What goes wrong often

A common mistake is entering a number such as “19”, “7%”, or a label such as “standard”. BT-118 only accepts the allowed VAT category codes from the code list, so free-text labels and percentages belong elsewhere.

The second common mistake is mixing the wrong code with the wrong rate or VAT amount. For example, an exemption code with a non-zero VAT rate, or a reverse-charge code with a seller-collected VAT amount, will trigger validator errors quickly.

## Examples in context

Always review BT-118 together with BT-116, BT-117, and BT-119. Those four values form one VAT breakdown. If you have more than one VAT treatment on the invoice, create a separate VAT breakdown for each combination instead of forcing everything into one row.

## Valid Examples

- S
- Z
- E
- AE
- K
- G
- O
- L
- M

## Invalid Examples

- 19
- 0
- VAT
- standard
- exempt
- 7%
- DE

## Related Fields

Always review BT-118 together with BT-116, BT-117, and BT-119. Those four values form one VAT breakdown. If you have more than one VAT treatment on the invoice, create a separate VAT breakdown for each combination instead of forcing everything into one row.

- [BT-116 VAT Category Taxable Amount](/resources/xrechnung/bt-116-vat-category-taxable-amount)
- [BT-117 VAT Category Tax Amount](/resources/xrechnung/bt-117-vat-category-tax-amount)
- [BT-119 VAT Category Rate](/resources/xrechnung/bt-119-vat-category-rate)
- [BT-151 Invoice line VAT category code](/resources/xrechnung/bt-151-invoice-line-vat-category-code)
- [BT-95 Document level allowance VAT category code](/resources/xrechnung/bt-95-document-level-allowance-vat-category-code)
- [BT-102 Document level charge VAT category code](/resources/xrechnung/bt-102-document-level-charge-vat-category-code)

## 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-118

### Data Type:
code

### Cardinality:
1..1

### Requirement:
Mandatory

### Since Version:
XRechnung 1.0+ (when VAT breakdown provided)

## XML Implementation

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

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

## Validation Rules

### BR-2
BR-2

### BR-S-08
BR-S-08

### BR-E-01
BR-E-01

### BR-AE-01
BR-AE-01

### BR-IC-01
BR-IC-01

### BR-G-01
BR-G-01

### BR-O-01
BR-O-01

### BR-CL-23
BR-CL-23

## Why the standard cares about this field

### Business Context
Essential for VAT compliance across EU member states. Enables automated processing of invoices by financial systems, ensures correct VAT treatment for cross-border transactions, supports reverse charge mechanisms, and facilitates VAT return preparation. Critical for e-invoicing platforms, ERP systems, and tax automation tools.

### Legal Requirement
Mandatory when VAT breakdown is provided according to EN 16931-1. Must comply with EU VAT Directive requirements and national VAT regulations. Essential for compliance with German VAT law (UStG) and automated tax processing in PEPPOL and XRechnung environments.

## FAQ

### What are the valid VAT category codes and their meanings?
Valid codes from UNCL5305: S (Standard rate - 19% in Germany), Z (Zero rate), E (Exempt from tax), AE (VAT reverse charge), K (VAT exempt for EEA intra-community supply), G (Free export item), O (Services outside scope of tax), L (Canary Islands general indirect tax), M (Tax for Ceuta and Melilla). Each code determines specific VAT treatment.

### How does BT-118 relate to German VAT rates (19% and 7%)?
In Germany, both 19% (standard) and 7% (reduced) rates use code "S" in BT-118. The actual rate is specified in BT-119 (VAT category rate). So BT-118="S" with BT-119="19.00" for standard rate, or BT-118="S" with BT-119="7.00" for reduced rate. The code indicates the VAT treatment type, while BT-119 specifies the exact percentage.

### When should I use code "AE" (reverse charge)?
Use "AE" for reverse charge scenarios where the buyer (not seller) is responsible for VAT payment. Common cases: B2B cross-border EU transactions, construction services in Germany (§13b UStG), certain professional services, scrap metal trading, and telecommunications services. When using "AE", BT-119 (VAT rate) typically shows the standard rate (19% in Germany) but BT-117 (VAT amount) is 0.00.

### What validation rules apply to BT-118?
Key validation rules: BR-S-08 (standard rate calculation consistency), BR-E-01 (exempt VAT breakdown validation), BR-AE-01 (reverse charge validation), BR-IC-01 (intra-community validation), BR-CL-23 (code list compliance). The code must match the VAT treatment described in BT-119 (rate) and BT-117 (amount). System validates that code combinations are legally valid.

### How do I handle VAT-exempt transactions?
For VAT-exempt transactions, use code "E". Set BT-119 (VAT rate) to 0.00 and BT-117 (VAT amount) to 0.00. Common exempt cases in Germany: medical services, educational services, insurance, banking services, postal services, and certain cultural activities. Include reason for exemption in invoice notes when required by national law.

### What is the difference between codes "Z" and "E"?
Code "Z" (Zero rate) applies to goods/services that are taxable but at 0% rate (like exports outside EU). Code "E" (Exempt) applies to transactions completely outside VAT scope (like banking services). With "Z", VAT registration and documentation requirements apply; with "E", the transaction is not subject to VAT system at all. Both result in 0.00 VAT amount but have different legal implications.

### How should I handle multiple VAT rates on one invoice?
Create separate VAT breakdowns (BG-23) for each rate/category combination. For example: one breakdown with BT-118="S" and BT-119="19.00" for standard items, another with BT-118="S" and BT-119="7.00" for reduced rate items. Each breakdown must have its own BT-116 (taxable amount), BT-117 (tax amount), BT-118 (category code), and BT-119 (rate). The sum of all BT-117 values equals BT-110 (total VAT).

### What are common validation errors with BT-118?
Common errors: 1) Using invalid codes not in UNCL5305, 2) Mismatched code-rate combinations (e.g., "E" with non-zero rate), 3) Missing VAT exemption reason for "E" codes, 4) Incorrect reverse charge setup with "AE", 5) Multiple "E" breakdowns when only one allowed, 6) Using numeric values instead of letter codes, 7) Wrong code for cross-border scenarios. Always validate against EN16931 business rules.

## Official sources and tools

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