ZATCA Phase 2 (Saudi Arabia)
Clearance, reporting and the hash chain handled for every invoice.
Phase 2 turned every Saudi invoice into a live exchange with ZATCA. TamilAccounting does that exchange as part of issuing the invoice — builds the UBL 2.1 XML, signs and stamps it, links it to the invoice before it, clears or reports it, and prints the QR — so your team just raises invoices.
ZATCA brings VAT-registered businesses into the Integration phase in waves and tells each business ahead of its date. Once your wave is called, invoices must flow through FATOORA — a PDF with a QR code is no longer enough.
Invoices issued from a system, not by hand, with the basic QR code on simplified invoices.
Your invoicing system is onboarded with ZATCA and exchanges every document with FATOORA.
Do it in the ERP you already invoice from — no middleware, no separate portal for each invoice.
Phase 1 software printed a QR and stopped there. Phase 2 needs a live, cryptographically linked conversation with ZATCA for every document — and the gaps show up fast.
A standard tax invoice has to be cleared by ZATCA before the buyer receives it. Uploading or retyping it on a separate tool means the invoice sits while someone does the paperwork.
Cost: delayed deliveries and delayed payment.
Every simplified (B2C) invoice handed over the counter must be reported to ZATCA within 24 hours. On a busy day, remembering to send each one by hand is not realistic.
Cost: late reports and penalties you never saw coming.
Each invoice carries the hash of the one before it and its own counter. Submit out of order, or count a rejected invoice as sent, and everything after it is rejected too.
Cost: days spent unpicking a chain nobody can see.
Onboarding means a certificate request, an OTP from the FATOORA portal, a compliance certificate, sample documents and then a production certificate. Most teams have never done it.
Cost: consultants, delays and a go-live date that slips.
Exports, zero-rated, exempt and out-of-scope lines each need the right tax category and a reason code on the invoice, or ZATCA rejects the whole document.
Cost: rejected invoices on exactly the deals that matter most.
ZATCA can answer a submission and still refuse the invoice. Software that treats any reply as success leaves you believing invoices are compliant when they are not.
Cost: non-compliant invoices discovered only at audit.
You raise the invoice. Everything ZATCA needs happens behind it — automatically on save, or with one button on the invoice if you prefer to control the moment.
Recorded on a demo company: a B2B invoice cleared, a counter sale reported, the hash chain moving forward and the QR on the printed invoice.
Clearance, reporting and the hash chain handled for every invoice.
Tax-inclusive and tax-exclusive prices, tax groups and how the same item stays correct.
No separate e-invoicing tool, no file uploads, no retyping. The same invoice your team already raises is the one ZATCA receives.
When the buyer has a Saudi VAT number, the invoice is a standard tax invoice and goes for clearance: ZATCA checks it and returns it cleared, and that is the version your buyer gets. For walk-in and consumer sales the invoice is simplified: it is stamped, handed over at once and reported to ZATCA as soon as it is saved — well inside the 24-hour window.
Every invoice is signed with the hash of the previous accepted invoice and its own sequential counter. TamilAccounting moves the chain forward only when ZATCA accepts a document — a rejected invoice never takes a place in it, so fixing and resending one invoice does not poison the ones after it.
Enter your VAT number and seller national address, generate the certificate request, and paste the OTP you create on the FATOORA portal. TamilAccounting obtains the compliance certificate, submits a sample of every document type your certificate covers — invoices, credit notes and debit notes — and, once they all pass, requests the production certificate.
An invoice counts as done only when ZATCA actually clears or reports it. If ZATCA refuses it, the invoice is marked failed with ZATCA’s own error codes and messages, and it moves to the front of the overview under Needs attention. Fix the cause — usually a missing buyer address detail — and send it again. Failed submissions are also retried automatically.
Phase 2 is strict about details. These are handled once, in setup, and then on every invoice.
Once an invoice is cleared or reported, its signed Phase 2 QR (TLV encoded) prints on the invoice automatically. Before that, the Phase 1 QR — seller, VAT number, time, total and VAT — is printed, so a Saudi invoice never goes out without one.
Map each item tax type once to standard, zero-rated, exempt or out-of-scope with its exemption reason. Mixed invoices carry a separate VAT subtotal per category.
Your seller national address is set in the wizard; each customer’s building number, additional number, district and CR number sit on the customer record.
A cleared invoice is corrected with a credit note that references the original — signed, chained and cleared or reported like any other document.
Work in an Arabic, right-to-left interface or in English. Arabic customer and item names print correctly on the PDF, and the invoice layout designer lets you add Arabic headings beside the English ones.
The ZATCA logic loads only for companies set up in Saudi Arabia. Run entities in other countries from the same account and they never collide.
| Generic or Phase 1 software | TamilAccounting | |
|---|---|---|
| B2B invoices | Printed and sent; clearance done elsewhere, if at all | Cleared with ZATCA from the invoice itself |
| B2C invoices | Uploaded by hand, hoping it is within 24 hours | Reported as soon as the invoice is saved |
| Invoice format | PDF only | UBL 2.1 XML with cryptographic stamp, plus the PDF |
| Hash chain | Not kept, or broken by a single rejection | Previous hash and counter advanced only on acceptance |
| QR code | Phase 1 QR only | ZATCA’s signed Phase 2 QR once cleared or reported |
| Onboarding | Certificates and OTPs handled by a consultant | Wizard: certificate request, OTP, compliance checks, production certificate |
| Rejections | “Sent” even when ZATCA refused it | ZATCA’s error codes shown; failed invoices retried and flagged |
| VAT return | Rebuilt from a separate system | Output and input VAT straight from the same books |
e-Invoicing is one part of running a Saudi business on TamilAccounting. The same system keeps the VAT figures, the sales ledger, the counter and the payroll.
Switching software is the hard part. We help you move, keep your records sound, and keep improving the system with you.
Move across from Tally, Zoho, QuickBooks, Xero, Sage 50 or SMACC, or from Excel templates for items, customers, suppliers, employees, chart of accounts and opening balances. You preview every row before it is saved — and our team helps you through it.
Your database is backed up three times a day — every 8 hours — and your files are backed up too. Each company keeps its own separate database; roles decide who can see, enter, approve or void; every change is on the audit trail; and everything exports to Excel or PDF whenever you want it.
We follow up regularly with the businesses that use it, and their requests become features. Updates arrive on your account automatically — nothing to download or reinstall.
GST e-invoice and e-way bill, ZATCA, WooCommerce, WhatsApp, biometric devices, online payment gateways, mobile apps and an AI assistant — and new connections are added as the market moves.
Invoices to a buyer with a valid Saudi VAT number are standard tax invoices and are sent for clearance — ZATCA validates them and returns them cleared before the buyer receives them. Invoices to consumers and walk-in customers are simplified invoices: they are given to the customer immediately and reported to ZATCA. TamilAccounting decides the route from the buyer, so nobody has to choose.
Only once per environment, to generate the OTP during onboarding: on the portal you choose to onboard a new solution unit or device and create an OTP, then paste it into the setup wizard. The certificate request is sent for you. After that, every invoice is exchanged with ZATCA from inside TamilAccounting.
Yes. Onboard in ZATCA’s simulation environment first, run the compliance checks and issue test invoices, then onboard for production. Each environment has its own certificate and its own hash chain, so rehearsals never affect your live invoice numbering.
The invoice is marked failed with ZATCA’s own error codes and messages, and it appears under Needs attention on the overview. It does not take a place in the hash chain, so the invoices after it are unaffected. Correct the cause — for example the buyer’s national address — and send it again; failed submissions are also retried automatically.
A cleared invoice cannot be withdrawn from ZATCA. Raise a credit note against it: the credit note references the original invoice and is signed, chained and cleared or reported in the same way.
Yes, once the invoice has been cleared or reported, the cryptographically signed QR returned for that invoice prints on it automatically. Until then the invoice carries the Phase 1 QR with the seller, VAT number, time, total and VAT amount.
Yes. Each item tax type is mapped once to standard, zero-rated, exempt or out-of-scope with its exemption reason, and every invoice line carries the right category. Invoices that mix categories show a separate VAT subtotal for each.
No. Onboarding can be finished while e-invoicing is still switched off, and nothing changes for users until an admin turns it on. After that they raise invoices exactly as before — automatically on save, or with a button on the invoice if you choose manual mode. There is a 1-month free trial to try it first.
Onboard with ZATCA, rehearse in simulation and go live from the same system you invoice from.
Supports GST (India), VAT (UAE, South Africa, Egypt, Iraq, Botswana), and local compliance across all regions.