هذه المقالة متاحة حاليًا باللغة الإنجليزية فقط. الترجمة قريبا.
Odoo Egypt Localization 2026: ETA E-Invoicing, VAT & Withholding Setup
The Egyptian Tax Authority (ETA) operates one of the most aggressive e-invoicing rollouts in the Middle East. The Egypt e-invoicing portal launched in November 2020 for B2B transactions, expanded to cover all VAT-registered taxpayers by mid-2023, and added a parallel e-receipts mandate for B2C transactions starting July 2023. Companies operating in Egypt must integrate with the ETA portal in real time, signing each invoice with a hardware-based USB token issued by Egypt Trust or other accredited certificate authorities. Odoo's l10n_eg_edi module provides the framework for ETA submission.
Key Takeaways
- Egyptian Tax Authority (ETA) administers VAT (14% standard) and corporate tax (22.5% standard)
- E-invoicing mandatory for all VAT-registered taxpayers since 2023 via ETA portal
- E-receipts mandatory for B2C transactions since July 2023, expanding through 2026
- Hardware USB token (smart card) required for digital signing — typically Egypt Trust eToken
- Odoo
l10n_egcovers chart of accounts;l10n_eg_ediprovides ETA portal integration- Withholding tax 1-5% on payments to local suppliers above EGP 300
- Statutory reports: VAT return (Form 10) monthly, corporate tax return annually
Egypt Tax Framework Overview
The ETA enforces:
- VAT: 14% standard rate on most goods and services; reduced rates of 5% (some essentials) and 0% (exports); exempt for healthcare, education, financial services
- Schedule Tax: Specific-duty tax on certain goods (alcohol, tobacco, vehicles) in addition to VAT
- Corporate Income Tax: 22.5% standard; banks pay 22.5%; oil and gas companies pay 40.55%
- Withholding Tax: 1-5% on payments above EGP 300 to local suppliers; higher rates on payments to non-residents
The e-invoicing system uses real-time submission to the ETA portal at api.invoicing.eta.gov.eg. Invoices are submitted in JSON, signed with the taxpayer's certificate, and assigned a UUID upon acceptance.
Required Odoo Localization Modules
| Module | Purpose | Edition |
|---|---|---|
l10n_eg | Egypt chart of accounts and VAT taxes | Community |
l10n_eg_edi | ETA e-invoicing portal integration | Enterprise (recent versions) / Custom |
l10n_eg_pos | E-receipt support for POS | Custom |
account_reports | VAT and corporate tax reporting | Enterprise |
hr_payroll_l10n_eg | Egyptian payroll with social insurance and PIT | Community / Custom |
Odoo's official Egypt localization has expanded since 2022. Earlier deployments often relied on community modules from Egyptian partners; recent Odoo Enterprise versions ship a more complete ETA integration. Confirm module availability for your Odoo version before scoping.
Chart of Accounts Setup
Egypt's chart follows the Egyptian Accounting Standards (EAS), aligned with IFRS for most listed and large entities. The l10n_eg chart includes:
- 1xxxx: Assets
- 2xxxx: Liabilities (including VAT payable, corporate tax provision, social insurance payable)
- 3xxxx: Equity
- 4xxxx: Revenue
- 5xxxx: Cost of sales
- 6xxxx-7xxxx: Operating expenses
Configure the company record with the tax registration number (9-digit), commercial registration number, and tax office (mamouriya). The ETA portal requires the company branch ID for each transmission location.
VAT Configuration
Configure VAT tax records:
| Tax Name | Rate | Type | Notes |
|---|---|---|---|
| VAT 14% Sales (Standard) | 14% | Sales | Standard goods/services |
| VAT 5% Sales (Reduced) | 5% | Sales | Limited essential items |
| VAT 0% Sales (Exports) | 0% | Sales | Exports outside Egypt |
| VAT Exempt Sales | 0% | Sales | Healthcare, education, financial services |
| VAT 14% Purchase | 14% | Purchase | Standard input |
| Schedule Tax (Variable) | Variable | Sales | Goods subject to specific tariff |
Schedule tax on goods like cars and tobacco is a separate tax on top of VAT. Configure as a parent tax or per-product custom tax.
ETA E-Invoicing Integration
The ETA e-invoicing flow:
- Invoice is approved in Odoo
- Connector module formats the invoice as JSON per ETA spec, including activity codes, GS1 product codes (for taxable items), unit codes (UoM), and tax breakdown
- The JSON is signed using the taxpayer's hardware USB token (CAdES-BES detached signature)
- The signed payload is POSTed to the ETA portal API
- ETA validates and returns either acceptance with UUID and long-ID, or rejection with error codes
- Accepted invoices are visible to the buyer in their ETA portal account
Required fields include:
- Activity code per ETA's classification list
- GS1 GPC code or EGS code (Egypt-specific) for each item
- Unit code from UN/ECE Recommendation 20
- Currency exchange rate to EGP if foreign currency
- Buyer tax registration number (or "0" for non-registered B2C)
{
"issuer": {
"type": "B",
"id": "123456789",
"name": "Example Company SAE",
"address": {...}
},
"receiver": {
"type": "B",
"id": "987654321",
"name": "Buyer Co"
},
"documentType": "I",
"documentTypeVersion": "1.0",
"dateTimeIssued": "2026-05-04T10:00:00Z",
"invoiceLines": [
{
"description": "Product A",
"itemType": "GS1",
"itemCode": "01234567890123",
"unitType": "EA",
"quantity": 10,
"unitValue": {"currencySold": "EGP", "amountEGP": 100.00},
"taxableItems": [{"taxType": "T1", "amount": 140.00, "subType": "V001", "rate": 14.0}]
}
]
}
E-Receipts (B2C)
For B2C transactions, Egypt requires e-receipts via the same ETA infrastructure. The schema is simpler than B2B invoices but still requires:
- Real-time submission to ETA's e-receipt API
- Cash register / POS integration (kid receipt printers)
- QR code on the printed receipt linking to ETA verification
Odoo's POS module needs an e-receipt connector for Egypt. Most deployments build this as a custom module that intercepts POS orders, formats e-receipts, signs, and submits to ETA.
Withholding Tax
Withholding tax applies to:
| Payment Type | Rate | Notes |
|---|---|---|
| Goods purchase from local supplier | 1% | Above EGP 300 |
| Services from local supplier | 3% | Above EGP 300 |
| Professional fees | 5% | Above EGP 300 |
| Payments to non-residents (services) | 20% | Subject to treaty rates |
| Royalties to non-residents | 20% | Subject to treaty rates |
Configure WHT as purchase taxes. Suppliers below the threshold are exempt; configure the threshold logic at the workflow layer (e.g., a server action checking invoice total before applying WHT).
Payroll Considerations
Egyptian payroll components:
| Item | Employee | Employer | Cap |
|---|---|---|---|
| Social Insurance (variable rate) | 11% | 18.75% | Salary cap updated annually |
| Health Insurance (CHIS) | 1% | 4% | New universal scheme |
| Personal Income Tax (PIT) | Per progressive scale | N/A | Brackets up to 27.5% |
PIT brackets (2026):
- 0-30,000 EGP: 0%
- 30,000-45,000: 10%
- 45,000-60,000: 15%
- 60,000-200,000: 20%
- 200,000-400,000: 22.5%
- Above 400,000: 25% (with additional 2.5% on income above 1.2M)
The personal exemption (currently EGP 20,000) reduces taxable income for residents.
Reporting Requirements
A Egypt Odoo deployment must produce:
- VAT Return (Form 10): Monthly, filed by the 30th of the following month
- Corporate Tax Return: Annually, within 4 months of fiscal year end
- Withholding Tax Return (Form 41): Quarterly
- Payroll Tax Return: Monthly social insurance + PIT
- Stamp Tax Return: Quarterly for relevant transactions
Implementation Checklist
- Register on ETA e-invoicing portal; obtain Client ID and Client Secret
- Procure USB token (Egypt Trust eToken) with company digital certificate
- Install
l10n_egand configure tax registration number, branch IDs - Verify chart of accounts; add EAS-specific sub-accounts
- Configure VAT 14%, 5%, 0%, and exempt taxes
- Map products to GS1 or EGS item codes; configure UoM mapping
- Implement ETA e-invoicing connector (or use partner module)
- Test sandbox submission with sample invoices
- Configure payroll with social insurance and 2026 PIT brackets
- Schedule monthly VAT, payroll, and quarterly WHT filings
Common Pitfalls
Missing item codes: ETA requires GS1 GPC codes or Egypt-specific EGS codes. Free-text item descriptions cause submission rejection.
Incorrect activity code: The activity code must match the company's registered activities. Mismatches trigger ETA validation errors.
USB token expiry: Digital certificates issued by Egypt Trust have validity periods (typically 1-2 years). Expired tokens halt invoice submission.
Foreign currency invoices without EGP conversion: ETA requires EGP equivalents at the published Central Bank exchange rate. Configure daily rate updates.
B2C transactions submitted as B2B: Use the e-receipt schema for B2C, not the B2B invoice schema. The two have different validation rules and reporting categories.
ECOSIRE provides Odoo localization for Egypt, including ETA e-invoicing integration, USB token configuration, and EAS reporting. Contact us for implementation or explore our accounting services.
Frequently Asked Questions
Does Odoo support Egypt's ETA e-invoicing natively?
Recent Odoo Enterprise versions include l10n_eg_edi with ETA portal integration. Older versions or Community deployments need custom development or a partner module. The complexity of CAdES-BES signing with hardware tokens means most clients choose Enterprise plus a vetted connector.
What is the difference between e-invoices and e-receipts?
E-invoices are for B2B and B2G transactions where both parties have tax registration numbers. E-receipts are for B2C — retail consumers without TRNs. The ETA infrastructure is the same, but the schemas, submission endpoints, and validation rules differ. Both became mandatory by 2023 with continued enforcement expansion through 2026.
How do we get the USB token for digital signing?
Apply through an ETA-accredited certificate authority — Egypt Trust is the most common — with company documents (commercial register, tax card, articles of incorporation). The token is a physical USB device storing the private key. Renewal is required before expiry to avoid invoice submission interruptions.
Can we batch-submit invoices to ETA?
The ETA API supports document submission in batches (up to 50 documents per submission). Odoo connectors typically queue invoices and submit in scheduled batches to reduce API calls. Real-time submission per invoice is also possible but generates more network overhead.
What happens during ETA portal downtime?
ETA has prescribed grace periods during announced maintenance windows. Unannounced downtime is rare but does occur — invoices generated during downtime should be queued in Odoo and submitted as soon as the portal recovers. Document an internal SOP for handling extended downtime including communication to buyers.
بقلم
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
قم بتحويل أعمالك باستخدام Odoo ERP
تنفيذ وتخصيص ودعم خبير Odoo لتبسيط عملياتك.
مقالات ذات صلة
كيفية إضافة زر مخصص إلى عرض نموذج Odoo (2026)
إضافة أزرار إجراءات مخصصة إلى طرق عرض نموذج Odoo 19: طريقة إجراء Python، وعرض الميراث، والرؤية المشروطة، ومربعات حوار التأكيد. تم اختبار الإنتاج.
كيفية إضافة حقل مخصص في Odoo بدون الاستوديو (2026)
قم بإضافة حقول مخصصة عبر وحدة مخصصة في Odoo 19: وراثة النموذج، وامتداد العرض، والحقول المحسوبة، وقرارات المتجر/غير المتجر. الكود أولاً، يتم التحكم في الإصدار.
كيفية إضافة تقرير مخصص في أودو باستخدام التخطيط الخارجي
أنشئ تقرير PDF يحمل علامة تجارية في Odoo 19 باستخدام web.external_layout: قالب QWeb، تنسيق الورق، ربط الإجراء. مع طباعة الشعار + تجاوزات التذييل.