ZATCA e-invoicing software: a Phase 2 buyer checklist
In Saudi Arabia, compliant e-invoicing is no longer only about printing a QR code. Phase 2 connects each invoicing system to ZATCA's FATOORA platform, which clears business invoices and receives reports of consumer ones. Here is what that means for the software you choose, and an honest account of where NAQIX stands.
Phase 1 and Phase 2 in one paragraph each
Phase 1, generation, has applied since December 2021. VAT-registered businesses must issue invoices and notes from an electronic solution, with the required fields and, on simplified (consumer) invoices, a QR code. Handwritten invoices and editable word-processor templates do not qualify.
Phase 2, integration, started in January 2023 and is being rolled out in waves, grouped by revenue. ZATCA notifies the businesses in each wave in advance of their integration date. From that date, the business's invoicing solution must be onboarded with ZATCA and exchange invoices with FATOORA: standard (business-to-business) tax invoices are cleared by ZATCA before they are shared with the buyer, and simplified invoices are reported to ZATCA shortly after issue. Confirm your own wave and deadline with ZATCA's notification and your tax adviser.
What Phase 2 asks of the software
Phase 2 is technical, and most of the work sits inside the invoicing system rather than with your accountant. A compliant solution typically needs to:
- Onboard each invoicing unit. Each device or solution unit (ZATCA calls it an EGS unit) is registered with a one-time password generated in the FATOORA portal, passes compliance checks and receives a cryptographic stamp identifier (CSID).
- Produce structured XML. Invoices follow ZATCA's UBL-based XML format, with the required Arabic and seller fields.
- Sign and chain every document. Each invoice carries a unique identifier, a counter and a hash of the previous invoice, so the sequence cannot be quietly altered.
- Clear and report. Send standard invoices for clearance and wait for the response before sharing them; report simplified invoices within the required window.
- Handle failures. Retry when FATOORA is unreachable, and treat a rejected invoice as something to correct and re-issue, not resend unchanged.
- Keep certificates current. Renew the CSID before it expires, for every unit.
- Keep the evidence. Store the XML sent and the cleared XML returned, for the period the law requires.
Twelve questions to ask any ZATCA software vendor
- Is your Phase 2 connection live in ZATCA's production environment today, and since when?
- Is each branch or till its own onboarded unit, and how do we add a new branch later?
- What happens to an invoice when FATOORA does not respond: is it retried automatically, and can we see it waiting?
- How is a rejected invoice corrected and re-issued, and does the re-issued document get a new identifier and counter?
- Can a standard invoice be printed or shared before it is cleared? (It should not be.)
- Are credit notes and debit notes cleared and reported in the same way as invoices?
- Where can we see the status of every document: cleared, reported, reported with warnings, failed or rejected?
- Can we download the XML we sent and the cleared XML that came back?
- How are certificate expiry dates shown, and who is warned before a CSID expires?
- How are zero-rated and exempt lines given their exemption reason code?
- Can we test in ZATCA's sandbox or simulation environment, which have no legal effect, before going live?
- Which parts are included in our plan, and which need a third-party provider?
Ask to see each answer on screen, with a test company, rather than in a slide.
Where NAQIX stands today
We would rather you hear this from us than discover it later.
- Saudi tax invoices from your sales workflow. NAQIX issues Saudi tax invoices from the same sales workflow that posts to your ledger; the ZATCA QR prints for documents issued through a branch connected to ZATCA.
- The Phase 2 integration is built and has been tested against ZATCA's developer sandbox. It includes per-branch onboarding with a FATOORA one-time password, compliance checks, signing, clearance of standard invoices and reporting of simplified ones, credit and debit notes, automatic retries, re-issue of rejected documents with a new identifier and counter, XML downloads, and certificate expiry and renewal per branch.
- The production connection is not open yet. Until it is, NAQIX does not clear or report your live invoices with ZATCA. Branches can connect to ZATCA's test environments, whose documents have no legal effect, and the production option appears in the setup page only once it has been opened.
If your integration wave is approaching, ask the NAQIX team for the current status before you rely on it, and confirm your obligations and deadline with your tax adviser. The NAQIX page for Saudi Arabia carries the same caution: QR support alone does not establish clearance or reporting readiness.
Reviewing VAT before filing
E-invoicing does not file your VAT return. In NAQIX, the KSA VAT register lists invoices, credit notes and debit notes with buyer VAT numbers, identifiers and hashes for a period, and exports them as CSV or Excel for your accountant. It is a review register, not a filed return. The Tax & compliance page lists the Saudi features, and Sales & billing covers the invoicing workflow itself.
Preparing now, whatever software you use
- Find your ZATCA notification and note your integration date.
- List every branch, till and system that issues invoices; each may need onboarding.
- Complete your seller details in Arabic and English, and your customers' VAT numbers.
- Agree who watches rejected and failed invoices every day.
- Test with ZATCA's sandbox or simulation environment before your date.