The message General tax percentage must be zero appears when your accounting software sends an invoice to the National Invoicing System (JoFotara) and the invoice comes back rejected with status code 400. It means that the invoice has a line with a 0% tax rate, but the tax category sent with that line is S, and this category is not used with a zero rate.
The fix starts with the invoice lines. Find the lines that carry a 0% rate and change their category to Z if the goods or service are exempt, or to O if they are subject to the zero rate. On export invoices and the other non-local types, the guide specifies O for all goods. Then resend the invoice with the same invoice number and the same identifier.
This article explains the message as it appears in the technical guide published by the Income and Sales Tax Department (ISTD), version 1.5, and the link between the category field and the rate field on an invoice line. It then sets out the invoice types for which the guide requires a 0% rate, and the steps to fix the invoice before you resend it.
What General tax percentage must be zero means
The technical guide describes status code 400 (Bad Request) as an error in the values sent inside the XML file, and the detail is written in the EINV_MESSAGE field of the response file. One of the messages the guide lists under this code is General tax percentage must be zero, and it explains the message in these words.
«يدل بأن نسبة الضريبة حينما تكون 0% يجب ان يكون ال Category الخاص بالضريبة قيمته O وليس S حسب الجدول الموجود صفحة رقم (42)».
In English, the explanation says that the message means that when the tax rate is 0%, the tax category must have the value O and not S, according to the table on page 42. ISTD publishes this guide in Arabic only; the English here is our rendering, and the Arabic text is the authority.

So the message concerns two fields on a single invoice line, the tax rate and the tax category. It does not mean that the zero rate itself is wrong. It means that the category sent with it does not fit it.
The explanation refers to the table on page 42 of the guide. That table gives two categories for a 0% rate, not one. Read together with the table, the message therefore means that at a 0% rate category S is not used, while Z is used for an exempt item and O for a zero-rated item.
An invoice rejected with this message has not been accepted. No QR code comes back for it, and its status in the response file is NOT_SUBMITTED. To see where this message sits among the other rejection codes, read our article JoFotara Error Codes: Why an Invoice Is Rejected and How to Fix It.
The tax category and the tax rate on an invoice line
Every line on a general sales tax invoice carries two fields that go together. The first is the tax category, sent in the cbc:ID element with the attribute schemeID="UN/ECE 5305". The second is the general tax rate on the goods or service, sent in the cbc:Percent element.
The table on page 42 sets the three values allowed for the category and the rate that matches each one.

Both Z and O match a 0% rate. The difference between them lies in how the goods or service are described, not in the number. S is reserved for nonzero rates only. This is the rule the message checks, so a line with a 0% rate and category S gets the invoice rejected.
The wording of the message does not mean that Z is rejected. The table itself accepts it at a 0% rate, and the guide’s general sales tax invoice examples send a line for an exempt item with category Z and a 0% rate. In one of those examples, a line of 10 units at a unit price of 5 is sent with category Z, so its tax is zero and its total is 50. Our article on taxable and exempt lines on one invoice works through that example.
Exempt and zero-rated
Choosing Z or O is not a technical decision in the invoice file. It follows the tax treatment of the goods or service. The General Sales Tax Law distinguishes between exempt goods and services and goods and services subject to the zero rate, and one effect of that difference is that input tax is not deducted on exempt items. The lists of both groups and their examples are in our article General Sales Tax in Jordan: Rates, Registration, Filing.
So review the item’s category in your software with your accountant before you change it, and do not switch between Z and O just because the invoice was rejected. Both pass this check, but only one of them describes the item correctly.
Invoice types that require a 0% rate
The National Invoicing System reads the invoice type from the InvoiceTypeCode element. Its value shows whether the invoice is new or a return, and its name attribute holds a three-digit code. The first digit of that code is the trade type, the second is the payment method (cash or receivable), and the third is the tax family. For each trade type, the guide sets a condition in its conditions column.
The guide sets no tax rate condition on a local invoice. For the other five types, it requires a 0% tax rate on general sales tax and special tax invoices. Category S is therefore not valid on the lines of these invoices, because it is reserved for nonzero rates.
For general sales tax invoices, the table on page 42 also sets the category required on these types.
«في حال كان نوع الفاتورة تصدير أو مناطق تنموية أو ترانزيت أو تجارة خارجية أو تنازل داخل المنطقة الحرة يشترط أن تكون نسبة الضريبة 0% وتعبأ القيمة O لجميع السلع».
In English, the note says that when the invoice type is export, development zones, transit, foreign trade or assignment within the free zone, the tax rate must be 0% and the value O is entered for all goods. ISTD publishes this guide in Arabic only; the English here is our rendering, and the Arabic text is the authority.
The lines of these invoices are therefore sent with category O. Choosing between Z and O according to the item applies to the local invoice. The rules for two of these types are covered in our articles on the export invoice and the development zone invoice.
For development zone invoices, the guide adds two more conditions. The buyer’s tax number is mandatory and must be registered in the development zones, and there must be a valid exemption letter entered on the financial system. This case has its own, separate rejection message.
The rate condition does not concern income invoices. According to the guide, the lines of an income invoice carry no tax data at all, and the conditions column puts no rate condition on its types, apart from the buyer’s tax number condition for development zones.
Keep in mind that the submission file declares the invoice type but does not decide it alone. The third digit follows your registration with ISTD, and the trade type follows what the sale actually is. Changing the code in the file is not enough to get around the rate condition.
Cases that lead to General tax percentage must be zero
The rule is the same in every case, but the path to it differs. These cases produce the message, going by the wording of the rule. If your invoice matches one of them, start your check there.
- An exempt or zero-rated item with category
S. If your software putsSon every line and the rate is then lowered to 0% for a particular item, the line goes out with a zero rate and categoryS. - A non-local invoice type with local line data. This happens when the invoice is, for example, an export or transit invoice, and its lines are sent at 0% while keeping category
S, which belongs to lines with nonzero rates. - The rate changed without the category. This happens when the rate on a line is changed to zero by hand and the category field keeps its earlier value.
In all three cases the fix is in the category field, not in the rate. The 0% rate is correct, and it is the category that does not fit it.
Steps to fix the invoice before you resend it
- Read the message as it came back. Save the
EINV_MESSAGEtext and the invoice statusEINV_STATUSin your log before you change anything, because they are your reference if the rejection happens again. - Find the lines with a 0% rate. Check the
cbc:Percentelement on every line and pick out the lines where its value is zero. - Match the category to the item. Set the category to
Zif the goods or service are exempt, and toOif they are subject to the zero rate. Do not leaveSon any line with a 0% rate. - Check the invoice type. If the invoice is an export, development zones, transit, foreign trade or assignment within the free zone invoice, the guide requires a 0% tax rate, and the table on page 42 says to enter the value
Ofor all goods. Make sure every General Sales Tax line carries that rate and that category. - Recalculate the line and the totals. The tax on a line with a 0% rate equals zero, and the line total equals its value after the discount. If the tax on any line changed, match the invoice totals to the sum of the lines so that the invoice does not move on to another rejection message.
- Resend with the same number and identifier. When you resend, the guide recommends using the same invoice number and the same unique identifier (UUID), not generating a new identifier.
- Judge the result by the invoice status. The status
SUBMITTEDmeans the invoice was accepted, and a QR code comes back with it. Do not rely on the HTTP code alone.
How it differs from a tax rate that is not accepted
This message is different from another case that looks close to it, which is sending a tax rate that the cbc:Percent field does not accept at all. The message General tax percentage must be zero comes with status code 400, the rate in it is accepted (zero), and the error is in the category sent with it.
A rate that is not in the list of values the field accepts is listed by the guide among the causes of status code 500, not among the messages of code 400. That list is a technical validation list that sets what the field accepts at submission. It is not a table of the General Sales Tax rates that the law imposes. The values in that list and how they relate to each category are set out in our article JoFotara Tax Categories: S, Z and O Explained.
How Qoyod helps
When you issue your invoice from accounting software, you do not write the XML file by hand. That is the job of Qoyod’s integration with the National Invoicing System. Qoyod builds the invoice file in UBL 2.1 format with its unique identifier (UUID) and sends it to the National Invoicing System without any manual intervention. Qoyod’s integration with the National Invoicing System works on this layer as follows.
- A check before sending. Qoyod checks each invoice at field level as it is created, covering the tax number, the document type and payment method, the General Sales Tax rate and whether the lines are complete, and alerts you to any error before the invoice is sent, to reduce rejections.
- Every invoice’s status in view. ISTD returns the invoice status and any error message, and Qoyod shows them in its status panel.
- Resending with the same identifier. The status panel lists invoices that were not sent and need to be resent, and when you resend one it keeps the same UUID.
The pre-send check is an alert, not a guarantee. It covers the four fields listed above. Accepting the invoice remains with JoFotara alone.
Where to go next
- The other rejection codes and messages. See our article JoFotara Error Codes: Why an Invoice Is Rejected and How to Fix It.
- The full picture of the system. How it works and how to connect your business to it are covered in our article Jordan’s National E-Invoicing System.
- The three categories in detail. See our article JoFotara Tax Categories: S, Z and O Explained.
E-invoicing and full accounting in one system
Qoyod is integrated with the National Invoicing System (JoFotara). You issue your invoice in Jordanian dinars from Qoyod, it is booked to your ledgers automatically and sent to the system, and once it is accepted it comes back with a QR code from the Income and Sales Tax Department.
Frequently asked questions
What does the message General tax percentage must be zero mean?
It means that the invoice has a line with a 0% tax rate that was sent with tax category S. The technical guide lists it among the messages of status code 400, and its explanation refers to the category table on page 42.
Does the National Invoicing System reject category Z at a 0% rate?
It does not, according to the table on page 42 of the technical guide. The table matches a 0% rate with two categories, Z for exempt goods or services and O for goods or services subject to the zero rate, and the only category rejected at that rate is S. On export invoices and the other non-local types, the same table says to enter O for all goods.
How do I know whether to use Z or O?
The choice follows the tax treatment of the goods or service, not the invoice file. An exempt item is sent with category Z and a zero-rated item with category O, and this applies to the local invoice. On export, development zones, transit, foreign trade and free zone assignment invoices, the guide specifies O for all goods. If you are not sure how an item is treated, review it with your accountant before you send the invoice.
Which invoice types does the guide require a 0% rate on?
The guide requires it on general sales tax and special tax invoices of five types, which are export, development zones, transit, foreign trade and assignment within the free zones. It sets no rate condition on the local invoice. The table on page 42 says to enter category O for all goods on general sales tax invoices of these types.
Do I generate a new unique identifier when I resend after the fix?
The guide recommends resending with the same invoice number and the same unique identifier. The rejected invoice was not accepted, and generating a new identifier may lead to a duplicate invoice.
References
- Income and Sales Tax Department (ISTD), technical guide for integrating with the National Invoicing System through the API, version 1.5 (in Arabic), 2026.
- ISTD’s National Invoicing System guides (in Arabic)
