In most Egyptian companies we meet, the monthly VAT return is prepared in a spreadsheet that starts from an Odoo export and ends in a figure someone types into the Egyptian Tax Authority portal. The spreadsheet works until the month it does not: a credit note posted after the export, a purchase invoice without a valid tax registration number, an e-invoice that was rejected and never resubmitted. The return should come out of the ledger, and the ledger should agree with what the Authority already holds.
What does the Egyptian VAT return actually summarise?
For each tax period, the return reports the output tax charged on taxable sales, the input tax recoverable on purchases, and the net amount payable or carried forward. The standard rate is 14%. Some supplies are exempt, exports are generally zero-rated, and certain goods carry schedule (table) tax under its own rules. Each of these must land in its own line on the return, which means each must be distinguishable in Odoo before the month starts, not after it ends.
How should taxes be mapped in Odoo?
Every tax in Odoo carries tax grids that tell the system which line of the tax report an amount belongs to. The Egyptian localization provides a starting set. The work is checking that every tax actually in use, including any created by hand during the first year, is mapped to the right grid for both the base and the tax amount, and for both invoices and refunds.
- Output VAT at 14% on local taxable sales, with the base and the tax on separate grids.
- Zero-rated exports and exempt sales as distinct taxes, so they appear on the return instead of hiding inside a generic 0% tax.
- Input VAT on local purchases, split where the return or your own analysis requires it.
- Import VAT paid at customs, recorded against the customs documentation rather than the supplier invoice.
- Refund versions of each tax mapped to reverse the correct grid, so credit notes reduce the right line.
Input versus output: where do the errors usually come from?
Output tax errors are usually about timing: an invoice dated in one month and posted in the next, or a credit note issued without reference to the original invoice. Input tax errors are usually about eligibility: VAT claimed on a purchase whose supplier document does not meet the conditions for deduction, VAT claimed twice because the same vendor bill was entered twice, or VAT on expenses for which the law does not allow deduction. Odoo will record any of these without complaint unless the configuration tells it otherwise.
Our practice is to restrict who can create or edit taxes, require the supplier’s tax registration number on any vendor bill that carries input VAT, and run a duplicate check on vendor reference and amount before the period is closed.
How do you reconcile the return to the general ledger?
The tax report in Odoo is computed from journal items that carry tax grids. The balance of the VAT accounts in the general ledger is computed from the same journal items, grouped by account. If the two disagree, something was posted to a VAT account without a tax grid, usually a manual journal entry, or a tax was configured to post to the wrong account. The reconciliation is simple and monthly:
- The movement on the output VAT account for the period equals the output tax on the report.
- The movement on the input VAT account for the period equals the recoverable input tax on the report.
- Any difference is traced to specific journal items, and every manual entry to a VAT account is reviewed and justified.
- The VAT settlement entry clears both accounts to the payable or carry-forward account, so the next period opens clean.
How does the return link to ETA e-invoices?
Since e-invoicing became mandatory, the Authority receives every B2B invoice your company issues, and every one your suppliers issue to you, as structured data. That changes the review. Output tax on the return should agree with the e-invoices your company submitted and the Authority accepted for the period, after credit and debit notes. Input tax should be supported by e-invoices your suppliers submitted. Before filing, we compare the Odoo sales journal with the list of accepted documents on the portal and investigate three populations: invoices in Odoo that were never accepted, documents accepted by the Authority that are not in Odoo, and documents whose amount or date differs between the two.
The same comparison on the purchase side catches vendor bills recorded from paper or PDF where no valid e-invoice exists. Check the current ETA guidance on what supports input tax for the period in question, since the rules have tightened as e-invoicing has rolled out.
If the return cannot be rebuilt from the ledger in ten minutes, it was not prepared from the ledger.
Where does the VAT return sit in the monthly close?
The return is filed by the statutory deadline, but the work belongs inside the month-end close, after bank reconciliation and before the period is locked. Once the return is filed, set the tax lock date in Odoo so that nothing can be posted into a declared period without a deliberate, logged change. When we run an Odoo implementation for Egyptian clients, tax grid mapping and this reconciliation are part of the acceptance tests, not a later improvement.