Reviewed

ZATCA Phase 2 Requirements: A Step-by-Step Fatoora Onboarding Checklist for SMEs

What your system must do, how onboarding works and a checklist to get it done

Illustration: a purple checklist linked to a secure cloud server, with an OTP keypad, a certificate, a key, a laptop and a receipt printer

ZATCA Phase 2 requirements come down to one change: your invoicing system has to connect to ZATCA's Fatoora platform, stamp every invoice cryptographically and send it in ZATCA's XML format. For an SME, most of the work is onboarding each invoicing device on the Fatoora portal and passing ZATCA's compliance checks before your integration date. Here's the checklist, step by step.

The short answer

  • What Phase 2 requires: a tamper-resistant e-invoicing solution that issues XML invoices with a UUID, a counter that can't be reset, a hash chain linking each invoice to the last, a QR code and a cryptographic stamp, and that connects to ZATCA through its APIs.
  • How you get connected: log in to the Fatoora portal, generate a one-time password (OTP) for each e-invoicing unit, let your software request a compliance certificate, pass the compliance checks, then receive a production certificate (CSID).
  • What happens after go-live: standard (B2B) tax invoices are cleared by ZATCA before your customer gets them; simplified (B2C) invoices are reported within 24 hours.
  • When: ZATCA rolls Phase 2 out in waves and notifies each group at least six months ahead. The current wave, Wave 25, must integrate by 1 February 2027.

What Are the ZATCA Phase 2 Requirements?

Phase 2, the Integration Phase, has applied in waves since 1 January 2023, as ZATCA's roll-out phases page explains. It sits on top of Phase 1: you still issue electronic invoices with all the required fields, but now your system must also meet the technical rules in ZATCA's E-Invoicing Implementation Resolution and integrate with Fatoora. In plain terms, the resolution asks for this:

RequirementWhat it means for you
Tamper resistanceThe system must prevent and reveal any attempt to alter or delete invoices, notes or logs.
UUID and sequence numberEvery invoice and note gets a unique ID as well as its sequential invoice number.
Invoice counterA counter that goes up with every invoice and note and can never be reset.
Hash chainEach invoice carries a hash of the previous one, so a deleted or replaced invoice shows up.
QR codePrinted on the invoice so anyone can scan it for a basic check.
Cryptographic stampSimplified invoices are stamped by your system; standard invoices are stamped by ZATCA at clearance.
XML and APIsInvoices go to ZATCA as XML, over an internet connection, using ZATCA's published APIs.
Offline archiveYou can save and export your invoices without an internet connection.

The resolution also lists prohibited functions. Your system must not allow anonymous access, default passwords or missing session management. It must not allow editing or deleting issued invoices or logs, inaccurate timestamps or a counter reset, and each unit must run only one invoice sequence at a time. If your software allows any of these, it isn't ready.

The QR code also grows in Phase 2. For simplified invoices, the resolution lists nine fields: seller name, seller VAT number, timestamp, invoice total with VAT, VAT amount, the hash of the XML invoice, the ECDSA signature, the ECDSA public key, and the signature of the stamp issued by ZATCA's certificate authority.

Before You Start: Count Your E-Invoicing Units

ZATCA calls each invoicing device or system an EGS unit (e-invoice generation solution). Each one that signs and sends invoices needs its own certificate, so count them before you touch the portal.

ZATCA's Detailed Technical Guideline gives the rules of thumb. A smart POS device that signs and sends its own invoices needs a CSID on the device. If your tills are simple terminals and a server stamps the invoices before the customer sees them, the CSID sits on the server instead.

Here's how that might look for a made-up business. Confirm your own count with your provider.

Where invoices are made (hypothetical SME)Invoice typesLikely CSIDs
Office PC issuing B2B tax invoices from a cloud systemStandardDepends on the system: ask your provider
Two smart POS tills that sign their own receiptsSimplifiedTwo, one per till
Van salesman's phone app that signs and sends invoicesStandard and simplifiedOne for the phone
Old desktop billing software with no Phase 2 supportNot compliantNone: replace or upgrade it

Fatoora Onboarding Step by Step

This is the onboarding flow from ZATCA's guideline and the Fatoora portal user manual. Your software does most of it.

Step 1: Log in to the Fatoora portal

Go to fatoora.zatca.gov.sa, or click the Fatoora icon on ZATCA's website, and sign in with your ERAD credentials: your TIN or the email registered with ZATCA, and your password. These are not the same as Developer Portal credentials.

Step 2: Generate OTPs for your units

Choose "Onboard new solution unit/device" and enter how many OTPs you need. You can generate up to 100 in one request. Each OTP is valid for one hour, so have your software open and ready before you generate them. Some solutions can read the OTP automatically when you open the portal from the device itself, but that works for one unit at a time.

Step 3: Enter the OTP and send the CSR

Enter the OTP in your e-invoicing software. The software then sends a certificate signing request (CSR) to ZATCA, with details about your business and the unit (see the table in the next section). In return it receives a compliance CSID, which the unit uses only for the compliance checks.

Step 4: Pass the compliance checks

Your software now submits sample documents for every invoice type it declared. A unit set up for standard invoices sends a standard tax invoice, debit note and credit note; a unit for simplified invoices sends the simplified versions. All checks must pass. If any fail or are left incomplete, ZATCA's guideline says the unit has to start again with a new OTP and CSR.

Step 5: Receive the production CSID

Once the checks pass, ZATCA's certificate authority issues the production CSID and Fatoora sends it to the unit. From now on the unit talks to ZATCA directly through the APIs; you don't log in to the portal to send invoices.

Step 6: Check the list of units

Back in the portal, "View list of solutions and devices" shows every onboarded unit, its CSID status (active, expired or revoked) and the certificate expiry date. Check every unit you counted is there and active.

The CSR Details Your Software Will Ask For

Most of these fill in automatically, but check them before you start:

FieldWhat to enter
Common nameA name or asset tracking number for the unit
Serial numberSolution provider name, model or version and serial number (usually filled by the software)
Organization identifierYour VAT registration number: 15 digits, starting and ending with 3
Organization unit nameYour branch name (for VAT groups, the 10-digit TIN of the member whose unit it is)
Organization nameYour taxpayer name
CountrySA
Invoice type1000 for standard only, 0100 for simplified only, 1100 for both
LocationWhere the unit is mainly used, preferably as a Saudi National Address short address
IndustryThe business category the unit invoices for

The invoice type matters later. A unit onboarded as 1000 can't send simplified invoices, and vice versa, so pick 1100 for any device that does both.

Test Before You Go Live

ZATCA offers a Developer Portal with a Compliance and Enablement Toolbox (an SDK that validates XML invoices and QR codes offline) and an integration sandbox for test onboarding and test submissions. There is also a Fatoora simulation portal, described in the same user manual, that mirrors onboarding without touching your live account. If you use a provider, ask whether they've tested your exact setup there.

You don't strictly need software from ZATCA's Solution Providers Directory. ZATCA calls it indicative, and the compliance responsibility stays with you either way.

After Go-Live: Clearance, Reporting and Renewals

  • Clearance (B2B): under the Implementation Resolution, ZATCA checks each standard tax invoice and its notes and stamps the ones that pass before you share them with the buyer. The invoice has to clear before the transaction is complete.
  • Reporting (B2C): simplified invoices go to the customer immediately and must be reported to ZATCA within 24 hours of being generated.
  • XML only: your system submits XML to ZATCA, not PDF/A-3 files.
  • Internet outages: the resolution's annex expects invoices to queue while the system stays usable, then report once the connection is back.
  • Renewals: renew each CSID before it expires, using "Renewing Existing Cryptographic Stamp Identifier (CSID)" on the portal and a new OTP. ZATCA revokes the old certificate and issues a new one.
  • Revocation: revoke a unit's CSID if a device is lost, stolen, sold, compromised or onboarded by mistake. This can't be undone, though the device can be onboarded again.
  • VAT group changes: creating or joining a VAT group triggers automatic revocation of members' CSIDs, and the group's representative member has to onboard the units again under the group's VAT number.

Missing your date can lead to fines that rise with each repeat; our Wave 25 guide sets out ZATCA's penalty table.

Your ZATCA Phase 2 Checklist

  1. Confirm your wave and date from your ZATCA notification and your revenue subject to VAT.
  2. Check your software against the requirements table above, including the prohibited functions.
  3. List every EGS unit: office systems, servers, POS tills, van phones and branch systems.
  4. Agree who does what with your provider: who generates OTPs, who enters them, who handles failed checks.
  5. Check portal access: make sure someone can log in to Fatoora with your ERAD credentials.
  6. Prepare the CSR details: VAT number, branch names, National Address and the invoice type for each unit.
  7. Clean your master data: customer VAT numbers and addresses for B2B invoices, item names and VAT treatment.
  8. Test in simulation with a tax invoice, a credit note, a debit note and a POS receipt.
  9. Onboard in production well before your deadline, one batch of units at a time, within the one-hour OTP window.
  10. Verify the units list in the portal, and note each certificate's expiry date for renewal.
  11. Train your staff on what to do when ZATCA rejects an invoice or the connection drops.

How Raad ERP Helps

Raad ERP is a cloud ERP for trading, van sales, retail and manufacturing businesses in the GCC. For Saudi Arabia it covers ZATCA Phase 1 and 2, with a QR code on every invoice and receipt and Phase 2 invoices sent to ZATCA automatically in the background. Invoices are made in Arabic and English, in the office, the shop or the van.

Supermarkets and grocery stores can add Raad POS, which prints ZATCA receipts with the QR code and feeds every sale into Raad ERP. When you move over, our team imports your products, customers and opening balances and trains your staff, which is a good moment to clean the data Phase 2 depends on. See Raad ERP for the full feature list.

Frequently Asked Questions

What are the ZATCA Phase 2 requirements?
Your e-invoicing solution must be tamper-resistant and issue XML invoices with a UUID, a counter that can't be reset, a hash of the previous invoice, a QR code and a cryptographic stamp. It must connect to ZATCA's Fatoora platform through APIs, so standard invoices are cleared and simplified invoices are reported within 24 hours.
How do I onboard on the Fatoora portal?
Log in to the Fatoora portal with your ERAD credentials, choose to onboard a new solution unit or device, and generate an OTP for each unit. Enter the OTP in your software, which sends a CSR and receives a compliance CSID. After the compliance checks pass, ZATCA issues the production CSID.
How long is a Fatoora OTP valid?
One hour from when it is generated. You can generate up to 100 OTPs in one request, so have your devices ready before you start.
Do I need a separate CSID for every POS till?
If a till signs and sends its own invoices, yes. If the tills are simple terminals and a server stamps the invoices before the customer sees them, the CSID can sit on the server instead. Confirm the setup with your software provider.
What happens if the compliance checks fail?
The unit has to start the onboarding again with a new OTP and a new CSR, then repeat the compliance checks.
What is the difference between clearance and reporting?
Clearance applies to standard tax invoices (B2B): ZATCA checks and stamps the invoice before it goes to the buyer. Reporting applies to simplified tax invoices (B2C): the customer gets the invoice straight away and it is reported to ZATCA within 24 hours.
Do CSIDs expire?
Yes. Each certificate has an expiry date shown in the Fatoora portal. Renew it before it expires using a new OTP; ZATCA revokes the old CSID and issues a new one.
Do I need software from ZATCA's directory?
No. ZATCA describes its Solution Providers Directory as indicative. Any solution that meets the requirements is compliant, but the responsibility stays with you.

Getting Ready for Phase 2? WhatsApp Us

Tell us how many tills, devices and branches you invoice from, and we'll walk you through what Phase 2 onboarding looks like for your setup.

WhatsApp "ZATCA" to +971 56 102 1565 and we'll reply quickly.

Selling in the UAE too? It's a different system. Read UAE E-Invoicing 2027 Made Simple.

This article is general information only and is not legal, tax or professional advice. Regulations, including ZATCA, UAE Ministry of Finance and FTA requirements, change often, and this content may be incomplete, out of date or contain errors. Before you act on it, check with the official authority (ZATCA in Saudi Arabia, or the Ministry of Finance or Federal Tax Authority in the UAE) or a qualified tax adviser. Raad ERP makes no warranties about the accuracy or completeness of this content and accepts no liability for any loss arising from reliance on it. Links to third-party websites are provided for convenience and are not endorsements.

Related reading