Before anything
Four decisions shape everything after them, and all four are expensive to revisit once data is loaded.
The reasoning behind each of these is set out in Setup & Migration . This page assumes they are settled and covers the execution.
The sequence
Six phases. Each has a check that proves it is done, because “imported” is not the same as “correct”.
| Task | Done when |
|---|---|
| Reconcile every bank, card and processor account up to the conversion date | Each one agrees to a statement, with outstanding items listed individually |
| Tie aged receivables and aged payables to their control accounts | Subledger and balance sheet agree to the cent |
| Clear or explain suspense, rounding and clearing accounts | Zero, or every item named with a reason |
| Run and save the final trial balance, balance sheet, aged AR and aged AP | Saved as PDFs outside the old system, dated the conversion date |
| Lock the period in the old system | Nobody can post into it after you start |
This phase is the one most often skipped and it is the one that matters most. Migrating an unreconciled file carries the problem into Xero and adds a conversion date to it. If the old file does not reconcile, stop and fix that first.
| Task | Done when |
|---|---|
| Set organisation details, financial year end, time zone and base currency | Financial settings match your actual fiscal year, not the default |
| Build or import the chart of accounts | Every account has the right type, and account types drive where things land on the reports |
| Set up tax rates and sales tax settings | Rates match what you actually charge and collect |
| Create the two tracking categories and their options | Named for the two dimensions you decided on, not for everything you might want |
| Add users at the right permission level | Nobody has more access than their role needs |
| Set up inventory items, if Xero will own inventory | Each tracked item has its inventory asset, COGS and sales accounts attached |
| Task | Done when |
|---|---|
| Enter conversion balances from the final trial balance | Total debits equal total credits and the adjustments line is zero |
| Enter outstanding customer invoices individually | The list matches the saved aged receivables report, invoice by invoice |
| Enter outstanding supplier bills individually | The list matches the saved aged payables report, bill by bill |
| Enter inventory opening quantities and average costs | Total value agrees with the inventory figure on the trial balance |
| Import transaction history, if you decided to bring it | Spot-checked against the old system, not assumed |
Receivables and payables go in as individual open items, not as a single balance. A lump sum reconciles to nothing, cannot be chased, and cannot be matched when the customer pays.
| Task | Done when |
|---|---|
| Connect bank and credit card feeds | Feeds deliver from the conversion date, with no gap and no duplicate period |
| Connect payment processors and e-commerce channels | Each channel posts through its own clearing account, not straight to revenue |
| Connect document capture | A test bill arrives, is coded, and lands where you expect |
| Connect payroll | A test run posts to the correct accounts, with liabilities landing where they should |
| Rebuild bank rules and repeating transactions | Recurring invoices, bills and journals exist in Xero, not just in the old system |
This is the phase that separates a migration from a data transfer. It is covered in full in the next section.
| Task | Done when |
|---|---|
| Run the first period in Xero and close it properly | The close completes and the balance sheet substantiates |
| Set the lock date on conversion balances | Nobody can quietly adjust the opening position later |
| Keep the old system readable but not writable | Access retained for reference, posting disabled |
| Tell your CPA the conversion date and send the final reports from the old system | They have the bridge between the two files before year end, not during it |
The part people skip
Seven checks. Run all of them before anyone makes a decision from the new file.
The real verification is completing one month-end in Xero. Everything that was configured wrongly surfaces during a close, because a close is the only process that touches every part of the file. Discovering it then is cheap. Discovering it in month four is not.
The failure modes
A special case
Payroll migration follows different rules from the rest of the file, and mid-year moves carry real complexity.
Payroll is cumulative. Year-to-date gross, taxes withheld and employer contributions all have to carry across correctly or your filings and W-2s will not agree. That makes the tidy moments a quarter boundary or, best of all, the start of a calendar year.
Since August 2026, Xero Payroll powered by Gusto runs inside Xero, covering federal, state and local tax calculations and filings, direct deposit and contractor payments. If payroll currently sits in a separate system, moving it is worth pricing, though not necessarily at the same time as the accounting migration. Two changes at once doubles what can go wrong in a period where you also need to close the books.
Timing
The import is hours. The migration is weeks, and most of that is attention rather than effort.
The calendar matters more than the hours. Aim to go live at a period start, and avoid running a migration through a month you also need to close under pressure.
Questions