Saheeh produces every invoice you need to be ZATCA Phase 2 compliant — UBL 2.1 XML, XAdES digital signatures, TLV QR codes, and an unbroken cryptographic hash chain. Become Wave 24 ready in under 24 hours.
Every ZATCA-compliant POS must produce invoices that pass these four technical checks. Saheeh handles all of them automatically.
Every invoice is generated as a Universal Business Language XML document, the international standard required by ZATCA.
application/xml
Every invoice is signed cryptographically using ECDSA secp256k1 with SHA-256, providing legal proof of origin.
secp256k1 · SHA-256
Each invoice's hash includes the previous invoice's hash — making it tamper-evident and impossible to alter retroactively.
SHA-256 chain
Every receipt prints a Tag-Length-Value encoded QR code with 9 mandatory tags including signature, in Base64 format.
TLV · Base64
Source: ZATCA E-Invoicing Roll-out Phases · Wave 24 Announcement
ZATCA fines are per-violation. One non-compliant POS can rack up tens of thousands of riyals in fines within weeks.
For minor issues like missing invoice fields or formatting errors.
Per invoice. Missing or invalid TLV QR codes alone can trigger this fine.
For repeat or severe violations — including non-integration with Fatoora portal.
Source: EY Tax Alert — Wave 24 · Fines exemption also ends June 30, 2026.
Becoming Wave 24 compliant doesn't take weeks. With Saheeh, most restaurants are live within 24 hours.
Log into fatoora.zatca.gov.sa with your Tax Identification Number (TIN). This takes 10 minutes.
Your POS must produce UBL 2.1 XML, XAdES signatures, TLV QR codes, and maintain hash chains. Saheeh meets all four pillars from day one — no add-ons, no extras.
The POS generates a Certificate Signing Request (CSR) and submits it to ZATCA. You receive back a Cryptographic Stamp Identifier (CSID). Saheeh automates this entirely — you just confirm.
ZATCA requires you to successfully clear 6 invoice types in their sandbox: standard invoice, simplified invoice, debit note, credit note, etc. Saheeh runs these automatically against your data.
Once sandbox tests pass, ZATCA issues a production CSID. From this moment, every invoice you generate is Wave 24 compliant. Done.
The practical difference between a "ZATCA-ready" claim and actual Phase 2 implementation.
Common questions about ZATCA Phase 2, Wave 24, and what compliance actually requires.
The restaurants that book a demo today are Wave 24 compliant by tomorrow. The ones who wait are paying fines in July.