Skip to main content

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.

BT-118 (VAT category code) classifies each document-level VAT breakdown line using UNCL 5305: S (standard), Z (zero-rated), E (exempt), AE (reverse charge), K (intra-community), G (export), O (out of scope), L (IGIC, Canary Islands) or M (IPSI, Ceuta/Melilla). Mandatory under EN 16931 for every VAT breakdown group. Example: S.

BT-118 · EN 16931 / XRechnung 3.x

BT Reference Card

Key EN 16931 and XRechnung facts for this business term.

BT code
BT-118
Name
VAT Category Code
Cardinality
Mandatory (M)
Business group
BG-23 VAT BREAKDOWN
Data type
Code
Example value
S
Common error
BR-47: Each VAT breakdown (BG-23) shall be defined through a VAT category code (BT-118). A breakdown group without a category code, or with a code outside UNCL 5305, fails validation.

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.

Quick actions

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

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-47

BR-47

BR-CL-17

BR-CL-17

BR-S-01

BR-S-01

BR-Z-01

BR-Z-01

BR-E-01

BR-E-01

BR-AE-01

BR-AE-01

BR-G-01

BR-G-01

BR-IC-01

BR-IC-01

BR-O-01

BR-O-01

Next step

Create an XRechnung from your PDF and check the line VAT categories

The converter derives BT-118 from the line VAT categories (BT-151); correct those before download. Already have an XML file? The free validator reports findings for this field, for example BR-CL-17, BR-47.

Download requires an account. Subscriptions from €10/month with annual billing (excl. taxes), or €5 per conversion (excl. taxes) without a subscription.

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", both BT-119 (VAT rate) and BT-117 (VAT amount) are 0, because the buyer calculates and declares the VAT (BR-AE-09).

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