# Import Bank Statement into Xero: Step by Step

- Author: SimpleBankConvert (https://simplebankconvert.com)
- Published: 2026-10-16
- Category: Xero imports
- Canonical: https://simplebankconvert.com/blog/import-bank-statement-into-xero

> Import a bank statement into Xero step by step: choose CSV or OFX, upload it to the right bank account and check what Xero brought in against the statement.
To import a bank statement into Xero, save the statement as a CSV or OFX file, open the bank account in Xero, choose Manage account, then Import a statement, and upload the file. Xero shows a review screen before it saves anything. Check the dates, amounts and closing balance there, because mistakes cost more time to fix afterward.

## Which statement files does Xero import?

Xero's statement import reads files of transactions, not pictures of a statement. The two types most people use are CSV, a plain spreadsheet-style text file, and OFX, a bank-data format that downloads from many online banking sites. A PDF is not one of them. Always confirm the list on the import screen itself, because Xero can change it.

### CSV, OFX and the formats built on OFX

A CSV file holds one transaction per row, with columns such as date and amount. You can open it in Excel or Google Sheets, read it, and fix it by hand, which is its main advantage. The cost is that you must tell Xero which column is which, and the file must follow Xero's layout. The columns Xero looks for are covered in [the Xero bank statement import CSV guide](/blog/xero-bank-statement-import-csv).

An OFX file carries the same information in a fixed structure with tagged fields, so nothing needs mapping. The price is that you cannot easily check or edit it, and a file with a damaged tag may be refused without a clear message. Files with the extensions QFX and QBO are close relatives of OFX that other accounting programs use. Whether Xero accepts any particular one is something to test on the import screen, not to assume from the name.

### Which one should you pick?

Use the file your bank gives you if it opens cleanly, and use CSV if you need to repair anything. If your only statement is a PDF, neither file exists yet, and you need a conversion first. That case has its own walkthrough in [importing a PDF bank statement into Xero](/blog/import-pdf-bank-statement-into-xero). If your bank offers a QFX download, [turning a QFX download into a CSV](/blog/qfx-to-csv#qfx-fields-worth-keeping-as-csv-columns) explains which fields to keep as columns.

### A quick comparison

| Question | CSV | OFX |
| --- | --- | --- |
| Can you read and edit it before upload? | Yes, in any spreadsheet | Only in a text editor |
| Does Xero need column matching? | Yes | No |
| Does it carry a unique ID per transaction? | No | Usually yes |
| Where does it come from? | Bank export, spreadsheet, a converter | Bank download, a converter |

This table describes the usual case. Banks differ, and some CSV exports are messier than others.

## Finding Xero's Import a Statement option

Xero's Import a Statement option sits on each bank account, not in a global import menu. You reach it from the list of bank accounts, so you must pick the account first. This also means the file always lands in the account you chose, which is why choosing the right one matters.

### The steps

Menu names can change when Xero updates its screens, so treat these as the usual route and compare them with what you see.

1. In Xero, open Accounting, then Bank accounts.
2. Find the account the statement belongs to. If it is not listed, add it as a bank account first.
3. Next to that account, choose Manage account.
4. Choose Import a statement.
5. Browse to the file on your computer and select it, then continue.
6. If the file is a CSV, match each column in your file to a Xero field. The import screen shows a preview of your rows so you can see what each column holds.
7. Look at the review screen, then complete the import.

The example file for this guide is a fictional March statement for a small design studio. Its first rows look like this:

```
Date,Amount,Payee,Description,Reference
03/02/2026,1250.00,Brightwater Cafe,Client payment,INV 1042
03/04/2026,-86.42,Pinecrest Office Supply,Office supplies,
03/09/2026,-24.00,Cloudnest Web Services,Website hosting,
```

These values are examples. Money going out carries a minus sign, and money coming in does not.

### Picking the right bank account

Two accounts with similar names are the most common cause of a wrong import. A business savings account and a business checking account may both be listed, and a credit card is a separate account again. Before you upload, read the last four digits or the account name on the statement, and match them to the account you opened in Xero. If the wrong account receives the file, you will see foreign transactions on its reconciliation screen, and you will need to remove them.

### Before the first import

Check the date range of the statement and the date of the last transaction already in the account. Importing a month that overlaps what Xero already has produces duplicate lines, covered below. Importing a month that leaves a gap produces a balance that will not match. Note the statement's opening and closing balances now, because you need them for the final check.

## Checking the Xero statement import before you save

The review screen is your last chance to catch a bad file before it becomes bank statement lines in Xero. Look at three things there: the dates, the sign on each amount, and the total number of lines. A file can upload without any error and still contain wrong data, so a quick look pays for itself.

### What to check on the screen

- **Dates.** Compare the first and last date with the statement period. A date that moved by a month, or a year, usually means the day and month were read in the wrong order.
- **Amounts.** Deposits should be positive and payments negative. If every amount has the same sign, the file probably used separate debit and credit columns that were mapped to one field.
- **Line count.** Count the transactions on one page of the statement and compare. You do not need to count them all.
- **Payee and description.** Names that run together mean the file put everything in one column.

### A balance check after the import

After saving, open the account's reconciliation screen and look at the statement balance Xero shows. Compare it with the closing balance printed on the statement. If you started from an opening balance that matched, the two figures should agree. A difference equals the sum of whatever is missing or doubled. Subtract and look for a transaction with that exact amount.

For example, if the statement closes at 8,410.00 and Xero shows 8,650.00, a payment of 240.00 is missing. These are illustrative numbers. Search the statement for a 240.00 line. It may be a fee, a line at the bottom of a page, or a row that wrapped onto two lines in the source file.

### If something is wrong

Do not try to patch the saved lines one by one. Fix the file, then import again, being careful about duplicates. How to sort out lines that came in twice is the subject of the next section.

## Why does Xero say some statement lines are duplicates?

Duplicate statement lines come from bringing the same transaction in twice: importing the same file again, or two files whose dates overlap. A repeated line is not always a mistake, though. Only the statement can tell you whether it is a true repeat or a genuine second transaction.

### Real repeats and genuine twins

Two identical lines are not always an error. A freelancer who buys a train ticket twice on the same day, for the same price, from the same merchant, has two real transactions. Xero cannot know that. When you see a pair, ask whether your statement really shows two of that line. If it does, keep both. If you can see only one on the statement, remove the extra.

### Why overlapping files cause the problem

Say you import a file for March 1 to March 31, and later a file for March 15 to April 15. The fifteen days in both files appear twice. Whether the second set is recognised depends on how the lines match what is already stored. Files that carry a unique transaction ID per line make this match precise, while CSV files rely on the visible values. The ID question is explained in more detail in [OFX transaction IDs and duplicate imports](/blog/pdf-to-ofx#ofx-transaction-ids-and-duplicate-imports).

The simplest rule is to avoid overlap. Start each file the day after the last transaction already in Xero. If a bank only offers fixed monthly statements, use the same boundaries every time.

### What to do when lines repeat

1. List the lines in the account for the overlapping dates.
2. Compare them against the statement for the same dates.
3. Keep lines that appear twice on the statement. Remove extra copies of lines that appear once.
4. Run the balance check above again once the lines match the statement.

## Xero statement imports alongside a live bank feed

A bank feed brings transactions into Xero automatically, and a statement import adds lines yourself. You can use both on the same account, but they can overlap, so decide which one covers which dates. If the feed already delivered a week of transactions, importing a file that includes that week creates doubles.

### When an import is useful with a feed

Feeds start at a certain date and rarely reach far into the past. An import can fill the older months. A feed can also fail for a few days and leave a gap. In both cases, import only the dates the feed did not cover. Look at the oldest feed transaction in the account, and end your file the day before it.

### Keeping a clear boundary

Write down the first date the feed covers. Then set your import file to end before that date. Spreadsheet users can sort the CSV by date and delete rows after the boundary before uploading. Doing it in the file is safer than deleting lines in Xero later.

### What if the bank only gives PDFs?

Some banks provide PDF statements and no downloadable file. SimpleBankConvert is being built to turn that PDF into a CSV laid out for Xero, with payee and reference in their own columns, and you can join the list on the [get started page](/get-started). Until it opens, the same CSV can be made by hand in a spreadsheet using the column guide linked above.

Once the first import is in and the balance matches, the monthly routine is short: download the statement, convert it if needed, upload it to the right account, check the review screen, and compare the closing balance.
