Import Bank Statements into Xero via PDF, OFX or CSV
Jun 13, 2026 · Updated Oct 1, 2026
Convert your bank statement to OFX now
PDF, JPG, PNG, BMP, HEIC, TIFF
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF
Uploading...
All data: Extracts every table and text field from each page.
Xero pulls most transactions in automatically through bank feeds, so why import a statement by hand at all? Because feeds have gaps. They usually backfill only a few months, they stop the moment an account closes, and plenty of regional banks and credit unions have no reliable feed. When any of those happen, the transactions still need to reach Xero, and the source is almost always a PDF statement. Xero can read some of those directly now, but not scans, photos or long statements. This guide covers when Xero's own PDF import is enough, how to convert the rest into a Xero-ready file, and how to import it as statement lines.
When you have to manually import bank statements into Xero
- Historical transactions. Feeds typically backfill a limited window. Catch-up bookkeeping, prior-year cleanup, and onboarding all need months the feed never delivered.
- Closed accounts. Once an account is closed the feed disappears, but the statements still have to be booked and reconciled.
- New client onboarding. Clients arrive with a folder of PDF or scanned statements, not a live connection you can switch on.
- Unsupported banks. Some smaller US banks and credit unions do not offer a Xero feed, so manual import is the only route.
- Loan files and audits. Underwriters and auditors work from the statement itself, so you need the data extracted exactly as printed.
In every one of these cases you are starting from a PDF, often a scanned one. Whether Xero can take it as is depends on the file.
Can Xero import a PDF bank statement directly?
Yes, if the organization is in the United States or Canada and the file is clean. Xero Central lists the rules: the PDF must be 35 MB or less, at least 200 DPI, scanned straight, in English, a debit or credit statement, no more than 100 pages, and not password protected. PDF import is not available on the Xero Ledger plan, and Xero says results from banks outside its validated list "might vary". Even on its own PDF page, Xero recommends OFX over PDF whenever the bank offers it.
| Your file | Xero PDF import | Better route |
|---|---|---|
| Digital PDF from a validated US bank | Usually works | Use it, or convert to OFX if you also want a CSV or Excel copy |
| Scan under 200 DPI or crooked pages | Not supported | Convert to OFX with OCR |
| Phone photos of paper statements | Not a PDF | Convert the images to OFX |
| Statement over 100 pages | Over the limit | Convert to OFX |
| Organization on Xero Ledger | Not available | Convert to OFX |
The rest of this guide covers the route for everything in the right-hand column: convert the statement to OFX or CSV, then import it through Import a Statement.
Step 1. Convert the PDF bank statement to OFX or CSV
Upload the statement to the OFXStatement bank statement converter. The AI extraction reads both digital and scanned PDFs, rebuilds the transaction table across every page, and keeps dates, descriptions, and amounts aligned. Export the result as OFX or CSV. Both work, but Xero itself recommends using an OFX file where possible, because an OFX carries dates, descriptions and signed amounts in a fixed structure and imports without the column mapping and date-format guesswork a CSV needs. If you are onboarding a client with several accounts, convert the whole stack in one batch upload rather than file by file.
For the conversion step on its own, see the Xero bank statement converter, or the PDF bank statement to CSV converter for how the columns are built.
Step 2. Match Xero's CSV requirements
Xero's CSV import is forgiving on extras but strict on two fields. You only need a Date column and an Amount column to create statement lines; everything else makes reconciliation easier but is optional.
| Column | Required | Notes |
|---|---|---|
| Date | Yes | Use a single consistent format and pick the matching one in the import wizard. |
| Amount | Yes | One column for both money in and money out. Income is positive, expenses are negative (for example -30.00 or in brackets (30.00)). |
| Payee | No | Helps Xero suggest matches during reconciliation. |
| Description / Reference | No | Carries the transaction detail through to the bank statement line. |
The key difference from QuickBooks is the amount column. Xero wants a single Amount column with expenses signed negative, not separate debit and credit columns. The converted CSV keeps the columns the statement prints. If your bank prints one signed amount column you are done; if it prints Withdrawals and Deposits separately, add an Amount column in Excel (deposits minus withdrawals) before import, or export OFX, which already carries signed amounts. Leave the converter's Split Debit/Credit option off for Xero: it splits a single column into two, the opposite of what Xero wants.
Step 3. Import the statement into Xero
- In Xero, go to Accounting > Bank accounts and open the account the statement belongs to.
- Click the menu icon for that account and choose Import a Statement. You can download Xero's CSV template here to confirm the exact column layout.
- Upload your converted CSV, then map each column (Date, Amount, Payee, Description) to the matching Xero field when prompted.
- Select the date format that matches your file, review the preview, and import. The transactions land as bank statement lines ready to reconcile.
Xero also accepts OFX and QIF files for manual import. The converter writes OFX, and that import is cleaner still because the amount signs and dates are already structured, with no column mapping at all. That is why Xero recommends OFX over CSV. CSV is the right pick when you want to edit rows before they reach the ledger.
Watch the sign convention
The most common manual-import mistake in Xero is reversed amounts: deposits booked as spending and withdrawals booked as income. It happens because a bank prints its statement from the bank's point of view, while Xero reads the account holder's point of view.
Because Xero uses one Amount column, money leaving the account must be negative and money coming in must be positive. If your statement lists withdrawals as plain positive numbers in a separate debits section, those values need the sign flipped before import. Spot-check the first few imported lines against the printed statement: pick one deposit and one payment and confirm each shows on the correct side. Catching a reversed file in 30 seconds beats deleting and re-importing a few hundred lines later.
Fixing common Xero import errors
- Date format mismatch. If Xero rejects rows or reads months as days, the format you picked in the wizard does not match the file. Keep one format throughout the CSV and select it exactly.
- Amount column has symbols or separators. Strip currency symbols and thousands separators so values are plain numbers; "$1,234.56" can fail where 1234.56 imports cleanly.
- Separate spent and received columns. Xero's standard import expects one Amount column. Combine two columns into a single signed amount before importing, or export OFX, where the sign is already built in.
- Duplicate statement lines. If part of the period was already pulled by a feed, Xero will flag the overlap. Trim the converted file to the dates the feed missed before importing.
- Total or header rows mixed in. Lines like "Closing balance" must not sit among the transactions. Choose Transactions only before converting so text lines stay out of the file, and delete any balance row before import.
Reconcile against the statement
After importing, reconcile the account for each period: the imported statement lines plus the opening balance should equal the statement's closing balance. Because OFXStatement preserves the running balance from the statement, you can catch a missing or doubled transaction before it ever reaches Xero. See reconciling bank statements for the full workflow.
How bookkeeping firms automate this
For one statement, the steps above take a few minutes. Firms that onboard clients or run catch-up work every week standardize the pipeline instead of repeating it by hand:
- Batch convert a client's full statement history in a single upload rather than one PDF at a time.
- Export OFX for every account so each statement, from any bank, arrives with signed amounts and fixed-format dates and needs no mapping.
- Validate totals against the printed closing balance before import, so errors surface upstream of Xero rather than during reconciliation.
Bookkeepers who do this at volume can read more on the bank statement converter for bookkeepers page. If you also work in QuickBooks, the companion guide on converting bank statements to QuickBooks covers the QBO and CSV routes there, and our roundup of the best bank statement converter software compares the major tools on scanned-statement OCR, accuracy, and pricing.
Frequently asked questions
Can I import a PDF bank statement into Xero directly?
Yes, for organizations in the United States and Canada, within limits: the PDF must be at least 200 DPI, scanned straight, in English, 100 pages or fewer, 35 MB or less and not password protected, and PDF import is not available on the Xero Ledger plan. Scans, photos and longer statements have to be converted to OFX or CSV first. Xero recommends OFX over PDF either way.
How do I import a bank statement into Xero?
Convert the PDF statement to OFX (or CSV), then in Xero go to Accounting > Bank accounts, click the menu icon for the account, and choose Import a Statement. Upload the file. An OFX needs no mapping; for a CSV, map the Date and Amount columns and pick the matching date format, then import. The transactions appear as bank statement lines to reconcile.
What columns does a Xero CSV bank statement need?
Only two are required: Date and Amount. The Amount column holds both income and expenses in one place, with expenses entered as negative numbers. Payee, Description, and Reference are optional but make reconciliation faster because Xero can suggest matches from the detail.
Can I import bank transactions into Xero with separate spent and received columns?
Xero's standard manual import uses a single Amount column, not separate spent and received columns. Combine the two into one signed Amount column before importing, with money out negative and money in positive. Exporting from a converter in the single-amount layout produces this automatically.
How do I import older bank transactions into Xero?
Bank feeds only backfill a limited window, so older months will not arrive on their own. Download or request the PDF statements for those periods, convert them to CSV, and import each through Import a Statement. This is the standard approach for catch-up bookkeeping and prior-year cleanup.
Does this work for scanned bank statements?
Yes, as long as the converter uses visual OCR. OFXStatement reads scanned and photographed statements, reconstructs the table, and exports a clean CSV. Generic PDF-to-spreadsheet tools usually fail on scans because the page has no text layer for them to copy.
Can I import bank statements into Xero without a bank feed?
Yes. Manual statement import exists precisely for accounts with no feed, such as unsupported banks, credit unions, and closed accounts. Convert the PDF statement to OFX or CSV and import it through the account's Import a Statement option, and the transactions reconcile the same way feed data does.
Convert your first statement
Upload a PDF bank statement to OFXStatement, export it as OFX, and import it into Xero in minutes. The Plus plan adds bulk upload of up to 50 files and custom templates for firms processing client statements every week.