This guide takes an Egyptian company from sign-up to its first monthly VAT filing, one step at a time: the organisation and its books in EGP, the Egypt tax pack, tax codes, customers and suppliers, ETA e-invoices and e-receipts, withholding and its statements (Forms 41 and 11), the monthly VAT return (Form 10), the reverse charge return for services from abroad (Form 111) and the annual corporate income tax computation. Each step says where to click and what is ready when it is done. It ends with a month-end checklist and a troubleshooting section built from the messages you will actually see.
Every rate and rule in the Egypt pack cites its source, but the pack is marked Unreviewed: no tax adviser has checked it yet, and the pack's card lists the values not yet confirmed. Agree the numbers with your tax adviser before you file on them. Enspekt prepares returns from your books; you file them yourself on the Egyptian Tax Authority's portal.
The whole journey
Before you start
| You need | Where it comes from |
|---|---|
| An org admin account with an authenticator app | Enspekt. Activating the pack, confirming the currency, saving the ETA settings, sending to ETA, registering the POS device and filing a return each ask for a code from it |
| Manage access to General Ledger | The Team page, on the member's module access |
| Your tax registration number | Your tax card: nine digits. The same number serves VAT, table tax, corporate income tax and withholding |
| Your branch ID and four-digit activity code | Your taxpayer profile on the ETA portal |
| Your own ETA portal account, with your ERP registered (client ID and secret) and, for shops, your POS registered (serial, pre-shared key, POS client ID and secret) | The ETA registration portal. Enspekt cannot register for you |
| Your own eSeal certificate on a token or HSM, and a signing service next to it | An approved Egyptian certificate provider, and your IT provider. Enspekt never holds the certificate |
Step 1: The organisation
When you sign up, choose Egypt under Country of registration in Your organisation. To change it later: the account menu, Settings → General, Country of registration, then Save details. This is the country your company is taxed in; the free-text Country in the postal address only prints on letterheads.
Ready when done: Enspekt knows you are an Egyptian company, so Settings → Tax & compliance offers the Egypt pack first.
Step 2: Activate the Egypt tax pack
Go to Settings → Tax & compliance and choose Add a country. The wizard has five steps: Country, Registrations, Questions, Preview and Confirm.
-
Country. Pick Egypt and leave This country is on Country of residence. The wizard offers the latest version of the pack, shown as Pack version and its number. This guide describes version 6.
-
Registrations. Tick Registered for VAT and enter the Tax registration number (nine digits, for example 674859545), Registered from, Files (Monthly; Quarterly only under the small projects regime) and Tax year starts on (the first day of the tax year, not the registration date). Tick Registered for Corporate income tax and Registered for Withholding tax with the same number. Table tax is filed on the VAT return: tick Registered for Table tax only if you supply table goods or services.
Leave Set up E-invoicing (ETA e-invoice, B2B), starting in validate-only mode ticked. It links your company to ETA but sends nothing on its own.
-
Questions. VAT status (Registered or Not registered) is required. Tax card number, Tax office, Commercial registration number and Under the simplified regime for small projects (Law 6/2025) are optional. The pack has no separate field for the tax file: your tax card number goes in Tax card number. Report services from abroad the business does not need on Form 10 (output only) instead of Form 111 is optional too: leave it unanswered or on No unless your adviser says otherwise (see the Form 111 section after Step 9).
-
Preview. It runs the real activation and rolls it back. Read Tax codes to create, Withholding types to add, Accounts to add, Registrations and any Clashes (left as they are). Activation never overwrites your own codes or accounts, and never changes your base currency.
-
Confirm. Choose Activate and enter the code from your authenticator app.
Ready when done: the Egypt card shows your registrations, the pack version with its review state, the VAT, corporate tax and withholding Periods with their due dates, and a Readiness list: tax registrations entered; tax codes linked to the VAT and table tax accounts; the tax accounts in the chart; ETA e-invoicing seller details, credentials and signing service; items carrying their ETA codes; record retention at or above the legal minimum (five years). Edit answers changes the questions later. Deactivate suspends the pack; nothing is deleted.
An organisation on an earlier version sees a line such as Pack version 6 is available (you are on 2) on its card, with its own numbers. Choose Preview the upgrade to see the Tax codes to create and the Accounts to add, then Upgrade. An upgrade never changes your own codes or accounts.
Step 3: The books in EGP
Open Accounting → Chart of Accounts. The Set up accounting checklist at the top has three items:
- Functional currency. With the pack active it reads Suggested by the Egypt tax pack: EGP. Check that the box says EGP and choose Confirm. It cannot change once anything is posted, and the first posting is refused until it is confirmed.
- Fiscal year. Set the first year's start and end in Accounting Settings → Fiscal Periods, then Set up the year.
- Chart of accounts. Choose Seed starter chart. It adds the Egyptian tax accounts from the pack.
| Account | Code | Used for |
|---|---|---|
| VAT Input (Recoverable) | 1400 | Deductible VAT on purchases |
| VAT Output (Payable) | 2200 | VAT on sales |
| VAT Payable — Net | 2210 | The net VAT due |
| Withholding Tax Payable | 2230 | Tax withheld from supplier payments |
| Table Tax Payable | 2240 | Table tax on sales, kept apart from VAT |
| Corporate Income Tax Payable | 2250 | Corporate income tax due |
| Corporate Income Tax Expense | 7900 | The year's income tax charge |
| Reverse Charge Tax Payable (Form 111) | 2260 | Tax due on services from abroad that you do not need for your activity |
| Non-recoverable Tax on Services from Abroad | 6950 | The cost side of that tax, never input VAT |
Then open Accounting Settings → General and set Withholding tax payable account to 2230 Withholding Tax Payable. Activation does not set it, and a supplier payment with withholding is refused until it is set.
Ready when done: the checklist disappears, and the Readiness items for accounts and tax codes are ticked.
Step 4: Tax codes
Activation creates thirteen tax codes. See them under Accounting Settings → Tax Codes, each with its rate, its VAT return box and its accounts.
| Code | Use it for | Rate | Posts to | Form 10 box |
|---|---|---|---|---|
| EG-STD | Standard-rated goods and services | 14% | Sales: VAT Output 2200. Purchases: VAT Input 1400 | Sales at the standard rate / Purchases at the standard rate |
| EG-REDUCED | Machinery and equipment | 5% | 2200 and 1400 | Sales or Purchases of machinery and equipment at 5% |
| EG-ZERO-EXP | Exports | 0% | No tax posting | Exports and supplies to free zones |
| EG-ZERO-FZ | Supplies to free zones | 0% | No tax posting | Exports and supplies to free zones |
| EG-EXEMPT | Exempt supplies | 0% | No tax posting | Exempt sales |
| EG-OOS | Not subject to tax | 0% | No tax posting | Kept off the return |
| EG-RC-SVC | Services bought from abroad and needed for your activity (reverse charge) | 14% | Both 2200 and 1400 | Services received from abroad, as a sale and as a purchase |
| EG-IMPORT-CUSTOMS | VAT paid at customs on imports | 14% | 1400 | Imports, VAT paid at customs |
| EG-TBL-PROF | Table tax on professional and consultancy services | 10% | Table Tax Payable 2240, never VAT | Supplies subject to table tax only |
| EG-TBL2-TELECOM | Table tax on mobile telecom services, charged before VAT | 8% | Table Tax Payable 2240; the VAT on top posts with the line's VAT code | Supplies subject to table tax and VAT |
| EG-TBL2-AC | Table tax on air conditioners, charged before VAT | 8% | Table Tax Payable 2240; the VAT on top posts with the line's VAT code | Supplies subject to table tax and VAT |
| EG-RC-111 | Services from abroad not needed for your activity (reverse charge) | 14% | Reverse Charge Tax Payable 2260, with the same amount as a cost on 6950 | Form 111 (or Form 10, by your choice) |
| EG-RC-111-TBL | Table tax on such a service from abroad | 10% | 2260 and 6950 | Form 111 (or Form 10, by your choice) |
Rates come from the dated rules in the pack (14% since 1 July 2017). The free-zone conditions are not checked, and the 5% rate is not checked against the item: choosing the right code on each line is yours. Table tax on purchases is not deductible and is kept off the return. The two table taxes charged before VAT (EG-TBL2-TELECOM and EG-TBL2-AC) are never a line's only code: they are its second tax (below).
Two taxes on one line
An item in the second section of the Table annexed to the VAT Law (mobile telecom services, air conditioners) bears table tax and VAT, and the VAT is charged on the value including the table tax: EGP 1,000 plus 8% table tax is 1,080, and 14% VAT on 1,080 is 151.20.
On a sales invoice, a credit note or a supplier invoice, choose the line's VAT code first (for example EG-STD). A second list then appears under it, Tax before VAT, starting on No tax before VAT: choose EG-TBL2-TELECOM or EG-TBL2-AC there. The line's tax is then both taxes. The second list appears only once the line has a tax code, and only in an organisation that has a code charged before VAT.
- On a sale, the table tax posts to Table Tax Payable (2240) and the VAT to VAT Output (2200). The ETA document carries both taxes on the line.
- On a purchase, the table tax is not deductible: it is added to the line's cost, and only the VAT goes to VAT Input (1400).
Ready when done: every invoice and bill line can carry an Egyptian code, and a line can carry a table tax before its VAT.
Step 5: Customers, suppliers and items
Customers
ETA reads the customer's tax registration number, address and type from the customer record, under Sales → Customers. Choose Add Customer, or open a customer and choose Edit, then fill:
| Where | Field | What to enter |
|---|---|---|
| Identity | Tax registration number | The customer's nine digits, for example 674859545. The field turns red on anything else. Leave it blank for a customer that is not registered |
| Tax and e-invoicing | Customer type | Business for a registered company, Government body for a ministry, authority or other public body, Individual (consumer) for a person buying for themselves |
| Country code | EG (filled in for a new customer). Another country's code makes the customer foreign: its number is then not checked against the Egyptian format, and ETA receives it as a foreign receiver | |
| National ID or passport number | Shown for an individual: the 14-digit national ID, or the passport number of a foreign person. Needed on large sales | |
| Building number, Street, City or district, Governorate or region, Postal code | The address printed on the ETA document. ETA needs the governorate, city, street and building for a business or a government body |
The customer type decides what ETA receives. A Business or a Government body is sent with its tax registration number (ETA has no separate type for public bodies; the Form 10 sales sheet still lists their sales as government sales). An Individual is sent as a person, with the national ID. A customer left as Business without a number is held back: its document shows A business receiver needs its nine-digit tax registration number and is not sent until you add the number or change the type.
Suppliers
On the supplier's page, in the Withholding Tax panel (visible with accounts payable):
| Field | What to enter |
|---|---|
| Applicable | Tick Withhold tax from payments to this supplier for a supplier you withhold from |
| Non-resident | Tick Supplier is not resident in the organisation's country for a supplier not resident in Egypt. Form 111 is refused for a supplier that is not marked non-resident, or whose country code is EG |
| Default payment type | The withholding type, for example Services (resident) — 3%. Each invoice can override it |
| Flat rate % (blank = org default) | Leave blank to use the type's rate |
The supplier's own tax identity is under Edit Profile, in the Tax identity section (and shown on the page in the Tax identity panel):
| Field | What to enter |
|---|---|
| Tax registration number | The supplier's nine digits. The Form 10 purchases sheet reads it, and without it flags each domestic purchase with supplier_tin_required |
| Country code | EG for an Egyptian supplier. A supplier in another country is listed as an import: its number is not checked against the Egyptian format |
| Building number, Street, City or district, Governorate or region, Postal code | The address the purchases sheet prints |
Items
Each invoice line needs its ETA item code. Enter the product's EGS code (EG-<your tax registration number>-<your code>, as registered with ETA) or its GS1 barcode as the product's Part Number. For POS sales, the code is the product's barcode.
EGP on purchasing and projects
Purchase Orders, RFQ (and the supplier's quote), Projects and sales Products all offer EGP as the currency (Egyptian Pound (EGP) on a purchase order).
Ready when done: suppliers carry their withholding type and items carry their ETA codes, the last Readiness item.
Step 6: ETA e-invoicing
Beta. Sending to ETA is built to ETA's published specification but has not yet been run against a live ETA account. Treat your first pre-production run as the test, and keep production for after it passes.
6.1 Register your ERP on the ETA portal
On ETA's registration portal, register your ERP system. ETA gives you a client ID and client secret, separately for pre-production and production. These belong to your ETA account; Enspekt cannot obtain them for you.
6.2 Your signing service
ETA accepts only documents signed with your eSeal certificate (a CAdES-BES signature). The certificate stays on your token or HSM, and Enspekt never holds it. A signing service that you run next to the token signs each document: Enspekt sends it the document's canonical text and SHA-256 hash, signed with a shared secret of at least 16 characters, and stores the signature it returns. Your IT provider builds or buys the service from the contract Enspekt publishes (docs/eta-signing-service.md: the request, the response and the signature format).
6.3 Enter the ETA settings
Go to Settings → Tax & compliance. The ETA e-invoicing (Egypt) card appears once the Egypt pack is active.
- Seller details, exactly as on your ETA profile: Registered name, Registered name (Arabic), Branch ID, Governorate, City or region, Street, Building number, Postal code and Activity code.
- Environment: Sandbox (build and check only), then ETA pre-production, then ETA production.
- ETA credentials and signing service, for each environment (pre-production and production): Client ID, Client secret, Signing service URL (https) and Signing service shared secret. Secrets are stored encrypted and never shown again; a saved one shows "(set)".
- Tick Send documents to ETA automatically after posting when you are ready, and choose Save (it asks for your authenticator code).
There is no "test connection" button: the first document you send in pre-production is the test.
6.4 Sandbox first, then pre-production, then production
| Environment | What happens |
|---|---|
| Sandbox (build and check only) | Every posted invoice and credit note is built and checked. Nothing is signed or sent. Use it to clear the data issues |
| ETA pre-production | Documents are signed by your service and sent to ETA's test system. Use your pre-production credentials |
| ETA production | Documents are signed and sent to ETA for real |
6.5 Build, sign, send and read ETA's verdict
Follow every document in Accounting → Tax Workspace → ETA e-invoices (columns Document, Environment, Status, ETA UUID):
| Status | Meaning | What to do |
|---|---|---|
| Ready | Built and checked, not sent (Sandbox, or sending is off) | Sign and send outside Sandbox |
| Needs fixing | A check failed. Open the document to see each field and message | Fix the data, then Rebuild |
| Signed | Signed by your service, not yet sent | Sign and send |
| Sent | Accepted by ETA, which validates it shortly after | Check status |
| Valid | ETA's verdict: valid | Nothing |
| Rejected | ETA refused it at submission, or later found it invalid | Read the reason on the document; correct and issue a credit note or a new invoice |
| Cancelled | Cancelled at ETA | Nothing |
| Failed | Signing or sending failed; the reason is shown | Fix the cause, then Sign and send again |
Build missing (last 90 days) builds the documents of invoices and credit notes posted before ETA was set up. A credit note names the ETA document of its invoice, so send the invoice first.
When ETA rejects a document at submission, its answer is shown on the document. When ETA later marks a sent document invalid, the register shows Rejected but not ETA's reasons: read them on the ETA portal. Enspekt cannot cancel or reject a document at ETA; do that on the portal.
Ready when done: posted invoices reach Valid in the register.
Step 7: POS e-receipts
- Register your POS on the ETA portal. ETA gives you the POS serial number, the pre-shared key and the POS client ID and POS client secret.
- Open POS → Settings → ETA e-receipt device and enter the POS serial number, POS OS version, POS model framework, POS client ID, POS client secret, Pre-shared key, Branch ID and Activity code (left blank, these two come from the ETA seller details), and the Environment (ETA pre-production or ETA production).
- Tick Issue e-receipts from this device and choose Save. Only an org admin can save it, with an authenticator code. One device is active per organisation.
- Chained per device. Each receipt names the one before it on the same device; the card shows Last receipt UUID. A return names its sale's receipt.
- Reported in the background. A scheduled job sends pending receipts to ETA every two hours.
- Offline sales. A sale made while the till is offline prints "e-Receipt: queued" without a QR. It gets its e-receipt and QR when it syncs.
- Large sales. From EGP 150,000, ETA needs the buyer's national ID and name. The till does not ask for them yet, so such a receipt is kept as invalid and not sent: issue an e-invoice for that sale instead.
Until the device is active, the till prints ordinary VAT receipts.
Ready when done: the POS sales list shows each sale's e-Receipt status.
Step 8: Withholding at source on supplier payments
- On the supplier invoice, Withholding tax type defaults to Supplier default; choose another type for this invoice if needed. The field appears when the supplier's Applicable is ticked.
- Pay the invoice, from the supplier invoice or an AP Payment Run. The payment withholds at the type's rate on the value before VAT (from pack version 2): an invoice of EGP 10,000 plus 14% VAT for a service at 3% withholds EGP 300, not 342. The supplier receives the net; the withheld amount is credited to Withholding Tax Payable (2230). Nothing is withheld on an invoice whose value before VAT is EGP 300 or less: the law withholds only on a larger amount.
- Each payment is listed under Accounting → AP Payments. Its row shows Gross, Withheld and Net, and its Certificate (a Withholding Tax Certificate PDF, in English or Arabic) for the supplier.
- To check the withholding at any time, open Accounting → WHT Summary, choose From and To, and Run. The report groups by month with the amount to Remit, totals By payment type, and lists each line with its Base, Rate and Withheld. Non-resident suppliers carry a Non-resident badge.
- The quarterly statement (Form 41). Withholding is filed by quarter, by the end of the month after it (the end of April, July, October and January). In Accounting → Tax Workspace, find the Withholding tax period and choose Open statement. Withholding statement (Form 41) lists each payment (Payment, Payee, Type, Value, Rate, Withheld), and Download xlsx gives it in ETA's own Form 41 template; the second sheet is for checking and is not uploaded. Clear the issues it lists, choose Prepare, upload the file on the tax portal, then choose File and record the portal's reference with Record submission.
- Authority codes. Form 41 asks for a transaction-nature code and a deduction type for each withholding type. ETA lists them only on its portal: copy them into the withholding types table under Accounting Settings → General, column Authority codes (Nature and Type). Prepare is blocked while a withholding type has no codes, or while a payee has neither a nine-digit tax registration number nor a fourteen-digit national ID.
- Non-residents (Form 11). Payments to non-residents are left off Form 41. They are listed under Payments to non-residents (Form 11) in the same statement, with their own Download xlsx in ETA's Form 11 template. Form 11 is due the working day after each payment: download it and upload it on the portal as the payments are made.
| Withholding type | Rate |
|---|---|
| Contracting and supplies (resident) | 1% |
| Purchases (resident) | 1% |
| Services (resident) | 3% |
| Commission and brokerage (resident) | 5% |
| Interest paid to a non-resident | 20% |
| Royalties paid to a non-resident | 20% |
| Service fees paid to a non-resident | 20% |
ETA has no API for withholding: Enspekt prepares Form 41 and Form 11 in ETA's templates, and you upload them on the portal. The due dates and the EGP 300 threshold come from the pack, which is unreviewed: check them with your adviser.
Ready when done: every supplier payment carries its withholding and certificate, and each quarter's Form 41 is prepared, uploaded and filed.
Step 9: The monthly VAT return (Form 10)
The VAT return is due within the month after each period. Enspekt builds a working summary of Form 10 from your posted invoices, credit notes, supplier invoices and POS sales, the two upload sheets in ETA's own Excel templates, and Form 10 itself in its official layout. You file on ETA's e-tax portal.
-
Compute. Open Accounting → Tax Workspace, find the VAT period and choose Open return. The return is computed from the books each time it opens, using VAT return (Form 10) working summary.
-
Review the boxes. Choose a box to see why this number: its formula, its source and every document in it.
Section Boxes Sales Sales at the standard rate; Sales of machinery and equipment at 5%; Exports and supplies to free zones (zero-rated); Exempt sales; Total sales; Services received from abroad (reverse charge, as a sale); Services from abroad not needed for the activity (reverse charge, tax due only) Table tax Supplies subject to table tax only; Supplies subject to table tax and VAT; Table tax on services from abroad (reverse charge) Purchases Purchases at the standard rate; Purchases of machinery and equipment at 5%; Imports, VAT paid at customs; Services received from abroad (reverse charge, as a purchase); Exempt and zero-rated purchases; Total purchases Tax due VAT on sales; Deductible input VAT; Credit balance from the previous period; Net VAT due (or credit); Table tax due; Total due The working summary's box names are Enspekt's; Form 10 in its official layout is in step 6 below. The two reverse charge boxes for services you do not need are used only if you chose to report them on Form 10 (see the Form 111 section after this step).
-
Check the GL tie-out. Output VAT: return vs ledger and Input VAT: return vs ledger compare the return with the VAT accounts; the output side counts the table tax payable as well as VAT. A variance blocks Prepare until you explain it with an Add adjustment (with a Reason) or correct the postings. Enter last period's credit in Credit balance from the previous period as an adjustment.
-
Prepare. Save draft keeps your adjustments; Prepare freezes the numbers. If documents change afterwards, the return says so: prepare it again.
-
Download ETA's upload sheets. The ETA upload sheets (Form 10) card has Sales documents and Purchase documents, each with Download xlsx, its counts and totals, and Agrees with the return (or not). Open to check before uploading and clear each issue (see Troubleshooting). Table tax is listed too: a sale bearing table tax alone is a table good (tax type 2), and a sale bearing table tax and VAT is listed as two rows, the table tax and then the VAT on the value including it. Table tax on purchases is not deductible and is left off the purchase sheet.
-
Form 10 in its official layout. Below the two sheets, Form 10 in its official layout shows the return as the Minister of Finance's Decree 403/2023 lays it out, as the sum of the two sheets, with its own Download xlsx and Agrees with the return's working summary (or not). A registrant of table goods files page 2 of the form, which is the second sheet of the download. Adjustments you entered by hand are not in it. ETA has no API for the return: key these figures on the portal, or compare them with what the portal computes from the uploaded sheets.
-
Upload on the portal. On ETA's e-tax portal, attach the two sheets to the period's VAT return and submit it.
-
Record the filing. Back in Enspekt choose File (with your authenticator code). VAT postings in the period are now locked. Then enter ETA's reference in Authority reference and choose Record submission. From then on the return is corrected only through Amendments (voluntary disclosure). Before the reference is recorded, Unfile (with a reason) reopens it.
Ready when done: the period shows Filed with ETA's reference, and its VAT postings are locked.
Form 111: services from abroad you do not need
A service from a non-resident that your business needs for its taxable activity is reverse charged on the monthly Form 10 with EG-RC-SVC, as a sale and as a purchase. A service you do not need for the activity is different: its tax is not deductible, and it is reported on Form 111, one return per service, within 30 days.
- The supplier. Tick Non-resident on the supplier (Step 5) and give it its country code. Form 111 is refused for a supplier that is not marked non-resident.
- The invoice. On the supplier invoice, give the service line EG-RC-111 (14%) or, for a service subject to table tax, EG-RC-111-TBL (10%). The line shows Self-assessed at posting. Posting credits the tax to Reverse Charge Tax Payable (2260) and debits the same amount to Non-recoverable Tax on Services from Abroad (6950), a cost: nothing goes to VAT input.
- The return. In Accounting → Tax Workspace, each such invoice has its own row, Reverse charge return (Form 111) working summary, showing Service received (the invoice date), the invoice number and the supplier. It is due 30 days after the invoice date, or after the first payment against the invoice if that came earlier. Choose Open return: the boxes are Services at the general VAT rate, Services subject to table tax (10%), Tax due on this service and Tax recoverable as input (none), and Payable for this service is the amount to pay.
- Prepare, submit the return and pay on the portal, then File and Record submission as for Form 10. ETA publishes no layout for Form 111, so there is no download: key the figures on the portal.
Whether you need a service for your activity is your decision, made by the tax code you choose on each line. A business that is not registered for VAT registers for the reverse charge: until that registration is entered under Settings → Tax & compliance, the Tax Workspace warns about each such invoice dated where the organisation has no VAT registration.
Form 10 instead, by your choice. ETA's reverse charge guide also lets a registered business report such a service on Form 10 as tax due only. To do that, choose Edit answers on the Egypt card and answer Yes to Report services from abroad the business does not need on Form 10 (output only) instead of Form 111. The services then go in the Form 10 boxes Services from abroad not needed for the activity (reverse charge, tax due only) and Table tax on services from abroad (reverse charge), with nothing deducted, and no Form 111 rows are made. A service already on a prepared or filed Form 111 stays off Form 10, so nothing is reported twice. The pack's default is Form 111: agree the choice with your adviser.
Ready when done: every service from abroad you do not need has its Form 111 filed with ETA's reference, or is on Form 10 by your choice.
Step 10: Corporate income tax (the annual computation)
Corporate income tax is 22.5% of the year's taxable profit, due four months after the year ends.
- In Accounting → Tax Workspace, choose Open computation on the corporate tax year. The Corporate income tax computation runs from the ledger: Accounting profit before income tax, Add: non-deductible costs, Less: exempt income, Other adjustments, Taxable profit before losses, then Tax losses brought forward, Less: losses past five years, Losses set off, Net taxable profit, Losses carried forward and Corporate income tax.
- Adjustments. Add adjustment, choose the kind, the amount and a Reason:
- Adjusts taxable income, for example the 10% donations cap or the interest limits, which are entered by hand;
- A loss of an earlier year not yet in the books, with the Last day of the year the loss arose in. A loss entered this way is not on the carry-forward ledger: enter what is left of it again next year.
- Recompute shows the effect. Save draft keeps the adjustments (the panel is titled "preview, not saved", but Save draft and Prepare do save them). Prepare freezes the numbers. Once prepared, Return schedules for the tax portal offers Download xlsx: the computation laid out as the authority's return (the summary page, the detailed statement from accounting profit to the taxable base, and the attached schedules), with what to key from your own records. There is no API: key it on the portal.
- File (with your authenticator code). The carry-forward ledgers are updated: losses used, losses that expired after five years, and a new loss.
- Enter ETA's reference in Authority reference and choose Record submission. Unfile before that reverses the ledger movements.
Carry-forward ledgers, under the computation, list each Tax losses entry with Arose in, Movements and Balance. A loss can be set off for five years, with no cap.
Ready when done: the year shows Filed with its reference, and next year starts from the updated loss ledger.
Month-end checklist
| When | Task | Where |
|---|---|---|
| Daily | Clear Needs fixing and Failed documents | Tax Workspace, ETA e-invoices |
| Daily | Check sales still showing the e-Receipt as queued | POS sales list |
| Before closing | Post every sales and supplier invoice, credit note and POS sale for the month | Accounting |
| Before closing | Build missing (last 90 days) for anything posted without a document | ETA e-invoices |
| Before closing | Check status on Sent documents until they read Valid | ETA e-invoices |
| Before closing | Run the WHT Summary for the month and check the withholding | Accounting, WHT Summary |
| The working day after each payment to a non-resident | Download Payments to non-residents (Form 11) and upload it | Tax Workspace, withholding statement, then ETA portal |
| Within 30 days of each service from abroad you do not need | Prepare its Form 111 row, submit it on the portal, then File and Record submission | Tax Workspace, then ETA portal |
| By the due date | Open the return, clear the tie-out, Prepare, download both upload sheets and clear their issues | Tax Workspace |
| By the due date | Upload the sheets and submit Form 10 on the portal, then File and Record submission | ETA portal, then Tax Workspace |
| By the end of the month after each quarter | Open statement on the withholding period, Prepare, upload Form 41, then File and Record submission | Tax Workspace, then ETA portal |
| After filing | Soft close or hard close the period | Accounting Settings, Fiscal Periods |
To give these tasks owners and due days every month, build them once as a template in Accounting Settings → Close Checklists (New Template, Add item, Days after period end), then choose the period and Apply to Period: each item becomes a task in My Work.
Troubleshooting
Upload sheet issues
| Code | Message | What to do |
|---|---|---|
| tin_required | An invoice to a registered business needs the customer's nine-digit tax registration number. | Enter the customer's Tax registration number (Step 5), or set its Customer type to Individual (consumer) or Government body if that is what it is, then download the sheet again |
| supplier_tin_required | A purchase invoice needs the supplier's nine-digit tax registration number. | Enter the supplier's Tax registration number under Edit Profile → Tax identity (Step 5), then download the sheet again |
| import | Foreign supplier: an import is declared on its customs release permit (document type 4, statement type 2), and a service from a non-resident goes in both sales and purchases. Listed as a domestic purchase; review it. | Correct the row's document and statement type in the sheet, or remove it and declare it as ETA requires |
| national_id | ETA asks for the national ID or passport number on a large final-consumer sale. | Add the buyer's national ID or passport number in the sheet |
| address | The address column is required. | Add the address in the sheet |
| no_tax_code | A line has no tax code; its rate is listed as written on the line. | Give the line a tax code and post a correction, or fix the row |
| nature_assumed | A line has no item type (goods or service) and is listed as goods; change the statement and goods type in the sheet where it is a service. | Change the statement and goods type in the sheet for a service |
| zero_rated_domestic | A zero-rated sale to a customer in Egypt: check the goods type (exports is code 2). | Check the code used and the goods type |
| table_goods_code | A table good needs its goods type from ETA's code list (Sheet1 of the sales template): set it on the tax code. | Use the pack's table tax codes, which carry their goods type |
| table_tax_two_rows | A table good bearing VAT is listed as two rows: the table tax on the value, then the VAT on the value including the table tax. … | ETA does not publish how the portal expects such an item: check it before uploading |
| purchase_table_tax | A table tax paid on a purchase is not deductible (Art. 22) and is kept off the return; … | Nothing to fix: table tax on purchases is not deductible |
The card also says that VAT on customer advances is counted in the return from the ledger, with no row in the sheet.
Form 10 layout notes
These appear in the notes under Form 10 in its official layout.
| Message | What to do |
|---|---|
| The period has table tax: a registrant of table goods files page 2 of the form … Page 2 is the second sheet of the download. | File page 2 from the second sheet |
| Page 2's table tax ({form}) differs from the working summary's ({summary}) … | Find the table tax line missing from the sheet or kept off |
| The quantity column of the table tax table is filled only for tobacco, petroleum products, ethyl alcohol, wine and beer … | Key the quantity on the portal for those goods |
| A service from a non-resident ({docs}) is entered as a sale at the general rate and as an imported service input … | Check that the business needs the service; if not, use EG-RC-111 (Form 111) |
| Goods bought from abroad are listed as imported inputs … | Key the customs release permits on the portal |
Withholding statement messages
These appear on Withholding statement (Form 41).
| Message | What to do |
|---|---|
| Neither a nine-digit tax registration number nor a fourteen-digit national ID is recorded for this supplier. | Enter the supplier's Tax registration number under Edit Profile → Tax identity (Step 5) |
| The withholding type "{type}" has no Form 41 transaction-nature code or deduction type. … | Enter the type's Authority codes (Step 8) |
| Withheld on {base}, not over {threshold}: the law withholds only on a larger amount … | Check the payment with your adviser |
| {count} payments to non-residents are left out: they are reported on Form 11, due the working day after the payment. | Download Payments to non-residents (Form 11) |
| The withholding type "{type}" has no Form 11 transaction type: … | Pay non-residents under the pack's non-resident types (interest, royalties, service fees), which carry it |
| Payments changed since the statement was prepared. Prepare it again before filing. | Prepare again |
ETA e-invoice messages
These appear on a document marked Needs fixing (in English).
| Message | What to do |
|---|---|
| Enter the ETA seller details under Settings, ETA e-invoicing | Complete the seller details (Step 6.3) |
| No tax registration number in force on the document date | Check Registered from on the Egypt card |
| Line {n} has no tax code | Give every line a tax code |
| Line {n} needs its ETA item code: enter the product's EGS code (EG-<tax registration number>-<code>) or its GS1 barcode as its Part Number | Enter the code as the product's Part Number |
| Unit {unit} is not an ETA unit type | Use an ETA unit of measure on the line |
| The invoice this note changes has no ETA UUID yet: submit the invoice first | Send the invoice, then the credit note |
| A foreign-currency line needs the amount sold and the exchange rate | Check the invoice's exchange rate |
| The activity code is the four-digit code of the business activity registered with ETA | Correct the Activity code |
| The issue time cannot be in the future | Check the invoice date |
| The ETA total {x} differs from the posted total {y} | Rebuild; if it persists, contact support |
| A business receiver needs its nine-digit tax registration number | Enter the customer's Tax registration number, or set its Customer type to Individual (consumer) for a person (Step 5), then rebuild |
| A person's national ID has fourteen digits | Correct the customer's National ID or passport number, then rebuild |
| The receiver address needs governate (or regionCity, street, buildingNumber) | Fill the customer's Governorate or region, City or district, Street and Building number, then rebuild |
Sending and signing messages
| Message | What to do |
|---|---|
| The ETA environment is sandbox: documents are built and checked, never sent. Choose pre-production or production. | Change the Environment (Step 6.4) |
| No signing service is set for this environment | Enter the signing service for the chosen environment |
| No ETA credentials for this environment | Enter the Client ID and Client secret for that environment |
| ETA login failed: … | Check the client ID and secret with the ETA portal |
| The signing service did not answer: … | Check that your signing service is running and reachable over https |
| The signing service refused (…): … | Check the shared secret on both sides |
| The signature does not carry this document's digest: the signing service signed something else | Your signing service must sign the hash it receives |
| The stored document no longer matches its hash: rebuild it | Rebuild, then Sign and send |
| Activity code {code} is not in ETA's list | Use the code from your ETA profile |
POS e-receipts
E-receipt issues are not listed in the app yet: a receipt that fails a check stays unsent. The usual causes are a product without a barcode (ETA item code), a sale from EGP 150,000 (buyer's national ID needed), or a return whose sale had no e-receipt.
Coming next
This is being built now. It is not in the product yet, and this guide will be updated when it ships.
ETA pre-production testing
The first end-to-end run against ETA's pre-production system, after which ETA sending loses its beta label.
FAQ
Is anything sent to ETA when we activate the pack? No. Nothing is sent until you enter your ETA details, choose an environment other than Sandbox and send.
Do we need our own ETA and certificate accounts? Yes. The ETA portal registration (ERP and POS credentials) and the eSeal certificate are yours, from ETA and an approved certificate provider. Enspekt never holds the certificate.
Does Enspekt file the return for us? No. It prepares the returns, the upload sheets and the withholding statements; you submit them on ETA's portal and record ETA's reference.
Can we turn it off? Deactivate on the Egypt card suspends the pack; nothing is deleted. It is refused while a period has ended without being filed. Unticking Send documents to ETA automatically after posting stops automatic sending.