A build-to-order ERPNext app that makes your point of sale issue ZATCA Phase-2 compliant simplified tax invoices — cryptographically stamped, TLV QR-coded, and reported to Fatoora in real time. ECOSIRE builds, installs, and supports it for Saudi retailers and restaurants. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $799.00 USD; request a quote for a scoped proposal.

A build-to-order ERPNext app that makes your point of sale issue ZATCA Phase-2 compliant simplified tax invoices — cryptographically stamped, TLV QR-coded, and reported to Fatoora in real time. ECOSIRE builds, installs, and supports it for Saudi retailers and restaurants.
Aucun paiement maintenant. Ceci envoie une demande de devis à notre équipe — nous vous recontacterons par e-mail avec les tarifs et les prochaines étapes.
Saudi retailers and restaurants running ERPNext POS face a hard regulatory wall: ZATCA's Fatoora Phase 2 (the Integration Phase) requires every simplified tax invoice issued at the counter to carry a cryptographic stamp, a TLV-encoded QR code, and to be reported to the ZATCA platform within 24 hours — with your device onboarded via a CSID (Cryptographic Stamp Identifier). ERPNext core gives you POS Invoices, VAT tax templates, and print formats, but it has no concept of a ZATCA CSID, no signed-XML generator, no UUID/PIH invoice hash chain, and no connection to the Fatoora reporting API. Teams try to bridge this with print-format hacks and manual QR strings, and end up with invoices that fail ZATCA validation and block go-live.
ZATCA Phase-2 compliant UBL 2.1 invoice XML generated server-side on POS Invoice submit via a `hooks.py` doc event
ECDSA cryptographic stamp (digital signature) applied using the device certificate stored on the `ZATCA Device` DocType
Base64 TLV-encoded QR code built to ZATCA's tag specification (seller name, VRN, timestamp, total, VAT, hash, signature) and rendered on every simplified invoice
Real-time reporting of B2C simplified invoices and clearance of B2B standard invoices to the Fatoora API
Invoice hash chain (PIH / previous-invoice-hash and ICV counter) maintained per device so ZATCA's sequence validation passes
CSID onboarding — compliance CSID and production CSID requests driven from the `ZATCA Device` DocType via whitelisted methods, no server access needed
ECOSIRE builds a dedicated Frappe app that closes that gap end to end. The app ships as a proper Frappe module with its own DocTypes — a ZATCA Settings singleton for the seller identity, VAT registration, and environment (sandbox / simulation / production), a ZATCA Device DocType that stores each onboarded CSID and its private key, and a ZATCA Invoice Log that records the signed XML, the invoice hash (PIH/ICV chain), the QR payload, and the ZATCA clearance/reporting response for every document. We hook into the POS Invoice lifecycle through hooks.py doc events (on_submit, before_cancel): on submit, a server-side method builds the UBL 2.1 XML, applies the ECDSA cryptographic stamp using the device certificate, generates the Base64 TLV QR per ZATCA's tag specification, and calls the Fatoora reporting endpoint. Simplified invoices (B2C) are reported after issuance; standard tax invoices (B2B) go through the clearance flow. Bilingual Arabic/English tax invoice print formats render the seller/buyer data, VAT breakdown, and QR so the counter can hand over a compliant receipt immediately.
Under the hood the integration is designed to be operable, not a black box. CSID onboarding is driven from the ZATCA Device DocType via whitelisted methods that call ZATCA's compliance and production CSID APIs, so a store manager can onboard a new till without touching the server. Failed reports are queued and retried through a Frappe scheduler event rather than lost, and every attempt is written to the invoice log with the ZATCA request ID and any validation warnings. Role profiles and permissions keep certificate material and settings restricted to your finance/admin roles while cashiers only see the POS. The whole thing exposes clean whitelisted REST endpoints so a headless POS front end or a second location can trigger the same signing pipeline.
The app is built for the ERPNext/Frappe version you run — v15 or the current v16 — and tested against ZATCA's sandbox and simulation environments before it ever touches production. Because this is a build-to-order engagement, we start from your actual chart of accounts, VAT setup, POS profiles, and receipt layout rather than a generic template: the QR tags, invoice numbering, and clearance rules are wired to how your business actually issues invoices.
Delivery works as a scoped project, not a download. After a short scoping call we confirm exactly which invoice types, locations, and devices are in scope, then build, install on your staging site, and run UAT against the ZATCA sandbox. Typical delivery is 2–4 weeks from confirmed scope. You receive the full source repository, install and configuration docs, a training session for your finance team, and a post-go-live support window so any ZATCA validation edge cases are handled while your first real invoices flow.
Runs multiple ERPNext POS tills across stores and must ensure every counter issues a ZATCA-compliant simplified invoice with a valid QR before the Fatoora deadline, without slowing down checkout.
Needs bilingual Arabic/English tax invoices, correct VAT breakdown, and real-time reporting to ZATCA for high-volume B2C sales, plus a clean audit trail of what was reported and when.
Delivering ERPNext to a Saudi client and needs a proven, source-available ZATCA Phase-2 POS integration they can install, extend, and support rather than building the cryptographic stamping and Fatoora API from scratch.
Responsible for onboarding CSIDs, managing device certificates, and keeping submissions flowing; wants retries, logging, and role-based access so cashiers never touch sensitive settings.
Achetez la licence sur ecosire.com et téléchargez le ZIP de l'application KSA ZATCA E-Invoicing for POS (Fatoora Phase 2) depuis le tableau de bord de votre compte.
Extrayez le ZIP dans le dossier d'applications de votre banc ou exécutez « bench get-app » avec le chemin d'accès à l'application extraite.
Exécutez `bench --site SITE_NAME install-app APP_NAME` suivi de `bench migrate` pour installer KSA ZATCA E-Invoicing for POS (Fatoora Phase 2) et appliquer son schéma.
Ouvrez les paramètres de licence ECOSIRE sur votre site et activez votre clé de licence. Nécessite les applications gratuites ecosire_connect et ecosire_license_client.
| Critère | ÉCOSIRE | Construction personnalisée | Concurrent | Odoo natif |
|---|---|---|---|---|
| ZATCA Phase-2 cryptographic stamping | Built in — ECDSA signing on POS submit via doc event | Possible but you build the crypto and XML yourself | Varies; many only cover Phase-1 QR | |
| TLV QR code on simplified invoices | Base64 TLV per ZATCA tag spec, embedded in print format | Hand-coded QR string, easy to get wrong | Often a basic QR, not always full TLV spec | |
| CSID onboarding & certificate management | Driven from a `ZATCA Device` DocType, no server access needed | Manual scripting per device | Sometimes present, often config-file based | |
| Real-time Fatoora reporting/clearance | Wired to the Fatoora API with scheduler retries and logging | You build the API client and retry logic | May report but limited retry/audit handling | |
| Fit to your ERPNext setup | Built to your CoA, VAT, POS profiles and receipt layout | Fully bespoke but slow and costly to build | Generic; you adapt your process to the app | |
| Source code & maintainability | Full git repository handed over at delivery | You own it but carry the whole build | Often closed-source or license-locked | |
| Delivery time | 2–4 weeks from confirmed scope, with staging UAT | Months of in-house development and testing | Fast install but generic fit and gaps | |
| Support & spec-change updates | Post-go-live support window + optional update agreement | Your team maintains it alone | Vendor support quality varies |
This is a build-to-order engagement, not an instant download. After a short scoping call to confirm invoice types, locations, and devices, typical delivery is 2–4 weeks from confirmed scope — including build, install on your staging site, and UAT against the ZATCA sandbox before production go-live.
Every engagement includes a post-go-live support window to handle ZATCA validation edge cases as your first real invoices flow. Because you receive the full git repository, your team can maintain and extend it, and we offer ongoing support or update agreements — including adapting to ZATCA specification changes — as a separate arrangement.
No. ECOSIRE builds, installs, and supports this app specifically for your ERPNext setup — your chart of accounts, VAT configuration, POS profiles, and receipt layout. You get the source code and repository at handover, but the app is delivered as a scoped project, not a self-service download.
The app is built and tested for Frappe/ERPNext v15 and the current v16, and targets ZATCA Fatoora Phase 2 (the Integration Phase): cryptographic stamping, TLV QR codes, CSID onboarding, and real-time reporting/clearance via the Fatoora API.
Yes. Each till is represented by a `ZATCA Device` DocType that stores its CSID and certificate. Compliance and production CSID requests are driven through whitelisted methods, and the per-device invoice hash chain (PIH/ICV) is maintained so multi-location, multi-device setups pass ZATCA's sequence validation.
Failed or queued submissions are retried automatically through a Frappe scheduler event rather than being lost. Every attempt — including the ZATCA request ID and any validation warnings — is recorded in the `ZATCA Invoice Log` DocType, so you always have an auditable trail of what was reported.
Yes. The app ships Arabic/English print formats with proper RTL layout, VAT breakdown, and an embedded Base64 TLV QR code built to ZATCA's tag specification, so the cashier can hand over a compliant simplified tax invoice at the counter immediately.
A build-to-order ERPNext app that makes your point of sale issue ZATCA Phase-2 compliant simplified tax invoices — cryptographically stamped, TLV QR-coded, and reported to Fatoora in real time. ECOSIRE builds, installs, and supports it for Saudi retailers and restaurants.