Six Configurations That Keep Multi-Entity Operations Auditable
Running two or more legal entities across borders is not a feature; it is a discipline. The ERP either enforces clean separation between entities while letting goods and money move predictably between them, or it leaks — duplicate journals, manual reconciliations, audit findings, and a CFO who stops trusting the consolidated report. The six Odoo configurations below are the ones that keep international operations clean. Each is standard Odoo. None require custom development. All require discipline at setup.
Octura packages these as fixed-price multi-entity consulting with senior engineers on every project — no junior consultants billed at senior rates.
Intercompany Rules with Auto-Generated Mirror Invoices
When entity A in Canada sells to entity B in France, the audit trail must show both sides — a customer invoice in A's books and a vendor bill in B's books, matching to the cent. Odoo's intercompany rules auto-generate the mirror document on the receiving entity the moment the originating invoice is validated, including the correct counterparty contact, currency, taxes, and analytic tags. Configure the rule per pair of companies, set the arm's-length pricing policy on the products (cost-plus, resale-minus, or comparable-uncontrolled-price), and let the system enforce it. Manual mirror entry is the single largest source of intercompany reconciliation breaks at month-end; the rule eliminates it. Detail in multi-company setup and intercompany rules.
Multi-Currency Revaluation on a Published Rate Schedule
FX exposure does not wait for someone to remember it. Odoo's multi-currency module stores rates per currency per date and supports automated daily fetches from the ECB, Bank of Canada, or your treasury feed. Crucially, the unrealised gain/loss revaluation wizard revalues open AR, AP, and bank balances at period-end against the closing rate, posts the FX adjustment to the configured P&L account, and reverses on day one of the next period. Publish the rate schedule (daily fetch, month-end revaluation, year-end audit pack) to your finance team so nobody is touching rates manually. See multi-currency accounting in Odoo 19.
Analytic Distributions for Cross-Entity Cost Allocation
Shared services — group IT, regional management, a centralised marketing team — incur cost in one entity and deliver value to several. The clean answer is analytic distributions: a single vendor bill in the paying entity tags multiple analytic accounts (one per consuming entity or business unit) with a percentage split. Period-end, the analytic report shows true cost by consumer; a recharge journal (or intercompany invoice triggered from the analytic balance) moves the cash. Avoid the trap of recreating the same cost ledger in every entity — analytic distributions plus one intercompany recharge keep one source of truth. Pattern in analytic accounting and cross-entity recharges.
Access-Rights Matrix Per Entity (Tested Against Compliance Scenarios)
Segregation of duties does not survive contact with a sloppy user-rights setup. Build an access-rights matrix with rows = roles (AP clerk, AR clerk, controller, GL accountant, treasurer, CFO) and columns = entities — each cell records the Odoo groups assigned. Then test it. The minimum compliance script: can the AP clerk in entity A post a vendor bill in entity B (should fail), can the treasurer in entity B see bank balances in entity A (should match policy), can a finance manager run a consolidated report across all entities (should pass), can a country controller close the period in their entity only (should pass). Document each test result; keep it in the audit file. Configure record rules to enforce per-company isolation on sensitive models (account.move, account.payment, hr.contract). Detail in configuring intercompany transactions.
Consolidated Reporting Across Charts in Different Currencies
Each entity keeps its local chart of accounts in its functional currency — Canadian GAAP in CAD, French PCG in EUR, US GAAP in USD. The CFO needs one consolidated P&L and balance sheet in the group reporting currency. Odoo's consolidation module (or the multi-company dashboard with mapped accounts) translates each entity's trial balance to the group currency at the appropriate rate (closing rate for balance sheet, average rate for P&L), maps local accounts to group accounts, and eliminates intercompany balances flagged by the intercompany rule above. Set up the consolidation once with mapped accounts and rate types; close runs in minutes instead of the four-day spreadsheet exercise. See consolidated reporting.
Phased Rollout Pattern — One Entity, Validate, Repeat
The single most expensive mistake in multi-entity Odoo is big-bang go-live across all entities at once. The right pattern is phased rollout: pick the smallest or simplest entity, configure it fully, run two month-end closes on Odoo in parallel with the legacy system, fix what breaks, and only then start the second entity using the first as the template. The second entity goes live in a third of the time. Intercompany rules switch on as each new entity joins. Consolidated reporting builds itself entity by entity. Budget twelve to eighteen weeks per entity for the first; six to eight weeks per entity from the third onward. Never combine a process change with the rollout — change either the system or the process, never both at once.
How to Evaluate an Odoo Partner Without Getting Burned
The features matter; the partner shipping them matters more. Eight checks separate the partners who deliver from the ones who learn on your budget:
- Official Odoo certification (Ready, Silver, or Gold) — not just "we work with Odoo".
- Discovery-call person is the build person. Account-manager handoffs lose scope.
- Fixed-price scope after discovery. Time-and-materials is a budget vacuum on ERP work.
- Senior engineers on the project. Octura runs seniors only — ask any prospective partner who actually writes your code.
- Two reference customers willing to take a call. "We have many clients" without a name is a red flag.
- Vertical specialism in manufacturing. A generalist who ships one plant a quarter is not the right partner for a plant project.
- Documented multi-phase methodology. Discovery → configuration → customization → migration → go-live → hyper-care.
- Transparent published rates. "Custom quote" is fine; refusing to share a starting number is not.
The longer version is in the Odoo partner audit.