There is a moment when a controller opens the Exact Online subscription invoice and adds up the lines. The base subscription is bearable. The extra users below it, the second administration, the payroll processing — that is a different figure from the one on the quote three years ago.
That moment is rarely the moment of the decision. The decision comes later: when it turns out that consolidating across two BVs requires a heavier subscription, or that every new colleague is a fixed monthly cost. This guide is written for the finance lead who is already past that point and wants to know what a migration from Exact Online to Odoo means in practice: what moves across, what stays behind, which moment to pick, and what you need to have checked before you switch. doo.FINANCE guides these projects as an Odoo Gold Partner and as an accountancy firm — in a migration, that combination is what counts.
What moving from Exact Online to Odoo costs
Both vendors publish their rates, so the sum can be done. The amounts below were read off the official pricing pages on 15 August 2026.
Exact Online — accounting (exact.com):
| Subscription | Per month | Users included | Administrations |
|---|---|---|---|
| Essentials | € 49 | 1 (not expandable) | 1 (not expandable) |
| Plus | € 99 | 2 | 2 |
| Professional | € 159 | 2 | 2 |
| Premium | from € 299 | 2 | 2 |
On top of that: an extra user costs € 23 per month on Essentials, Plus and Professional, and € 49 per month on Premium. An extra administration costs € 20 (Plus), € 21 (Professional) or € 38 (Premium). Payroll processing is sold separately, from € 92.50 per month, with 25 payslips included and € 3.50 per additional payslip.
Odoo (odoo.com):
| Subscription | Per user per month | Included |
|---|---|---|
| One App Free | € 0 | one app, unlimited users |
| Standard | € 19.90 (annual) · € 24.90 (monthly) | all apps |
| Custom | € 29.90 (annual) · € 37.40 (monthly) | all apps + Studio, Multi-Company, external API |
Odoo states for both paid plans that unlimited support, hosting and maintenance are included in the price.
The sum for an MKB company with ten users
Take a trading or logistics business with ten people working in the system, one administration, no payroll processing in the package. MKB is the Dutch term for small and medium-sized businesses.
- Exact Online Professional: € 159 + 8 extra users at € 23 = € 343 per month, or € 4,116 per year.
- Odoo Standard: 10 × € 19.90 = € 199 per month, or € 2,388 per year.
The difference is roughly € 1,700 per year, and it grows with every user you add: € 23 against € 19.90. If you also drop payroll processing at Exact, at least € 1,110 per year comes off on top of that; with Odoo the Dutch payroll module (l10n_nl_hr_payroll) sits inside the same subscription.
Two qualifications that honesty requires. First: this is our own calculation based on published list prices, not a quote from either vendor — your contract may differ. Second: implementation, data migration and guidance are included in neither. Switching costs money once. The comparison above is about what you pay every month afterwards.
What Exact Online does well
Exact is not the market leader in the Netherlands for nothing. The package is deeply embedded in the Dutch chain: accountancy firms know it, the bank connections work, the link into the annual accounts and SBR chain is proven, and the audit file export does exactly what it should — this guide will make grateful use of that shortly. If you run one administration with two users and need nothing else, you are fine where you are.
The objection is not the quality but the pricing model: it scales per user and per module. If you grow, the bill grows along two axes at once. That is precisely the point at which companies call us.
What you do move out of Exact Online
The audit file is your starting point
Exact Online exports an audit file in xml format (XAF) via Administration name > Import/Export > Export > Audit file. That file contains your financial transactions in the standard format developed by the Belastingdienst, the Dutch tax authority, together with the SRA and software vendors. For payroll administration there is a separate export (XAS).
Two warnings that Exact gives itself and that you should take seriously:
- Process all your entries first. Exact states explicitly that unprocessed entries are not included in the audit file. If you export with open, unprocessed items, your file is missing data — and you only notice when the opening balance does not add up.
- Export before you cancel. Audit files cannot be imported back into Exact Online; the traffic runs one way. Get your data out while the administration is still open, and keep the file somewhere independent of both packages.
Chart of accounts and opening balance
With the Dutch fiscal localisation (l10n_nl) Odoo automatically installs a Dutch chart of accounts, the btw rates, the fiscal positions and the Dutch financial reports. Btw is the Dutch VAT. The l10n_nl_reports module adds the Dutch tax and profit-and-loss reporting.
The temptation to copy your Exact chart across one for one is strong. Do not. A migration is the natural moment to drop accounts that have sat at zero for years and to align your chart with the RGS level your accountant reports at. Work with a mapping table: Exact account on the left, Odoo account on the right, one line per account, signed off by your accountant before the import.
The opening balance then comes in as a single journal entry: all balances as at the opening date, debit equal to credit. Not the history, only the position.
Receivables, payables and fixed assets
Odoo imports data in .xlsx or .csv on almost any object — contacts, products, bank statements, journal entries and orders. Three technical points that make the difference between a smooth and a painful import:
- Use the Exact contact number as the External ID. Odoo lets you import the unique identifier from your previous software as an External ID. That keeps the relationships between records intact and lets you correct the same file and re-import it without creating duplicates. Without an External ID, your second attempt gives you a second customer database.
- Move open items invoice by invoice, not as a total balance. One line per open invoice, with invoice number, date and due date. If you move only the balance, your team can no longer reconcile and you lose the ageing analysis.
- Bring fixed assets across with their history: acquisition value, date brought into use, depreciation method, term and the amount already depreciated. Moving only the book value gives you a balance sheet that adds up and a depreciation schedule that is wrong.
Watch the format requirements of the import while you do it: Odoo expects dates in ISO 8601 (YYYY-MM-DD) and recognises amounts with currency symbols and separators, but not every combination. Test the format before the real run.
What you do not move — and why that is not a problem
The most frequently asked question in a migration is: does my whole history have to come along? No. And it is sensible that it does not.
The Belastingdienst requires you to keep your administration for 7 years; for data on immovable property the term is 10 years. The basic records — the receivables and payables administration, the purchase and sales administration and the general ledger — must always be kept for 7 years. But the retention obligation says you must be able to produce the data, not that it has to live in your current accounting package. A properly stored XAF file, supplemented with the pdf archive of invoices and bank statements, satisfies it.
In practice that means: leave closed financial years in the archive. At most, bring the comparative figures of the previous year across so that your reports have a reference.
What else stays behind, and therefore has to be set up again:
- Invoice and document layouts — Odoo works with its own template system.
- User rights and authorisation schemes — the rights model is built on fundamentally different lines.
- Connections to webshop, bank, PSP or WMS — these are rebuilt, not moved.
- Approval flows and internal workflows — often an improvement, because they have grown organically over the years.
Budget that rebuild deliberately in your project costs. Anyone who forgets it will recognise themselves in the pitfalls we described in our article on the pitfall of Odoo implementations.
The right moment: the opening of your financial year
There is one migration moment that demonstrably costs less work than any other: the first day of a new financial year.
The reason is simple. If you migrate as at 1 January, you only have to move an opening balance and the open items. If you migrate as at 1 July, half a year of entries, btw returns and depreciation comes on top, all of which has to add up in two systems — and has to be accounted for in two systems at the annual accounts.
A workable plan for a migration as at 1 January:
| Period | What you do |
|---|---|
| September – October | Map the chart of accounts, configure Odoo, test import on a copy |
| November | Dry run: real invoices and bank statements in parallel in both systems |
| December | Freeze the final configuration, train users, clean up open items |
| 1 January | Switch over; all new entries in Odoo |
| January – March | Keep Exact read-only until the last btw return and the annual accounts are done |
On that last point, account for the filing deadlines: the btw return for the fourth quarter must be in by 31 January 2027 at the latest, the one for the first quarter by 30 April. So do not cancel your Exact subscription on the day you switch — that is the classic mistake, and it costs more than two months of subscription.
Cannot wait until the turn of the year? Then pick the start of a quarter, so that the btw return falls within one system.
The checklist before you flip the switch
Work through these points and sign them off. An import error in Odoo cannot be undone — the documentation is explicit about that — so everything you catch here, you catch at the cheapest possible moment.
- All entries in Exact Online are processed and the XAF and XAS files have been exported and stored safely.
- The chart of accounts mapping table is complete and approved by your accountant.
- The opening balance adds up to the cent: debit equal to credit.
- Open receivables and payables are ready invoice by invoice and the total matches the balance sheet account.
- Btw rates and fiscal positions have been tested on a trial invoice inside the EU, outside the EU and with reverse-charge btw.
- The bank connection is in place and the reconciliation rules have been tested on real statements.
- Fixed assets are ready including amounts already depreciated.
- For SBR filing via Digipoort the PKIoverheid certificate has been requested — start that early, the application takes time.
- The full import has been run once on a test copy and checked.
- Dates are in ISO 8601 format and the separators in the amount columns have been verified.
A migration that is green on these ten points is usually a quiet weekend. A migration that skips three of them is a quarter.
How doo.FINANCE guides you through the switch
Most Odoo partners in the Netherlands are implementation firms: they know how to roll the system out. doo.FINANCE is an Odoo Gold Partner and an accountancy firm. That means we do not just fill in the mapping table technically but can account for it in bookkeeping terms, that we know what your opening balance has to look like at the annual accounts, and that we walk through the first btw return in Odoo with you rather than pointing you at it.
Want to know whether switching is worth it in your situation? We will do the sum with your numbers — users, administrations, modules — alongside the configuration costs. See our migration guidance to Odoo or find out what our Odoo accountancy services can mean for your administration.
Contact us for a free callFrequently asked questions
How long does a migration from Exact Online to Odoo take?
For an MKB company with one administration and a standard configuration, reckon on six to ten weeks between the start of the configuration and the switch, most of which goes on mapping, testing and training — not on the import itself. Companies with several BVs, inventory valuation or a webshop connection are looking at three to four months instead. Always plan the switch for the opening of a financial year.
Do I have to take my entire accounting history across to Odoo?
No. The seven-year fiscal retention obligation (ten years for immovable property) requires you to keep the data and be able to produce it, not to keep it in your current package. A safely stored XAF file with the accompanying invoice archive satisfies it. In Odoo, take across only the opening balance, the open items and, if you want, the comparative figures of the previous financial year.
Can Odoo send the btw return directly to the Belastingdienst?
Yes. The Dutch localisation contains an SBR integration with which you send the tax report as an XBRL file directly to the Belastingdienst via Digipoort. That requires a valid PKIoverheid certificate, which you record in Odoo as the Digipoort certificate. Odoo also exports an XAF audit file from the general ledger report, which your accountant can use directly during the audit.
Is Odoo cheaper than Exact Online for a small business?
Not always. With one or two users and no extra modules, Exact Essentials sits at € 49 per month and Odoo Standard for two users at € 39.80 — the difference is marginal there. The advantage appears with growth: every extra user costs € 23 per month at Exact against € 19.90 at Odoo, and modules such as inventory, projects and payroll sit inside the same subscription at Odoo. Work it out with your own numbers before drawing conclusions.
What happens to my connections with bank, webshop and PSP?
They do not move along; they are rebuilt. Odoo has its own bank connections and an extensive app catalogue, but count the rebuild of every connection as a separate project task — including a test period in which the old and new connection run alongside each other. Do not underestimate this part: in migrations it is the most common source of overrun.
