Migration

Switching is the part
everyone dreads.

So it is built as a proper module rather than a support ticket — with the trial balance reconciled against your old system before anyone calls the migration done.

Where you are coming from

Xero

Connected migration via the Xero API — contacts, chart of accounts, transactions and balances.

QuickBooks

Connected migration via Intuit — including the awkward parts: sub-customers, classes and journal detail.

Sage

Import from Sage exports, mapped to a chart of accounts you keep control of.

CSV & spreadsheets

For everything else, including practices coming off a bespoke or desktop system.

How it runs

Five steps, and the fourth is the one that matters.

01

Connect the source

Authorise Xero or QuickBooks, or upload the export. Read-only — we are pulling data out, not writing anything back.

02

Review the mapping

The chart of accounts, tax rates and contacts are matched up and shown to you. Anything ambiguous is flagged rather than guessed at.

03

Run it

Contacts, transactions, invoices, bills and balances come across. Counts are checked against the source as it goes.

04

Agree the trial balance

The reconciliation screen shows the difference between the two systems. You do not sign it off until that is nil.

05

Reconnect the feeds

Bank feeds, payment gateways and marketplaces are reconnected. The client re-authorises their bank; nothing else changes for them.

Reconciliation

A migration is done when the numbers agree

Most migration tools consider the job finished when the last record is written. That is the point at which you have two systems holding slightly different versions of the same business and no way to tell which one is wrong.

Here the last step is a comparison. The trial balance you are leaving is set against the trial balance you are arriving at, line by line, and the difference stays on screen until it is nil.

  • Trial balance compared against the source, account by account
  • Record counts diffed against what the source API actually returned
  • Anything dropped is named, not summarised into a total
  • Sign-off blocked while a difference remains
Migration reconciliation — Bramble & Co
Contacts
308 → 308Agreed
Sales invoices
4,812 → 4,812Agreed
Bills
2,199 → 2,199Agreed
Journals
486 → 486Agreed
Recurring templates
14 → 131 missing

“Acme Ltd Hosting” was not imported. A template of a similar name already exists. Review before sign-off.

Trial balance difference£0.00

What the module does

Reconciled, not just imported

The migration is not finished when records land. It is finished when the trial balance in Qwikr agrees with the trial balance you left behind, and the screen shows you that difference until it is zero.

Counts checked against the source

Imported totals are diffed against what the source API actually holds. An importer that quietly drops one invoice and still reports a clean run is the failure mode this exists to catch.

Migrate mid-year

No waiting for April or a year end. Bring history across from whatever date makes sense for the client.

Chart of accounts you control

Account mappings are proposed, then reviewed by you. Nothing is silently merged into a category you did not choose.

One client at a time

Migrations run per client, so a practice moves at whatever pace it wants rather than doing the whole book in a weekend.

Reversible

Run it, look at it, and if the mapping is wrong, roll it back and run it again. Nothing about a migration is a one-way door.

Questions, answered

A clean Xero or QuickBooks file with a couple of years of history is usually a matter of minutes to run and rather longer to check properly — and the checking is the part that matters. Files with unusual chart structures, heavy journal adjustments or years of accumulated workarounds take longer, and we would rather look at yours and tell you it is awkward than find out halfway through.

The failure that costs you is an importer that reports success and quietly loses a record — an over-long description that kills a line insert, or a name-based dedupe matching two different suppliers. We have hit both, which is why counts are diffed against the source and why the trial balance has to agree before a migration is considered done. If something does not come across, you will see it on the reconciliation screen rather than in a year-end review.

No. Some practices bring across full history, some bring balances plus the current year, some start clean with opening balances only. All three are supported and the right answer depends on the client.

They are reconnected in Qwikr, which means the client re-authorises their bank through the open banking flow. That is a two-minute job for them and the only thing they will notice about the whole migration.

Yes, and for the first couple of clients we would encourage it. Keep the old subscription for a quarter, run both, and compare the VAT return. That is a real test; a demo is not.

No. The migration centre is included from the Business plan upwards, and for your first clients we will work through them with you at no charge — partly to help, partly because watching real files migrate is how we find the awkward cases.

Export your data and go. It is your ledger. We would rather you left cleanly than stayed because leaving was made difficult.

Send us one client's file first

Before you commit anything, let us run a real migration on one real client and show you the reconciliation. If the trial balance does not agree, you will know that before you have moved a single paying client — which is a better basis for a decision than anything on this page.

Arrange a test migration

Move one client and see

Run it in parallel for a quarter. That is the only evaluation that tells you anything real.