Currency migration in Odoo: step by step
Why Odoo does not let you change a company's functional currency, what the supported path looks like, and the deliverables that make the migration audit-safe.
Odoo does not support changing the functional currency of an existing company once transactions exist. The supported path is a new company denominated in the target currency, with a documented migration of balances and reference data, and an archive of the legacy company for audit.
The methodology
- Archive the legacy company. No new transactions, but full historical read access preserved.
- Create the new company in the target currency, with the same chart of accounts, policies, and reference data structure.
- Publish the FX rate table. Before any monetary field is converted, the rate table is signed off by finance.
- Convert monetary fields — balances, open items, pricelists, subscriptions — with documented rounding and precision rules.
- Reconcile. Totals match the archive, to the cent.
- Cutover with a rollback path.
The audit report
The most important deliverable. A line-by-line ledger of every converted figure: record, source currency, source value, rate applied, target value. Your auditors will ask for it; we produce it by default.
Where currency migrations get interesting
- Multi-company groups where one company moves and the others do not — consolidations must handle the mixed-currency period.
- Open invoices, uninvoiced WIP, manufacturing costs still being amortized.
- Ongoing contracts and subscriptions with multi-currency terms.
- Statutory reporting that needs historical continuity in the new base.
Each of these has a pattern. We have shipped every one.