Migrate from QuickBooks to Odoo: what the move involves and how long it takes
Moving from QuickBooks to Odoo Accounting is mostly a data mapping and loading exercise. The work comes down to matching your QuickBooks chart of accounts, customers, vendors and products to Odoo records, then loading opening balances and open invoices and bills so Odoo starts from a correct position. The effort depends on two things: how clean your QuickBooks data is today, and how many companies, currencies and books you are moving. A single company with tidy customer lists and a short chart of accounts is a very different project from a group with duplicate vendors, years of inactive accounts and several legal entities. For a finance or IT leader, the first decision is scope rather than software. Decide which entities move, which history stays in QuickBooks as a read-only archive, and which balances must tie to the last closed period. Ask the implementation partner to show how each QuickBooks object will map to an Odoo object, including where tax codes, payment terms and product categories land. Odoo's own onboarding guidance expects master data to be loaded in a defined order, so customers and products should exist before the open invoices that reference them.
The cutover needs a test database and a parallel run. Load the mapped data into a test database first, reconcile the trial balance, receivables and payables against QuickBooks reports, and fix mapping errors before any production load. Odoo documents database duplication with neutralization for test copies, which keeps test environments from sending real email or payment instructions. Plan a parallel run in which a closed period is posted in both systems and the results are compared. Only after the balances agree should users start transacting in Odoo. Budget time for this reconciliation loop, because it usually takes more iterations than the initial load. The edition and hosting choice in Odoo affects what is available for the migration. Odoo's pricing page places the Custom plan as the only option that can be hosted on Odoo.sh or on-premise, and only Custom includes multi-company, Odoo Studio, external API access and custom modules. If you need several companies, custom fields for imported records or an API connection to your bank or payment provider, confirm those features against the plan before the scope is fixed. The Community edition is open source under LGPL-3.0, but Enterprise features and the upgrade service require a subscription, so the choice affects both the import tooling and the upgrade path after go-live.
This page covers two routes for getting data in. The first is Odoo's CSV and Excel import tools, which give full control over the file format, the order of loads and the External IDs that link related records, such as an invoice to its customer. The second is a third-party QuickBooks connector from the Odoo Apps Store, which can carry records across with less manual preparation but depends on the connector's supported objects, its handling of your tax setup and its maintenance by the publisher. Ask for a written list of what the connector moves, what it skips and what you still have to rebuild by hand. For a small company with few records, file imports may be the simpler route. For larger volumes or frequent refreshes during a long parallel run, a connector may reduce rework. The right answer depends on your data, so test both on a sample before choosing.
Ask your implementation partner for a written scope that lists the QuickBooks objects in and out of the move, the import method for each, the test database plan, the reconciliation checks and the parallel run period. Confirm who prepares the source data, who signs off the opening balances and who owns the cutover decision. Confirm whether the quote covers the Odoo subscription or only the implementation work, because those costs recur differently. Confirm the Odoo version you will start on, since Odoo's support windows set how long that version receives security updates. DeployOpen does not publish a price list, so the quote follows from this written scope.
Which QuickBooks data maps cleanly to Odoo and which needs decisions
This table compares each QuickBooks data object with its usual Odoo counterpart and marks whether it typically moves across cleanly or needs design choices first. Read the decision column before exporting anything, because the account types, tax setup and payment handling you choose will shape every later import. Check each row against your own QuickBooks export, since not every organization holds every object listed.
| QuickBooks object | Odoo equivalent | Maps cleanly? | Decide first |
|---|---|---|---|
| Chart of accounts | Chart of accounts with account types and fiscal localization | Partly | Account types for each QuickBooks account, retained earnings handling and whether any accounts are merged |
| Customers | Contacts (customers) with company and address records | Yes | Duplicate handling, contact types, and which fields need External IDs for later linking |
| Vendors | Contacts (vendors) with payment terms and bank details | Yes | Duplicate vendors, remittance details and whether inactive vendors are imported |
| Products and services | Products with sales and purchase settings | Partly | Product variants, service versus storable product types, and how item categories map |
| Open invoices | Customer invoices posted as opening entries | Partly | How partial payments are carried, due dates, and the opening balance account |
| Open bills | Vendor bills posted as opening entries | Partly | How partial payments are carried, bill references and the opening balance account |
| Bank accounts and reconciliations | Bank journals with statement lines | Partly | Opening bank balances, uncleared items at cutover and whether history is imported or only the cutover balance |
| Taxes | Taxes linked to the fiscal localization | Partly | Tax rates, tax groups, and how QuickBooks tax codes map to Odoo tax definitions |
| Attachments | Documents attached to records in the Odoo document store | Partly | Which files are linked to which records and whether files are stored in Odoo or kept in an external archive |
| Users | Odoo users with access rights | No | Role mapping, least privilege access and whether historical users need active accounts |
| Reports | Standard Odoo reports regenerated from imported data | No | Which historical reports you need to keep as static exports and which Odoo reports replace them |
How to map the QuickBooks chart of accounts to Odoo Accounting
The chart of accounts is the first design decision in a QuickBooks to Odoo move because every later step depends on it. Customers, vendors, products, open invoices and bills, and the opening trial balance all post to accounts, so an account that is mapped wrongly here will be wrong in every report built on top of it. Before any file is imported, the finance lead should export the full QuickBooks account list with account numbers, account types, detail types, active status and balances, then decide for each account which Odoo account it becomes, what its Odoo account type is, and what code it will carry. Odoo uses its own account type categories, so the mapping is a translation exercise, not a copy. Inactive QuickBooks accounts with no balance should usually be left out rather than carried across.
Some QuickBooks structures do not translate one to one and need a deliberate choice before the import file is built. Sub-accounts are the most common case. QuickBooks lets a parent account hold child accounts with their own balances, while the team must decide whether each child becomes its own Odoo account with a distinct code or whether several children roll up into one account for reporting. Class and location tracking are the other main case. If the business used QuickBooks classes or locations to split profit and loss by department, branch or project, the team must decide whether Odoo analytic accounts, analytic plans or a separate reporting structure will carry that dimension, and whether the same tags will be applied to historical entries or only to new activity. Write each decision down with the owner and the reason, because a reconciliation question six months after go-live will depend on it.
The chart of accounts also depends on the fiscal localization Odoo applies to the company. A fiscal localization supplies a default chart of accounts, tax definitions and reporting structure for a jurisdiction, and the company's country and tax regime determine which one is appropriate. Confirm with the finance team and, where needed, the external accountant which localization is available for the company's country, which tax rates and tax groups it provides, and which of them are still maintained in the Odoo version you plan to run. Do not assume that the default localization covers every tax regime or reporting obligation. Where the company is registered in more than one jurisdiction, or where a tax regime has special rules for certain income or expenses, confirm the setup for each entity separately before the chart is finalized.
The checks that prove the mapping works should be defined before import. Compare the total of each QuickBooks account group against the matching Odoo group in the test database, confirm that every account carrying a balance has a target account and that no imported line lands in a suspense or placeholder account, and confirm that the trial balance debits and credits match. Check that receivable and payable control accounts are set so that open invoices and bills reconcile to them, and that bank and cash accounts are linked to the right journals. Keep a mapping table with the QuickBooks account, the Odoo account, the account type, the code and the reviewer's initials. That table becomes the audit trail for the opening balances and the evidence that the migration preserved the books.
Confirm the scope of the localization with the vendor documentation for your Odoo version, not with general statements about the product. The Odoo documentation for the version you run lists the localizations it supports and the tax features included, and the Odoo pricing and edition details determine which apps and features are available on your plan or your self-hosted setup. Ask the implementation partner to show the chart and tax configuration in the test database before import, and ask finance to sign off the mapping table. Changing the chart after live transactions are posted is far more expensive than changing it before, so treat this section's decisions as a gate that must close before the next migration step begins.
Odoo import tools, exports and the QuickBooks connector option
Moving QuickBooks data into Odoo can follow three routes: Odoo's own CSV and Excel import, export files produced from QuickBooks, or a third-party connector from the Odoo Apps Store. Each route handles different records, leaves different work to your team, and carries its own risk of duplicate records, so the choice should follow from the data you need to move.
Odoo CSV and Excel import
Odoo's built-in import reads CSV and Excel files for master data such as contacts, products and accounts, and can load journal entries when the file is structured for it. It covers the bulk of master data well, but related records must be loaded in order and linked with External IDs, and open invoices, bills and reconciliations usually need manual checks. Confirm which import templates your Odoo version provides before you prepare files.
Exports produced from QuickBooks
QuickBooks can export lists and reports that become the source files for Odoo import, such as customer, vendor, item and account lists, and general ledger or trial balance reports. The export format and column names depend on your QuickBooks edition and the export option you use, so test one sample export before building any mapping. Reports are not imports, so someone must reshape them into the file layout Odoo expects.
Field mapping and transformation work
Whatever the source, the chart of accounts, tax codes, payment terms and product types in QuickBooks rarely match Odoo one for one. Mapping decisions must be recorded in a table that both finance and the implementation team sign off before any file is loaded. Ask who owns each mapping decision and how changes to it are tracked between test loads.
Third-party QuickBooks connector
Connectors published on the Odoo Apps Store synchronize data between QuickBooks and Odoo, and some claim to move transactions as well as master data. Connectors are third-party products, so check which Odoo versions each one targets, who supports it, how it handles updates, and what it leaves for manual work. DeployOpen does not endorse any connector unless you choose one through a written scope.
Duplicate record risk
Running a file import and a connector on the same data, or repeating a load after a partial failure, can create duplicate customers, vendors, products or entries in Odoo. Use stable External IDs or a documented matching key, load into a test database first, and check record counts against QuickBooks after every run. Ask the connector vendor how it detects records it has already created.
Odoo version and vendor support
Before choosing a path, confirm the Odoo version your environment will run and the support window that applies to it, since connector compatibility often lags new releases. Odoo's standard support covers the first three years after a major release, so a connector that targets an older version may need replacing during the project. Ask vendors for written compatibility statements for the exact version you plan to deploy.
Loading open invoices, bills and the trial balance as opening entries
The core decision in this section is to load what is still open at the cutover date as opening entries in Odoo Accounting, rather than replaying years of QuickBooks transactions. Open customer invoices, open vendor bills and the closing trial balance give Odoo a starting position that the business can operate from, while the full transaction history stays in QuickBooks as the archive. Agree this approach with the accountant before any file is prepared, because it determines which exports you need and what the reconciliation has to prove.
The cutover date and the reconciliation target must be the same date. Export the QuickBooks trial balance, open AR aging and open AP aging as of that date, then build the Odoo opening entries so that each account balance, each open customer invoice and each open vendor bill ties back to a QuickBooks figure. Bank balances belong on the same date. If the trial balance is taken on one day and the aging reports on another, differences will appear that look like import errors but are really timing differences. Record the exact export settings, including any date filters and currency views, so the reconciliation can be repeated after a test load.
After loading, reconcile in three places before users work in the new database. First, compare the Odoo balance of every bank and cash journal with the statement balance at the cutover date, and clear any unmatched items the accountant approves. Second, compare the customer and vendor aging in Odoo with the QuickBooks aging by partner and by due date, not only by total. Third, compare the trial balance account by account. Assign one named person to sign off each comparison. Expect some differences from rounding, multi-currency revaluation or payments recorded after the export, and document each one with its cause.
Prior-period reporting needs an explicit decision with the accountant. Opening entries mean Odoo will not show the detailed transactions behind earlier periods, so questions about last year's margins, tax returns or audit support will still be answered from QuickBooks or from exported reports. Confirm which historical reports the business will need, how they will be retained and who can access them, and whether tax filings or lock dates in the new database are set so that closed periods are protected. Odoo's documentation on fiscal lock dates is the place to confirm how these settings behave in the version you run.
External IDs link related records during import, for example an invoice to its customer or a bill to its vendor, so the import does not depend on internal database IDs that differ between systems. Confirm for each object you import (partners, accounts, taxes, open invoices, open bills and journal entries) which External ID field the version in use accepts and how the import resolves references when a record is missing. Run the opening entry import in the test database first and check the reconciliation again. Do not treat a successful file import as proof that the balances are correct.
The migration sequence: inventory, test database, parallel run and cutover
The sequence moves your books in stages so that each stage is checked before the next begins. It produces a tested Odoo database, opening balances that agree with QuickBooks as of an agreed date, and a retained archive of the old system.
Inventory and clean up QuickBooks data
Your team exports the chart of accounts, contacts, products, open invoices and bills, and the trial balance from QuickBooks, then removes duplicate contacts, unused accounts and stale items before anything is mapped. DeployOpen reviews the export with you and records which items will migrate, which will be archived only and which will be closed in QuickBooks before the cutover date. Your accountant confirms which open items are still live and which balances are correct. The step is done when every record has a written decision and the cleaned export is saved as the baseline for all later comparisons.
Sign off the mapping workbook
The mapping workbook links each QuickBooks account, tax code, customer, vendor and product to its Odoo counterpart, including the fiscal localization accounts Odoo expects for your country. Your accountant checks every account type and tax mapping against the trial balance, and your Odoo administrator checks the fields, identifiers and import order the workbook implies. Both sign the workbook before any data is loaded. Later changes go through the workbook owner and are logged, so every import and reconciliation uses one agreed version.
Load master data into a test database
Your Odoo administrator creates a test database and imports contacts, products and the chart of accounts in the order the workbook sets, using External IDs so that related records such as invoices can point back to their source. Each file is loaded and the import log is reviewed for rejected rows, duplicates and mapping gaps. The step is complete when record counts match the cleaned export, each rejection has a recorded fix, and the administrator confirms the test database can be rebuilt from the same inputs.
Post opening entries and reconcile
Opening balances are entered as of the agreed cutover date: open customer invoices, open vendor bills and the trial balance, so that Odoo starts from the same position QuickBooks reports. Your accountant reconciles receivables, payables, bank balances and the trial balance line by line against the cleaned export. Each difference is traced to a cause, corrected in the workbook and reloaded into a fresh test database so that every fix is repeatable. Your accountant signs off once every balance agrees or each remaining difference is explained and accepted in writing.
Run a parallel period and compare
For the period set in the project plan, your team records the same transactions in QuickBooks and in the test database, or replays them as agreed. At set points, the trial balance and the open item lists from both systems are compared, and your accountant reviews variances in balances, the aging of open items and tax totals. Your Odoo administrator confirms that new transactions post the way the workbook intends. The step is done when the comparison shows no unexplained variance and your accountant accepts the results in writing.
Cut over and freeze QuickBooks
On the agreed date, QuickBooks is frozen so that no entries are posted to it, a final export is taken, and the opening entries are loaded into the production Odoo database. Your Odoo administrator confirms that the production database, user access and any integrations are ready, and your accountant confirms that the final balances match the frozen export. Both sign the go-live decision. Staff are told which system holds live records from that point, and any late transaction is recorded in Odoo under the rule agreed in the plan.
Decommission QuickBooks and retain an archive
After the agreed period following go-live closes without unresolved issues, QuickBooks is set to read-only or closed, and a complete export and set of reports are kept as a read-only archive under your retention policy. Your accountant confirms that the archive covers the records your auditors and tax authorities may request, and your Odoo administrator removes unused access and documents where the archive is stored. The step is done when the archive has been tested for retrieval and both roles sign off. Confirm the retention period with your own compliance team.
What drives the cost and timeline of a QuickBooks to Odoo migration
This table lists the factors that most change the effort of moving from QuickBooks to Odoo Accounting, with the direction each one pushes cost or duration and what to request in a written quote. Use it to compare scope proposals on like-for-like terms, since a low quote often leaves out data cleanup or parallel-run cycles. No figures are given here, so ask each provider to price each driver separately.
| Driver | Effect on cost and timeline | What to ask for in a quote |
|---|---|---|
| Data quality and duplicate contacts | Duplicate customers and vendors, inconsistent names and missing tax IDs increase cleanup and review time before any import runs | Who cleans the source data, how duplicates are merged, and whether cleanup is in scope or billed separately |
| Number of entities and currencies | Each legal entity needs its own chart of accounts, opening balances and company setup, and each currency adds rate and revaluation handling | A per-entity breakdown of setup, mapping and reconciliation work, and how multi-currency balances are converted |
| Tax complexity | Multiple sales tax jurisdictions, exemptions or reverse-charge rules require mapping to Odoo fiscal localization and testing of each rate | The tax rate mapping table, the localization used, and who validates tax reports against QuickBooks output |
| Product and inventory structure | Variants, bills of materials, unit-of-measure conversions and stock valuation methods each add mapping and count reconciliation work | Whether inventory is migrated as quantities and values, and how product variants and units are mapped |
| Volume of open items | Large numbers of open invoices, bills and partial payments need matching and reconciliation, which grows with each item | How open items are imported, how partial payments are matched, and how the opening trial balance is proven to tie out |
| Payment, banking and eCommerce integrations | Each connected payment processor, bank feed or storefront needs configuration, mapping and test transactions | Named connectors, the data each one syncs, and whether historical transactions are migrated or only new activity |
| Connector versus file import | A third-party QuickBooks connector from the Odoo Apps Store can reduce manual exports but adds licensing, compatibility checks and its own maintenance | The connector name and version, its license and support terms, and a comparison with the CSV or Excel import path |
| Hosting edition | Odoo Online, Odoo.sh and on-premise differ in available features, customization rights and the subscription plan needed, which affects setup and later upgrades | The edition and plan assumed, the supported hosting type, and the upgrade path for the Odoo version chosen |
| Custom reports and parallel-run cycles | Custom reports require design and testing, and each parallel-run cycle repeats reconciliation against QuickBooks until balances match | The number of parallel-run cycles included, the report list in scope, and the acceptance criteria for each cycle |
What usually goes wrong in a QuickBooks to Odoo cutover and how to prevent it
Most failed QuickBooks to Odoo cutovers trace back to a short list of causes: balances that never reconciled, master data loaded twice, and two systems being used at once. The cards below pair each risk with a prevention step you can put in a plan, a test, or a sign-off before the cutover date is set.
Unreconciled opening balances
Opening entries in Odoo should match the trial balance and open items taken from QuickBooks at a single, agreed cut-off date. If receivables, payables, bank balances or equity differ at the cut-off, the difference is carried into the new books. Require a signed reconciliation of every balance sheet account, with the finance owner and an independent reviewer initialing each line, before any opening entry is posted to production.
Duplicate or merged vendors
Vendor records often exist more than once in a long-running accounting file because of spelling variants, old addresses or separate remittance accounts. Loading them as-is splits payment history and open bills across records. Before import, export the vendor list, group likely duplicates with accounts payable, decide which record survives, and assign stable External IDs so later files attach to the correct partner.
Tax rates set up differently
Tax codes in the source file rarely match the fiscal localization Odoo applies to a company's country and tax regime one for one. A rate that is named differently, split across several components or applied to a different account can change the tax reported after cutover. Build a table that maps each source tax code to an Odoo tax, have the tax adviser approve it, and test one invoice and one bill per rate in the test database.
Import files with broken relationships
Odoo imports are processed in a sequence, and records such as invoices or products fail or attach to the wrong parent when the referenced customer, vendor or account has not loaded yet or has a different identifier. Load master data first, in the order Odoo's import tools require, and check referential integrity with a record count and a sample lookup after each file. Keep the import logs and the file versions used for each run.
Connector mapping errors
If a third-party QuickBooks connector from the Odoo Apps Store is used, its field mapping decides how accounts, taxes, items and partners land in Odoo. Mapping defaults that the connector applies silently can differ from your chart of accounts. Confirm the connector's documented mapping with the vendor, run it against a copy of the QuickBooks data, and compare totals by account and by partner against the source reports before going live.
Users working in both systems
During a parallel run, staff who keep posting in QuickBooks while the same transactions are entered in Odoo create duplicates and timing gaps that are hard to unwind. Set a frozen cutover window in which QuickBooks is read-only for transactions, agree in writing who may post in each system during the parallel run, and reconcile the last period from both systems before the freeze is lifted.
Gaps in attachments and audit trails
Source documents such as invoices, receipts and contracts are often stored separately from the transaction records, and they may not follow when data is loaded. An audit trail that stops at the migration date weakens later reviews. Inventory which attachments must be kept, export them with their links to records, and run a test restore of the Odoo database and filestore to confirm that documents open from the migrated transactions before the old system is archived.
How much work is a QuickBooks to Odoo migration, and what do we need to do ourselves?
How much effort does a QuickBooks to Odoo migration take?
Effort depends mostly on how much data you move and how clean it is. The main drivers are the number of customers, vendors, products and open items, the size of the chart of accounts, the number of bank accounts and currencies, how many years of history you keep, and how tax is set up in QuickBooks. Most of the work is one-time: mapping, cleaning, test imports, reconciliation and cutover. Odoo subscription fees recur, and Odoo lists per-user monthly prices on its pricing page, so licensing is a separate line from migration effort. Ask any partner for a fixed-scope estimate that counts these drivers against your actual file, rather than a flat rate.
How long does a QuickBooks to Odoo migration take?
The duration follows the scope, and no fixed timeline applies to every company. A single company file with a short history and a simple chart of accounts moves faster than several entities with multi-currency books, custom reports or integrations to rebuild. Scheduling also depends on how quickly your accountant signs off the chart of accounts mapping and opening balances, because each test import usually waits on those decisions. Ask for a timeline in the written scope that lists the test cycles, the parallel run period and the cutover date, along with which party owns each step.
Can a small team migrate from QuickBooks to Odoo with the import tools?
A small team with a capable bookkeeper can often handle a simple migration using Odoo's CSV and Excel import, provided the data is clean and an accountant signs off the mapping. The import tools load master data such as contacts, products and accounts, and related records need consistent identifiers so that invoices and bills link to the right customers and vendors. The harder parts are ordering the imports, reproducing open items, loading the trial balance as opening entries and reconciling totals to QuickBooks. Confirm how the import templates behave in the Odoo version you will run before you plan the team's time.
Does a QuickBooks connector remove the need for a migration partner?
A connector from the Odoo Apps Store can reduce manual file work, but it does not make the migration decisions for you. Someone still has to map the chart of accounts, decide how tax and open items carry over, check which records the connector actually moves and confirm the balances after each run. Before you rely on a connector, confirm which objects it transfers, whether it supports your Odoo version and edition, how recently it was updated and who supports it when something fails. Treat the connector as one tool inside the plan, and budget for validation either way.
What do we need to provide for a QuickBooks to Odoo migration?
Your team supplies the source data and the decisions. The usual inputs are:
- QuickBooks exports for contacts, products, the chart of accounts, open invoices and bills, and a trial balance at the cutover date
- Bank statements for the accounts you will reconcile in Odoo
- A named owner who signs off the chart of accounts mapping and the history you keep
- Accountant time for opening entries, tax setup and reconciliation checks
- Access to the target environment and a decision on who operates it after go-live
If any of these arrive late, the test cycles slow down, so agree the owners and dates in writing before work starts.
How do the Odoo edition and hosting change the migration plan?
The edition and hosting you choose determine which features exist to migrate into. Odoo's pricing page places Odoo.sh and on-premise hosting only on the Custom plan, which also includes multi-company, Odoo Studio, external API access and custom modules. Standard and One App Free run on Odoo Online only. On-premise upgrades through Odoo's upgrade service require an Enterprise subscription, and the Community edition has no access to that service. On Odoo Online and Odoo.sh, major version upgrades are mandatory every two years, so confirm the target version and its support window before you load data into it.
What should a fixed-scope QuickBooks to Odoo migration quote include?
A fixed-scope quote should turn the scope into written, checkable items. Ask for the source files and versions, the record types and approximate volumes in each, and what is out of scope, such as historical transactions beyond an agreed date or custom reports. The quote should list the test import cycles, the reconciliation checks and acceptance criteria, the parallel run and cutover steps, and who performs each one. It should also state the Odoo edition and hosting it assumes, the third-party connector licences, how change requests are priced and the post-go-live support terms. Compare quotes on these items, not only on the total.
How DeployOpen scopes, delivers and supports a QuickBooks to Odoo migration
DeployOpen plans and delivers Migrate from QuickBooks to Odoo as a fixed-scope engagement, with scope, deliverables and timelines agreed in writing before work starts. The work runs in your own infrastructure, from mapping the QuickBooks chart of accounts through a tested Odoo database to a documented handover. Ongoing support, upgrades and testing are available as retainers.
How we scope
- The written scope lists the QuickBooks data sets in play, such as accounts, contacts, open items and opening balances.
- Scope sets the import route per data set: Odoo CSV or Excel import, or an Apps Store connector.
- Scope also covers the Odoo edition, plan and hosting the target needs, confirmed with Odoo before build.
How we build
- Chart of accounts is mapped to Odoo accounts, with tax treatment and fiscal settings checked before any data loads.
- Customers, vendors and products load in dependency order, with duplicates and missing fields reported before import.
- Open invoices, open bills and the trial balance are loaded as opening entries and reconciled to QuickBooks totals.
How we hand over
- Test runs happen in a neutralized copy of the database, separate from production.
- Reconciliation reports compare balances, record counts and sample transactions, with each difference signed off by your finance team.
- A runbook and handover pack document the mapping, load order, sign-off records and the steps to repeat the load.
How we support
- Odoo's published support windows for your chosen version are recorded in the handover pack.
- Major upgrades are mandatory every two years on Odoo Online and Odoo.sh, so the upgrade path is planned early.
- Ongoing support, upgrades and continuous testing are available as retainers after go-live.

