When you're ready to leave QuickBooks Online, you assume your data comes with you. It mostly does—but not all of it, and not in the way you'd expect. Invoices export. Chart of accounts exports. But the metadata that auditors actually care about, custom fields your team built workflows around, and batch payment references that reconcile with your bank? Those orphan. We've watched this happen repeatedly: teams migrate their QBO instance to Xero, Wave, or Zoho, run a test export, see that the invoice counts match, and declare victory. Then six months later, during a tax audit or a compliance review, they realize the audit trail is broken, custom fields are blank, and reconciliation requires manual rework across 3+ years of history. By then, the old QBO account is closed and restoring that data costs far more than planning the migration correctly would have. Here's what actually moves clean, what breaks, and how to preserve the data that matters. What QuickBooks Online exports—and what it doesn't QBO's export tooling is deceptively simple. You can export invoices, bills, journal entries, customers, and vendors as CSV or Excel. But the platform conflates "visible in the UI" with "exportable." What moves cleanly: Invoice headers (number, date, total, customer, due date) Invoice line items (description, amount, account, tax category) Customer and vendor master data (name, address, tax ID) Chart of accounts (account names, numbers, account types) Journal entries (if posted; drafts won't export) Bill data (same structure as invoices) What stays behind: Audit trail metadata: Who created each transaction, when, from which device, and all edit history. QBO stores this internally but exports don't include it. Custom fields: Any field you added to invoices, customers, or transactions. The data exists in QBO but the export schema doesn't know about them. Batch payment references: If you paid multiple invoices in one check or ACH batch, QBO doesn't export the batch ID or grouping. Payment method details: Credit card last four, ACH account mask, or check number linked to payments. You get the payment amount and date, not the instrument. Memo fields and transaction notes: Internal notes, customer communication history, or reconciliation notes stored in memo fields won't export unless you manually copy them. Attachments and file references: Scanned receipts, PDFs, or linked documents don't export; you'd need to download them separately first. Tax nexus and multi-state/multi-country tax rules: QBO's tax configuration is account-specific. You export the transactions but not the tax engine settings that produced them. The audit trail gap is the real problem. Tax authorities and auditors expect to see who touched a transaction and when. QBO keeps this; your export doesn't. If you need to prove transaction integrity for a three-year audit, the exported data alone won't satisfy that requirement. What transfers clean to Xero, Wave, and Zoho Each platform has different import strengths. Understanding where each one excels tells you how much manual remapping you'll face. Xero Xero's import wizard is the most mature. If you follow its format rules, most transactions move without data loss. Moves cleanly: Invoices, bills, customers, vendors, chart of accounts, tax rates, payment history (with date and amount), and bank transactions if you have them in the right format. Requires manual remapping: Custom fields (you define them in Xero first, then re-populate), batch payment groupings (Xero has no native batch concept; you'd track this in memo or project), memo field detail (Xero has a smaller memo field; long notes get truncated). Gotcha: Xero's trial balance import is finicky. If you have unbalanced journal entries or accrual-based accounts with no matching entries in the other side, Xero may reject the import or silently drop the entry. Test with a subset first. Wave Wave positions itself as the low-cost option, and its import reflects that: less sophistication, fewer validation rules, and more room for orphaned data. Moves cleanly: Invoices, customers, basic chart of accounts, and payment records (date and amount only). Wave's importer is forgiving about format. Requires manual remapping: Almost everything else. Custom fields are not supported; you'll lose that data. Batch payments have no native structure. Memo fields are smaller. Tax nexus and multi-entity rules don't map at all. Gotcha: Wave doesn't import bills well. If you have substantial payables history, plan on manually re-creating vendor bills or accepting that your vendor aging report will be wrong for the first month or two after cutover. Zoho Books Zoho's import is somewhere between Xero and Wave: reasonable import tooling, but custom field mapping requires API work or manual steps. Moves cleanly: Invoices, bills, customers, vendors, chart of accounts, payment history, and basic attachments (if you upload them separately). Requires manual remapping: Custom fields (Zoho su