Skip to main content
ZATCA-Compliant POS E-Invoice (KSA) — Turn every Odoo POS receipt into a ZATCA Phase-2 simplified tax invoice with embedded Q — 1/1Illustrative preview

Turn every Odoo POS receipt into a ZATCA Phase-2 simplified tax invoice with embedded QR and Fatoora reporting.

What is ZATCA-Compliant POS E-Invoice (KSA)?

Turn every Odoo POS receipt into a ZATCA Phase-2 simplified tax invoice with embedded QR and Fatoora reporting. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Phase-2 (Integration) compliant TLV-encoded, Base64 QR code embedded on every simplified tax invoice
QR rendered on both the thermal-printed POS receipt and the QWeb PDF invoice
B2C simplified tax invoice generation on POS order close, mapped to account.move
Fatoora platform integration for reporting/clearance calls (compliance + production endpoints)
EGS device onboarding: CSR generation, compliance CSID and production CSID provisioning
Sandbox-first then production journal onboarding so you validate before going live
Bilingual Arabic/English receipt and PDF layout with correct RTL rendering
Per-line and per-rate VAT breakdown (standard 15%, zero-rated, exempt) shown on the invoice
Phase-2 cryptographic stamp, invoice hash (PIH/previous-invoice-hash chaining) and UUID fields stored on the order
ir.cron automated retry queue for invoices that fail to report to Fatoora, with status flags
Buyer VAT / national ID capture at POS for tax-invoice (B2B) requests when needed
Odoo 17/18/19 support on Community and Enterprise, isolated in a versioned __manifest__.py addon
JSON-RPC/XML-RPC triggerable so reporting can be driven from external or headless flows
Role-scoped access via ir.model.access.csv and record rules for POS cashier vs. finance vs. admin
Multi-branch / multi-journal aware so each certified device onboards independently

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Saudi retailers and restaurants must issue ZATCA-compliant e-invoices at the point of sale — but the Odoo POS you already run doesn't produce a Phase-2 (Integration) simplified tax invoice with a cryptographically embedded QR code or report to the Fatoora platform on its own. This is a build-to-order Odoo module that ECOSIRE designs, builds, installs and supports specifically for your Odoo database. It is not an instant apps.odoo.com download; after purchase our engineers scope, develop and onboard it on your ZATCA portal over a typical one working week lead time.

The module extends Odoo's native POS and account.move flow so that closing a POS order generates a ZATCA-compliant simplified tax invoice (B2C) carrying the mandatory TLV-encoded, Base64 QR — seller name, VAT number, timestamp, invoice total and VAT amount, plus the Phase-2 hash and cryptographic stamp fields. The QR is rendered both on the thermal-printed receipt and on the QWeb PDF, and the receipt is bilingual (Arabic and English) with a correct VAT breakdown per line and per rate. Behind the scenes we implement the EGS (E-invoice Generation Solution) onboarding: CSR generation, compliance CSID and production CSID, and the clearance/reporting calls to the Fatoora APIs — first against the sandbox, then against production once your device is certified.

Everything is grounded in real Odoo architecture. We add fields and compute methods (models.Model, fields, @api.depends) to carry ZATCA state on pos.order and account.move; a QWeb report template for the compliant PDF invoice; automated actions / cron (ir.cron) to retry failed reporting; and proper security via ir.model.access.csv plus record rules so only the right POS and accounting roles can view or resubmit invoices. Integration with the Fatoora reporting endpoint is done server-side and can also be triggered over Odoo's JSON-RPC/XML-RPC API for headless flows. The module targets Odoo 17, 18 and 19 and works on both Community and Enterprise (Enterprise gives you the richer POS and accounting UX; we confirm parity for your edition during scoping).

You get a licensed, documented module tailored to your legal entity, VAT registration and multi-branch/multi-journal setup — not a generic checkbox. ECOSIRE handles the ZATCA onboarding paperwork alongside you, trains your cashiers and finance team, and stands behind the delivery with a post-launch support window and updates as ZATCA specifications evolve.

What you get

  • Licensed Odoo module (source, __manifest__.py, models, views, security CSV, QWeb templates) built for your database and edition
  • ZATCA EGS onboarding: CSR generation and compliance + production CSID provisioning against the Fatoora portal
  • Sandbox validation run followed by production journal go-live cutover
  • Configured POS payment/journal + account settings, VAT tax mapping and bilingual receipt layout
  • Administrator and developer documentation plus a cashier quick-reference guide (EN/AR)
  • Live training session for finance and front-of-house staff on issuing and resubmitting invoices
  • Post-launch support window with bug fixes and ZATCA-spec update patches
  • Deployment on your Odoo 17/18/19 instance (staging then production) with a rollback plan

Who this is for

Saudi retail chain finance manager

Runs multi-branch stores on Odoo POS and must guarantee every till issues a Phase-2 compliant simplified tax invoice with a valid QR, reported to Fatoora, before a ZATCA wave deadline.

Restaurant / QSR owner in KSA

Needs fast, bilingual Arabic/English receipts at the counter that carry the correct 15% VAT breakdown and embedded QR without slowing down the checkout line.

Odoo administrator / IT lead

Owns the Odoo instance and wants a clean, versioned addon that extends native POS and accounting, respects record rules, and can be onboarded on sandbox before touching production.

Tax / compliance consultant

Advises Saudi VAT-registered clients and needs assurance the invoice hash chaining, cryptographic stamp and Fatoora clearance/reporting are implemented to spec across editions.

How ZATCA-Compliant POS E-Invoice (KSA) Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
ZATCA Phase-2 QR (TLV/Base64) on POS receipt + PDFBuilt and rendered on both thermal receipt and QWeb PDFPossible but you build the TLV encoder and QWeb template yourselfOften print-only QR, may lag Phase-2 specNot included
Fatoora reporting/clearance integrationServer-side calls with sandbox-then-production onboarding and ir.cron retryYou implement CSID onboarding and endpoint calls from scratchPartial supportNot included
Cryptographic stamp + invoice hash chaining (PIH)Implemented on pos.order/account.move with stored state fieldsHand-rolled hashing and stamp logic, high risk of spec errorsPartial supportNot included
Bilingual Arabic/English receipt with per-rate VAT breakdownRTL-correct EN/AR layout tailored to your brandingCustom QWeb work per templatePartial supportPartial support
Tailored to your VAT entity, edition and multi-branch journalsScoped and configured to your exact setupIncludedNot includedNot included
Odoo 17/18/19 on Community and EnterpriseVersioned addon confirmed for your editionDepends on your team's version coveragePartial supportPartial support
ZATCA EGS onboarding done for you (CSR, CSIDs)ECOSIRE performs onboarding alongside youNot includedNot includedNot included
Post-launch support and ZATCA-spec update patchesIncluded support window plus spec-change patchesYour team maintains itPartial supportNot included

Frequently Asked Questions about ZATCA-Compliant POS E-Invoice

Is this an instant download from the Odoo App Store?

No. This is a build-to-order module. After purchase, ECOSIRE scopes your VAT registration, edition (Community or Enterprise), Odoo version and branch/journal setup, then builds, installs and onboards the module specifically for your database. You are buying an engineered, ZATCA-onboarded solution, not a generic zip.

What is the delivery lead time?

Typically one working week from kickoff. That covers requirements scoping, development, ZATCA EGS onboarding (CSR, compliance CSID, then production CSID), sandbox validation, and the production go-live. Complex multi-branch or multi-VAT-entity rollouts may extend this; we confirm a dated timeline during scoping.

What support and updates are included after delivery?

Every build includes a post-launch support window for bug fixes and configuration help, plus patches when ZATCA/Fatoora changes its specifications (field, hashing or endpoint updates). We can also extend into an ongoing support-and-maintenance retainer covering Odoo version upgrades and new certified POS devices.

Which Odoo versions and editions do you support?

Odoo 17, 18 and 19, on both Community and Enterprise. The module is a self-contained versioned addon that extends native POS (pos.order) and accounting (account.move); we confirm feature parity for your specific edition during scoping since Enterprise ships a richer POS and accounting UX.

Does it handle the ZATCA Phase-2 QR and Fatoora reporting, or just print a QR?

Both. It generates the mandatory TLV-encoded, Base64 QR (seller name, VAT number, timestamp, total, VAT amount, plus the Phase-2 hash and cryptographic stamp) and performs the server-side reporting/clearance calls to the Fatoora platform. An ir.cron retry queue re-submits any invoice that fails so nothing is silently dropped.

Can B2B tax invoices and buyer VAT numbers be captured at the POS?

Yes. While the primary flow is the B2C simplified tax invoice, we can capture a buyer VAT or national ID at the till to raise a standard (B2B) tax invoice through the account.move flow, with the appropriate clearance path where required by ZATCA.

Request a quote

ZATCA-Compliant POS E-Invoice

Turn every Odoo POS receipt into a ZATCA Phase-2 simplified tax invoice with embedded QR and Fatoora reporting.

  • Phase-2 (Integration) compliant TLV-encoded, Base64 QR code embedded on every simplified tax invoice
  • QR rendered on both the thermal-printed POS receipt and the QWeb PDF invoice
  • B2C simplified tax invoice generation on POS order close, mapped to account.move
  • Fatoora platform integration for reporting/clearance calls (compliance + production endpoints)

Request a Quotation

Tell us about your ZATCA-Compliant POS E-Invoice requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.