Egypt E-Invoice on Odoo: Connecting to the ETA Step by Step

Short answer: To issue Egyptian e-invoices from Odoo you need four things: registration on the Egyptian Tax Authority (ETA) e-invoicing portal, your ERP registered there to get API credentials, an approved electronic signature (usually a USB token), and every item coded with a GS1 or EGS code. Odoo then signs each posted invoice, sends it to the ETA, and shows whether it was accepted or rejected directly on the invoice.
The ETA e-invoicing system has been rolled out in stages since 2020, and the number of companies obliged to use it keeps growing. You can check whether your company is named in an obligation decision on the ETA's inquiry page. This article explains the practical steps to connect Odoo and the problems we see most often.
E-invoice or e-receipt?
| Aspect | E-invoice | E-receipt |
|---|---|---|
| Used for | Sales to companies and government (B2B, B2G) | Sales to individuals (B2C), e.g. shops, pharmacies, restaurants |
| Issued from | Your ERP or accounting system | Your POS / cashier system |
- Separate registration: Yes, they are two systems with their own onboarding. Many businesses need both.
This article covers the e-invoice. We cover the e-receipt in a separate guide.
Step by step: connecting Odoo to the ETA
1. Register on the e-invoicing portal
The company registers on the ETA e-invoicing portal with its tax registration number and assigns the people who will manage it.
2. Register your ERP system
On the portal, register Odoo as an ERP system. This gives you a client ID and client secret that Odoo uses to connect to the ETA's API. Keep the pre-production (test) and production credentials separate.
3. Get an electronic signature
Each invoice must be signed with an approved electronic signature, usually a USB token issued by a licensed certification authority. The token is connected to a computer that Odoo uses to sign invoices.
4. Code your items
Each product or service must have a GS1 code or an internal EGS code registered on the portal. In Odoo, the code is stored on the product, so every invoice line carries it automatically.
5. Prepare customers and branches
Business customers need their tax registration numbers and addresses. Each issuing branch needs its ETA branch code.
6. Configure taxes in Odoo
VAT (14% standard rate), table tax and withholding taxes must map to the ETA tax types and subtypes.
7. Test in pre-production, then go live
Send real invoice scenarios to the ETA test environment: normal invoices, credit notes, debit notes, discounts, foreign currency. Fix every rejection, then switch to production.
What does daily work look like?
- The accountant posts the invoice in Odoo as usual.
- Odoo signs it and sends it to the ETA.
- The ETA validates it and returns its ID and status, which appear on the invoice.
- Rejected invoices show the reason, so the team can correct and resend.
- The printed invoice carries the ETA identifier and QR code.
The most common rejections
- Item code missing or not activated on the portal.
- Customer tax number missing or wrong.
- Tax types not mapped correctly.
- Rounding differences between line totals and invoice totals.
- Signature token not connected, expired, or with the wrong PIN.
How does Odoo connect to the ETA?
Odoo Enterprise includes an Egyptian e-invoicing module. For Odoo Community the same flow is delivered through a dedicated module configured or developed by your partner. In both cases the result is the same: e-invoicing becomes part of normal invoicing rather than a separate upload task.
Frequently asked questions
How do I know if my company must use the e-invoice?
Obligation is set by ETA decisions issued in phases. Check your tax registration number on the ETA's e-invoice inquiry page, and confirm with your tax advisor.
Can I issue an invoice without the token?
No. Every e-invoice must be signed. Keep a backup plan for the token, such as a second authorised signer.
Can I cancel a submitted invoice?
Cancellation and rejection are allowed only within limited windows set by the ETA. After that, corrections are made with credit or debit notes.
Connect Odoo to the ETA with ExtraMile
ExtraMile sets up Egyptian e-invoicing and e-receipts in Odoo, from portal registration to item coding, testing and go-live.
Request an e-invoicing setup or message us on WhatsApp: Egypt
Correct as of October 2026; confirm your obligations with the ETA or your tax advisor. Official sources are listed at the end of this article.
This article was drafted with AI assistance and reviewed and edited by the ExtraMile implementation team.
Sources
- Egyptian Tax Authority (ETA)
- ETA e-invoicing portal
- ETA e-invoicing and e-receipt SDK (technical documentation)
Last verified:
