Skip to content

Understanding tax categories and VAT IDs

Overview of tax categories, validation rules and VAT ID requirements when invoicing

When faktoora generates an invoice as an XRechnung or ZUGFeRD file, tax categories and tax rates must be validated according to EN 16931. This article explains which categories exist, when the VAT ID is required, and which combinations are permitted.

Tax categories: the seven standard codes

Each line item in an invoice must be labeled with a tax category. faktoora supports the following codes:

S: Standard (standard rate)

  • Tax rate: > 0 % (e.g. 19 %, 7 %, 16 %, 5 %)
  • Use: for most goods and services with a regular VAT rate
  • Example: consulting at 19 % VAT, a book at 7 % VAT
  • Rule: category S requires a tax rate greater than zero

Z: Zero rate

  • Tax rate: 0 %
  • Use: for line items with a zero rate, e.g. certain foods, medicines, books (in many EU countries)
  • Example: bread at 0 % VAT
  • Rule: category Z requires a tax rate of exactly 0 %

E: Exemption

  • Tax rate: 0 %
  • Use: for services that are exempt from VAT (e.g. medical services, insurance, financial services)
  • Example: dental services (exempt under § 4 Nr. 14 UStG, the German VAT Act)
  • Rule: category E requires a tax rate of exactly 0 %
  • Important: if at least one line item has category E, the invoice must contain an exemption reason field stating the legal basis (e.g. "Tax exemption under § 4 Nr. 14 UStG"). Without this field, the invoice is rejected with validation errors.

AE: Reverse charge (transfer of tax liability)

  • Tax rate: 0 %
  • Use: for intra-community services or international services where, under the reverse charge mechanism, the buyer owes the VAT
  • Example: consulting services for a French company with reverse charge (§ 3c UStG)
  • Rule: category AE requires a tax rate of exactly 0 %
  • Note: with this category, no VAT is shown on the invoice. The tax liability lies with the recipient.

K: Intrastat / intra-community supply

  • Tax rate: 0 %
  • Use: for deliveries between EU countries without VAT (e.g. purchase of goods with the buyer's VAT ID)
  • Example: purchase of goods from Germany by an Austrian company with its VAT ID
  • Rule: category K requires a tax rate of exactly 0 %
  • Note: this is often equivalent to § 13b UStG and tax liability of the buyer

G: Export

  • Tax rate: 0 %
  • Use: for exports of goods outside the EU
  • Example: delivery of goods from Germany to the USA
  • Rule: category G requires a tax rate of exactly 0 %

O: None / other (no tax rate)

  • Tax rate: no tax rate (the system internally converts this to 0 %)
  • Use: for line items that are not taxable and do not fit into any other category
  • Rule: only a tax rate of 0 or no value is allowed

VAT ID: when is it required?

The VAT ID is a company's official identifier for tax purposes. faktoora has two fields:

Seller (your company)

  • Field: seller.vatId (in the API) or "VAT ID" in the seller settings
  • Format: country code + number, e.g. DE123456789 for Germany, AT123456789 for Austria
  • Required for:
    • XRechnung format (generally, if you operate as a business)
    • Verifactu format (Spain)
    • Intra-community supplies
    • Reverse charge invoices (category AE)
  • Not required for: PDF-only invoices (SIMPLE format)

Buyer (business customer)

  • Field: buyer.vatId (in the API) or "Buyer's VAT ID" in the customer settings
  • Format: country code + number, e.g. DE987654321
  • Required for:
    • Intra-community supplies (line item with category K or Z)
    • Reverse charge invoices (line item with category AE)
    • Verifactu format (Spain): the buyer must have a VAT ID or an Italian "Codice Fiscale"
  • Not required for: invoices with a standard tax rate (category S) to private individuals or companies without a VAT ID

Combinations of tax category and tax rate

faktoora strictly validates that each tax category is combined with the correct tax rate (EN 16931 rules, sections BR-S-05, BR-Z-05, etc.). Invalid combinations are rejected with a validation error message:

CategoryPermitted tax rateInvalidReason
S> 0 % (e.g. 19 %, 7 %)S with 0 %Standard requires a tax rate > 0
Z0 %Z with 19 %Zero rate must be 0
E0 %E with 5 %Exempt items must be 0 %
AE0 %AE with 19 %Reverse charge must be 0 %
K0 %K with 7 %Intrastat must be 0 %
G0 %G with 19 %Export must be 0 %
O0 % or no valueO with 19 %Only 0 % or no value allowed

Example of a validation error: If you combine category S (standard) with 0 % for a line item, faktoora rejects the invoice with the message:

taxCategoryCode "S" requires a rate > 0 (EN 16931 BR-S-05)

Tax exemption (category E): exemption reason required

If you create at least one line item with category E (tax exemption), you must state an exemption reason on the invoice. faktoora rejects invoices with category E if this field is left empty.

Where to enter the exemption reason:

  • Web app: in the invoice details, field "Exemption reason" (or similar, depending on the interface language)
  • API: in the invoice's taxExemptionReasonMessage field

What you should enter:

State the legal basis, e.g.:

  • "Tax exemption under § 4 Nr. 14 UStG (medical services)"
  • "Financial service, exempt under § 4 Nr. 8 UStG"
  • "Insurance service, exempt under § 4 Nr. 4 UStG"
  • "Export delivery under § 4 Nr. 1 UStG" (if applicable)

The exact wording depends on the legal basis in your country. If in doubt, consult a tax advisor.

Validation error without an exemption reason:

"taxExemptionReasonMessage" is required when at least one line has taxCategoryCode "E"

Intra-community supplies and credit notes

If you deliver goods to a VAT ID in another EU country, you may be able to show the delivery as tax-free. You do this by using tax category K or Z.

Requirements:

  1. The buyer must have a valid VAT ID from another EU country, e.g. AT123456789
  2. Store this VAT ID in the customer record (field "Buyer's VAT ID")
  3. Assign the line item(s) to tax category K or Z with a tax rate of 0 %

Credit notes without VAT:

If you issue a credit note for a line item delivered tax-free (e.g. a refund), also use category K or Z with 0 %. Use "Credit note (code 381)" as the invoice type.

Validation error with an incorrect structure: If you try to create a line item with category K without buyer.vatId, invoice generation may fail or produce invalid output files.

Reverse charge / transfer of tax liability (§ 13b UStG, category AE)

For intra-community services or services to companies abroad, the tax liability can be transferred to the buyer (reverse charge).

Requirements:

  1. Assign the line item(s) to tax category AE with a tax rate of 0 %
  2. No VAT is shown on the invoice
  3. Store the buyer's VAT ID (buyer.vatId)

Example:

You (a German company) invoice consulting services to a French company (VAT ID: FR12345678901) with reverse charge. The line item gets category AE and 0 %.

Whether reverse charge applies in a specific case is determined by the tax law of your country and of the buyer's country. faktoora does not check this. If you have questions, consult a tax advisor.

Foreign tax numbers

VAT ID vs. tax number:

  • vatId: VAT identification number (EU standard), format: country code + number (e.g. DE123456789, IT12345678901)
  • taxId: national tax number / Partita IVA (only for specific countries such as Italy, Spain), format: number only

Supported countries:

faktoora accepts VAT IDs for almost all EU countries and many others. The VAT ID is recorded in the invoice data (BT fields according to EN 16931) and written to the exported file.

Entering foreign VAT IDs:

  • Store the buyer's VAT ID in the customer record: country code + number, e.g. AT123456789
  • Store your company's VAT ID in the account settings (if you operate from Austria, for example)
  • The PDF shows the VAT ID of your seller record

The PDF shows only one VAT ID:

If you have stored several VAT IDs for different countries (e.g. Germany and Austria), the PDF shows the VAT ID of the primary seller record. Which record is primary is determined by your account settings. Use separate accounts or invoice profiles if you regularly invoice from several countries.

Upload errors / understanding error messages

"Invoices are rejected because of a missing VAT ID"

Symptom: you create an invoice that was previously created correctly, but it is now rejected.

Possible causes:

  1. The format has changed: you have switched the invoice format from PDF to XRechnung. XRechnung requires a seller VAT ID, PDF does not.
  2. Customer format requirements: the customer requires XRechnung instead of PDF; XRechnung has stricter requirements.
  3. Imported invoice: if you imported an invoice and change the format afterwards, new validation rules may apply.

Solution:

  • Check whether the seller VAT ID is stored in your account settings
  • Check the invoice format (PDF/XRechnung/Verifactu)
  • If you only need a PDF, no VAT ID is required

"Tax category and tax rate do not match"

Symptom: validation errors such as taxCategoryCode "S" requires a rate > 0 (EN 16931 BR-S-05)

Cause: you selected a tax category that does not match the tax rate.

Solution:

  1. Check the table above (categories and permitted tax rates)
  2. If your combination does not match, change either the category or the rate
  3. Example: if you have 0 % tax, select Z, E, K, G or O, not S

"Exemption reason required"

Symptom: validation error: "taxExemptionReasonMessage" is required when at least one line has taxCategoryCode "E"

Cause: you are using category E (exemption) but have not stated an exemption reason.

Solution:

  1. Enter the legal basis in the "Exemption reason" field (e.g. "§ 4 Nr. 14 UStG")
  2. This is only necessary if at least one line item has category E
  3. If you use category Z or others, no exemption reason is needed

Editing invoices afterwards

Important: after an invoice has been sent or finalized, you can no longer change the tax category or the VAT ID (in most cases). The invoice is legally binding.

If you have made a mistake:

  1. Create a cancellation invoice (code 380 → cancellation code 380) or a credit note (code 381)
  2. Create a new invoice with the correct details
  3. This combination has the same effect as a correction and is clean from a tax perspective

This is a deliberate safeguard: e-invoices (XRechnung, Verifactu, ZUGFeRD) are legally binding and must not be changed afterwards, as this would compromise audit-proof record keeping.

Summary: common scenarios

ScenarioCategoryTax rateBuyer VAT ID?Exemption reason?
Normal invoice to a German companyS19 % / 7 %No (optional)No
Zero-rated goods (e.g. a book)Z0 %NoNo
Medical service (exemption)E0 %NoYes, e.g. "§ 4 Nr. 14 UStG"
Intra-community supplyK0 %Yes, EU VAT IDNo
Reverse charge serviceAE0 %Yes, anyNo
Export outside the EUG0 %NoNo

Note on tax advice: this article explains how faktoora works and the validation rules the system enforces. Which tax category and tax rate are legally correct in your specific case is a question of tax law. faktoora does not check this. If in doubt, consult your tax advisor.

Was this helpful?

Have questions?

Do not hesitate to get in touch! Our team is always here to answer your questions and help with your concerns.

Contact us by email at:

info@faktoora.com

Or give us a call:

+49 731 85070390

We look forward to hearing from you!