How to Import a Bank Statement into Xero
Use a bank-issued OFX file when it covers the period you need. Xero also accepts US PDF statements and mapped CSV files, with different review controls for each route.
Choose the cleanest source before you import
Xero's current US guidance accepts OFX, QFX, QIF, QuickBooks, PDF, and CSV bank-transaction files. Xero recommends OFX when the bank offers it because that file can enter Xero without edits. Use the bank export when it covers the correct account and statement period.
A PDF gives you two routes in a US Xero organization. You can use Xero's PDF statement importer when the organization, user role, and file meet its requirements. You can also convert the PDF into a reviewed CSV, inspect each row outside Xero, and map the destination copy during import.
| Source available | Best route | Main control |
|---|---|---|
| Bank-issued OFX | Import the OFX into the matching bank account | Confirm account, currency, and date range |
| Bank-issued QFX, QIF, or QuickBooks file | Use Xero's matching manual-import route | Review all proposed transactions before completion |
| Eligible PDF in a US Xero organization | Use Xero's PDF importer | Compare Xero's extracted rows with the PDF |
| PDF needing row control | Convert to reviewed CSV, then map it in Xero | Preserve a source copy and verify every row |
Define the account and missing date range
Open the intended bank account in Xero and note the newest statement line already present. Compare that date with the bank statement or export. If a bank feed contains part of the period, prepare only the missing range rather than importing the whole statement again.
Use one file for one bank account. Confirm the account currency and any lock date before upload. Xero's troubleshooting guidance notes that a currency mismatch or locked account can block completion even when the rows themselves are valid.
Use direct PDF import when the file qualifies
Xero's current PDF statement import is available for organizations in the United States and Canada, except organizations on the Xero Ledger plan. Xero lists advisor, standard, and cashbook client roles as eligible. The file must be in English, no more than 35 MB or 100 pages, at least 200 DPI, and free of password protection.
Xero validates extraction for selected bank statement types and permits other banks with less predictable results. Review the proposed rows before completion. A balance-difference warning, unsupported-bank notice, unverified balance change, or possible date discrepancy calls for source review or another file route.
- Download the PDF from the bank when possible.
- Keep one account per file.
- Remove password protection before upload through a trusted local workflow.
- Compare transaction count, dates, descriptions, and amounts with the PDF.
Create a reviewed CSV when you need row control
StatementMint converts entitled bank-statement pages into CSV and formatted Excel with Date, Description, and signed Amount. It does not connect to Xero, select a bank account, assign accounting categories, or reconcile statement lines. Use the export as the source-review layer before Xero receives a destination copy.
Compare each exported row with the issued PDF. Check the first and last transaction on every page, wrapped descriptions, amount signs, dates, and row count. Remove page headings, subtotals, balances, and blank separator rows only after the PDF confirms that they are not transactions.
Prepare the Xero CSV destination copy
Keep one header row and one transaction per row. Use one date format throughout the file, remove spaces around dates, and keep the amount column numeric. Xero rejects $0.00 transactions because there is no amount to reconcile. Split files that contain more than 1,000 transactions.
Keep the reviewed StatementMint export unchanged and edit a duplicate for Xero. Xero saves CSV mapping settings when future files reuse the same column headers. A changed header can trigger a new mapping screen, so stable headers make repeat imports easier to inspect.
| Date | Description | Amount |
|---|---|---|
| 08/03/2026 | ACH CREDIT CLIENT 1842 | 2450.00 |
| 08/05/2026 | CARD OFFICE SUPPLY | -86.42 |
| 08/08/2026 | MONTHLY SERVICE FEE | -15.00 |
| 08/12/2026 | TRANSFER TO SAVINGS 9008 | -500.00 |
Map Date, Description, and Amount
In the Xero import settings, map Date to the transaction-date field and Amount to the numeric amount field. Map Description to the statement description or payee field that preserves the source meaning in your selected Xero screen. Use the preview as the authority because field labels and prior saved mappings can affect what Xero displays.
Confirm the date format if Xero asks whether a value uses month, day, or year order. Review positive and negative amounts against the PDF before completing the import. Do not reverse signs to make the preview look familiar; trace each direction to the bank statement and selected bank account.
| Source column | Map to | Review before completion |
|---|---|---|
| Date | Transaction date | One date format and no leading or trailing spaces |
| Description | Description or payee field shown by Xero | Full merchant or bank text remains readable |
| Amount | Amount | Numeric values and source-backed signs |
Upload the statement to the matching Xero account
In Xero, open Accounting, then Bank accounts. Open the menu for the matching account and select Import a Statement. Upload the chosen OFX, QFX, QIF, QuickBooks, PDF, or CSV file, then select Next.
For a CSV, assign the columns and confirm the date format. Review the transaction list and clear the checkbox for any row you do not want to import. Complete the import only after the account, period, row count, and amount direction agree with the source.
Prevent overlap with feeds and prior files
Xero can recognize duplicate transactions in several supported statement-file routes, but you should still define the import gap yourself. Repeated purchases can share a date and amount, while one feed may use a different description from a manual file. Compare source rows with existing Xero statement lines before completion.
Record the bank account, imported date range, source filename, source row count, and completed row count. If you sent a statement to the wrong Xero account, Xero's correction workflow imports the source into the correct account before you delete the wrong statement. Preserve the original file until you finish that check.
| Control | Example | Pass condition |
|---|---|---|
| Xero bank account | Operating Checking 4431 | Matches the PDF account |
| Existing statement lines through | 07/31/2026 | No date overlap in destination file |
| Destination period | 08/01/2026 through 08/31/2026 | Matches the issued statement |
| Reviewed source rows | 42 | Each row traces to the PDF |
| Rows selected in Xero | 42 | No unexplained omissions |
Fix common Xero CSV import errors
A no-valid-data error can point to an incorrect date format, spaces in the date column, blank lines, poor preparation, or a corrupt file. Rebuild the CSV from Xero's statement template when the same error persists. A data-does-not-match error means a field received the wrong column or a value violates the target format.
Xero limits Reference to 255 characters and Check number to 20 characters if you add those fields. An amount column must contain numbers, and the date column must contain dates. Split a file above 1,000 transactions into smaller batches and preserve non-overlapping date ranges across those files.
| Error or symptom | Check | Correction |
|---|---|---|
| No valid statement data | Dates, blank lines, and file integrity | Rebuild from a clean Xero template |
| Data does not match | Column-to-field mapping | Assign each source column to the proper field |
| Timeout | Transaction count | Split above 1,000 rows into controlled batches |
| Invalid transaction | $0.00 or malformed value | Remove non-transaction rows and repair the source value |
| Completion blocked | Currency and account lock date | Use the matching account and permitted period |
Reconcile the imported statement lines
Imported statement lines still need accounting review in Xero. Match each line to an existing invoice, bill, transfer, payment, or other account transaction when one exists. Create a new spend- or receive-money transaction only when the business records support it.
Compare the Xero statement balance with the bank statement after the import. Investigate missing rows, duplicates, wrong signs, and date gaps before you finish reconciliation. Save the import control record with the issued statement and any reviewed CSV source.
Before you call it done
- Use a bank-issued OFX file when it covers the required period
- Confirm the Xero bank account and currency
- Define the missing date range before upload
- Check direct PDF eligibility and file requirements
- Review converted CSV rows against the issued PDF
- Keep one header row with no blank transaction lines
- Use consistent dates and numeric signed amounts
- Map each CSV column in Xero's import settings
- Compare existing statement lines for overlap
- Match selected row count to the reviewed source count
- Reconcile imported lines to the issued statement
Frequently asked questions
Can Xero import a PDF bank statement?+
Yes, for eligible organizations in the United States and Canada. Xero lists file, role, plan, language, page, size, resolution, and password requirements. Review the extracted rows because support and accuracy vary by bank statement type.
Should I use OFX, PDF, or CSV for Xero?+
Use a bank-issued OFX file when it covers the account and period; Xero recommends that route. Use direct PDF import when the file qualifies and Xero presents a complete review. Use a reviewed CSV when you want row-level control before upload.
Can I import a StatementMint CSV into Xero?+
Yes, after you review the export and map its Date, Description, and signed Amount columns through Xero's CSV import settings. StatementMint does not send the file to Xero or choose accounting categories.
Why does Xero reject my CSV bank statement?+
Check the date format, spaces around dates, blank lines, numeric amount values, column mapping, transaction count, account currency, and lock date. Xero also rejects $0.00 statement transactions.
Will Xero prevent duplicate statement lines?+
Xero documents duplicate recognition for several statement-file routes, but you should still inspect overlap with bank feeds and prior imports. A source-backed account and date-range control catches cases that date-and-amount matching can miss.
Sources and further reading
We prioritize regulators, public agencies, and first-party product documentation. Sources support the general guidance above; StatementMint’s workflow recommendations are our own.
- About manually importing bank transactionsXero Central
- Import a PDF bank statementXero Central
- Change how Xero imports CSV bank statementsXero Central
- Resolve errors when manually importing a bank statementXero Central
- Import an OFX, QFX or QuickBooks bank statementXero Central
Educational information only—not financial, accounting, tax, or legal advice. Institution terms and your facts control.