# Migrating from another system (QuickBooks, Xero, Sage and more)

> Guided import from 23 systems, with a balance proof before anything is committed.

Section: Getting started · Canonical: https://intubu.intuitivecapital-dai.com/docs/migration

Migrate → Start.

Guided import for 23 systems including QuickBooks (Online and Desktop), Xero, FreshBooks, Zoho Books, Wave and Sage, plus a generic CSV route for anything else.

**What works today, plainly.** The engine — mapping, validation, a trial run, the balance proof, accept and undo — is real and tested. Two products are read straight from their own files: **QuickBooks Desktop** (.IIF export files) and **GnuCash** (the .gnucash book) — see [Bringing your books from QuickBooks Desktop (IIF) or GnuCash](https://intubu.intuitivecapital-dai.com/docs/migrate-desktop-files). Every other system is fed through the **universal CSV kit** (templates for the chart of accounts, customers, vendors, items, open invoices, open bills, the GL journal and opening balances) or canonical JSON: export to CSV from the old product, load the kit. **Direct connections** (QuickBooks Online, Xero) and other native files (Sage .PTB) are still *planned*; the screen says so on each system rather than offering a button that does nothing. QuickBooks backup files (.QBB, .QBW) are encrypted and cannot be read — export to IIF instead. Bank statement files (CSV, OFX/QFX, QIF) are a separate, working path under Banking → Imports.

**The order matters and is enforced:** chart of accounts → contacts → items → open balances → historical transactions. Importing transactions before the accounts they post to is the usual way a migration goes wrong.

**Mapping** proposes a match for every incoming account and lets you correct it. Unmapped items block the import rather than landing in a suspense account you find in six months.

**The balance proof:** before anything is committed, the trial balance from your old system is compared against what the import would produce. Any difference is itemised. You approve the comparison, not a progress bar.

**Reversible for 30 days:** an import is a batch (Migration → Import batches) and *Undo* removes its documents and journal entries. Undo is refused once payments have been applied to imported documents (undo those first), after 30 days, or where an imported entry falls in a closed period — correct those with a journal entry instead. Accounts, contacts and items the import created stay, so you can tidy or deactivate them yourself.

**Who can.** Importing and undoing need permission to post to the books: a company administrator, or the *module.accounting.create* permission.
