A build-to-order ERPNext application that makes your Sales Invoices ZATCA Fatoorah Phase-2 compliant — CSID onboarding, UBL 2.1 XML, cryptographic stamping, clearance/reporting to the Fatoora platform, and a TLV QR code. ECOSIRE scopes, builds, installs, and supports it for you. 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 application that makes your Sales Invoices ZATCA Fatoorah Phase-2 compliant — CSID onboarding, UBL 2.1 XML, cryptographic stamping, clearance/reporting to the Fatoora platform, and a TLV QR code. ECOSIRE scopes, builds, installs, and supports it for you.
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 businesses in the ZATCA integration phase have a hard problem that ERPNext core does not solve: every standard tax invoice must be cleared with ZATCA in real time before it is valid, and every simplified invoice must be reported within 24 hours — both as signed UBL 2.1 XML carrying a cryptographic stamp and a TLV-encoded QR code. Stock ERPNext prints a Sales Invoice and can compute VAT, but it has no concept of a CSID, no UBL generator, no XAdES signing, no PIH invoice-chaining, and no client that talks to the Fatoora clearance and reporting APIs. Teams that try to bolt this on with print formats and manual portal uploads end up with rejected invoices, broken invoice hash chains, and audit exposure.
Standard (B2B) tax-invoice clearance: synchronous call to the ZATCA Fatoora clearance API on Sales Invoice `on_submit`, storing the returned cleared XML and clearance UUID
Simplified (B2C) invoice reporting: queued within 24 hours via a `scheduler_events` background job so POS and cashier submission is never blocked by ZATCA latency
UBL 2.1 XML generation mapped from ERPNext Sales Invoice, Sales Invoice Item, and Sales Taxes and Charges, including VAT category codes and exemption reason codes
XAdES-B enveloped digital signing of the invoice XML using your device's ECDSA private key
CSID onboarding flow: ECDSA keypair + CSR generation, compliance CSID request, and production CSID issuance handled from dedicated configuration DocTypes
SHA-256 invoice hash plus PIH (Previous Invoice Hash) chaining so each invoice is cryptographically linked to the last, preserving the ZATCA counter chain
ECOSIRE builds a dedicated Frappe app (its own hooks.py, module, and DocTypes) that plugs directly into your existing ERPNext Sales Invoice workflow. We add configuration DocTypes for your ZATCA credentials and CSID/device state, and a per-invoice ZATCA E-Invoice DocType that stores the generated XML, the invoice hash, the previous-invoice hash (PIH), the returned clearance UUID, and the ZATCA warning/error payload. A doc_events hook on Sales Invoice on_submit builds the UBL 2.1 document from your invoice, its items, and tax lines, signs it, and — depending on whether the invoice is standard (B2B) or simplified (B2C) — either calls the clearance endpoint synchronously or queues the invoice for reporting via a scheduler_events background job, so a slow ZATCA response never blocks your cashiers.
Technically, the app implements the full Phase-2 cryptographic chain: ECDSA key generation, CSR creation, compliance CSID and production CSID onboarding against ZATCA's APIs, XAdES-B enveloped signing of the UBL invoice, the SHA-256 invoice hash, the PIH linkage that chains each invoice to the last, and the base64 TLV QR code embedded in your A4 and thermal print formats. Communication uses ERPNext's server-side request layer with retries and full logging; whitelisted methods (exposed over the Frappe REST API) let you re-trigger clearance, fetch status, and re-onboard a device. Role profiles and DocType permissions keep credential and CSID management restricted to a ZATCA Manager role while accounts users simply submit invoices as they always have.
Because this is build-to-order, we start from your real ERPNext data — your company tax registration, invoice volume, B2B vs B2C mix, and existing customizations — and tailor the app to it rather than shipping a one-size-fits-all connector. After a short scoping call we confirm scope, then build, test on a staging clone of your site, run UAT with your finance team against ZATCA's sandbox, and cut over to production with a rollback plan. Typical delivery is 2–4 weeks from confirmed scope. You receive the full source code and git repository, so you are never locked to us; we hand it over and back it with a post-go-live support window on Frappe/ERPNext v15 and v16.
Accountable for VAT and ZATCA compliance and needs standard invoices cleared and simplified invoices reported correctly, with an audit trail they can defend to ZATCA. Wants confidence over cleverness.
Runs the company's ERPNext site and needs a clean, upgrade-safe app that installs via bench, survives `bench migrate`, and doesn't fork core. Cares about the source code, permissions, and logs.
High-volume B2C business that cannot let a slow ZATCA response stall the checkout, so needs simplified-invoice reporting queued in the background with a compliant QR on the thermal receipt.
Operates several ERPNext companies or branches, each with its own ZATCA device and CSID, and needs per-company onboarding, credential isolation, and consistent clearance behavior across all of them.
Achetez la licence sur ecosire.com et téléchargez le ZIP de l'application KSA ZATCA Phase-2 E-Invoicing for ERPNext 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 Phase-2 E-Invoicing for ERPNext 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 clearance & reporting | Full clearance (B2B) + queued reporting (B2C) built into Sales Invoice submit | Possible but you build the whole API client, retries, and chaining yourself | Often partial — reporting only or a generic connector needing rework | |
| UBL 2.1 XML + XAdES signing | Generated and XAdES-B signed from your invoice, item, and tax data | Hand-built XML mapping and signing — error-prone and time-consuming | Generic UBL that may not map your VAT categories or exemptions | |
| CSID onboarding & key management | CSR, compliance + production CSID, restricted to a ZATCA Manager role | You implement ECDSA, CSR, and onboarding flows from scratch | Sometimes manual or under-documented onboarding steps | |
| PIH invoice-hash chaining | SHA-256 hash + PIH linkage preserving the ZATCA counter chain | Must be designed carefully or the chain breaks silently | Varies; chain integrity not always guaranteed | |
| QR code on print formats | TLV base64 cryptographic-stamp QR on A4 and 80mm thermal formats | Extra work per print format | Usually A4 only; thermal/POS often missing | |
| Fit to your ERPNext site | Built from your real data, volumes, and customizations | Fully custom but no reuse, longer timeline | One-size-fits-all; adapts poorly to customizations | |
| Ownership & lock-in | Full source + git repo handover; any Frappe dev can maintain | You own it but carry all the build risk and time | Often closed-source or license-gated per site | |
| Support & spec-change updates | Post-go-live window + optional retainer for ZATCA spec revisions | You own all future ZATCA changes yourself | Depends on vendor SLA and renewal fees |
No. This is a build-to-order engagement. ECOSIRE builds a ZATCA Phase-2 Frappe app tailored to your ERPNext site, invoice types, and existing customizations, then installs and supports it. There is no instant download — we start with a scoping call, confirm scope, and build from your real data.
Typical delivery is 2–4 weeks from confirmed scope. After the scoping call we agree on requirements, build the app, test on a staging clone against the ZATCA sandbox, run UAT with your team, then cut over to production. Complex multi-company or heavily customized sites can extend that; we tell you honestly during scoping.
Yes. Standard tax invoices are cleared synchronously with ZATCA before they are valid, and simplified invoices are reported within the 24-hour window via a background scheduler job so your POS and cashier flows are never blocked. Both produce signed UBL 2.1 XML with the cryptographic stamp and TLV QR code.
The app handles the full Phase-2 chain: ECDSA keypair and CSR generation, compliance CSID and production CSID onboarding against ZATCA's APIs, XAdES-B signing, the SHA-256 invoice hash, and PIH chaining that links each invoice to the previous one. Key and CSID management is restricted to a dedicated `ZATCA Manager` role.
It is built for Frappe/ERPNext v15 and v16 as a clean installable app that survives `bench migrate`. Your post-go-live support window covers defect fixes and ZATCA response handling. Because ZATCA periodically revises its specification, spec-change updates beyond the support window are handled under a support/maintenance retainer, and you own the git repository either way.
You own it. We hand over the full source code and git repository. The app is a standard Frappe application with documented DocTypes, hooks, and whitelisted methods, so your own team or any Frappe developer can maintain it. We are the easiest option to support it, not the only one.
Minimally. Users keep submitting Sales Invoices in ERPNext as they always have; a `doc_events` hook validates ZATCA-required fields and triggers clearance or reporting automatically. Clearance status, the QR, and any ZATCA errors appear inline on the Sales Invoice via a Client Script, and a per-invoice `ZATCA E-Invoice` record stores the full audit detail.
A build-to-order ERPNext application that makes your Sales Invoices ZATCA Fatoorah Phase-2 compliant — CSID onboarding, UBL 2.1 XML, cryptographic stamping, clearance/reporting to the Fatoora platform, and a TLV QR code. ECOSIRE scopes, builds, installs, and supports it for you.