Solo
One business, own invoices only
~$66
- 300 inv/mo
- 1 production, 2 sandbox EGS units
✦ ZATCA Phase 2 Compliant ✦
For businesses in Saudi Arabia
Esnad sits between your system and ZATCA Fatoora. You send invoice data. We handle the XML, certificates, cryptographic signing, PIH chain, and QR code. Your customers get ZATCA-compliant invoices. You write zero ZATCA code.
No credit card required · Sandbox ready in 60 seconds · Data in AWS me-south-1 · Saudi Arabia
Create your account in 60 seconds. No Saudi government portal access needed. You give us your VAT number and business name.
We generate keys, build the CSR, run the ZATCA compliance flow, and get your production cert. You provide the OTP from Fatoora. Takes ~60 seconds.
POST JSON to our API. We sign, submit to ZATCA, and return the cleared invoice with UUID and QR.
You only touch Fatoora portal once per year — to generate an OTP for certificate renewal. Everything else is us.
Saudi profile, all namespaces, correct field ordering
9-tag binary, base64, max 700 chars — generated automatically
secp256k1, DER-encoded, embedded in UBL extension
We maintain the Previous Invoice Hash across every invoice, per EGS unit
We alert 30/14/7/1 days before expiry. Renew in one API call.
ZATCA down? We queue and retry. B2C 24h window absorbs short outages. You always get a response.
Real-time sync with ZATCA. We hold until cleared before returning.
Signed XML stored encrypted in AWS S3. Download any time via API.
Issue first, we report to ZATCA within the required 24h window.
We POST to your URL when invoices are cleared or reported. HMAC-signed.
We track every ZATCA change. Your API contract stays the same — we absorb updates so you never go outdated.
Download any cleared invoice as PDF via API. No extra setup.
Set a default EGS unit on each API key so you can omit egs_unit_id in invoice requests.
Send the same idempotency key and get the same invoice back — safe retries.
Documented per-plan limits (req/min). No surprises.
Full audit trail of API and dashboard actions in your account.
Invite team members to the dashboard. One account, multiple users.
TOTP-based 2FA for dashboard login. Your keys stay secure.
ZATCA changes requirements, error codes, and formats over time. Build directly and you risk constant rework. With Esnad, your API stays the same — we handle every update, data, and versioning. You get the complete solution; no one else.
You built the POS. Now every merchant you serve needs ZATCA clearance. One API key per merchant. You manage all of them from one account.
→ Studio or Platform plan
Your Saudi client needs Phase 2 now. You have 2 weeks. Integrate once, ship to them. Sandbox ready in 60 seconds.
→ Business plan SAR 599/mo
You manage ZATCA for 30+ clients. One dashboard, one API key per client. Cert expiry alerts for all of them.
→ Studio plan SAR 1,299/mo
All invoice data, signed XML, and private keys are stored in AWS Middle East regions. No data leaves the GCC. ZATCA data residency guidelines compliant.
Signed XML
S3 — 6 yrs · Encrypted
Private Keys
Secrets Mgr · Never in DB
Invoice data
RDS MySQL · Encrypted
We issue our own invoices through Esnad. Every SAR you pay us is ZATCA-compliant.
14-day free trial on all plans. No credit card.
One business, own invoices only
~$66
Small POS vendors & agencies
~$160
Accounting firms & mid-size
~$346
ERP / large POS, 50+ merchants
~$933
The fastest way to integrate ZATCA compliance into any system — without ZATCA boilerplate.
const response = await fetch('https://api.esnadapi.com/v1/invoices/simplified', {
method: 'POST',
headers: {
'Authorization': 'Bearer zatca_live_xxxxxxxxxxxx',
'Idempotency-Key': crypto.randomUUID(),
'Content-Type': 'application/json',
},
body: JSON.stringify({
egs_unit_id: 'egs_abc123',
invoice_number: 'INV-2026-001',
invoice_date: '2026-01-15',
seller: { name: 'Al Noor Trading', vat_number: '310122393500003' },
line_items: [{ description: 'Cappuccino', quantity: 2, unit_price: 18.00, vat_category: 'S' }],
currency: 'SAR'
})
});
const data = await response.json();
// data.uuid, data.qr_code, data.status === 'reported'Flow & integration, API reference, invoices, EGS, webhooks, and rate limits — all on our docs site.
Open docs.esnadapi.com →14-day free trial · 10 live invoices · No credit card
Questions? support@esnadapi.com · WhatsApp for Arabic support