What does Phase 2 actually require?
E-invoicing is enforced by the Zakat, Tax and Customs Authority (ZATCA) in two phases. Phase 1, the Generation phase, became enforceable on 4 December 2021 for all taxpayers except non-residents. Phase 2, the Integration phase, started on 1 January 2023 and is rolled out in waves by taxpayer group1. In Phase 2 it is no longer enough for your system to produce an electronic invoice: the system must be integrated with ZATCA’s systems2.
ZATCA’s detailed guidelines split integration into two tracks by invoice type3:
- Tax invoices (usually B2B): your system sends the invoice as XML to the FATOORA platform through an API for clearance. FATOORA validates it, adds the cryptographic stamp and a QR code, and sends it back cleared. The guidelines make clearance a prerequisite for sharing the invoice with the buyer, with exceptions they set out for when the platform cannot be reached3.
- Simplified tax invoices (usually B2C): your system stamps the XML itself with a cryptographic stamp identifier (CSID) issued by ZATCA, adds a QR code in the required format, gives the buyer a copy at once, and then reports it to FATOORA within 24 hours of generating it3.
- Clearance does not apply to simplified invoices. Invoices may be generated as XML or as PDF/A-3 with the XML embedded, but only XML is submitted to FATOORA3.
- The e-invoice generation solution (EGS) has to be onboarded with ZATCA before it sends anything3.
When is my company’s Phase 2 deadline?
ZATCA says it will notify taxpayers of their Phase 2 wave at least six months in advance1. You don’t have to guess the date: the notice arrives and the clock starts from it. ZATCA sets the waves itself, by the taxpayer groups it announces on its roll-out page1.
You may not be waiting for a notice at all. The roll-out page says the deadline for waves 1 to 9 has passed and every taxpayer in them must already be integrated, and the latest wave it listed when we read it is wave 25: annual revenues subject to VAT above SAR 187,500, with an integration deadline of 1 February 2027, and more waves to be announced1. If your notice has arrived or your deadline has passed, the steps below are the same, fitted to the time you have left rather than six months.
Six months is comfortable if you start early and tight if you wait. This is the plan we suggest from the day the notice arrives:
- Month 1: list every place your system issues an invoice, a credit note or a debit note, and mark each as a tax or a simplified invoice.
- Month 2: compare your invoice data with the required fields and list what’s missing (buyer details, tax category codes, numbering, the previous invoice hash).
- Month 3: build the integration layer: XML generation, stamping, the QR code, submission for clearance or reporting, and a log of every FATOORA response.
- Month 4: test the invoices and fix every error, then you onboard your system on FATOORA from your own ZATCA account, with us guiding each step.
- Month 5: a pilot on a limited number of real invoices, with daily checks on anything rejected or delayed.
- Month 6: full go-live before the deadline, and a short handover so the accounts team can read each invoice’s status.
A compliant off-the-shelf product, or integrate what you have?Integration isn’t right for every company. Sometimes moving to a ready-made product is cheaper.
| Your situation | What we suggest | Why |
|---|---|---|
| You use off-the-shelf accounting software | Ask your vendor about Phase 2 support and switch it on. | The vendor carries the integration and its updates; your cost stays low. |
| Few invoices, simple processes | Move to a ready-made product that supports Phase 2. | A custom integration for a handful of invoices isn’t worth the cost. |
| A custom system that runs your whole operation What we build | We connect it to FATOORA as it is. | Replacing it means migrating data, retraining staff and changing how you work. |
| Several systems issue invoices (POS, online store, internal system) What we build | One integration layer that takes invoices from all of them. | One place to stamp, submit and track instead of three. |
How we connect a custom system
We don’t touch your sales or stock logic. We add a small layer beside your system that takes each invoice once it’s issued, does what Phase 2 requires, and hands the result back: cleared with ZATCA’s stamp, reported, or rejected with the reason.
- Your system issues the invoice
- Convert to XML
- Stamp and QR
- Clear or report
- Store the response, show the status
- Onboarding of the EGS with FATOORA, managing and renewing the stamp identifiers (CSIDs), and keeping the keys somewhere only the system can reach.
- Retries: when FATOORA doesn’t answer, the layer retries at intervals and keeps evidence of each attempt, as the guidelines ask3.
- A status screen for the accounts team: every invoice, its state and the reason for any rejection, instead of digging through logs.
- Archiving of the invoices and FATOORA’s responses exactly as they were.
What we need from you to start
- ZATCA’s notice, if it has arrived, and its date, so we can count the time left before your wave.
- A sample of every invoice type your system issues: tax, simplified, credit note and debit note, with customer data you don’t need to share removed.
- Access to the invoice data once issued: the database, export files or an API, and the person on your team who knows the system from the inside.
- Your VAT registration details for the entity and its branches, and how many devices or points of sale issue invoices.
- Someone from the accounts team to review the test results with us and sign off the go-live.
If the original developer of your system is still around, that saves time; if not, we read the system and work from its data directly.
Where is the invoice data kept?
Invoices carry customer names, VAT numbers and addresses, and some of that is personal data. The integration layer runs on hosting you own, which can be inside the Kingdom, and we set it up for you. If any service abroad is involved, sending personal data outside Saudi Arabia is governed by Article 29 of the Personal Data Protection Law, which among other conditions limits it to the minimum personal data needed5; SDAIA’s transfer regulation sets out the detail4. Submissions to FATOORA itself go to a Saudi government authority.
Questions people ask
It depends on your wave. ZATCA says it notifies taxpayers of their Phase 2 wave at least six months in advance, so your time starts from the notice.
A tax invoice is sent to FATOORA to be cleared and stamped before the buyer receives it. A simplified invoice is stamped by your own system, given to the buyer at once, then reported to FATOORA within 24 hours.
In most cases, yes. We add an integration layer beside it that handles the XML, the stamp and the submission; we only need access to each invoice’s data once it is issued.
Not necessarily. If your off-the-shelf software supports Phase 2, switching it on may be enough; if your system is custom-built, integrating is usually cheaper than replacing it.
It depends on how many places issue invoices and the state of their data. We estimate it after the discovery call, put it in the quote, and plan to finish before your wave’s deadline.