VAT category code must contain one of the values (S, Z, E, O).
What does this mean?
The list is closed at four codes: S standard rate 15%, Z zero-rated, E exempt, and O outside the scope of VAT.
The code is not the rate: the category is a letter and the rate is a number, and each has its own field. Writing 15 where S belongs fails here.
The European specification knows other codes, such as AE for reverse charge — those are not adopted in the Saudi version, which is why imported systems fail here so often.
Why does it happen?
Ordered from the most common to the least — your cause is most likely the first or the second.
- An integration that passes the tax rate, or a name such as zero or exempt, in the category field instead of the adopted letter.
-
The right letter in the wrong case: a lower-case
sis notS. -
A system built on the European specification sending
AEor other codes outside the four. - Confusing zero-rated with exempt during setup, then fixing it by writing an invented value.
How to fix it
2 steps, then send the invoice again.
-
1
Correct the code to the adopted letter
Look at what the line really is: a taxable local sale gives
S; exports, medicines and other zero-rated goods giveZ; financial services, life insurance and the like giveE; and anything outside the scope of VAT givesO. Then resend the same invoice. -
2
Separate the category from the rate in the integration
Have the integration pass the letter in the category field (BT-151) and the rate in its own field, and never derive one from the other by guessing. Zero-rated and exempt are both 0%, but their categories differ and so does their VAT treatment.
Once corrected, send the invoice again. A rejected invoice was never recorded with the Authority, so it needs no credit note — send the corrected invoice itself.
Does ZATCA Tools prevent it?
Yes. The category code in ZATCA Tools is generated by the system from the four adopted values and is never typed by hand, so a code from outside the list never reaches the Authority.
Related codes
BR-KSA-84
BR-KSA-11
Frequently asked questions
What is the practical difference between Z and E when the rate is zero either way? +
Z is a taxable sale at 0% and you may deduct the input VAT on it; exempt E is outside that deduction. The wrong letter does not change the invoice total, but it does change your VAT return.My European system sends AE for reverse charge — what do I do? +
AE in this field. Reverse charge cases are handled by another mechanism in the local specification, so do not pass the European code straight through.ZATCA Tools builds the signature, the PIH, the counter and the encoding for you, and validates your data before it is sent. Completely free for now, and no credit card.
Start for free