How to import a bank statement into Xero
Xero can't read a PDF statement, but it imports bank statements as CSV, OFX or QIF files. Convert the PDF to CSV, then in Xero go to Accounting → Bank accounts, open the account, choose Import a statement, upload the file and map the Date, Amount and Payee or Description columns. Money out must be negative.
Updated
When you need to import a statement into Xero
You import a statement when the bank feed can’t give you the data. That covers four common cases.
- No feed for your bank. Smaller banks, credit unions and many non-US/UK/AU banks have no direct feed in Xero.
- History before the feed. A new feed usually pulls only a few months back. Older months exist only as PDF statements.
- New client onboarding. Moving a business into Xero mid-year means loading every month since the start of the financial year.
- Gaps in the feed. Feeds sometimes drop days. Importing the statement for that period fills the gap.
In each case the bank hands you a PDF. Xero needs a data file, so the first job is getting the PDF into CSV.
Which file types Xero accepts
Xero’s Import a statement screen takes CSV, OFX and QIF files. It does not take PDF, Excel (.xlsx) or Google Sheets files.
| Format | Mapping needed in Xero | Good for |
|---|---|---|
| CSV | Yes, you match each column once | Any bank, and checking the data first |
| OFX | No, fields are fixed | Clean imports when you have one |
| QIF | Minimal | Older exports only; it has fewer fields |
If you only have a PDF, convert it to CSV. If you’d rather skip mapping, download OFX from BankConv instead, or pick the Xero CSV option, which already uses Xero’s column names and signs. For background on the format, read what an OFX file is.
Step 1: Convert the PDF statement to CSV
Download the monthly PDF statement from online banking, then convert it. BankConv reads the transaction table and gives you one row per transaction.
- Upload the PDF to BankConv’s bank statement to CSV converter. Password-protected PDFs work.
- Check the extracted rows on screen against the PDF.
- Download the CSV. You need a free account to download.
The CSV keeps the statement’s own columns, such as Date, Description, Amount and Balance. Some banks print separate money-out and money-in columns, so your file may have Debit and Credit (or Paid out and Paid in) instead of one Amount column. Step 2 deals with that.
Step 2: Shape the CSV for Xero
Xero wants one signed amount column: money in positive, money out negative. Open the CSV in Excel or Google Sheets and make four checks.
- One header row. Delete any title lines, account numbers or blank rows above the headers.
- One signed Amount column. If you have Debit and Credit columns, add a column called Amount with
=Credit-Debit(for example=E2-D2) and fill it down. Treat blank cells as zero. - Plain numbers. Remove currency symbols and thousand separators:
1234.56, not$1,234.56. Turn(84.50)into-84.50. - No summary rows. Delete opening balance, closing balance and totals lines at the top or bottom.
Save as CSV (in Excel choose CSV UTF-8). You can keep the Balance column; just don’t map it.
A file Xero reads cleanly looks like this:
Date,Description,Reference,Amount
03/09/2026,Gusto payroll,ACH,-4120.00
05/09/2026,Client payment INV-1042,TRANSFER,3500.00
24/09/2026,State Farm insurance,DD,-168.43
Step 3: Import the statement in Xero
The import lives on the bank account itself. You need one bank account set up in Xero for each real account.
- In Xero, go to Accounting → Bank accounts.
- Find the account. Open its Manage account menu (the three-dot or “…” menu) and choose Import a statement.
- Click Browse, choose your CSV and click Import.
- Map each column in your file to a Xero field: Transaction Date, Transaction Amount, Payee, Description and Reference. Leave Balance unassigned.
- Tick the box that tells Xero not to import the first line because it contains column headings.
- Click Save and confirm. Xero shows how many statement lines it imported.
The new lines appear on the Reconcile tab, ready to match or create.
Common Xero import errors and fixes
Most failed imports come from three things: dates, signs and extra rows. Check them in that order.
| What you see | Cause | Fix |
|---|---|---|
| Dates in the wrong month, or “invalid date” | File uses MM/DD while your Xero organisation reads DD/MM (or the reverse) | Reformat the Date column to match your organisation’s region, or use YYYY-MM-DD |
| Every line shows as received money | No negative numbers in Amount | Make money out negative, or rebuild Amount as =Credit-Debit |
| Every line shows as spent money | Signs flipped, often from =Debit-Credit |
Swap the formula to =Credit-Debit |
| First line imported as a transaction, or import fails | Header row not skipped, or title lines above it | Delete lines above the header and tick the header-row box |
| Amounts imported as zero or skipped | Currency symbols, commas or text in Amount | Keep digits, minus sign and a decimal point only |
| Odd characters in payees | File not saved as UTF-8 | Re-save as CSV UTF-8 |
| Duplicates of feed transactions | The file overlaps dates the feed already loaded | Trim the CSV to the missing dates only |
The date trap in detail. 03/09/2026 is 3 September in the UK and Australia but March 9 in the US. A file in the wrong order can still import without an error if every day is 12 or under. Spot-check a few transactions against the PDF after every import.
Undoing a bad import. You don’t fix lines one by one. Look under the account’s Manage account menu for Bank statements, open the statement you imported and delete it. Then fix the CSV and import again. Lines you have already reconciled may need unreconciling first.
Check the import against the statement
Xero won’t tell you if a row is missing, so check it yourself. It takes two minutes.
- Count the rows: transactions on the PDF should equal lines imported.
- Add up the Amount column. Opening balance plus that total should equal the closing balance on the PDF.
- Compare the account balance in Xero with the statement’s closing balance after you reconcile.
If the totals are off, sort by date and compare against the PDF page by page. A missing row usually sits at a page break.
Tips for bookkeepers handling many clients
A repeatable routine saves time on every month-end.
- Import months in date order, one file per month, so each statement can be deleted on its own if needed.
- Name files
client-bank-2026-09.csvso you can see what’s been imported. - Keep a short note per client of the bank’s column layout and the date order. Statements from the same bank share the same columns.
- Convert a whole quarter at once: BankConv takes up to 10 PDFs in one batch. See pricing for monthly page allowances.
- Files are deleted automatically after 24 hours. See security for how data is handled.