Odoo Multi-Company for UAE Groups: Free Zone and Mainland in One Database

Almost every UAE group I set up in Odoo has the same shape: a free zone company holding the trading licence, and one or more mainland companies doing the on-the-ground work. The first question I get is never about VAT. It is simpler: can this whole group live in one Odoo database, or do the entities need to stay apart? Here is how I structure it, and where mixing free zone and mainland genuinely makes the build harder than a same-jurisdiction group.

One database, multiple companies — not multiple databases

Odoo's standard architecture answers the first question directly: multiple companies can be configured under one database, with a company selector in the header for working inside one company, or several at once. In my experience, separate databases only make sense when entities genuinely have nothing to do with each other day to day — a newly acquired business still running its own systems, for instance.

A free zone entity and a mainland entity under the same group, sharing management and trading with each other, belong in one database — splitting them to keep the books "clean" throws away the inter-company automation that is the whole point of running them together. The split I do keep is between a company and a branch: a branch shares its parent's chart of accounts, which suits a regional office of one legal entity, not two separate legal persons with separate trade licences. Odoo's own documentation is direct about this: independent subsidiaries should be created as additional companies, not branches.

What's shared, and what stays company-specific

Inside one database, you decide per record whether it belongs to a single company or the whole group. Products and contacts are shared by default across every company in the database — useful, since your free zone trading arm and your mainland services company are not maintaining two different records for the same customer. A record tied to a specific company, like a quotation, an invoice or a vendor bill, is only visible when you are logged into that company.

I share the product catalogue and partner list across the group as standard; duplicated master data is where multi-company setups quietly go wrong. I never share the chart of accounts, tax configuration or fiscal year settings — those stay one per company, because each entity files its own return against its own tax registration. This is the same fiscal localization I walk through in my Odoo UAE VAT setup guide; it installs, and is configured, per company, not once for the database.

Inter-company transactions: the mirror documents

The feature that makes running related companies in one database worth it is inter-company transactions. Switch it on per company under Settings, and when one company sells to another, Odoo keeps both sides of the paperwork in sync: confirm a sales order from your mainland company addressed to your free zone company, and Odoo can automatically create the matching purchase order; post an invoice the same way and it creates the matching vendor bill.

This depends on the companies sharing the underlying product record, and on the fiscal position being set correctly between them — the same mechanism that handles cross-border imports in the VAT guide linked above. Get it wrong on an inter-company relationship and the mirrored document still posts, just with the wrong tax treatment, which is worse than not automating it at all. I confirm this pairing on every build before go-live — it is the same layer behind the multi-company retail and branch inventory builds I run.

How one Odoo database maps a UAE group: shared data, per-company books, inter-company documents and consolidation Diagram. One Odoo database sits above a shared master data layer of products and partners common to the whole group. Two company records branch from that shared layer: a Free Zone Company and a Mainland Company, each keeping its own Tax Registration Number, its own chart of accounts and its own VAT201 return. A connector between the two companies represents inter-company transactions: a sales order on one company automatically creates a purchase order on the other, and a posted invoice automatically creates the matching vendor bill. Both companies' ledgers roll up into a consolidated Balance Sheet and Profit and Loss report, produced through multi-ledgers and account mapping, available only in Odoo Enterprise. One Odoo database Shared master data Products · Partners (contacts) Free Zone Company Own TRN · own COA Own VAT201 return Mainland Company Own TRN · own COA Own VAT201 return Inter-company transaction SO → auto PO Invoice → auto Bill rolls up into Consolidated Balance Sheet & P&L Multi-ledger · account mapping by company Enterprise only · horizontal groups by company
How shared master data, per-company books and inter-company documents roll up into consolidated group reporting.

Consolidated reporting

A holding company wants one number, not four. Odoo's Consolidation feature combines each company's own books into a single view of group performance. It sits inside Full Accounting, which is Enterprise-only — I cover that edition split in my Community vs Enterprise comparison, and for a group planning to consolidate, it settles the licensing question early.

Each company keeps its own regular ledger, and the consolidating company gets an additional multi-ledger that pulls in the others' consolidation adjustments. Because a free zone company and a mainland company rarely share an identical chart of accounts, Odoo maps similar accounts from different companies together, so the consolidated report combines them correctly instead of listing several versions of the same receivable account. Adding the group's companies to the header's selector and viewing reports through the consolidating company then produces a consolidated Balance Sheet or P&L, with horizontal groups showing what each entity contributed.

Access rules: every entity sees only its own data

The other side of one database is making sure one company's staff cannot see another's. Every user's Access Rights tab has an Allowed Companies field, every company that user can open, and a Default Company, the one they land in at login. Odoo enforces this with record rules keyed on company access, at the data layer, not just as a menu filter.

The rule I set on every UAE group build: free zone finance staff get the free zone company only in Allowed Companies, mainland staff get their own entity only, and only the group controller gets every company, with the holding entity as the default. Nobody sees a second entity's numbers by accident.

For a group where several mainland entities run under one contracting parent, this is the same access pattern behind the multi-entity contracting builds I run with project accounting scoped per licence.

Currency handling across the group

Most UAE-only groups barely touch multi-currency — free zone and mainland companies alike usually report in AED. It matters once the group has an overseas leg, or a free zone entity that deliberately invoices in another currency. Odoo sets a company's main currency by default from its country and lets you override it in Accounting settings; turning on Allow multi currencies makes every other currency you enable usable against that base.

Exchange rates update manually, or automatically on a daily, weekly or monthly interval from a web service you choose, and Odoo posts the resulting gain or loss to a dedicated Exchange Difference journal automatically. If your free zone entity invoices in USD and your mainland entity settles in AED, this keeps the difference visible on the books instead of buried in a rounding adjustment.

What free zone plus mainland adds on top

Everything above applies to any UAE multi-company group. Mixing free zone and mainland licences adds two complications that a same-type group does not have.

Separate TRNs, and a free zone licence is not a VAT exemption

Free zone and mainland companies are separate legal persons, each carrying its own Tax Registration Number and filing its own return — the VAT201 process in my UAE VAT setup guide runs per company, and the same l10n_ae_reports module adds corporate tax reporting capability, again per company. A free zone licence is not, by itself, a VAT exemption: special VAT territorial treatment applies only inside FTA-designated zones, mainly to goods — a services invoice from your free zone company to your mainland company generally still carries standard-rated VAT like any domestic supply. Related UAE entities can also register as a single VAT group instead of filing separately, changing which entity's return actually gets filed.

Transfer pricing visibility

UAE Corporate Tax requires related-party transactions, including those involving free zone entities, to be priced on an arm's-length basis, with disclosure required once dealings pass certain thresholds. This is where the inter-company automation above stops being a convenience and starts being documentation: every sale between your two companies produces a mirrored, dated, priced document on both sides — the transaction-level record a transfer-pricing file asks for, instead of one reconstructed from bank statements later. Setting the pricing stays your tax advisor's work; Odoo does not run that analysis.

This article is implementation guidance on configuring Odoo — not tax or legal advice. VAT, corporate tax and free zone rules change and depend on your specific entities. Confirm your obligations with the Federal Tax Authority at tax.gov.ae, the Ministry of Finance, or a qualified tax advisor before you act.

Frequently asked questions

Can one Odoo database run both my free zone and mainland companies?
Yes. Odoo's standard architecture supports multiple companies configured under one database, each with its own chart of accounts, tax registration and journals, while sharing common data like products and contacts if you choose to. A free zone company and a mainland company should each be set up as a separate company record, not as branches of one another, since they are separate legal persons with separate trade licences.
Does Odoo automatically create the paperwork between my companies?
Yes, if you turn on inter-company transactions for the companies involved. Confirm a sales order from one company addressed to another company in the same database and Odoo can automatically create the matching purchase order; post an invoice and Odoo automatically creates the corresponding vendor bill on the other side. This depends on the companies sharing the underlying product record and on the fiscal position being set correctly between them.
Can I stop one company's staff from seeing another company's data?
Yes. Every user has an Allowed Companies field on their Access Rights tab, listing which companies they can open, and a Default Company they land in at login. Odoo enforces this with record rules based on which companies a user has access to, so it restricts data at the record level, not just what appears in a menu.
Can Odoo consolidate my group's financials into one report?
Yes, through the Consolidation feature, which combines each company's own ledger into a group view using account mapping and a multi-ledger on the consolidating company. It is worth knowing upfront that this sits inside Full Accounting, which is available on Odoo Enterprise, not Odoo Community's Invoicing app.
Does a free zone trade licence mean I do not charge VAT to my mainland company?
No. A free zone licence is not, by itself, a VAT exemption. Special VAT territorial treatment applies only inside FTA-designated zones and mainly to goods, so a services invoice from a free zone company to a mainland company generally still carries standard-rated VAT like any other domestic supply. Confirm your specific treatment with the Federal Tax Authority or your tax advisor.

Related reading

More guides from my desk: Odoo UAE VAT setup, done properly — how the FTA tax categories, fiscal positions and the VAT201 return work underneath every company in your database; Odoo Community vs Enterprise, explained — the edition decision behind Consolidation and the rest of Full Accounting, before you scope a multi-company build; and what actually drives Odoo implementation cost in the UAE — where a multi-company, multi-entity build sits inside the wider project budget.

Running a free zone and mainland structure and want it mapped properly 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 group is structured and I'll give you a scoped, honest view of what a proper multi-company setup actually involves — at no cost.

Get a free business evaluation