Skip to Content
How-to

Send an invoice to ZATCA

Updated Markdown
On this page

On an onboarded journal, a confirmed invoice goes to ZATCA by itself: give the client the right data, then read the answer. Creating the invoice is explained in Customer invoices.

Before you start

Prepare the client

Open Contacts/Contacts and the client.

  • Company or Person at the top decides the kind of invoice: a company receives a standard invoice that ZATCA clears, a person a simplified one that ZATCA receives as a report.
  • With Saudi Arabia as country, the address has Building Number and Plot Identification, and the form shows Identification Scheme (Other ID by default) and Identification Number.
  • With the scheme Tax Identification Number, the number field disappears and the client's VAT number is required instead.
  • A line taxed at 0% for private education or healthcare to citizens (exemption codes VATEX-SA-EDU and VATEX-SA-HEA) needs the scheme National ID and its number.

Confirm the invoice

  1. Create the invoice in Accounting/Customers/Invoices on the onboarded journal. Give every product line a tax, and an invoice date that is not after today in Riyadh.
  2. Open the Actions menu and choose Confirm. When ZATCA's conditions are not met, confirmation is refused with Invalid invoice configuration: and what to fix.
  3. The header shows Electronic invoicing: To Send, and a blue banner reads The invoice will soon be sent to ZATCA (Saudi Arabia). The background job sends it shortly; click Process now to send it while you wait.

The Send dialog has a To ZATCA box, ticked while the invoice is still To Send: the invoice then goes to ZATCA before its PDF is made.

Read the answer

Answer What you see What to do
Accepted Sent; the note Success: Invoice accepted by ZATCA in the chatter; the XML attached and embedded in the PDF Nothing
Accepted with warnings Sent; a yellow note listing ZATCA's warnings Read the warnings
Rejected A red banner with ZATCA's codes and Retry; a red note with the rejected XML, which cannot be deleted Correct the client or company data and click Retry; for the invoice itself, Reset to Draft, correct and confirm again
No answer A yellow banner and the note Warning: Unable to Retrieve a Response from ZATCA Nothing: the job tries again, or click Process now
Blocked A red banner naming an earlier invoice, and Blocking Invoice Open the earlier invoice with Blocking Invoice and get it through first

A blocked invoice waits behind an earlier invoice of the same journal that got no answer. Once that one is accepted, the waiting invoices go at the next run of the job, or at once with Process now.

Correct with a credit note

An invoice sent to ZATCA is never cancelled there: it is corrected.

  1. On the invoice, open Actions and choose Credit Note.
  2. Pick one of the five ZATCA Reason choices, which replace the usual reason, for example In case of goods or services refund.
  3. Click Reverse, then confirm the credit note: it goes to ZATCA like an invoice.

Debit Note, next to Credit Note, adds to an invoice the same way, with Create Debit Note. A credit note typed by hand in Accounting/Customers/Credit Notes needs its ZATCA Reason in Other Info and the original invoice number in Customer Reference.

FAQ

Why is my invoice simplified?

The client is a Person. A client that is a company must be set to Company before the invoice is confirmed.

Can I reset an accepted invoice to draft?

In Production, no: Reset to Draft disappears once ZATCA accepted it; issue a credit note. Nor can an invoice that got no answer be reset until the answer arrives.

Where do I see all the invoices still waiting?

Add the Electronic invoicing column to the invoice list from its optional columns, or, in developer mode, filter on Electronic invoicing processing needed.

Was this page helpful?

Thank you for your feedback.