Accounting Software Migration Checklist
Steps a controller or implementation lead runs to migrate from one accounting system to another (e.g., QuickBooks Desktop to QBO, QBO to Xero, Xero to NetSuite). Covers planning, data cleanup, cutover, reconciliation, and post-migration support.
Migration Planning and Scope
-
Confirm source and target accounting systems
Common SMB paths: QuickBooks Desktop to QBO, QBO to Xero, QBO or Xero to Sage Intacct or NetSuite. Source/target combination drives which migration tool you can use (Dataswitcher, Movemybooks, Intuit's QBDT-to-QBO converter, native Xero conversion service).
Collects list -
Set the cutover date
Cut over at a clean period boundary — first day of a fiscal quarter or fiscal year. Mid-month cutovers force partial-month reconciliations that fight you for the next two closes. Avoid cutting over during the week payroll runs or the week sales tax is due.
-
Assign roles to the migration team
Name a single owner for each domain: Controller (chart of accounts, opening balances), AP lead (vendor list, open bills), AR lead (customer list, open invoices), Payroll lead (employee records, YTD totals if mid-year), IT (integrations and bank-feed connections). One owner per domain — not a committee.
-
Inventory third-party integrations
List every app currently connected to the source GL: Bill.com, Gusto, Ramp, Avalara, Hubdoc/Dext, Stripe, Shopify, Plaid bank feeds, Fathom. Confirm each has a connector for the target system and document the order of reconnection — payroll and AP automation should reconnect last, after the GL is stable.
Pre-Migration Data Cleanup
-
Reconcile every bank and credit-card account
Bring every operating account, savings account, and credit card current through the most recent statement. Migrating with unreconciled accounts carries the mess into the new system and obscures opening-balance variances. Document any uncleared items older than 90 days — most are stale and should be voided before cutover.
-
Clean up the chart of accounts
Merge duplicate accounts, deactivate unused ones, and collapse over-granular accounts that should have been classes or locations. A migration is the cheapest time to do COA cleanup — every junk account you carry forward becomes a class-tracking workaround in the target system.
-
Tie A/R and A/P aging to the GL
Run the A/R aging summary and confirm it ties to the receivables control account on the trial balance. Same for A/P aging vs. payables. Variances usually mean journal entries were posted directly to the control account instead of through invoices/bills — fix these in source before they become harder to find in target.
-
Audit the vendor list for W-9 and 1099 status
Tag each vendor as 1099-eligible or not based on entity type and services-vs-goods. Confirm a W-9 is on file for every active vendor — missing W-9s carried into the new system will cost you in January. Deactivate vendors with no activity in the last 24 months instead of migrating dead records.
Backup and Cutover Preparation
-
Export a full backup of the source system
For QuickBooks Desktop, take a portable company file (.QBM) and a full backup (.QBB). For QBO, export the audit log and run reports as PDFs and Excel for the trial balance, GL detail, and all sub-ledger detail through cutover. Store backups in two locations; you cannot re-derive these once the source is decommissioned.
Collects file -
Capture the cutover trial balance
Run the trial balance as of the cutover date in the source system and save as PDF and Excel. This is the document everything reconciles back to — it does not change after cutover. Have the partner or controller sign off on the TB before any data moves.
-
Freeze data entry in the source system
Set a closing-date password in QBO/Desktop or revoke edit permissions in Xero. Communicate the freeze to AP, AR, and payroll so no late entries hit the source after the TB is locked. Any post-cutover transactions in the source will create reconciliation differences nobody wants to chase.
-
Decide on historical data scope
Two viable options: opening balances only (clean, fast, breaks YoY comparison reporting in the new system) or full transaction history (slow, expensive in conversion-tool fees, often hits row limits or unsupported transaction types). Most SMBs migrate 2 fiscal years of history plus open A/R and A/P; larger histories usually live in archived source-system reports.
Collects list
Data Migration Execution
-
Build the chart of accounts in the target system
Import the cleaned COA from cleanup. Map account types carefully — QBO and Xero handle Other Current Asset, Fixed Asset, and Equity differently than Desktop or Intacct. Set up classes/locations/tracking categories before any transactions land.
-
Import customer and vendor lists
Import the cleaned vendor list with 1099 flags and tax IDs, and the customer list with default tax codes and payment terms. Verify foreign-currency customers/vendors carry the correct currency setting if the target system supports multi-currency.
-
Import historical transactions
Run the migration tool (Dataswitcher, Movemybooks, native conversion, or CSV import). Expect unsupported items: certain memorized transactions, attached documents, audit-log history. Document each unsupported category in the variance log so it doesn't surprise anyone in reconciliation.
-
Post opening balances and open items
Post the opening-balance journal entry from the locked cutover TB. Import open A/R invoices and open A/P bills as individual transactions (not as lumped opening balances) so the aging and customer/vendor statements work correctly going forward.
Post-Migration Reconciliation
-
Tie target trial balance to source
Run the trial balance in the target system as of cutover and compare line-by-line to the locked source TB. Every account should match to the penny. Differences usually trace to rounding on multi-currency, sales-tax payable splits, or retained-earnings rollover handled differently across systems.
Collects list -
Investigate and clear tie-out variances
Walk each variance to root cause: unsupported transaction type, FX rate difference, or sub-ledger control account miscategorized. Document the adjusting JE for each variance with a memo referencing the source-system transaction. Do not close out reconciliation with unexplained differences; they compound.
-
Verify A/R and A/P aging match source
Run the A/R aging summary and A/P aging summary in the target system and compare totals and bucket distribution (current, 30, 60, 90+) against source. If buckets don't match, the import used the wrong invoice/bill date and aging calculations will be wrong for collections and partner pay decisions.
-
Reconnect bank feeds and integrations
Reconnect Plaid or direct bank feeds in the target system, then reconnect Bill.com, payroll (Gusto/ADP), Avalara, and document-capture tools (Hubdoc/Dext). Set the feed start date to the day after cutover so historical transactions don't reimport. Test one transaction end-to-end through each integration before going live.
Training and Go-Live
-
Train staff on the new system workflows
Run role-specific sessions: AP (entering bills, approval workflow, payment runs), AR (invoicing, applying payments), bookkeeper (bank rec, JEs, month-end close), reviewer (reports, dashboards). Record each session and post in the team's shared drive — turnover within a year is common, and the recording is the onboarding asset.
-
Update SOPs for AP, AR, and close
Rewrite each existing SOP to reference the target-system menus, button names, and report locations. Generic procedures ("reconcile bank account") don't survive a system change; staff need screenshot-level guidance for the first close in the new system.
-
Schedule the 30-day post-migration review
After the first full month-end close in the target system, review what broke: feed mappings, class allocations, recurring JEs that didn't carry over, reports that don't tie. Capture these in a punch list and assign owners. Most migrations need two close cycles to stabilize.
Collects list Collects paragraph
Use this template
Copy it to your account, customize the steps, and run it with your team in minutes.
Browse hundreds of free templates across every team and industry.
Back to template libraryRelated templates
More workflows your team can run.
Run Accounting Software Migration Checklist with your team
Customize the steps, assign roles, set a schedule, and keep a complete record for every run.