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.

6 sections 23 steps Collects data
1

Migration Planning and Scope

  1. 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
  2. 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.

  3. 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.

  4. 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.

2

Pre-Migration Data Cleanup

  1. 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.

  2. 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.

  3. 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.

  4. 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.

3

Backup and Cutover Preparation

  1. 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
  2. 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.

  3. 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.

  4. 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
4

Data Migration Execution

  1. 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.

  2. 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.

  3. 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.

  4. 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.

5

Post-Migration Reconciliation

  1. 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
  2. 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.

  3. 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.

  4. 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.

6

Training and Go-Live

  1. 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.

  2. 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.

  3. 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.


Sections 6
Steps 23
Category Accounting
Price Free to start
Need a different process

Browse hundreds of free templates across every team and industry.

Back to template library

Run Accounting Software Migration Checklist with your team

Customize the steps, assign roles, set a schedule, and keep a complete record for every run.