Every line on an e-invoice carries a VAT category code, and some lines also carry an exemption reason code. It looks like a technical detail, but it is a tax statement: you are telling the Authority why the standard rate was not charged on that line. That is why the Zakat, Tax and Customs Authority treats any non-compliant use of the exemption reason code as a breach of compliance requirements, and it has pointed to four cases that keep recurring on invoices.
The four categories
The Authority accepts only four VAT categories on lines (BR-KSA-18):
| Code | Category | Exemption reason |
|---|---|---|
S | Standard rate (15%) | Never stated |
Z | Zero rate | Required, from the zero-rate codes |
E | Exempt | Required, from the exemption codes |
O | Out of scope | Required, with text explaining why |
The golden rule: the code must belong to the line's own category. An exemption code on a zero-rated line, or any code on a standard-rated line, is a contradiction the Authority does not accept.
The exemption reason codes
The codes are published in the e-invoicing implementation standard, and each comes with fixed text it must match.
Zero-rate codes (Z):
VATEX-SA-32export of goods andVATEX-SA-33export of services — covered in export invoices.VATEX-SA-34-1toVATEX-SA-34-5: international transport of goods and passengers, services connected to it, and supply of a qualifying means of transport.VATEX-SA-35medicines and medical equipment,VATEX-SA-36qualifying metals,VATEX-SA-MLTRYqualified military goods.VATEX-SA-EDUprivate education to a citizen andVATEX-SA-HEAprivate healthcare to a citizen — both require the buyer's national ID on the invoice (BR-KSA-49).
Exemption codes (E):
VATEX-SA-29financial services andVATEX-SA-29-7life insurance.VATEX-SA-30real estate transactions.
Out of scope (O): VATEX-SA-OOS, with text explaining why the supply is outside the scope of VAT altogether.
One invoice cannot carry two different reasons for the same category: each category on an invoice has one reason.
The four cases the Authority flagged
1. An exemption reason on a standard-rated line
A line categorised S is given an exemption reason code, although the supply is standard-rated and falls under no exemption. This usually happens when the system fills the field with a default for every line. The fix: an S line carries no reason, and the field is removed rather than left with a value.
2. An exemption code on a zero-rated line
A line categorised Z with a code meant for E exemptions, such as VATEX-SA-29 for financial services. Zero-rating and exemption are not the same thing: the first is a taxable supply at a rate of zero on which related input VAT can be recovered; the second is an exempt supply on which it cannot. So they behave differently for input VAT and on the return. The fix: settle the nature of the supply first, then choose the category, then the code from that category's list only.
3. An export code on an invoice not classified as an export
A Z line with a correct export code, while the invoice itself is classified as a regular invoice. An export invoice has a flag in the invoice type: the fifth position of the flag string is 1, not 0. An export code without the export flag makes the document say two contradictory things.
4. An export code on a supply inside the Kingdom
The most serious case: a line zero-rated with an export code, when the supply was made inside the Kingdom to a buyer there. The error is not only in the format but in the tax itself: a supply that should have carried 15% went out at zero. It happens often when the export code is the default for every zero-rated line.
Why it matters more than it looks
Exemption codes do not stay on the invoice. They decide where the line falls on the VAT return: domestic zero-rated sales in one box, exports in another, exempt sales in a third. A wrong code produces a return that does not match the e-invoicing data — exactly the difference between Fatoora and the return the Authority watches for. And a document already submitted is not corrected by editing it but by a credit or debit note.
A quick checklist
- No default exemption reason in any system; the seller chooses the reason for each case.
Slines without a reason;Z,EandOlines with a reason from their own list only.- Export code = export invoice, and a buyer outside the Kingdom.
- Education and healthcare to a citizen = the national ID on the invoice.
- Review the period's codes before preparing the return, not after.
How this looks in alFatora
In the alFatora app, and through the alFatora Connect API as well, the same rules run on every document before it is sealed:
- No default reason: a zero-rated or exempt line asks you to choose the reason, and a line without one is not issued.
- A reason from the line's category only: a standard-rated line offers no reason list, and a code from another category is refused before submission.
- The export code classifies the invoice: it sets the export flag automatically, and is refused for a buyer addressed in the Kingdom.
- Education and healthcare to a citizen do not pass without the buyer's national ID.
- The VAT return puts each line in its box according to its reason, with the documents behind every figure.
See also the most common Fatoora rejection errors and e-invoicing violations and penalties.
Frequently asked questions
Do I state an exemption reason on a standard-rated line?
No. A line categorised S at 15% never carries an exemption reason code, and entering one is among the cases the Authority treats as incorrect use.
What is the difference between zero-rated and exempt on an invoice?
Zero-rated (Z) is a taxable supply at a rate of zero, with related input VAT recoverable; exempt (E) is a supply on which it is not. Each has its own reason codes, never used for the other.
When do I use the export code VATEX-SA-32?
Only when exporting goods to a buyer outside the Kingdom, with the invoice classified as an export invoice. Using it for a supply inside the Kingdom wrongly charges zero instead of 15%.
Was this useful? Review alFatora on Google.