Reference
VAT category codes, UNTDID 5305.
Every invoice line carries a VAT category in business term BT-151, and the category constrains the rate that may sit beside it. Most rejections on this field are a category and a rate that contradict each other.
The codes
The 10 codes EN 16931 allows, rendered directly from the module our validator uses. Verified against Peppol BIS Billing 3.0 published code lists on 2026-08-03.
| Code | Official name | Notes |
|---|---|---|
| S | Standard rate | In the published Peppol list |
| Z | Zero rated goods | In the published Peppol list |
| E | Exempt from tax | In the published Peppol list |
| AE | VAT reverse charge | In the published Peppol list |
| K | VAT exempt for EEA intra-community supply of goods and services | In the published Peppol list |
| G | Free export item, VAT not charged | In the published Peppol list |
| O | Services outside scope of tax | In the published Peppol list |
| L | Canary Islands general indirect tax | In the published Peppol list |
| M | Tax for production, services and importation in Ceuta and Melilla | In the published Peppol list |
| B | Transferred (VAT), in Italy | In the published Peppol list |
The rate each category requires
This is where documents actually fail, and the failure is usually a copy of a line that was correct in another context.
- S, standard rate. The rate must be above zero. A line marked S at zero percent means the category is wrong, not the rate.
- Z, E, AE, K, G, O. All of these require a rate of exactly zero. Reverse charge at twenty percent is the classic contradiction: if you are charging VAT, it is not reverse charge.
- L, M and B. Regional regimes, with their own rates. Only relevant if you invoice in the Canary Islands, in Ceuta and Melilla, or under the Italian transferred VAT arrangement.
Choosing between Z, E, K and O is a tax question, not a formatting one. A validator can tell you that the category and the rate disagree; it cannot tell you which supply you actually made.
How categories become the VAT breakdown
EN 16931 requires the document to carry a VAT breakdown: one group per combination of category and rate, each with its own taxable amount and tax amount, and the sum of those groups has to reconcile with the document total to the cent.
That reconciliation is a frequent source of rejections when totals are carried over from another system. Our generator sidesteps it by recomputing the breakdown from the lines rather than accepting a stated total, so the document cannot disagree with itself.
Questions people actually ask
- Which VAT category code do I use for reverse charge?
- AE. The rate must be zero, because the buyer accounts for the VAT rather than you. A line marked AE carrying a positive rate is a contradiction and gets rejected.
- What is the difference between Z, E and O?
- Z is zero rated, meaning the supply is taxable but at a rate of zero. E is exempt, meaning it is within the scope of VAT but not taxed. O is outside the scope of VAT entirely. All three require a rate of zero, and which one applies is a tax question rather than a formatting one.
- Which code covers an intra-community supply?
- K, VAT exempt for EEA intra-community supply of goods and services. Rate zero, and the counterparty's VAT identifier normally has to be present and valid for the exemption to hold.
- Why does my standard rated line fail?
- A line marked S must carry a rate above zero. If you meant a zero rated supply, the category is wrong rather than the rate: use Z, E or whichever category actually describes the supply.
- What are L, M and B?
- Regional codes. L is the Canary Islands general indirect tax, M covers production, services and importation in Ceuta and Melilla, and B is transferred VAT in Italy. You will not need them unless you are invoicing in those territories.
- Can one invoice mix categories?
- Yes, and it is common. Each rate and category combination becomes its own VAT breakdown group, with its own taxable amount and tax amount. Our generator computes those groups from the lines rather than trusting a stated total.