UAE Corporate Tax in Odoo: Producing a Defensible Taxable Income
UAE corporate tax changed what closing the books means here. VAT asked your ERP to classify transactions; corporate tax asks it to defend a number. What a return must survive is not whether the taxable income figure looks reasonable — it is whether anyone can walk from the audited accounts to that figure and back without a spreadsheet only one person understands. That is a configuration problem.
Taxable income starts in your statutory accounts
Article 20(1) of Federal Decree-Law No. 47 of 2022 requires taxable income to be determined separately for each taxable person, from adequate standalone financial statements prepared under accounting standards accepted in the State. Article 20(2) then makes taxable income the accounting income for the period, adjusted for exempt income, reliefs, deductions, related-party transactions and tax loss relief.
Ministerial Decision No. 114 of 2023 fixes those standards: IFRS, with IFRS for SMEs available up to AED 50,000,000 of revenue and the cash basis up to AED 3,000,000. Ministerial Decision No. 84 of 2025 adds the audit layer: audited financial statements for a taxable person outside a tax group with revenue above AED 50,000,000, and for every Qualifying Free Zone Person.
So the corporate tax figure is a derived layer on your ledger, not a second set of books. If the profit and loss inside Odoo is not what gets adjusted, the audit trail is gone before you start — and how much of that layer you can build natively turns on the Community versus Enterprise question.
What the Odoo UAE localization gives you, and what it leaves blank
Odoo's UAE fiscal localization ships l10n_ae_reports, described in the 19.0 documentation as adding "VAT and corporate tax reporting capabilities". Under Accounting → Reporting → Corporate Tax Report you get net profit, exempt income, allowable deductions, adjustments for non-deductible expenses, and the corporate tax amount.
Then the sentence most people skip: the same documentation states no default fiscal categories, disallowed expenses, allowable deduction accounts or exempt income accounts are configured — users classify them manually. Odoo gives you the shape of the computation; every classification inside it is yours to defend. That is the reverse of VAT, where the FTA tax categories arrive preconfigured.
A chart of accounts that separates what the return separates
Because the report runs off account tags, your chart of accounts becomes the tax logic. Three habits carry it:
- Exempt income gets its own accounts. Dividends from a resident juridical person and participation-exemption income under Articles 22 and 23 cannot share a revenue account with trading income. Those accounts carry the exempted-income tag; on a shared account, the tag is untrue.
- Different tax character is split at source. Free-zone qualifying revenue, non-qualifying revenue and mainland revenue each have to be separable from the ledger, not by judgement nine months later.
- Analytic accounts carry the second dimension. The chart says what kind of income it is; analytic distribution says which entity, contract or activity produced it.
That second dimension is where multi-entity groups save themselves. A Dubai group running a free-zone company and a mainland company in one database needs the books genuinely separated — a multi-company configuration question first, a tax one second. Contracting firms hit it a level down, where analytic distribution per contract and BoQ line shows which activity produced which revenue.
Disallowed and partially deductible expenditure
Article 28 allows expenditure incurred wholly and exclusively for the business and not capital in nature. Everything else is an adjustment, in three patterns:
- Fully disallowed. Article 33 denies a deduction for donations to entities that are not Qualifying Public Benefit Entities, fines and penalties other than compensation for damages or breach of contract, bribes, dividends paid to an owner, corporate tax itself, recoverable input VAT, and tax on income imposed outside the State.
- Half deductible. Article 32 allows 50% of entertainment, amusement or recreation expenditure — meals, accommodation, transportation, admission fees and the facilities used with them.
- Capped. Article 30 limits net interest expenditure to 30% of EBITDA excluding exempt income, carrying disallowed amounts forward ten tax periods. Ministerial Decision No. 126 of 2023 disapplies that limit up to AED 12,000,000 of net interest expenditure.
Odoo handles the middle case natively: assign a fiscal category to the expense account, then set the start date and fiscal rate in the Fiscal Rates tab so the adjustment flows through automatically. The trap is a catch-all entertainment account holding staff meals, client meals and an offsite. Split them before setting the rate.
Related-party data you cannot reconstruct later
Article 34 requires related-party transactions to meet the arm's length standard using one or a combination of five listed methods. Article 35 defines related parties largely through 50% ownership or control, and Article 36 holds payments to connected persons — owners, directors, officers and their related parties — to market value.
Disclosure sits at two levels. Ministerial Decision No. 97 of 2023 requires a master file and a local file where the taxable person belongs to a multinational enterprises group with total consolidated group revenue of AED 3,150,000,000 or more, or where its own revenue in the tax period is AED 200,000,000 or more. Separately, the FTA's Corporate Tax Returns guide requires the related party schedule once aggregate transactions with all related parties exceed AED 40 million, disclosing categories above AED 4 million, plus a connected persons schedule above AED 500,000 per connected person. Tag those partners from day one and the schedules become a filter, not an excavation.
Small business relief, and the free-zone test your books must survive
Article 21 lets a resident person elect to be treated as not having derived any taxable income. Ministerial Decision No. 73 of 2023 sets that revenue threshold at AED 3,000,000 for the relevant and previous tax periods, applies it to tax periods commencing on or after 1 June 2023, and states it only continues to apply to subsequent tax periods ending before or on 31 December 2026. It is closed to a Qualifying Free Zone Person and to a member of a multinational enterprises group, and electing forfeits carry-forward of that period's tax losses and net interest expenditure. Read that sunset date carefully: relief is a filing position, not a reason to postpone configuration.
Free zones need measurement, not opinion. Article 18 sets the Qualifying Free Zone Person conditions, and Ministerial Decision No. 229 of 2025 provides that the de minimis requirement is met where non-qualifying revenue does not exceed 5% of total revenue or AED 5,000,000, whichever is lower. Fail those conditions and, under the same decision, you cease to be a Qualifying Free Zone Person from the start of that tax period and for the four periods after it. A ratio you can compute only once a year is unmanageable: split the revenue as it is booked.
Reconciling back to the statutory accounts
Article 53 requires the return within nine months of the end of the tax period, Article 48 requires payment in the same window, and Article 56 requires supporting records kept seven years.
Here is the test I apply before signing off a setup. Can somebody who was not in the room take the audited profit and loss, open the Corporate Tax Report and reach the taxable income line using only tagged accounts, fiscal categories and analytic filters, with no spreadsheet in between? If yes, the position is defensible. If not, you have a number, not a position.
The rule I give every UAE client: every corporate tax adjustment must trace back to an account, a tag or an analytic dimension inside Odoo. Once one lives only in a spreadsheet, the reconciliation stops being reproducible — and reproducibility is the whole point.
This article is implementation guidance on configuring Odoo — it is not tax or legal advice. Rates, thresholds, reliefs and filing rules change, and how they apply depends on your business and its free-zone status. Always confirm the current rules and your own obligations with the Federal Tax Authority at tax.gov.ae, or a qualified tax advisor, before you act.
Frequently asked questions
Does Odoo calculate UAE corporate tax for me?
What corporate tax rate applies to a UAE company?
When is the UAE corporate tax return due, and what records do we keep?
Do we need transfer pricing documentation, or only disclosure?
If we claim Small Business Relief, do we still need Odoo configured properly?
Related reading
Want a second pair of eyes on your corporate tax setup in Odoo?
I'm Muhammad Salman Ali Khan, an Odoo Techno-Functional Consultant in Dubai and Head of Projects at Techbot Information Technology LLC, a UAE Odoo partner — 10+ years, 100+ implementations, certified on Odoo v13, v14, v15, v16, v18 and v19, and I presented Odoo 19's new features at Odoo Experience 2025 in Brussels. Tell me how your books are structured and I'll give you a scoped, honest view of what it would take to make the corporate tax number reconcile — at no cost.
Get a free business evaluation