Guides · Xero

How to import a bank statement into Xero (OFX, CSV or PDF)

Updated November 9, 2026 · 9 min read · By the Utilly team

Xero gets bank transactions in three ways: a bank feed, a file you export from online banking and import yourself, or (in the US and Canada only) a PDF statement it reads for you. This guide covers which file to use in your region, the Import a Statement steps for OFX, QFX, QuickBooks (.qbo), QIF, CSV and PDF files, what to do when all you have is a PDF, how to fill in months from before a bank feed started, and how to check and undo an import.

Short answer: in Xero, go to Accounting → Bank accounts, click the account's menu icon (⋮), choose Import a Statement, upload the file, then review and click Complete import. Xero accepts OFX, QFX, QuickBooks (.qbo), QIF and CSV files and recommends OFX, which imports with no changes. A PDF statement only imports in Xero organizations in the US and Canada (not on the Xero Ledger plan). Everywhere else Xero's help says "PDF bank statements can't be imported into Xero", so convert the PDF to a Xero CSV or OFX file first.

See a PDF statement turned into a Xero file

Open Utilly's fictional September 2026 checking statement (account ending 0427, 31 transactions: 11 deposits totalling 29,597.43 and 20 withdrawals totalling 28,575.27). You see every line, the balance check from 12,418.36 to 13,440.52, and the Xero CSV and OFX downloads, all free because the data is made up.

Sample PDFIts Xero CSV

1. The ways to get bank transactions into Xero

Xero Central's About manually importing bank statements starts from the bank feed: if you can't set one up, "you can import bank transactions into Xero yourself". Every route ends the same way, as statement lines in the bank account that you then reconcile.

RouteWhat you give XeroWhere it worksBest for
Bank feedNothing: transactions arrive dailyBanks Xero has a feed forOngoing bookkeeping
File importAn OFX, QFX, QuickBooks (.qbo), QIF or CSV file from online bankingEvery regionBanks without a feed, older months, year-end catch-up
PDF importThe PDF statement itselfUS and Canada only, not on Xero LedgerStatements where the bank offers no file export
HubdocA PDF, which Hubdoc turns into a CSV you then importSupported US and Canadian banksXero's US help suggests it for supported banks
Create and mark as reconciledNo file: you enter the transactions in XeroEvery region"Only a few transactions missing", in Xero's words

You need the administrator or standard + bank accounts user role to import a statement. For PDF imports, Xero also allows the cashbook client role.

2. Which file to use

What you haveUseWhy
The bank offers OFX, QFX or QuickBooks downloadsOFXXero: "We recommend using an OFX file where possible. OFX files can be imported into Xero without making any changes to the export file from your bank."
Only QIFQIFImports with a date format prompt; Xero prefers OFX or QFX if offered
Only a CSV downloadCSV, edited to Xero's rulesOne signed Amount column, no balances, no empty rows (below)
Only PDFs, organization in the US or CanadaXero's PDF import, or a converted filePDF import works for clean statements; a converted CSV or OFX lets you check the totals first
Only PDFs, anywhere else (UK, Australia, New Zealand…)A Xero CSV or OFX converted from the PDFXero's global help: "PDF bank statements can't be imported into Xero"
Scanned or photographed statementsA converted file, checked line by lineXero's PDF import wants at least 200 DPI and a straight scan; converters read scans less reliably than text PDFs

3. Import a Statement, step by step

The screen is the same for every format. From Xero Central:

  1. Export the transactions from online banking, one file per bank account. Xero asks for a separate file for each account.
  2. In Xero, in the Accounting menu, select Bank accounts.
  3. For the bank account you want to import into, click the menu icon (⋮), then select Import a Statement.
  4. In File to upload, drag and drop the file or click Select file, then click Next.
  5. CSV only: if prompted, assign the columns in the file to Xero's statement fields. QIF and CSV: if prompted, choose the date format.
  6. Review the transactions and clear the checkbox next to any you don't want to import.
  7. Click Complete import, then reconcile the statement lines.

Xero recognises transactions already imported from other files and excludes them, so an overlapping file adds only the new lines. That cuts both ways: a genuine repeat, such as two identical card charges on the same day, can look like a duplicate, so compare the count with the statement (section 9).

4. OFX, QFX and QuickBooks (.qbo) files

Xero's Import an OFX bank statement article treats all three the same: text files with the transactions, imported with no column mapping and no date format step. An OFX file carries each transaction with its own date, amount and ID, and the closing balance. These lines are from the OFX Utilly writes for the sample statement:

<BANKACCTFROM><BANKID>999999999<ACCTID>0427<ACCTTYPE>CHECKING</BANKACCTFROM>
<STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20260901120000<TRNAMT>-6420.18<FITID>20260901E26D1A27070800<NAME>ACH DEBIT GUSTO PAYROLL 0912<MEMO>ACH DEBIT GUSTO PAYROLL 0912</STMTTRN>
<LEDGERBAL><BALAMT>13440.52<DTASOF>20260930</LEDGERBAL>

If your bank labels its download "Quicken" (QFX) or "QuickBooks" (QBO), it's the same family and Xero imports it the same way. Xero's import error list includes a statement currency that doesn't match the account's, and an account locked until a certain date, so check both if an OFX import won't complete. Every tag is explained in sample OFX file.

5. CSV files

A CSV is the format every bank offers and the one Xero is strictest about. From Xero Central's CSV article:

  • One Amount column. "Both income and expense amounts must be in the same column": income positive, expenses negative, as -30.00 or (30.00). Separate Debit and Credit columns have to be combined.
  • Delete balances, the account number and empty rows. Xero "calculates the bank balance from the transactions".
  • Decimal points, not commas, and one date format for the whole file.
  • No more than 100,000 rows.
  • Date and Amount are the only required fields; Payee, Description and Reference make reconciling easier. A payee must match an existing contact exactly, or Xero may create a duplicate contact.

This is what a file that follows those rules looks like, the first lines of the Xero CSV made from the sample statement:

*Date,*Amount,Payee,Description,Reference
2026/09/01,-6420.18,ACH DEBIT GUSTO PAYROLL 0912,ACH DEBIT GUSTO PAYROLL 0912,
2026/09/01,3184.27,STRIPE TRANSFER ST-K2M8Q4,STRIPE TRANSFER ST-K2M8Q4,
2026/09/02,-1850.00,CHECK 2041,CHECK 2041,

The first time you import a CSV, you assign each column to a statement field, and Xero keeps that for future CSV imports unless the columns or headers change. If a date could be read as DD/MM/YY, MM/DD/YY or YY/MM/DD, Xero asks for the format and "applies the chosen format to the entire statement and all future CSV bank statements". Writing dates year first, as above, avoids the day/month swap. The full column-by-column template, with a blank copy to download, is in the Xero CSV import template guide; to fix a bank's own CSV automatically, use CSV to Xero.

6. PDF statements

In the US and Canada, Xero's Import a PDF bank statement article lets you upload the PDF on the same Import a Statement screen, except on the Xero Ledger plan. The file must:

  • be 35MB or less, with no more than 100 pages per statement, and at most 40 inches (2880 points) high and wide;
  • have a resolution of at least 200 DPI and, if scanned, be scanned straight;
  • be written in English, be a debit or credit statement, and not be password protected.

Xero lists banks whose statements it has validated (Chase, Bank of America, Wells Fargo, Capital One, Amex and Mercury among them) and accepts others, but says "the accuracy of the results might vary". On the Review screen, lines with warnings are still imported and lines with errors aren't; Xero's advice for those is to import them in a different file type. Even here, Xero recommends OFX over PDF if your bank offers it.

Everywhere else, Xero's global help is plain: "PDF bank statements can't be imported into Xero." It suggests exporting the transactions from online banking (usually available when you view them as a list), or a conversion service. That's what Utilly's PDF to Xero converter does: it reads the statement, checks that the opening balance plus every transaction equals the closing balance, and writes a Xero CSV or an OFX file. Comparing the options, including Hubdoc and Xero's own PDF import, is in best bank statement to Xero converters.

7. Months from before a bank feed started

Xero's help names this case directly: you "might also need to manually import bank statements if you have a bank feed connected, but are missing statement lines dated before the automatic feed started". Banks' file downloads often cover only recent months, while PDF statements go back years, so older months usually mean converting PDFs.

  1. Find the first date the feed brought in (the earliest line in the account's Bank Statements).
  2. Import or convert one statement per month up to the day before it, oldest first, so each file matches one statement you can check.
  3. Leave out any days the feed already covers. Xero skips lines it recognises, but a feed line and a file line for the same payment can differ in description, and then both come in.

If you switch from file imports to a new feed, Xero says to check for missing or duplicate transactions when the feed starts. For a business years behind, catch-up bookkeeping from bank statements covers the order of work.

8. Credit card accounts

Set the card up as a credit card bank account in Xero and import into it the same way. In a card file, purchases are negative and payments to the card are positive, the opposite of how many card exports show them. The sample card statement's Xero CSV has 21 lines: 19 purchases totalling 1,939.94 and 2 credits totalling 1,542.18, a net of −397.76. If your card's CSV shows purchases as positive numbers, flip the signs before importing, or convert the card PDF with the credit card statement converter, which writes Xero's signs.

9. Check the import against the statement

Before you reconcile anything, compare what came in with the statement. For the sample:

CheckSample checking 0427, September 2026If it's off
Statement lines31Fewer: lines unticked, skipped as duplicates, or with errors. 62: the file went in twice under different descriptions
Received11, totalling 29,597.43Deposits showing as spent means the signs are flipped
Spent20, totalling 28,575.27A missing service fee or check is the usual gap
Net change+1,022.16Must equal the closing minus the opening balance
Statement Balance12,418.36 → 13,440.52Check the account's opening balance and for missing or deleted lines

Xero keeps two balances for each account: the Statement Balance (the opening balance plus every imported line) and the Balance in Xero (from the transactions you've created). After reconciling they should agree. When they don't, the Xero import errors guide has Xero's month-by-month method, and finding bank reconciliation discrepancies shows how to find the line.

10. Undo an import: delete a statement

If you imported the wrong file or the same statement twice, delete the whole statement. From Xero Central's Delete a bank statement:

  1. In Accounting → Bank accounts, click the account's menu icon (⋮), then select Bank Statements.
  2. From Showing, select Statements, then click the date of the statement you want to delete.
  3. Click Delete Entire Statement, at the bottom of the list of statement lines.
  4. Optionally, select Also delete reconciled transactions for this statement, then click Delete.

Xero warns that "deleted bank statements can't be restored", so if you delete one in error you have to import it again. To remove one line rather than the statement, delete just that statement line.

11. Common problems

What happensLikely causeWhat to do
No PDF option, or the PDF is rejected outside the US and CanadaPDF import is US and Canada only, and not on Xero LedgerConvert the PDF to a Xero CSV or OFX
"The file you uploaded does not contain valid statement data"Wrong date format, spaces around dates, blank lines, or a badly prepared CSVSee the Xero import errors guide
Dates in the wrong month after a CSV importThe wrong date format was picked, and Xero kept it for later CSVsDelete the statement, re-import, choose the right format
Deposits show as spent moneySigns flipped, or Debit and Credit columns not combinedOne signed Amount column, money in positive
Fewer lines than the fileDuplicates of lines already in Xero are skippedExpected for overlapping files; otherwise compare with the statement
Some PDF lines have errors on the Review screenXero couldn't read them; they won't be importedImport the rest, then add the missing lines from another file type
The same transaction twiceThe period came in by feed and by fileRun the Duplicate Statement Lines report and delete the extra line

12. Convert your own statement

Utilly reads a bank or credit card statement PDF, checks every transaction against the opening and closing balances, and writes a Xero CSV or an OFX file for Import a Statement. PDF statements get a free preview; CSV, Excel and OFX files convert free up to 100 rows. Files are read in memory and not stored.

Get your statement into Xero

Pick what you're starting from.

Utilly isn't affiliated with Xero. Menu names and regional rules change; the steps above are from Xero Central, checked November 9, 2026, and weren't run in a live Xero organization. Sources: Xero Central, About manually importing bank statements (formats, OFX recommended, "PDF bank statements can't be imported into Xero", missing lines before a feed), About manually importing bank transactions (US) (adds PDF, Hubdoc), Import an OFX, QFX or QuickBooks bank statement, Import a QIF bank statement, Import a bank statement in CSV format, Import a PDF bank statement (US and Canada, requirements, supported banks) and Delete a bank statement. The sample statement is fictional.

FAQ

How do I import a bank statement into Xero?

In the Accounting menu select Bank accounts, click the menu icon next to the account and choose Import a Statement. Upload the file, assign the columns and choose the date format if Xero asks, review the transactions and click Complete import. Then reconcile the new statement lines. Use one file per bank account.

What file formats can Xero import?

OFX, QFX, QuickBooks (.qbo), QIF and CSV in every region, and PDF in organizations in the US and Canada. Xero recommends OFX where possible because it imports without any changes to the file your bank gives you.

Can you import a PDF bank statement into Xero?

Only in Xero organizations in the US and Canada, and not on the Xero Ledger plan. The PDF must be 35MB or less, up to 100 pages, at least 200 DPI, in English and not password protected. Everywhere else Xero's help says PDF bank statements can't be imported, so convert the PDF to a Xero CSV or an OFX file first.

How do I import a CSV bank statement into Xero?

Edit the bank's CSV so income and expenses are in one Amount column (income positive, expenses negative), delete balance columns, the account number and empty rows, and use one date format. Then use Import a Statement, assign Date and Amount to their fields, pick the date format and complete the import.

Can I import bank transactions into Xero manually without a bank feed?

Yes. Export the transactions from online banking as OFX, QFX, QBO, QIF or CSV and import them with Import a Statement. If only a few transactions are missing, Xero suggests creating them in Xero and marking them as reconciled instead.

How do I import transactions from before my Xero bank feed started?

Import statement files for the months before the feed's first date, one file per month, and leave out any days the feed already covers. Xero skips lines it recognises from earlier files, but a feed line and a file line for the same payment can differ, so check for duplicates afterwards.

Can I undo a bank statement import in Xero?

Yes, by deleting the statement: open the account's Bank Statements, show Statements, click the statement's date and choose Delete Entire Statement. You can also delete the transactions it was reconciled against. Xero says deleted statements can't be restored, so you'd import it again if you delete the wrong one.

Related tools

  • Bank reconciliation checker: compare a bank statement to your books and list missing, duplicate and mismatched transactions.
  • Receipt to CSV: turn PDF or photo receipts and invoices into CSV, Excel, or QuickBooks and Xero bill imports.