ETA eInvoicing Bulk Exporter
A Chrome extension that exports every invoice and line item from Egypt’s national e-invoicing portal into a formatted Excel workbook, using the portal’s own API rather than page-by-page scraping.
No screenshots from this project can be published: it handles financial or personal data, so all visuals here are illustrations and contain no real records.
A versioned download is available for this project.
The problem
Tax authorities increasingly require businesses to file electronic invoices through a government portal, and those portals are built for one-at-a-time interaction. Producing a year of transactional data for an audit or a reconciliation means opening thousands of pages by hand. The reference workflow for this project involved exporting 3,487 pages manually.
The approach
The portal is queried through the same internal API its own front end uses, with details fetched by parallel workers, and the result is written into a workbook that mirrors the exact layout finance teams already work with: the same two sheets, the same column order, the same Arabic headers, the same status colour coding. Because it runs inside the portal tab using the operator’s existing session, there are no credentials to enter and no data leaves the machine.
What is implemented
- Bulk export of all sent and received invoices for a chosen date range
- Full line-item detail per invoice: taxes by type, discounts, seller and buyer details, currency and share links
- Two-sheet Excel output matching a reference workbook: 58 columns per invoice, 64 per line item
- RTL sheet formatting with frozen header row, column widths, borders and status colour coding
- Filters for date range, submission versus issue date, direction, status and document type
- Registration-number filtering across sender, receiver or either side, with strict ID matching that excludes fuzzy name matches
- Export of registered item codes from the portal’s code-usages page
- Parallel detail fetching with pause, resume and cancel
- Resume after an interrupted run without re-fetching completed invoices
- Optional download of the official PDF for every collected invoice
- A debug-report action that copies a full diagnostic snapshot for support
Current status and limitations
- It depends on a government portal’s internal API, which is not a public contract. The portal can change without notice, and its troubleshooting documentation exists because that has happened.
- Large exports are slow by nature: roughly 43,000 invoices means 43,000 detail requests, expected to take tens of minutes on a typical connection.
- No automated test suite and no CI workflow.
- No licence file is published.
- It handles real taxpayer data, so no screenshot of it can ever be published — every visual on this page is an illustration.
Technology
- Chrome Manifest V3
- JavaScript
- ExcelJS
- REST API
- Service Worker
- IndexedDB
Links
- Repository(opens in a new tab)
github.com/mohamedrepo/eta-invoice-exporter
- Documentation(opens in a new tab)
- Download release(opens in a new tab)
- Status
- Released
- Last reviewed
- 2026-10-15
Related work
Have a similar problem?
If this is close to something you are dealing with, describe your situation and we will tell you whether it is a good fit.