Skip to content

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

How to import a bank statement into Xero from a PDFVideo coming soon · 1:30

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.

  1. Upload the PDF to BankConv’s bank statement to CSV converter. Password-protected PDFs work.
  2. Check the extracted rows on screen against the PDF.
  3. 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.

Check the rows against the PDF before you download the CSV.

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.

  1. One header row. Delete any title lines, account numbers or blank rows above the headers.
  2. 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.
  3. Plain numbers. Remove currency symbols and thousand separators: 1234.56, not $1,234.56. Turn (84.50) into -84.50.
  4. 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.

  1. In Xero, go to Accounting → Bank accounts.
  2. Find the account. Open its Manage account menu (the three-dot or “…” menu) and choose Import a statement.
  3. Click Browse, choose your CSV and click Import.
  4. Map each column in your file to a Xero field: Transaction Date, Transaction Amount, Payee, Description and Reference. Leave Balance unassigned.
  5. Tick the box that tells Xero not to import the first line because it contains column headings.
  6. 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.

Map each column once and leave Balance unassigned.

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.

  1. Count the rows: transactions on the PDF should equal lines imported.
  2. Add up the Amount column. Opening balance plus that total should equal the closing balance on the PDF.
  3. 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.csv so 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.

Questions people ask

Can I import a PDF bank statement directly into Xero?

No. Xero's statement import reads CSV, OFX and QIF files, not PDFs. Convert the PDF to CSV first, then import the CSV through Import a statement.

Why are all my Xero transactions showing as received money?

Your Amount column has no negative numbers. Xero treats positive amounts as money in, so withdrawals must be negative. Fix the signs in the CSV, delete the imported statement in Xero and import again.

Should I use CSV or OFX for Xero?

Both work, and BankConv exports both. OFX skips the column mapping step, while CSV lets you check and edit the data first. BankConv also has a Xero CSV option that writes Xero's own columns (Date, Amount, Payee, Description, Reference) with money out already negative.

How do I avoid duplicate transactions in Xero?

Import only the dates the bank feed doesn't already cover. Check the date of the last statement line in the account before you import, and trim earlier rows from the CSV.

Can I import several months at once?

Yes. Stack the months in one CSV with a single header row, or import each month in date order. One file per month makes mistakes easier to undo.