Skip to main content
Egypt ETA E-Invoicing & E-Receipt Integration for ERPNext — A build-to-order ERPNext app that connects your Sales Invoice and — 1/1Illustrative preview

A build-to-order ERPNext app that connects your Sales Invoice and POS flows directly to Egypt's ETA platform for

certified e-invoice and e-receipt submission with live status tracking.

ECOSIRE scopes, builds, installs, and supports it for your instance.

What is Egypt ETA E-Invoicing & E-Receipt Integration for ERPNext?

A build-to-order ERPNext app that connects your Sales Invoice and POS flows directly to Egypt's ETA platform for certified e-invoice and e-receipt submission with live status tracking. ECOSIRE scopes, builds, installs, and supports it for your instance. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

New `ETA Settings` single DocType for credentials, client ID/secret, issuer branch data, and preprod/production environment toggle, with signing material stored via Frappe's encrypted fields
One-to-one `ETA Submission` log DocType linked to each `Sales Invoice` and `POS Invoice`, capturing the request payload, ETA long UUID, submission UUID, and returned status
`hooks.py` doc-event handler on `on_submit` that serializes the invoice into ETA's exact JSON document schema against your real tax templates
Certified electronic signature step applied to the canonical document payload before submission, matching ETA's CAdES/signing requirements
`TaxType` and `TaxSubtype` validation that maps every ERPNext tax line to a valid ETA code pair and blocks submission on mismatch
Automatic value/quantity/rounding reconciliation so ERPNext totals and ETA `totalAmount`/`netAmount` fields never diverge and trigger rejection
Interval-based submission mode driven by a Frappe scheduler event, so invoices post to ETA in configurable batches rather than one blocking call at submit time
Background polling job that fetches ETA document status asynchronously and writes Valid/Invalid/Rejected state plus rejection reasons back onto the invoice
E-Receipt support for POS/B2C flows — POS transactions packaged, signed, and submitted on ETA's receipt cadence with the receipt reference stored back
Whitelisted server methods exposing submit, cancel, and refresh-status actions to the desk and the Frappe REST API for external triggering
Client scripts adding a live ETA status badge, ETA UUID, share QR/URL, and a `Resubmit to ETA` action button on the invoice form
Cancel/decline handling that pushes ERPNext invoice cancellations to ETA within the allowed window and records the cancellation state
Dedicated role profile and permission rules restricting signing credentials and submission controls to authorized finance users, with full document audit trail
Structured error logging and retry handling for ETA API timeouts, token expiry, and transient failures, surfaced in the ETA Submission log

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 ERPNext.

  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

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

Since the Egyptian Tax Authority (ETA) mandate rolled out across VAT-registered businesses, any company crossing the EGP 250,000 registration threshold has to issue structured, cryptographically signed electronic documents — not PDFs — and get each one accepted by ETA in near real time. Miss a submission window, send a malformed taxItem block, or use the wrong TaxType/TaxSubtype code and you face rejections, reconciliation headaches, and penalties. ERPNext gives you clean Sales Invoices, Item masters, and Tax Templates out of the box, but it has no concept of ETA's document envelope, its UUID/hash chain, the certified e-signature step, or the submit-and-poll status lifecycle. That is exactly where core ERPNext runs out of road.

ECOSIRE builds a proper Frappe app — installed on your bench alongside ERPNext — that closes that gap end to end. The app ships new DocTypes (an ETA Settings single for credentials, environment, and issuer data; an ETA Submission log linked one-to-one with each Sales Invoice and POS Invoice; and mapping DocTypes for ETA code lists). A hooks.py doc-event handler fires on invoice submit to serialize the document into ETA's exact JSON schema, resolve every line to a validated TaxType/TaxSubtype pair, apply the certified electronic signature, and either submit immediately or queue it for interval-based batch submission via a Frappe scheduler event. Whitelisted server methods expose the submit, cancel, and status-refresh actions to the desk and to the Frappe REST API, so your own systems can trigger them too.

Once a document is accepted, ETA returns a long UUID, a submission UUID, and a status that changes asynchronously (Submitted → Valid, or Invalid/Rejected with reasons). A scheduled background job polls ETA and writes the current state, the public-share QR/URL, and any rejection reason back onto the linked invoice, so your finance team sees the truth inside ERPNext without logging into the ETA portal. For retail and B2C, the same engine handles the E-Receipt flow: POS transactions are packaged, signed, and submitted on the receipt cadence ETA expects, with the receipt reference stored back on the POS Invoice. Client scripts add status badges and a "Resubmit to ETA" button on the invoice form, and a dedicated role profile keeps signing credentials and submission controls limited to authorized finance users.

Because this is build-to-order, nothing is a black box. We start with a scoping call to confirm your ERPNext version (v15 or v16), your tax setup, which document types are in scope (B2B e-invoice, B2C e-receipt, or both), and your ETA credentials and environment (preprod vs production). We then build against your actual chart of accounts and tax templates, test the full submit/poll/cancel lifecycle on a staging bench, run UAT with your team, and cut over to production with a rollback plan. Typical delivery is one working week from confirmed scope. You receive the full source code and git repository so you are never locked to us — though most clients keep us on for the post-go-live support window and ETA schema updates.

What you get

  • Installable Frappe app source code for your ERPNext version (v15 or v16), built against your actual tax and account setup
  • Installation and configuration on your bench — ETA Settings populated, credentials wired, environment configured, scheduler events enabled
  • Technical documentation: DocType reference, hook/scheduler map, whitelisted API methods, and ETA field-mapping notes
  • End-user guide plus a live training session for your finance/accounting team on submission, status handling, and resubmission
  • UAT on a staging bench covering the full submit → poll → cancel lifecycle for both e-invoice and e-receipt flows
  • Production cutover with a documented rollback plan and preprod-verified configuration
  • Post-go-live support window for defect fixes and ETA schema/code-list adjustments
  • Full git repository handover so you own and can maintain the code independently

Who this is for

Egyptian SME finance owner

Just crossed the EGP 250,000 registration threshold and is now on the hook for ETA e-invoicing. Needs certified submission working inside ERPNext before penalties start, without hiring an in-house Frappe developer.

Finance manager at a growing distributor

Issues hundreds of B2B invoices a month and cannot afford portal re-keying or silent rejections. Wants interval-based submission, automatic status write-back, and a clear resubmit path for invalid documents.

Retail / POS operator with B2C volume

Runs shops or an ERPNext POS and must issue compliant e-receipts. Needs the POS/B2C receipt flow signed and submitted on ETA's cadence with references stored back on each POS Invoice.

ERPNext partner or internal IT lead

Owns the company's ERPNext bench and wants a clean, documented Frappe app with proper DocTypes, hooks, and role profiles — plus the git repo — rather than fragile custom scripts they can't maintain.

How Egypt ETA E-Invoicing & E-Receipt Integration for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
ETA submission lifecycleFull submit, poll, cancel with async status write-backDepends entirely on your developer's depthOften submit-only, limited status handlingNo ETA concept at all
Tax code validation`TaxType`/`TaxSubtype` validated per line, blocks bad codesOnly if you build the mapping yourselfGeneric mapping, may not fit your tax setupStandard tax templates, no ETA codes
E-receipt / POS B2C flowSigned POS Invoice submission on ETA receipt cadenceExtra scope, extra cost, extra riskFrequently e-invoice onlyNot supported
Fit to your ERPNext instanceBuilt against your real accounts and tax templatesFully custom but you carry all the riskOne-size template you adapt yourselfGeneric ERPNext only
Source code & git repoFull source and git repo handed overYou own it but built from scratchUsually closed-source or license-gatedN/A
Delivery timeone working week build-to-order from confirmed scopeMonths, depending on hiring and ramp-upInstant install but genericImmediate but non-compliant
Support & ETA updatesPost-go-live window + schema/code-list updatesYou maintain it or rehireTied to vendor's update cycle and feesNo compliance updates
Security & permissionsEncrypted credentials + dedicated role profile + audit logWhatever you implementVaries by vendorStandard ERPNext permissions only

Frequently Asked Questions about Egypt ETA E-Invoicing & E-Receipt Integration

How long does delivery take?

This is a build-to-order product, not an instant download. Typical delivery is one working week from confirmed scope. After the scoping call we lock the document types, your ERPNext version, and tax mapping, then build, test on a staging bench, run UAT, and cut over to production. There is no fabricated 'ready today' claim — you get code built and verified for your actual instance.

Which ERPNext versions do you support?

We build and test against ERPNext/Frappe v15 and v16. We confirm your exact bench version on the scoping call and target that. The app is a standard Frappe app installed on your bench, so it upgrades cleanly with your normal `bench update` process, and we adjust for version-specific API changes as part of the build.

How do e-invoice and e-receipt submissions actually get to ETA?

On invoice submit, a `hooks.py` doc event serializes the document to ETA's JSON schema, validates every line's `TaxType`/`TaxSubtype`, applies the certified electronic signature, and either submits immediately or queues it for interval-based batch submission via a Frappe scheduler event. A background job then polls ETA and writes the returned Valid/Invalid status, UUIDs, and QR/URL back onto the invoice. POS/B2C receipts follow the same signed-submit flow on ETA's receipt cadence.

What happens when ETA rejects a document?

The rejection reason returned by ETA is written to the linked ETA Submission log and surfaced as a status badge on the invoice. You fix the underlying data — usually a tax code, tax number, or totals mismatch — and use the `Resubmit to ETA` action. Validation on submit catches the most common issues (invalid `TaxSubtype`, totals divergence) before they ever reach ETA.

Do you provide support and updates after go-live?

Yes. Every engagement includes a post-go-live support window for defect fixes and for adjusting to ETA schema or code-list changes. Because you receive the full git repository, you can also maintain it yourself or bring in another partner — you are never locked in. Ongoing support beyond the included window is available on request.

Is this the same as an app on the Frappe marketplace?

No. This is not an off-the-shelf marketplace download. ECOSIRE builds it to order against your real chart of accounts, tax templates, and ETA credentials, so the field mapping and validation fit your data rather than a generic template. You also get the source and git repo, documentation, training, and UAT — not just a zip file.

How are our ETA signing credentials kept secure?

Credentials and signing material live in the `ETA Settings` DocType using Frappe's encrypted field storage, and access is gated behind a dedicated role profile so only authorized finance users can view settings or trigger submissions. Every submission is recorded in an audit-logged ETA Submission record, giving you a full trail of who submitted what and when.

Request a quote

Egypt ETA E-Invoicing & E-Receipt Integration

A build-to-order ERPNext app that connects your Sales Invoice and POS flows directly to Egypt's ETA platform for certified e-invoice and e-receipt submission with live status tracking. ECOSIRE scopes, builds, installs, and supports it for your instance.

  • New `ETA Settings` single DocType for credentials, client ID/secret, issuer branch data, and preprod/production environment toggle, with signing material stored via Frappe's encrypted fields
  • One-to-one `ETA Submission` log DocType linked to each `Sales Invoice` and `POS Invoice`, capturing the request payload, ETA long UUID, submission UUID, and returned status
  • `hooks.py` doc-event handler on `on_submit` that serializes the invoice into ETA's exact JSON document schema against your real tax templates
  • Certified electronic signature step applied to the canonical document payload before submission, matching ETA's CAdES/signing requirements

Request a Quotation

Tell us about your Egypt ETA E-Invoicing & E-Receipt Integration 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.