ZATCA High Speed
ERPNext app for full ZATCA Phase 2
Native ERPNext v15 solution that connects directly to Saudi Arabia's ZATCA Phase-2 e-invoicing platform — no middleware. Live invoice submission, QR codes, CSID onboarding, and VAT reports built for the Saudi market.
📦What is ZATCA High Speed?
ZATCA High Speed is a native ERPNext app, built by HIGH SPEED IT specifically for Saudi merchants running ERPNext as their accounting backbone. It adds a complete Phase-2 e-invoicing layer — from CSID onboarding to live invoice transmission and acceptance tracking — entirely inside ERPNext, no external middleware required.
✨Key Features
Everything a Saudi merchant needs to stay ZATCA-compliant, built with native ERPNext patterns.
Live Invoice Submission
Three modes: Live (automatic), Batch (queued), or Manual (user-controlled) — your choice.
Smart Activation Wizard
Guides merchants step-by-step: readiness checks, OTP, compliance CSID, then production CSID.
Sandbox-Safe Testing
Temporary compliance tests run inside DB transactions with auto-rollback — zero ledger pollution.
Phase-2 QR Codes
Cryptographic QR generated from ZATCA's response — not a plain-text fallback.
A4 + Thermal Print
Bilingual templates for tax invoices, simplified invoices, and credit / debit notes.
Prepayment Support
Converts customer receipts into prepayment invoices, links them to final sales, and tracks VAT properly.
VAT Tax Return Report
Pre-built report covering sales, returns, purchases, journal entries, and prepayments.
Submission Status Board
Real-time tracking: Accepted, Rejected, Pending, Failed — with XML, signature, and UUID.
Pre-Submission Validation
Warnings before save / submit — catch issues before ZATCA rejects them.
Auto-Classification
Auto-decides Standard vs. Simplified based on the customer's VAT status.
Full Arabic UI
UI, validation messages, workspace, and ZATCA statuses — all professionally localized.
Company-Level Config
Each company has its own ZATCA settings — no confusing global config.
🧾Supported Invoice Types
Full coverage of every Phase-2 invoice type ZATCA requires.
⚙️Technical Stack
Built on native Frappe tooling — no paid cloud services required.
Python 3.10+
Server-side coreFrappe v15
FrameworkERPNext v15
ERP layerJavaScript
Form scriptsJava Runtime
For ZATCA CLIZATCA CLI
Auto-setup helper🚀Install in 5 Commands
Assumes you already have an ERPNext v15 bench. Paste these on your server:
# 1) Pull the app from GitHub (production branch) $ bench get-app https://github.com/fuhaed/zatca_high_speed \ --branch production # 2) Install on your site $ bench --site your-site.local install-app zatca_high_speed # 3) Migrate DB + build assets $ bench --site your-site.local migrate $ bench build --app zatca_high_speed # 4) Restart to activate the workspace $ bench restart
🎛️Configuration Options
Settings live on the Company doctype — every company has its own profile.
🌐ZATCA Environment
- Sandbox — Initial development env
- Simulation — Pre-production testing
- Production — Live, official endpoint
📨Invoice Mode
- Auto — Decides based on customer VAT
- Simplified — Force simplified for all
- Standard — Force standard for all
⚡Sync Mode
- Live — Submit immediately on save
- Batch — Queued background jobs
- Manual — User decides when to send
✅Validation
- Local CLI validation
- Block invalid XML
- Pre-save warnings
📍First-Time Onboarding
Once the app is installed, follow these steps to connect your company to ZATCA.
-
Enable ZATCA Integration on the Company form
Open Company → enable "ZATCA Integration" and save.
-
Verify company data
Country: Saudi Arabia, Currency: SAR, 15-digit VAT (starts & ends with 3), and a valid CR.
-
Link a valid Saudi address
City, postal code, building number, district — all mandatory for ZATCA.
-
Launch the Activation Wizard
From the ZATCA High Speed workspace → Activation Wizard. Pick your environment.
-
Complete OTP and request the Compliance CSID
Enter the OTP from the Fatoora portal, request the compliance CSID, then run the temp invoice checks.
-
Request the Production CSID and go live
Once compliance checks pass, request the production CSID and start submitting real invoices.
🛡️Pre-Submission Requirements
The app validates this checklist automatically and warns you before ZATCA would reject the invoice.
💚Why we open-sourced it
ZATCA compliance shouldn't be a competitive moat — it's a baseline right for every Saudi merchant. That's why we released the app under the MIT license, so any ERPNext user can comply with ZATCA without subscription fees or vendor lock-in. The code is open for review, contribution, and modification by the community.
Ready to get started?
Pull the app from GitHub for free, or reach out for installation & onboarding support.