How to Import Bank Statements into Xero
Quick Answer {#quick-answer}
Xero does not accept PDF bank statements. To import a bank statement into Xero you need a CSV file with specific column headers: Date, Amount, Payee, Description, Reference, and Check Number (not all are required, but order matters). The fastest workflow is:
- Export or scan your bank statement as a PDF.
- Upload it to QuickBankConvert โ it extracts every transaction row automatically.
- Download the converted CSV in Xero format.
- In Xero, go to Accounting โ Bank Accounts โ Import a Statement and upload the file.
The whole process takes under three minutes for most statements.
Why Import Bank Statements into Xero? {#why-import-bank-statements-into-xero}
Xero is one of the most popular cloud accounting platforms for small businesses and accountants, and for good reason โ its bank reconciliation workflow is fast, intuitive, and largely automated once your transactions are in the system.
The problem is getting historical or non-connected bank transactions into Xero in the first place. Xero offers direct bank feeds for hundreds of financial institutions, but there are several situations where a manual import is the only option:
- Your bank is not on Xero's supported feed list. Many regional banks, credit unions, and international institutions fall outside Xero's direct feed network.
- You need to import historical statements. Even banks with live feeds typically only connect from a certain date forward. Importing past CSVs fills the gap.
- Your accountant needs to clean up a backlog. At tax time or during a bookkeeping catch-up, bulk-importing months of statements at once is far faster than manual entry.
- You switched from another accounting system. Moving from FreshBooks, Wave, or a spreadsheet? You will need to import existing transaction history.
- A direct feed disconnected mid-month. Re-importing the missing window from a downloaded statement keeps reconciliation continuous.
In all these cases, the path runs through a properly formatted CSV file โ and that is where most people hit their first wall.
Callout โ Bank Feed vs CSV Import: A direct bank feed pulls transactions automatically every business day. A CSV import is a one-time manual upload. Both end up in the same Xero reconciliation queue. Use whichever is available; fall back to CSV when a feed is not an option.
What Xero Expects: CSV Format & Column Headers {#what-xero-expects-csv-format}
This is where most failed imports happen. Xero's CSV importer is strict: the column headers must match exactly, and the data in each column must conform to specific rules.
Required Column Headers
Xero recognises the following column headers (case-insensitive, but spelling must match):
| Column | Required? | Notes |
|---|---|---|
Date | Yes | Transaction date |
Amount | Yes | Positive for credits, negative for debits |
Payee | No | Merchant or counterparty name |
Description | No | Narrative or memo field |
Reference | No | Reference number |
Check Number | No | Cheque/check number if applicable |
At minimum, every row must have a Date and an Amount. Everything else is optional but strongly recommended โ Xero's auto-matching and rules engine works much better when it has payee and description data to work with.
Date Format
Xero accepts:
DD/MM/YYYY(e.g.,08/04/2026)MM/DD/YYYY(e.g.,04/08/2026)YYYY-MM-DD(e.g.,2026-04-08)D MMM YYYY(e.g.,8 Apr 2026)
Recommendation: Always use YYYY-MM-DD. It is unambiguous regardless of whether your Xero organisation is set to US or non-US locale.
Amount Format
- Debits (money out): use a negative number, e.g.
-142.50 - Credits (money in): use a positive number, e.g.
2500.00 - Do not include currency symbols (
$,ยฃ,โฌ) or comma thousands-separators inside the Amount column. Xero will reject the row.
A Minimal Valid Example
Date,Amount,Payee,Description,Reference
2026-03-01,-85.00,Amazon,Office supplies,ORD-9923
2026-03-03,4200.00,Client Co,Invoice #1045 payment,INV-1045
2026-03-05,-12.99,Spotify,Monthly subscription,Callout โ Common Mistake: Adding a currency symbol to the Amount column (
$-85.00instead of-85.00) is the single most common reason Xero rejects a CSV upload. Strip all symbols before importing.
Step-by-Step: Bank PDF โ QuickBankConvert โ Xero {#step-by-step-pdf-to-xero}
Here is the full end-to-end workflow to convert pdf to csv for xero and complete the bank statement import.
Step 1 โ Get Your Bank Statement as a PDF
Log in to your online banking portal and download your statement as a PDF. Most banks provide monthly PDF statements going back at least 12โ24 months. If your bank only offers a proprietary format (OFX, QFX), skip to Step 3 โ QuickBankConvert handles those too.
Step 2 โ Upload to QuickBankConvert
Navigate to QuickBankConvert and upload your PDF statement. The tool uses intelligent parsing to:
- Detect the table structure of your statement automatically
- Extract each transaction row (date, description, debit, credit, balance)
- Handle multi-page statements and headers that repeat across pages
- Merge split rows that some banks wrap across two lines
No account setup is required. Drag, drop, and wait a few seconds for processing.
Step 3 โ Select "Xero" as Export Format
After processing, select Xero CSV from the export format dropdown. QuickBankConvert will:
- Map your statement columns to Xero's required headers (
Date,Amount,Payee,Description,Reference) - Convert debit amounts to negative values and credits to positive
- Format all dates as
YYYY-MM-DD - Strip currency symbols and thousands-separators from the Amount column
- Remove any balance column (Xero does not use it and will reject rows if the column count is inconsistent)
Step 4 โ Review and Download the CSV
QuickBankConvert shows a preview table before download. Quickly scan for:
- Any rows where the amount looks wrong (e.g., a credit appearing as negative)
- Transactions that may have been split across two lines and merged incorrectly
- The date range โ confirm it matches the statement period you intended
Download the CSV.
Step 5 โ Import into Xero
- Log in to Xero and go to Accounting โ Bank Accounts.
- Click the bank account you want to import into.
- Click the Import a Statement button (top right of the statement view).
- Click Get bank statement file or Upload a file, then select your CSV.
- Xero will show a preview. Confirm the column mapping (it should auto-detect if headers match).
- Click Import to load the transactions.
Your transactions will appear in the Bank Reconciliation queue immediately.
Step 6 โ Reconcile
Work through the reconciliation queue as you normally would. Xero's rules engine will suggest matches for recurring transactions. For new payees, create a rule so future imports reconcile even faster.
Xero vs QuickBooks: Bank Import Differences {#xero-vs-quickbooks-bank-import}
If you work with clients on both platforms โ or you are migrating โ it is worth understanding how Xero and QuickBooks handle CSV bank imports differently. We cover the QuickBooks side in detail in our QuickBooks bank import guide.
| Feature | Xero | QuickBooks Online |
|---|---|---|
| Accepted formats | CSV, OFX, QFX, QBO | CSV, OFX, QFX, QBO |
| Required CSV headers | Date, Amount | Date, Description, Amount (or split debit/credit) |
| Debit/credit handling | Single Amount column (negative = debit) | Can use separate Debit/Credit columns |
| Date format flexibility | High (multiple formats accepted) | Moderate (MM/DD/YYYY preferred) |
| Currency symbol in Amount | Not allowed | Not allowed |
| Duplicate detection | Yes | Yes (less aggressive) |
| Max rows recommended | ~1,000 | ~1,000 |
| Import location | Accounting โ Bank Accounts โ Import a Statement | Banking โ Upload transactions |
| Auto-categorisation | Rules-based, learns from past reconciliations | Rules-based + AI suggestions |
Key practical difference: Xero uses a single Amount column where debits are negative. QuickBooks is more flexible and allows separate Debit and Credit columns โ but also accepts the single-column approach. If you are re-using a QuickBooks CSV in Xero (or vice versa), the main thing to check is the Amount column sign convention and whether the headers match what each platform expects.
Troubleshooting Xero Import Errors {#troubleshooting-xero-import-errors}
"We couldn't read your file"
This almost always means Xero cannot parse the file structure. Check:
- The file is saved as UTF-8 encoded CSV (not Excel .xlsx or .xls โ Xero does not accept Excel files directly).
- There are no merged cells or blank header rows at the top of the file.
- The delimiter is a comma, not a semicolon or tab (common if you export from Excel on a locale set to a European language).
Fix: Open the file in a plain text editor and verify the first line looks like Date,Amount,Payee,Description,Reference.
"Invalid date in row X"
The date in that row does not match a format Xero recognises, or the day/month values are swapped.
Fix: Convert all dates to YYYY-MM-DD format. If you are using Excel to prepare the CSV, format the date column as Text and type dates manually, or use the TEXT(A2,"YYYY-MM-DD") formula.
"Invalid amount in row X"
The Amount column for that row contains a non-numeric value โ usually a currency symbol ($, ยฃ), a comma thousands-separator (1,500.00), or a dash used as a zero (- instead of 0.00).
Fix: Strip all symbols and formatting from the Amount column. Use only digits, a decimal point, and a leading minus sign for debits.
Transactions imported but amounts are reversed
Credits appear as debits and vice versa.
Fix: The sign convention in your CSV is inverted relative to what Xero expects. Multiply the Amount column by -1 and re-import. QuickBankConvert handles this automatically when you select Xero export format.
Duplicate transactions appearing after import
You imported a date range that overlaps with an existing bank feed period or a previous import.
Fix: Before importing, check the last reconciled date in Xero for that account. Start your CSV from the day after the last imported transaction. Delete the duplicate entries from Xero's Bank Transactions view before reconciling.
Xero says the import was successful but no transactions appear
This happens when Xero silently skips rows that are outside the account's expected currency or where the amount is 0.00.
Fix: Check Xero's Bank Transactions tab (not just the reconciliation queue) to see if the transactions were actually created. Filter by date range to confirm. Remove any zero-amount rows from your CSV.
Tips for a Clean Xero Import {#tips-for-a-clean-xero-import}
- Import one month at a time for large backfills. It is easier to verify a single month and troubleshoot isolated errors than to debug a 12-month import.
- Always keep the original PDF. QuickBankConvert processes your PDF without storing it permanently. Keep your own copy as an audit trail.
- Set up bank rules before reconciling. After importing, spend five minutes creating Xero bank rules for your most common payees (e.g., rent, utilities, payroll). This slashes reconciliation time for future imports.
- Match your fiscal year boundaries. If your financial year starts on 1 April, ensure you are not importing transactions that straddle two fiscal years in a single file โ split them at the year boundary to keep reporting clean.
- Reconcile the same day you import. Freshly imported transactions are easiest to reconcile when you remember what they are. Do not let them sit unreconciled for weeks.
- Use the Description field generously. The more detail in your Description column, the better Xero's auto-matching performs. QuickBankConvert carries over the full transaction narrative from your PDF so nothing is lost.
Frequently Asked Questions {#frequently-asked-questions}
Can I import a PDF directly into Xero?
No. Xero only accepts CSV, OFX, QFX, and QBO formats for manual bank statement imports. Convert your PDF to a Xero-compatible CSV first using a tool like QuickBankConvert.
What is the difference between a bank feed and a CSV import in Xero?
A bank feed is an automatic, ongoing connection to your bank that pulls transactions daily. A CSV import is a one-time manual upload. Both populate the same reconciliation queue, but feeds are lower-maintenance for current transactions while CSV imports are better for historical data or unsupported banks.
Does Xero charge extra for importing bank statements?
No. Manual CSV imports are included in all Xero subscription plans at no additional cost.
Can I edit transactions after importing?
Yes, but with limitations. You can delete unreconciled imported transactions and re-import a corrected file. Once a transaction is reconciled, it is locked and requires a reconciliation reversal to modify.
What if my bank statement has two Amount columns (Debit and Credit)?
Combine them into a single Amount column where debits are negative and credits are positive before importing. For example, if a row shows Debit 150.00 and Credit is blank, the Amount value should be -150.00. QuickBankConvert handles this merge automatically.
Frequently Asked Questions
Can I import a PDF bank statement directly into Xero?
What date format does Xero require for CSV imports?
Does Xero detect duplicate transactions during import?
What is the maximum number of rows Xero will accept in a single CSV import?
Can I import bank statements from any bank into Xero?
Ready to convert your bank statement?
Free. Private. Instant. Your files never leave your browser.
Convert Your Statement