E-invoicing middleware built for integrators
Connect your ERP or POS to ZATCA Fatoora with a single REST API. Onboard locations, submit invoices asynchronously, and manage compliance at scale — without rebuilding ZATCA logic in every product.
Your ERP
POST /invoices
Middleware
Sign · Hash · Queue
ZATCA Portal
Report & Clear
- 99.9%
- API uptime SLA
- <200ms
- Ack latency
- 3
- Environments
- 24/7
- Audit logs
Everything you need for Phase 2
One platform handles onboarding, cryptographic signing, hash chains, and portal submission — so your team ships faster.
Location onboarding
OTP-based CSID provisioning per branch. Compliance checks and production certificates stored encrypted.
Async invoice sync
Queue submissions with automatic retries, idempotency keys, and per-location hash chain protection.
Multi-tenant API
API clients with rate limits, IP allowlists, and strict tenant isolation across businesses and locations.
Sandbox → Production
Developer portal, simulation, and live environments — switch per location without code changes.
Full observability
Redacted request logs, audit events, and full submission history for every invoice.
Enterprise security
Encrypted credentials at rest, secret redaction in logs, and zero exposure of keys or OTP in API responses.
Three steps to go live
Integrate once. Onboard each outlet. Submit invoices — the platform handles ZATCA complexity.
-
01
Get API credentials
Receive an API key from your platform operator. Configure webhooks and rate limits.
-
02
Onboard each location
Register businesses and branches, then POST an OTP to provision CSID certificates.
-
03
Submit invoices
Send invoice JSON — we assign the hash chain, sign XML, and report to ZATCA asynchronously.
{
"external_id": "INV-1001",
"invoice": {
"invoice_type": 388,
"invoice_date": "2026-05-31",
"total": 115.00,
"tax": 15.00,
"currency": "SAR"
},
"invoice_items": [...],
"client": { "tax_number": "..." }
}
Ready to integrate?
Contact our team for API credentials and onboarding support to get your integration live.