Moving from QuickBooks to Odoo starts with a reconciled handoff
Plan the QuickBooks-to-Odoo handoff around cutoff dates, open items and reconciled balances. An accepted import file is only one part of the evidence.
Before moving from QuickBooks to Odoo, define the cutover date, the records that will move and the balances the finance owner must reconcile. A successful import confirms that software accepted a file; it does not confirm that the new starting position is correct.
This is a migration-control guide, not instructions for choosing accounting treatment or posting entries. Have the responsible accountant approve the financial mapping, opening position and cutover evidence for the business's jurisdiction and configuration.
Choose the history strategy before collecting files
Decide whether the new system needs detailed historical transactions, selected history, or opening balances plus open operational items. Preserve a usable way to retrieve the historical evidence that remains outside Odoo. That decision changes the extraction, mapping and validation work.
For QuickBooks Online in the US, Intuit documents exporting reports and lists, with separate procedures for items such as non-posting transactions and attachments. A standard export should not be assumed to contain every record you need. Use Intuit's export guide and verify the exact product and region. QuickBooks Desktop is a separate source-system case.
Make an inventory: financial reports, customers, suppliers, products, open receivables, open payables, relevant orders, attachments and records that connect the business's work. Give each item an owner and a destination or retained-history location.
Reconcile totals and the items behind them
Prepare a control sheet at the agreed cutoff. Keep the original source reports unchanged, including report basis, dates, filters and currency. Compare destination results on the same basis.
| Control | Compare | Investigate a difference by |
|---|---|---|
| Trial balance | Approved accounts and balances at cutoff | Account mapping, date and omitted records |
| Open receivables | Customer-level open items and total | Invoices, credits, unapplied amounts and status |
| Open payables | Supplier-level open items and total | Bills, credits and remaining amounts |
| Inventory, where in scope | Quantity, unit and approved value basis | Location, item mapping, units and cutoff movements |
| Operational commitments | Agreed open orders or jobs | Closed items included or open items omitted |
| Supporting evidence | Required attachments and source references | Retrieval gaps and broken relationships |
This list proposes checks; it does not prescribe the accounting entries used to obtain the approved position. Agree materiality and exception treatment with the finance owner rather than borrowing a generic tolerance from a blog.
A matching total is necessary for the relevant control but is not sufficient. Two mistakes can offset each other. Trace selected large, unusual, credited and partly settled items through both systems.
Rehearse the final movement of data
Run the migration in a non-production environment. Odoo's 19.0 import guidance warns that imports cannot simply be undone. It also explains external identifiers and their role in relationships and updates. Preserve stable mappings instead of relying on names alone.
Use the migration rehearsal worksheet for counts, exclusions and failed rows. Then test what happens if a corrected file is imported again: does it update the intended records, duplicate them or fail? Establish the recovery method in the rehearsal, before the final cutover window.
Record changes made after the initial extraction. If someone receives a payment or changes an open order while the migration is being prepared, define how that change reaches the final position. Otherwise, a perfectly reconciled rehearsal can still leave the live handoff incomplete.
Let named owners accept the handoff
The finance owner signs off the reconciled financial position. Operations confirms that the open work can continue. The system owner verifies permissions, retrieval of retained history and the agreed recovery route. A project manager should not substitute a green import status for those acceptances.
Schedule the decision point and the conditions that would delay cutover. Keep unresolved differences visible with an owner, consequence and agreed disposition. The statement-of-work guide helps put those acceptance responsibilities into the delivery scope.
The useful final evidence is a reconciled starting position and a team able to continue its open work. The upload log belongs in that evidence packet, but it is only one part.