Every line on an EN 16931 compliant invoice — which includes PEPPOL BIS Billing 3.0, ZUGFeRD, and Factur-X — must carry a tax category code. This single letter tells the receiving system how to handle VAT for that line: is it taxed, exempt, zero-rated, or subject to reverse charge?
The codes come from the UNCL5305 code list. In practice, most invoices only ever use one or two of them. But if you get the wrong one, the invoice will fail Schematron validation or, worse, pass validation but create incorrect VAT accounting at the buyer's end.
S — Standard rate
Code S means the line is subject to VAT at the applicable standard (or reduced) rate. The rate itself is carried in the Percent field alongside the category code.
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>8.1</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:ClassifiedTaxCategory>
For Switzerland, S is used for all three Swiss VAT rates: 8.1% (standard), 2.6% (reduced), and 3.8% (hospitality). There is no separate category code for reduced or special rates in the Swiss context — the Percent value is what distinguishes them. The same applies in most EU countries: standard and reduced rates both use S, just with different percentages.
Z — Zero rated
Code Z applies to goods and services that are subject to VAT but at a rate of 0%. This sounds like the same thing as being exempt, but it is not. Zero-rated means VAT has been charged at 0%. The transaction is within the VAT system, and the supplier can still recover input VAT on their costs related to that supply.
In Switzerland, Z is rarely needed because most zero-rated supplies in other countries are either exempt or outside the scope of Swiss VAT. You may encounter it when cross-billing with EU counterparties or dealing with specific supply chains where the 0% rate applies formally.
<cac:ClassifiedTaxCategory>
<cbc:ID>Z</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:ClassifiedTaxCategory>
E — Exempt from tax
Code E means the supply is exempt from VAT entirely. Exempt supplies are outside the normal VAT calculation. In Switzerland, exempt supplies include medical services, educational services, banking and insurance (with some exceptions), and certain cultural activities.
The key difference from Z: an exempt supplier cannot recover input VAT on costs related to exempt supplies. From an invoice perspective, E means no VAT is charged and no VAT amount appears on the line.
When using E, the EN 16931 standard requires an exemption reason — either a code or free text — to be included in the TaxTotal/TaxSubtotal block:
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="CHF">500.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="CHF">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>E</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReason>Medical services — exempt under Art. 21 MWSTG</cbc:TaxExemptionReason>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
The Schematron rule BR-E-10 makes the exemption reason mandatory when category E is used. Omitting it is one of the most common causes of Schematron failures on invoices from service businesses with mixed taxable and exempt revenue.
AE — VAT reverse charge
Code AE (Accounting Entry — reverse charge) applies when the VAT liability is shifted from the supplier to the buyer. Instead of the supplier charging VAT and paying it to the tax authority, the buyer accounts for the VAT themselves.
In Switzerland, reverse charge applies to cross-border B2B services where the place of supply is Switzerland but the supplier is established abroad. If a German software company invoices a Swiss business for a digital service, the German company does not charge Swiss VAT — the Swiss company self-assesses it.
For a Swiss supplier invoicing an EU buyer, reverse charge is common on intra-EU B2B service invoices and on goods dispatched across borders.
<cac:ClassifiedTaxCategory>
<cbc:ID>AE</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:ClassifiedTaxCategory>
Like E, using AE requires an exemption/reason note. The Schematron rule BR-AE-10 enforces this. A typical reason text is "VAT reverse charge — Article 196 Council Directive 2006/112/EC" for EU invoices, or the applicable Swiss legal reference for domestic reverse charge.
The reverse charge post covers the full XML mapping for reverse charge invoices.
K — Intra-community supply
Code K is used for intra-community supplies within the EU — goods dispatched from one EU member state to a VAT-registered buyer in another member state. The supply is zero-rated in the country of dispatch, and the buyer accounts for VAT in their own country (under the intra-community acquisition rules).
Swiss companies are not EU member states, so K does not directly apply to Swiss domestic invoicing. However, if you are a Swiss company with a VAT registration in an EU member state, or if you are building software that handles EU invoices alongside Swiss ones, you will encounter K for cross-border goods invoices within Europe.
<cac:ClassifiedTaxCategory>
<cbc:ID>K</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:ClassifiedTaxCategory>
K also requires an exemption reason in the TaxSubtotal block.
O — Out of scope
Code O means the line is outside the scope of VAT entirely. This is different from E (exempt) and Z (zero-rated). Out of scope means VAT legislation does not apply to the transaction at all — not that it applies at 0%.
In practice, O appears on invoices for supplies made outside the supplier's country of establishment, supplies made by non-taxable persons, or transactions that are simply not economic activities for VAT purposes. For most Swiss business invoices, you will rarely use O — but it is there when you need it for disbursements, pass-through items, or certain intra-group transactions.
Choosing the right code
The most common confusion is between E, Z, and O. A rough decision guide:
- VAT applies and you charge a rate: use
Swith the correctPercent - VAT would apply but the rate is formally 0%: use
Z - VAT applies to the supplier but the supply is legally exempt: use
Ewith an exemption reason - VAT liability shifts to the buyer: use
AEwith an exemption reason - EU intra-community goods supply to a registered buyer: use
K - The transaction is outside the scope of VAT altogether: use
O
When in doubt about which Swiss legal basis applies to a specific exemption, the MWSTG (Mehrwertsteuergesetz) is the reference. Articles 21 (exemptions without credit) and 23 (exemptions with credit, corresponding roughly to zero-rating) map to E and Z respectively. For handling multiple VAT rates on a single invoice, including invoices that mix taxed and exempt lines, that post covers the tax total structure in detail.