How-to guide

Exporting your data from Xero: what you can get out and how

Beginner10 min read
Payment StatusOutstanding: 31k
Harbourne Merchandise12,480Paid
Horizon Events8,940Overdue
Marlowe Promotions3,760Sent
Vertex Group5,120Sent
Fenwick Studios2,380Pending

Zigaflow Editorial

Published

Zigaflow Editorial publishes Zigaflow's guides, insights, industry resources, glossary and workflow pages. Zigaflow is responsible for what they say. Spotted an error? Email support@zigaflow.com.

In short

Xero exports contacts, invoices, bills and the chart of accounts as CSV, and reports as Excel, PDF or Google Sheets. Pick one cut-off date and export everything in order against it.

  • Contacts, chart of accounts, invoices and bills export as CSV, while reports export as Excel, PDF or Google Sheets.
  • Each export sits in a different Xero menu, so work from a written checklist.
  • Agree one cut-off date and use identical date ranges on every list and report.
  • Export the chart of accounts first, then contacts, invoices, bills and reports.
  • Attachments have no bulk export, so plan separately for invoice PDFs and receipts.

Xero exports contacts, invoices, bills and the chart of accounts as CSV, and reports as Excel, PDF or Google Sheets. Here is the order and date discipline that keeps the files usable.

You can export most of what matters from Xero, but not from one place. Contacts, sales invoices, bills and the chart of accounts come out as CSV files. Reports such as Profit and Loss, Balance Sheet, Trial Balance and the aged reports come out as Excel, PDF or Google Sheets. Individual invoice PDFs and file attachments are the awkward part, because they come out one record at a time. This guide shows the order that keeps the files consistent, so the data holds together when it reaches a new system, an auditor or your accountant.

Why the order and the date range matter

Every export in Xero is a snapshot of the moment you download it. If you export contacts on Monday, invoices on Wednesday and the aged receivables report on Friday, the three files will disagree whenever a payment, credit note or correction landed in between. Anyone reconciling them later spends hours explaining differences that are really timing.

The fix is simple discipline. Agree a cut-off date, export everything against it, and use the same start and end dates on every list and report. Menu names vary a little between regions and Xero versions, so treat the paths below as a guide and check Xero Central if a button has moved.

What comes out as what

Lists come out as CSV. That covers contacts, the chart of accounts, sales invoices and bills. Reports come out as Excel, PDF or Google Sheets. Attachments and invoice PDFs are not part of a bulk CSV export, so plan for them separately.

Two practical points catch people out. First, the invoice and bill exports are wide: one source describes an invoice file with 44 columns, starting with 16 address columns, with one row per line item. Second, the same source notes a limit of 500 transactions per export, so a busy business exports in date slices rather than in one go.

1

Agree the cut-off date and the scope

Pick one end date, usually a month end or financial year end, and one start date. Write them down. Decide which organizations are in scope, because Xero exports one company at a time. Tell anyone who posts transactions that late entries after the cut-off will need a second, clearly labeled export.

2

Export the chart of accounts first

Open the Accounting menu, choose Chart of accounts and click Export. You get a CSV of account codes, names, types and tax settings. Export this first because every other file refers to these codes. If a new system needs to map accounts, this is the file you map against, and it should not change while you work.

3

Export contacts

Open Contacts, choose the group you want, then use the menu at the top right to export. The CSV carries names, emails, phone numbers and addresses, and can run to dozens of columns. Export both customers and suppliers. Clean obvious duplicates after exporting, not before, so the file still matches the invoice records.

4

Export sales invoices in date slices

Go to the sales invoices list, pick a tab, filter by your date range and click Export. Include paid, unpaid and voided statuses if you need a full history. If a slice would exceed the per-export limit, split it by month and keep the slices clearly named, for example invoices-2026-01.csv.

5

Export bills in the same slices

Open the bills list and repeat the process with identical date slices. The Export option sits in the menu next to the new bill button. Matching slices let you compare sales and purchase activity period by period, and they make it easy to confirm nothing is missing from either side.

6

Export the reports against the same dates

Open Reporting, then All reports. Run Profit and Loss, Balance Sheet, Trial Balance, Aged Receivables and Aged Payables with your cut-off dates and click Update. Choose Excel for anything you will analyze and PDF for anything you will file as a record. Add the General Ledger or Account Transactions report if an auditor needs transaction-level detail.

7

Capture PDFs and attachments

Xero has no built-in bulk download for attachments. For a small volume, open each record and download the file. For hundreds, ask your accountant or a developer about the Xero API, and only grant access to tools you trust. Save files in folders named after the invoice or bill number so they can be matched back to the CSV rows.

8

Check the files before you rely on them

Open each CSV in a spreadsheet. If Excel shows reports with zero totals, click Enable Editing, because protected view hides the calculated figures. Compare the invoice totals to your Profit and Loss revenue for the same period and the aged receivables total to the unpaid invoice list. Fix differences now, while the source data is still open in Xero.

Common pitfalls

The most common mistake is exporting without a cut-off, which produces files that cannot be reconciled. The second is trusting a file you never opened: dates can arrive as text and amounts with four decimals, so a direct import can misread them. The third is forgetting that an export is a copy. Corrections made in Xero after the download do not appear in your files, so keep a dated log of what you exported and when.

Using the exports

For a migration, the order above mirrors how most systems load data: accounts, then contacts, then open invoices and bills, then history. Zigaflow's guide to what you can import when switching shows how those files line up on the import side.

For a hand-off to an auditor or new accountant, the reports and ledger exports matter most. If you want to understand how the figures are built, invoices and supplier invoices hold the underlying records, and reporting shows how the same data is summarized. The aged receivables export is also the starting point for credit control, because it lists who owes you, how much and for how long.

Finish by storing the full set - CSVs, report files, PDFs and your cut-off log - in one dated folder. That folder is your record of exactly what Xero held on the day you left it or handed it over.

Common questions

The invoice and bill exports give you CSV data, not the PDF documents. Invoice PDFs and attachments are generally downloaded record by record, and there is no built-in bulk download for attachments. For large volumes, an accountant or developer can use the Xero API to pull files programmatically. Name saved files after the invoice number so they match the CSV rows.

Sources

See it in Zigaflow

Ready to put these ideas into practice?

Book a demo and see how Zigaflow fits your team.