You're three months into FreshBooks and already feeling the friction: customer data scattered, payment reconciliation tedious, or the pricing doesn't match your growth. Leaving mid-year feels risky. Your invoices have payment history. Your aging report is live. Tax season isn't far off. One botched migration and your audit trail collapses. The good news: FreshBooks stores your data in a portable format. The hard part isn't exporting—it's moving without breaking payment status, customer metadata, or compliance. This playbook walks you through what breaks, what to preserve, and exactly how to move to Xero, Wave, or an all-in-one platform like Orin without losing a line item. What breaks in a FreshBooks exit Most FreshBooks migrations fail silently. Your invoices arrive in the new platform, but pieces of your business don't: Payment status and dates get orphaned. Invoices export as line items, but the link between invoice 1247 and the payment on March 12 often disconnects. You see revenue, but not when it landed. Aging reports reset. A 60-day-overdue invoice looks brand new in the target system. Your overdue follow-up logic breaks because the platform doesn't know when the invoice was actually sent. Customer metadata scatters. FreshBooks stores client notes, tax IDs, payment terms, and custom fields. These don't always map to the new platform. You lose context. Multi-currency and tax codes get flattened. If you invoice across markets (SGD, MYR, IDR), tax rates and exemption codes often don't migrate cleanly. You'll see the invoice amount but not the GST or SST rule it was based on. Audit trails blur. Once data leaves FreshBooks, you lose the timestamp of when each invoice was created, modified, or sent. For compliance, this matters. The biggest silent failure: payment reconciliation. You export invoices, but the connection between "Invoice 1247 for $5,000" and "Stripe deposit $12,340 on March 15" lives only in FreshBooks' backend. Move without this link and your accountant has no audit trail. The export checklist: what to pull from FreshBooks Before you leave, extract these datasets in order: Customers (contacts). Go to Settings → Export Data. Export all clients with their full profile: name, address, tax ID, phone, email, custom fields, and any stored notes. FreshBooks usually gives you CSV. Do not skip notes—they're your only backup of payment terms, special handling, or service history. Invoices (full detail). Export all invoices including draft, sent, and paid. Make sure the export includes: invoice number, date created, date sent, amount, line items, tax applied, and status. This is your gold copy. Keep it even after you import. Payments received. Export payments and credits separately, with dates and amounts. This is critical for reconciliation. FreshBooks' payment export should include the payment method (bank transfer, credit card, cash) and the date received. Recurring invoices (if any). Export templates and schedule. If you have retainers or subscriptions, you need the frequency, amount, and next send date to recreate them. Journal entries or manual adjustments. If you've written off bad debt, applied credits, or made manual adjustments, export these too. They won't be obvious in the invoice list. Expense reports (if tracked in FreshBooks). Some teams use FreshBooks for both billing and expense tracking. Export these before you lose them. Naming matters. Label each export with the date: invoices_2024-09-15.csv , payments_2024-09-15.csv , etc. You're building a backup you might need to audit later. The field mapping trap: what your target platform won't accept Not every field in FreshBooks maps to the new platform. Before you import, test the mapping on a small batch. Here's where it breaks: Invoice numbering. FreshBooks lets you customize invoice numbers (INV-2024-001, or FK-9999). Some platforms force sequential numbering or won't accept custom prefixes. Xero handles custom formats well. Wave doesn't. Decide: do you renumber going forward, or keep a mapping table? Custom fields. You might have a "Project Code" or "Department" field in FreshBooks. Xero and Wave have limited custom field support. If these matter for reporting, you'll need to decide whether to flatten them into notes or recreate them in the new platform (if it allows). Tax codes. FreshBooks might have "GST" and "No Tax". Xero expects specific tax codes ("GST on Sales" vs "GST-Free" vs "Import Tax"). If you invoice across Singapore, Malaysia, or Indonesia, you need to map each FreshBooks tax rule to the equivalent in the new system before importing. One wrong mapping and your tax report will be wrong for the entire year. Customer payment terms. FreshBooks stores "Net 30" or "Due on receipt" per client. Some platforms don't have a field for this. You'll lose it in the export. Document any special terms in a spreadsheet before you delete the data from FreshBooks. How to move to Xero, Wave, or an all-in-one without breaking reconciliation