- Home
- Apps
- SaaS Tools
- Egypt ETA E-Receipt for POS
Illustrative previewA build-to-order ERPNext application that submits Egyptian Tax Authority (ETA) e-receipts for B2C point-of-sale
sales, stamping every receipt with a UUID and QR and reporting to the ETA e-receipt SDK in near real time.
ECOSIRE builds, installs, and supports it — it is not an instant download.
What is Egypt ETA E-Receipt for POS?
A build-to-order ERPNext application that submits Egyptian Tax Authority (ETA) e-receipts for B2C point-of-sale sales, stamping every receipt with a UUID and QR and reporting to the ETA e-receipt SDK in near real time. ECOSIRE builds, installs, and supports it — it is not an instant download. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your ERPNext.
- 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
- ERPNext Compatibility
- —
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- MariaDB 10.6+
About this Product
Egyptian retailers and restaurants under the ETA e-receipt mandate face a specific gap: ERPNext gives you a solid POS Invoice and Sales Invoice flow, but it has no concept of the Egyptian Tax Authority's e-receipt schema, its device/POS registration model, or the near-real-time submission the mandate expects for high-volume B2C sales. The ETA e-receipt system is deliberately different from the B2B e-invoice track — it works per registered POS device, expects each receipt UUID and cryptographic serialization, and issues the QR code your cashiers must print at the counter. Out of the box, ERPNext cannot produce any of that, so most shops end up re-keying every sale into a portal or a middleware they cannot see inside.
We build a proper Frappe application (ecosire_eta_ereceipt) installed onto your existing ERPNext v15/v16 bench — not a hosted black box. The app adds an ETA E-Receipt DocType that mirrors the Tax Authority's receipt document (header, seller/branch, buyer where present, line items, tax totals, and payment breakdown), plus an ETA POS Device DocType that holds the registration, activation code, and credentials for each physical or virtual POS your branches run. A hooks.py doc_events handler fires on POS Invoice submit to serialize the sale into the ETA e-receipt JSON, request the receipt UUID, sign/submit through the ETA e-receipt SDK endpoint, and write the returned UUID and status straight back onto the source document. Item and tax mapping is handled with a configurable ETA Item Code Map that resolves each ERPNext Item to its EGS or GS1 code and the correct ETA tax-type/sub-type, so cashiers never touch a tax code.
Submission is designed for the reality of a busy counter. The doc-event path attempts an immediate submit so the QR prints on the receipt; anything that fails to reach the ETA — network blips, token expiry, a device that dropped offline — is queued and retried by a Frappe scheduler_events background job, with each attempt and the ETA response logged against the receipt for audit. Whitelisted API methods expose submit, re-submit, and status-check so your own POS UI (or ERPNext POS) can call them via the Frappe REST API, and a role profile (ETA Receipt Manager / cashier) keeps device credentials and cancellation out of ordinary users' hands. Client scripts render the UUID and QR on the print format and surface a clear success/queued/rejected badge to the cashier.
Because every business codes items, branches, and tax differently, this is a build-to-order engagement, not a marketplace download. We start from a short scoping call, confirm your ETA registration profile (taxpayer/branch/device structure), your item and tax mapping, and your POS flow, then build and hand over a versioned app tailored to it. Typical delivery is one working week from confirmed scope. You receive the installable source, a git repository, UAT on a staging bench with a rollback plan, and a defined post-go-live support window so real ETA traffic is watched, not assumed.
What you get
- Installable source code for your tailored version of the `ecosire_eta_ereceipt` Frappe app (pinned to your Frappe/ERPNext v15 or v16)
- Installation and configuration on your bench: app install, ETA device registration, item/tax code mapping, and role setup
- Technical documentation covering DocTypes, hooks, scheduler jobs, whitelisted API methods, and the ETA submission flow
- User guide plus a live training session for cashiers and the ETA Receipt Manager role
- UAT on a staging bench against the ETA test environment, with a documented rollback plan before production cutover
- A defined post-go-live support window to monitor live ETA traffic, rejections, and retries
- Handover of the git repository so your team owns and can extend the code
- Configuration workbook mapping your branches, POS devices, item codes, and tax types to the ETA profile
Who this is for
Egyptian retailer under the ETA e-receipt mandate
A supermarket, pharmacy, or multi-branch shop selling to walk-in consumers that must issue ETA-compliant e-receipts per registered POS device and needs the UUID and QR on every printed receipt without re-keying sales into a portal.
Restaurant or QSR operator
A restaurant, café, or quick-service chain running fast B2C counter sales that needs near-real-time e-receipt submission tied to each POS terminal, with an offline retry queue so a network blip never blocks a sale.
Finance or tax compliance manager
The person accountable to the Egyptian Tax Authority who needs an auditable log of every submission, correct EGS/GS1 item and tax mapping, and clean handling of returns and cancellations to survive an ETA review.
ERPNext administrator / IT lead
The internal owner of the ERPNext bench who wants a real Frappe app with DocTypes, hooks, and whitelisted APIs they can read and extend — plus the git repo — rather than an opaque hosted middleware.
How Egypt ETA E-Receipt for POS Compares
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Delivery model | Build-to-order Frappe app installed on your bench, one working week from confirmed scope | Your team builds it from scratch — hiring and ramp time | Instant download but generic, not fitted to your ETA profile | Nothing to deliver — no ETA e-receipt support exists |
| ETA e-receipt (B2C) submission | Dedicated `ETA E-Receipt` DocType + doc-event submit to the ETA SDK | Possible but you own the full schema and SDK integration | Often focused on B2B e-invoice, not the B2C receipt track | No ETA schema, no submission, no UUID or QR |
| POS device registration | `ETA POS Device` DocType with per-device registration and token lifecycle | Must design device/credential model yourself | Sometimes single-device or portal-bound | No concept of ETA device registration |
| Offline / retry handling | Scheduler-driven retry queue with back-off and per-attempt logging | You must build and test the queue and back-off | Varies; often fails the sale if the ETA is unreachable | Not applicable — no submission path |
| Item & tax code mapping | `ETA Item Code Map` for EGS/GS1 codes and ETA tax types | Hand-rolled mapping and maintenance burden | Basic or manual mapping, limited to common cases | No EGS/GS1 or ETA tax-type mapping |
| APIs & extensibility | Whitelisted REST methods + git repo handover you can extend | Full control, full maintenance cost | Closed or thinly documented; limited hooks | Generic ERPNext APIs, nothing ETA-specific |
| Audit & compliance trail | Full request/response log per receipt for ETA review | You design the audit trail | Partial logging, often not receipt-level | No ETA audit trail |
| Support & version fit | Pinned to your v15/v16 bench + post-go-live support window | Your team supports it indefinitely | Vendor SLA, may lag ETA schema/SDK changes | Community ERPNext support only |
Frequently Asked Questions about Egypt ETA E-Receipt for POS
Is this an existing app I can download and install today?
No. It is build-to-order. ECOSIRE builds the `ecosire_eta_ereceipt` Frappe app around your specific ETA registration, branch/device structure, item and tax mapping, and POS flow, then installs it on your bench. There is no instant marketplace download.
How long does delivery take?
Typical delivery is one working week from confirmed scope. The clock starts once we've agreed the requirements — your ETA taxpayer/branch/device profile, item and tax code mapping, POS flow, and target Frappe version — on the scoping call. Complex multi-branch or custom-POS integrations sit at the longer end.
Which Frappe/ERPNext versions are supported?
We build and test against Frappe/ERPNext v15 and v16. We pin the delivered app to your exact bench version so upgrades are predictable, and we confirm your version on the scoping call before any work begins.
How does submission work at a busy counter, and what happens if a device is offline?
On `POS Invoice` submit, a `hooks.py` doc event serializes the sale and submits to the ETA e-receipt SDK immediately so the UUID and QR print on the receipt. If the ETA is unreachable — offline device, token expiry, network drop — the receipt is queued and retried by a Frappe scheduler job with back-off, and every attempt is logged so nothing is silently lost.
Does it handle item codes, tax types, and returns correctly?
Yes. An `ETA Item Code Map` resolves each ERPNext Item to its EGS or GS1 code and the correct ETA tax type/sub-type, and tax totals are rounded to match ETA validation so submissions aren't rejected on rounding. Returns and cancellations report the corresponding ETA receipt state.
What about support and updates after go-live?
Every engagement includes a defined post-go-live support window during which we monitor live ETA traffic, rejections, and retries and fix issues traced to our code. Because you receive the git repository and installable source, your team can maintain it, and we offer an ongoing support/retainer arrangement for ETA schema or SDK changes if you'd prefer we keep it current.
Do we own the code, or is it locked to a hosted service?
You own it. This is a real Frappe app installed on your own bench — DocTypes, hooks, scheduler jobs, and whitelisted APIs you can read and extend — and we hand over the git repository. It is not an opaque hosted middleware you rent.
Related Modules

Easypaisa & JazzCash POS Wallet Payments
A build-to-order ERPNext app that accepts Easypaisa and JazzCash mobile-wallet and dynamic-QR payments directly at the POS, then auto-creates and reconciles the matching Payment Entry when the confirmation callback lands.

Easypaisa Payment Gateway for ERPNext
A build-to-order Frappe app that connects ERPNext checkout to Easypaisa for mobile-wallet, card, and OTC payments, with signed callback verification and automatic Payment Entry creation. ECOSIRE scopes, builds, installs, and supports it for your site.

Email Marketing Automation for ERPNext
A native ERPNext email marketing engine with a drag-and-drop builder, behavioral drip automation, and open/click/bounce tracking — built, installed, and supported by ECOSIRE for your Frappe v15/v16 instance.

Employee Lifecycle & Onboarding Workflow
A build-to-order ERPNext app that standardizes onboarding, transfer, promotion, and offboarding with template-driven checklists, cross-department task automation, and asset issuance/recovery tracking. ECOSIRE scopes, builds, installs, and supports it for your instance.
Egypt ETA E-Receipt for POS
A build-to-order ERPNext application that submits Egyptian Tax Authority (ETA) e-receipts for B2C point-of-sale sales, stamping every receipt with a UUID and QR and reporting to the ETA e-receipt SDK in near real time. ECOSIRE builds, installs, and supports it — it is not an instant download.
- `ETA E-Receipt` DocType mirroring the Egyptian Tax Authority B2C receipt schema (header, seller/branch, optional buyer, lines, tax and payment breakdown)
- `hooks.py` `doc_events` handler on `POS Invoice`/`Sales Invoice` submit that serializes, requests the UUID, and submits to the ETA e-receipt SDK
- Per-device `ETA POS Device` DocType holding registration, activation code, and token lifecycle for each physical or virtual POS
- Near-real-time submission with the receipt UUID and QR written back onto the source document so it prints at the counter