Consolidating with Odoo: from Excel downloads to a real-time close (2026)
Odoo supports multi-company, but full group consolidation is not a standard feature. The choice: process Excel downloads by hand every close, or connect a consolidation tool that links Odoo directly via API and makes your close real-time.
.png)
Consolidating with Odoo via Finstack: direct API connection, real-time close, automatic eliminations, set up within a day, from EUR 39 per month — no Excel downloads, no manual IC work.
Consolidating with Odoo: from Excel downloads to a real-time close
Odoo is one of the fastest-growing ERP platforms worldwide, but full group consolidation is not a standard feature. How to solve that without replacing Odoo.
TL;DR
Odoo supports multi-company within one database, but full group consolidation — with automatic eliminations and reconciliation — is not a standard feature. Three paths: process Excel downloads by hand every close (3-5 working days, error-prone, and every late booking restarts the cycle), connect a consolidation tool that links Odoo directly (real-time close, click-through to the source), or switch to a heavier ERP (EUR 50-200k, 6-12 months). For most SME groups on Odoo, a consolidation tool is the smartest choice. Finstack from EUR 39/month.
Why Odoo does not fully consolidate multi-entity groups on its own
Odoo is built as a modular ERP platform, with its own administration per company. Unlike most SME packages, Odoo supports multi-company within one database and can automatically mirror intercompany invoices between companies. That is a head start — but it is not consolidation. As soon as you steer a group on consolidated figures, you still hit three hard limits when consolidating with Odoo.
First limit: a consolidated balance sheet or profit and loss statement with automatic eliminations and reconciliation is not a standard feature — certainly not once entities run in separate Odoo databases or on another package. Second limit: intercompany positions are not detected and eliminated automatically at group level. Book a management fee between holding and subsidiary and it sits in two administrations — as revenue at the holding and as a cost at the subsidiary — and at group consolidation both must be netted out. Odoo does not do that for you. Third limit: charts of accounts almost always drift apart between entities, especially after acquisitions or with foreign subsidiaries. Without a mapping layer between the entity chart and the group chart of accounts, you get no comparable figures.
The practical consequence: SME groups on Odoo consolidate in Excel every month — exporting trial balances, mapping, netting out IC, converting currency, adding up the total. And as soon as a booking turns out missing or wrong, the entire reporting cycle starts over: download the period balance and rebuild the report. Time investment: 3-5 working days per close for a group of three entities. And substantiating the group figures for the auditor or due diligence is hard to do.
A consolidation tool on top of Odoo solves this without replacing Odoo. Finstack connects every Odoo administration directly via API, maps charts of accounts to the group chart once, detects IC automatically on account, counter-entity and amount, and runs the eliminations in a separate consolidation layer. Odoo remains your transactional accounting and your operational platform; Finstack delivers the consolidated reporting. For the broader choice between Excel, a consolidation tool or a heavier ERP, see the main article on consolidation solutions per ERP.
What Odoo can and cannot do for multi-entity consolidation
For anyone considering consolidating with Odoo, it helps to be precise about what the platform can and cannot handle. Odoo is strong as a modular platform: accounting, invoicing, inventory, manufacturing, CRM and e-commerce in one system, with analytic accounts for cost centers and projects, multi-company within one database, and open-source flexibility. Odoo is one of the fastest-growing ERP platforms worldwide and popular with scale-ups and international SME groups.
What Odoo does not do for multi-entity:
- Consolidated reporting and dashboards. Multi-company shares one database, but a consolidated view with eliminations across entities — let alone across separate databases or other packages — is not a standard feature. Group dashboards and insight into data fields such as analytic accounts across administrations are missing too.
- Automatic intercompany elimination. Odoo can mirror intercompany invoices within one database, but it does not tie IC positions together and books no eliminations at group level.
- Intercompany reconciliation. No way to reconcile IC bookings between administrations — do receivables and payables, revenue and costs tie out? — and no reconciliation of the eliminations as a control step after consolidation either.
- Consolidated working capital insights. No group-wide view of receivables, payables and inventory positions: no insight per relation, no consolidated ageing analysis and no consolidated cash flow overview — and thus no steering on the group’s working capital as a whole.
- Mapping to a group chart of accounts. Every administration has its own chart of accounts. A central mapping layer to a group chart is not part of Odoo.
What Odoo does make available via its API (and what a consolidation tool uses): per administration, general ledger transactions, trial balances, the chart of accounts, outstanding items, receivables and payables, analytic accounts, and currency data. Read-only, straight from the API, at transaction level. That is exactly what a consolidation tool needs.
Finstack fills in the consolidation layer for SME groups on Odoo: direct API connection, mapping, IC detection, eliminations, adjustment entries and group reporting in one tool. The Odoo administrations remain the system of record for your entity accounting — Finstack never writes back to Odoo.
How the Finstack connection to Odoo works
The Finstack connection to Odoo is a direct API connection on the official Odoo API: linked to all your Odoo administrations in a few clicks. The connection is read-only: Finstack reads the figures, cannot write anything, and bookings remain fully in the user’s hands in Odoo itself.
The connection works at transaction level. That means Finstack pulls in not just period balances but the underlying general ledger transactions: debit line, credit line, date, journal, contra account, description, analytic accounts and currency. That is essential for three reasons: clean intercompany elimination (without transaction lines you cannot match IC pairs), click-through (from consolidated figure to the source transaction in Odoo), and explainability (the external auditor wants to see where a consolidated item comes from).
Sync rhythm: Finstack refreshes the Odoo connection automatically every day. On top of that, the user can start a manual refresh at any moment via a button in the Finstack interface — useful right before the close, or after booking a correction in Odoo that needs to flow into the consolidation immediately. The sync does not affect Odoo’s performance: all queries run as read-only API calls and are as light for Odoo as a plain data export.
What the connection concretely supports: multiple Odoo administrations at the same time — also when they run in separate databases —, a new group entity is connected on the spot, analytic accounts sync along, multicurrency administrations convert automatically to the group currency, and effortless mixing with other ERPs in the same group (a Dutch holding on Odoo, an operating company on Exact Online and a foreign subsidiary on MS Dynamics 365 BC simply run in one consolidated report in Finstack).
The connection takes two steps: generate an API key in Odoo (version 15 or higher, with admin rights) and enter the instance URL, database name and key in Finstack — a one-time quarter of an hour per environment. Optionally tick Analytical Accounting: Odoo’s analytic accounts then import as cost centers, directly usable as a dimension in the reporting. The first sync pulls in the full history — including earlier financial years, so analyses work across the entire history; after that, Finstack automatically synchronizes only new and changed bookings, every day.
Intercompany detection in Odoo: account, counter-entity and amount
Intercompany elimination is the hardest puzzle when consolidating with Odoo: which transaction on which side of the group nets out against which other one? A group with five entities already has ten possible IC pairs; with ten entities, 45. Sorting that out by hand every month does not scale — even when Odoo has already mirrored the invoices, because mirroring is booking, not eliminating.
Many SME groups on Odoo use two conventions to make IC transactions recognisable in the accounts:
- Separate ledger accounts per IC relation. The most robust approach: a 1900 range (or similar) in which every IC counterpart gets its own account number. “1910 — IC receivable Subsidiary BV”, and so on. This prevents IC transactions from disappearing among the regular receivables and payables.
- Fixed IC code in an analytic account or description. One collective IC account, with a fixed code per relation — in Odoo an analytic account lends itself well to this. Works too, but requires discipline from whoever does the bookkeeping.
Finstack works with both conventions but does not require them: the engine recognises IC relations on its own, even on your existing ledger setup. It looks at three attributes at once: account number (which IC account), counter-entity (which entity on the other side), and amount match (finding the mirror booking in the other administration). A match on all three gives high confidence; a match on two is flagged for manual review.
Reconciliation works on two sides in Finstack. You reconcile the IC bookings themselves — which IC pairs tie out, which ones show a difference (and how large), which ones are booked on one side only — and after the consolidation you reconcile the eliminations as a control step. That is exactly what you build intercompany schedules for in Excel — now automatic and clickable through to the source.
What goes wrong without a good tool: matching IC on account name only (descriptions vary), on amount only (unrelated bookings can share the same amount), or skipping reconciliation altogether (elimination differences linger as an unexplained residual). Finstack signals the differences so you resolve them at the source. Eliminations are booked strictly in the consolidation layer, never in Odoo itself: entity balance sheets stay clean.
Setup: from Odoo connection to consolidated figures in one day
Setting up consolidation on Odoo with Finstack takes three simple steps, fully self-service. Connected in two steps, fully set up within a day — typically 4-6 hours of effective work, depending on the number of entities and the complexity of the chart of accounts.
Step 1 — Connect the Odoo administrations. In Finstack you select Odoo as a source and enter the instance URL, database name and API key — the connection is live. Repeat this for every environment in the group, including entities in separate Odoo databases. Finstack immediately pulls in the full history, including earlier financial years.
Step 2 — Set up the reporting structure and mapping. You decide which entities belong to the group and how they relate — holding, subsidiaries, subgroups — and link the charts of accounts of the administrations to the group chart of accounts. Deliberately kept simple: per account you pick the group account, with no complicated rules and no consultants. One-off work; after that it carries through every close.
Step 3 — Automate the intercompany eliminations. Finstack shows the IC relations it recognises in the Odoo administrations; per IC relation you confirm once which account pairs net out against each other. From that moment the eliminations run automatically in every consolidation, with reconciliation as the control step on differences.
From then on the consolidated group profit and loss statement and group balance sheet are ready in real time — in the group currency, with currency conversion running automatically: eliminations run automatically, Finstack signals IC differences through reconciliation, and every figure clicks through to the source transaction in Odoo. If another entity joins the group later, you simply connect it and it flows into the consolidated reporting straight away. No weeks-long implementation: Finstack provides onboarding support and step-by-step documentation. From EUR 39 per month for the first entity.
Reporting and dashboards on top of Odoo
Consolidating with Odoo is not a goal in itself: the consolidated figures need to find their way to the board, the bank and investors. That is exactly where Odoo stops — group-level reporting, with eliminations, consolidated dashboards and analysis, is not part of the platform. Finstack delivers that reporting layer on top of the consolidation, while Odoo remains the operational platform per entity.
Real-time dashboards at group level. As soon as the sync has run, the consolidated figures are in the Finstack dashboard: group profit and loss, group balance sheet and KPIs, clickable through to the source transaction in Odoo. Because the connection works at transaction level and reads analytic accounts along the way, you can also analyse data fields that Odoo does not unlock across administrations: relations, analytic accounts and journals at group level, with filters per entity or subgroup. You can also share dashboards and reports with stakeholders such as management, investors and the accountant, by giving them access to Finstack, with access rights set per user.
Consolidated ageing analysis and cash flow. Receivables and payables positions across the whole group in one ageing analysis, and a consolidated cash flow overview that shows where the group’s cash flows originate — neither can be built from separate Odoo administrations without manual work.
Export to Excel and Google Sheets. For anyone who builds analyses and board reports in their own models: Finstack has 2-way integration with both Excel and Google Sheets. Consolidated figures refresh inside your own workbook, with no copy-paste — and parallel reports (management, statutory, per business unit) come from the same transaction layer.
For SME CFOs this means the monthly reporting is no longer an Excel project: the figures are ready in real time, the underlying detail sits one click away, and the same source feeds dashboard, spreadsheet and statutory accounts. Consolidating with Odoo becomes reporting with Odoo — without replacing the platform, and without a consultancy track or implementation fees.
What a good consolidation tool for Odoo should do — checklist
A consolidation tool on Odoo should support five capabilities as standard. This is the checklist for the selection phase.
1. Direct API connection at transaction level. Not just trial-balance level, but general ledger transactions with date, journal, contra account and analytic accounts. Without transaction level there is no clean IC elimination and no drill-down to the source. Finstack connects to Odoo at transaction level.
2. Daily sync plus manual refresh. A tool that only synchronises weekly or monthly lags behind reality. Automatic daily sync is the floor; on-demand refresh on top lets you correct right before the close. Finstack does both.
3. Automated intercompany detection on account, counter-entity and amount. Not on account name alone (too unreliable) or amount alone (false matches). Three attributes combined give the most reliable matching. Reconciliation should be built in as a control step on the elimination. Finstack signals differences so you resolve them at the source.
4. Exports to stakeholders: dashboard, Excel and Google Sheets. Consolidated figures need to reach the board, the bank and investors. A good tool offers its own dashboard plus direct export to Excel and Google Sheets, so existing reporting models keep working. Finstack has both.
5. Mixing databases and other ERPs in the same group. Many Odoo groups grow through acquisitions: entities run in separate Odoo databases or on another package, and several currencies flow through the group. Finstack connects Odoo directly and all other major ERPs — see the main article on consolidation solutions per ERP — converts automatically to the group currency, plus a CSV fallback for the rest.
From EUR 39/month, connected via a one-time API key, fully set up within a day on Odoo.
You do not need to set up separate IC accounts or analytic codes in Odoo to consolidate. Finstack recognises IC relations automatically — on your existing ledger setup as it is. Simply connect all your administrations; detection and elimination do the rest.
Explore Finstack.
Free trial for 14 days.
Access to all features. No credit card required.
The 3 most common mistakes when consolidating with Odoo
Three patterns we see over and over at SME groups on Odoo. Each costs measurable time or money; each is preventable with the right setup.
Mistaking multi-company for consolidation
The most Odoo-specific mistake: assuming that multi-company within one database is the same as consolidation. Multi-company shares master data and mirrors invoices, but delivers no consolidated balance sheet with eliminations, no IC reconciliation and no group reporting — and as soon as an entity runs in a separate database or on another package, it stops entirely. Whoever discovers this during the first real group close falls back on Excel after all. Treat consolidation as a separate layer on top of Odoo — Finstack delivers it from EUR 39/month, connected via a one-time API key and set up within a day.
Choosing a tool that only pulls trial balances from Odoo
Some consolidation tools connect Odoo at trial-balance level (period balances only, no transactions). Without transaction level there is no clean IC elimination and no drill-down to the Odoo source booking. For multi-entity, transaction level is not optional but a requirement. Make this the first check in any selection — Finstack connects Odoo at transaction level as standard.
Switching away from Odoo “because it does not consolidate”
Moving to Oracle, SAP or MS Dynamics 365 F&O to solve the consolidation question while you do not need their operational functionality is an investment of EUR 50,000-200,000 for a problem that a EUR 39/month consolidation tool on Odoo solves. With Odoo you would also throw away your integrated operational modules. Only switch away from Odoo if you truly need the operational features — not for consolidation.
Frequently asked questions
Can't find your question? Let us know
Can Odoo consolidate on its own?
Odoo supports multi-company within one database and can mirror intercompany invoices, but full consolidation — automatic eliminations, reconciliation and group reporting — is not a standard feature, certainly not across separate databases or other ERPs. Finstack connects directly via API and consolidates in real time: eliminations run automatically.
How does the Finstack connection to Odoo work?
The Finstack connection to Odoo is a direct API connection (read-only) at transaction level; analytic accounts sync along. Automatic daily sync plus a manual refresh at any moment. Setup: generate a one-time API key in Odoo (version 15+) and enter it in Finstack, with no consultants. It combines effortlessly with other ERPs in the same group, such as Exact Online or Twinfield.
How often do the Odoo figures refresh in Finstack?
Finstack refreshes the Odoo connection automatically every day, and the user can trigger a manual refresh at any moment via a button. At every close cycle the most recent trial balances and transactions are ready. The sync has no impact on Odoo’s performance — queries run as read-only API calls.
How does Finstack detect intercompany transactions in Odoo?
Finstack recognises IC in Odoo on three attributes at once: account number (which IC account), counter-entity (the entity on the other side) and amount match (finding the mirror booking). Works with separate IC accounts per relation or a collective IC account with a fixed analytic code. Differences are signalled through reconciliation — on the IC bookings and on the eliminations.
What does consolidating with Odoo through Finstack cost?
Finstack starts from EUR 39 per month for the first entity. The tool connects Odoo directly via API, includes all features (transaction level, IC detection, adjustment entries, multicurrency) and has no implementation fees. Set up within a day without a consultancy track — versus EUR 50,000-200,000 for an ERP migration.
Can entities on Odoo and other ERPs be mixed in one report?
Yes. Finstack connects every entity through its own ERP — including Odoo entities in separate databases. A Dutch holding on Odoo, an operating company on Exact Online and a foreign subsidiary on MS Dynamics 365 BC run in one consolidated report. Charts of accounts are mapped automatically and intercompany detection works cross-system.
How secure is the Finstack connection to Odoo?
The Finstack connection to Odoo is a secured connection with read-only access: Finstack only retrieves data and can never create or change bookings in Odoo. Data is encrypted in transit (TLS) and at rest (AES-256). Finstack is ISO 27001 certified and hosted in the EU. Per-user access via SSO and MFA, with a full audit log.

CFO turned Founder - Finstack
Sources and provenance
- Finstack — Integrations with Odoo and other ERPs: finstack.io/solutions/integrations
- Finstack Help Center — Sources & connections (sync frequency, security): help.finstack.io
- Finstack — Pricing (from EUR 39/month): finstack.io/pricing
- Odoo — product information: odoo.com
- Odoo — developer and API documentation: odoo.com/documentation
Last reviewed: 1 September 2026 · Next review: December 2026





.png)