
Article Summary
Learn every method to import bank statements into Xero: CSV, OFX, QFX, Hubdoc, and PDF-to-CSV. Includes format specs by region and troubleshooting tips.
To import bank statements into Xero, go to Accounting > Bank Accounts, select your account, and click Import a Statement. Xero accepts CSV, OFX, and QFX files. For CSV imports, you need three columns (date, description, amount) with dates matching your Xero region format. If your bank provides only PDFs, convert to CSV first.
Xero's own documentation spreads this process across several separate help pages. This guide consolidates everything you need to handle bank statement imports in Xero, regardless of your situation:
- When manual import is necessary vs. bank feeds, and why direct feeds still leave gaps in specific scenarios
- All five import methods compared, including CSV, OFX, QFX, Hubdoc, and PDF-to-CSV conversion, with clear guidance on which to use when
- Xero's CSV format requirements by region, covering US, UK, and AU date formats, plus the difference between 3-column and 4-column amount layouts
- How to convert PDF bank statements to CSV, the step most guides skip entirely, despite PDF being the default format from many banks
- A step-by-step import walkthrough, from file preparation through successful upload
- Post-import reconciliation, including matching imported transactions and keeping your accounts accurate
- Troubleshooting for common errors, including date format mismatches, duplicate detection issues, and validation failures
The guide begins with identifying when manual import is actually necessary, since Xero's automatic bank feeds handle the majority of day-to-day transactions without any file uploads at all.
When You Need Manual Import (and When Bank Feeds Handle It)
Xero offers direct bank feeds through providers like Yodlee that automatically pull transactions into your accounting file. If your bank supports Xero's feed service, this is the preferred method. Once connected, transactions flow in daily with no manual work required.
However, there are four common scenarios where automatic feeds are not an option and you need to manually import bank statement data into Xero:
- Your bank does not support Xero's feed service. Not every financial institution has a partnership with Xero's feed providers. Regional banks, credit unions, and smaller institutions are frequently unsupported.
- You need to import historical statements. Bank feeds only pull transactions from the date of connection forward. If you need data from before the feed was set up, such as prior-year transactions for a new client onboarding, manual import is the only path.
- International banks without feed partnerships. Businesses operating across borders or firms managing overseas clients often encounter banks that fall outside Xero's feed network entirely.
- Bank feed outages or temporary disconnections. Feed connections can break due to bank-side security changes, API updates, or maintenance windows. During these gaps, manual import keeps your reconciliation on schedule.
These scenarios are becoming more frequent as cloud accounting adoption accelerates. Wolters Kluwer's 2025 Future Ready Accountant survey, a global study of over 2,700 tax and accounting professionals, found that 52% of firms adopted or expanded cloud-based solutions in 2025, with 87% of highly integrated firms experiencing revenue growth. For firms managing clients whose banks sit outside Xero's feed network, reliable manual import is a recurring operational requirement.
Before attempting any manual import, it is worth confirming what data your bank statement actually includes. Date formats, transaction descriptions, and amount column conventions vary by institution and region. Having a clear picture of your source data prevents formatting errors during upload. If you need a refresher, our guide on what a bank statement contains and why it matters covers the key fields and their significance for reconciliation.
Five Ways to Get Bank Statement Data into Xero
Not every Xero bank statement import looks the same. The right method depends on what your bank provides and whether automation is an option. Here is a side-by-side comparison of all five approaches.
| Method | File Format | Best For | Limitations |
|---|---|---|---|
| Direct bank feeds | None (automatic) | Banks on Xero's supported list; ongoing daily reconciliation | Only works with supported banks; no historical backfill beyond the feed start date |
| Hubdoc document extraction | Native-text PDF | Xero subscribers who receive digital PDF statements | Cannot process scanned or image-based PDFs; limited formatting control |
| CSV manual import | .csv | Any bank data that can be structured into rows and columns | Requires the file to match Xero's exact column format; manual preparation needed |
| OFX/QFX file import | .ofx / .qfx | Banks that offer OFX or QFX downloads from online banking | Not all banks provide these files; format availability varies by region |
| PDF-to-CSV conversion, then import | PDF to .csv | Banks that only issue PDF statements with no export options | Adds an extra conversion step before import; accuracy depends on the conversion tool |
Direct bank feeds connect Xero to your bank through a feed provider (such as Yodlee, Plaid, or a direct integration) and pull transactions automatically. If your bank is on Xero's supported list, this is the hands-off option that requires no manual steps. The feed handles daily transaction retrieval in the background.
Hubdoc is included free with every Xero subscription. It can extract transaction data from digital (native-text) PDF bank statements and push that data directly into Xero. The key limitation: Hubdoc does not handle scanned or image-based PDFs. If your statement was photographed, faxed, or saved as a flat image inside a PDF wrapper, Hubdoc will not extract the data. A quick test: if you can highlight and copy text from the PDF using your mouse, it is a native-text file and Hubdoc should work. If selecting text produces nothing or garbled characters, the statement is scanned.
CSV manual import is the most common manual method. You prepare a CSV file that matches Xero's required column structure, upload it through the banking interface, and map the columns. This method is covered in full detail in the next section, including the exact format Xero expects by region.
OFX/QFX file import is available when your bank offers downloadable OFX (Open Financial Exchange) or QFX (Quicken Financial Exchange) files from its online banking portal. These files contain structured transaction data with dates, amounts, and descriptions already formatted. They import directly into Xero with no column mapping or reformatting required, making them the lowest-effort manual option when available.
PDF-to-CSV conversion is the path you take when your bank provides only PDF statements and no CSV or OFX download option. You first convert the PDF into a CSV file formatted to Xero's requirements, then import that CSV. This is the most common pain point for accountants dealing with unsupported banks, international institutions, or historical statements, and it is covered in detail later in this guide.
The method you choose comes down to what your bank actually provides. If OFX or QFX files are available from your bank's online portal, that is the lowest-effort manual path since the data arrives pre-structured. If your bank only issues PDF statements, you will need to convert those to CSV first. If your bank offers CSV exports directly, you still need to verify that the column layout and date format match what Xero expects before uploading.
Of all the manual methods, CSV import is the most versatile. Any bank statement data, regardless of its original format, can be restructured into a CSV file that Xero accepts.
Xero CSV Format Requirements by Region
Getting your CSV file formatted correctly before importing into Xero saves hours of troubleshooting. Xero is strict about column layout, date formats, and number formatting, and the requirements vary depending on where your Xero organization is registered. This section covers every specification you need to prepare a CSV file that Xero will accept on the first attempt.
Accepted Column Layouts
Xero recognizes two CSV column layouts. You can use either one, and Xero will detect the structure automatically based on the number of columns.
3-column layout: Date, Description, Amount
This is the most common format. Each transaction occupies a single row with one amount column. Money received (credits) appears as a positive value, and money spent (debits) appears as a negative value.
| Date | Description | Amount |
|---|---|---|
| 02/24/2026 | Client payment received | 4500.00 |
| 02/23/2026 | Office rent | -2200.00 |
| 02/22/2026 | Software subscription | -49.99 |
4-column layout: Date, Description, Debit, Credit
Some banks export transaction data with separate columns for debits and credits. Both values are positive numbers in this layout.
| Date | Description | Debit | Credit |
|---|---|---|---|
| 02/24/2026 | Client payment received | 4500.00 | |
| 02/23/2026 | Office rent | 2200.00 | |
| 02/22/2026 | Software subscription | 49.99 |
Xero maps columns by position, not by header text. Your column headers can use any naming convention (for example, "Transaction Date" instead of "Date"), but the columns must appear in the correct order for the layout you are using.
Date Format Requirements by Region
The date format in your CSV must match your Xero organization's regional setting. This is the single most common source of import errors, because the required format is tied to the region configured in Xero, not the date format on your local computer or operating system.
| Xero Organization Region | Required Date Format | Example |
|---|---|---|
| United States | MM/DD/YYYY | 02/24/2026 |
| United Kingdom | DD/MM/YYYY | 24/02/2026 |
| Australia | DD/MM/YYYY | 24/02/2026 |
| New Zealand | DD/MM/YYYY | 24/02/2026 |
If your Xero organization is set to a US region but your CSV contains dates in DD/MM/YYYY format, Xero will either reject the file or, worse, silently misinterpret dates where the day value is 12 or below. A transaction dated 03/02/2026 could be read as March 2nd or February 3rd depending on the regional setting, leading to reconciliation mismatches that are difficult to trace after the fact.
To check your organization's region setting in Xero, go to Settings, then Organization Details, and look at the Country field.
Additional CSV Formatting Rules
Beyond column layout and date format, Xero enforces several formatting requirements that apply to all regions:
- Header row required. The first row of the CSV file must contain column headers. Xero skips this row during import.
- UTF-8 encoding. Save the file with UTF-8 character encoding. Other encodings may cause special characters in descriptions to display incorrectly or trigger import errors.
- No currency symbols. Amount columns must contain raw numbers only. Remove dollar signs, pound signs, euro symbols, or any other currency indicators.
- No thousand separators. Do not include commas within numbers. Write 4500.00, not 4,500.00. Xero interprets commas as column delimiters, which corrupts the data structure.
- Maximum 500 lines per file. Each CSV import file can contain up to 500 transaction lines (excluding the header row). For larger data sets, split the file into multiple batches.
When mapping bank export data to these columns, it helps to understand what each field on a bank statement represents. For readers who want a primer on standard transaction fields, our guide on understanding bank statement fields and terminology covers the key data points and what they mean in practice.
Watch Out for Excel Auto-Formatting
A frequent pitfall occurs when users open a CSV file in Microsoft Excel to review it before importing into Xero. Excel automatically reformats data based on its own interpretation: dates may be converted to Excel's default date format, leading zeros in reference numbers get stripped, and long numbers may be rendered in scientific notation.
If you need to inspect a CSV file, open it in a plain text editor such as Notepad, Notepad++, or VS Code. This lets you verify that dates, numbers, and encoding are exactly as Xero expects them, without any silent modifications.
If your bank provides a CSV export directly, compare its format against the specifications above and reformat any columns that do not match.
How to Convert a PDF Bank Statement to CSV for Xero
Many banks, particularly smaller regional institutions, credit unions, and international banks, only provide statements as PDF files. Xero does not accept PDF files directly for bank statement imports, so the transaction data must be converted into CSV format before it can be uploaded. This is the step most Xero import guides skip entirely, yet it is the exact situation many accountants and bookkeepers face regularly.
The Manual Approach
The most straightforward method is converting the PDF data by hand:
- Open the PDF bank statement in a PDF viewer.
- Select and copy the transaction data from the statement.
- Paste the copied data into a spreadsheet application such as Excel or Google Sheets.
- Clean up the pasted data so it matches Xero's required column layout: either the 3-column format (Date, Description, Amount) or the 4-column format (Date, Description, Debit, Credit) outlined in the previous section.
- Verify that all dates match the regional format your Xero organization expects (DD/MM/YYYY or MM/DD/YYYY).
- Save the file as CSV (UTF-8 encoding).
This process works, but it has real limitations that compound quickly:
- Scanned PDFs break copy-paste entirely. If the bank statement is a scanned image rather than a native digital PDF, selecting and copying text produces garbled output or nothing at all.
- Multi-page statements lose structure. Transaction data that wraps across page breaks rarely pastes in the correct row order, requiring manual re-sorting.
- Complex layouts misalign columns. Bank statements with sub-totals, running balances, or multi-line descriptions often paste with columns shifted, forcing cell-by-cell correction.
- Volume makes it unsustainable. A single month for one client might take 15 to 30 minutes to clean up. Multiply that across a full client roster or a backlog of historical statements, and the manual method consumes hours of billable time.
For readers who need a broader walkthrough of extracting bank statement data into spreadsheet formats beyond just Xero, see this guide on converting bank statements to Excel or CSV.
Automated PDF-to-CSV Conversion
AI-powered extraction tools offer a faster alternative. These tools read the PDF, whether native or scanned, identify the transaction rows (dates, descriptions, amounts), and produce a structured CSV output. Rather than copying and pasting cell by cell, you upload the PDF and receive a formatted file back. Most tools let you specify the date format and column structure you need, which means the output can match Xero's requirements directly without a manual cleanup step.
AI-powered bank statement data extraction platforms like Invoice Data Extraction work this way. You upload your PDF bank statements and provide a natural language instruction describing exactly what you need, for example: "Extract date, description, and amount from this bank statement, format dates as DD/MM/YYYY." The platform interprets that prompt, pulls the transaction data from the PDF, and produces a CSV file with columns that map directly to Xero's expected format. It handles both native and scanned PDFs, including lower-quality scans and mobile phone photos. For firms dealing with historical statement backlogs or multi-client month-end processing, batch processing supports up to 6,000 files in a single job at a speed of 1 to 8 seconds per page, often closer to 2 seconds per page at higher volumes.
Validate Before You Upload
Regardless of whether you build the CSV manually or use an automated tool, check the resulting file against the format requirements from the previous section before uploading to Xero. Confirm the date format matches your region, the column order is correct, and there are no extra header rows or summary lines that Xero would reject.
Step-by-Step: Importing a CSV Bank Statement into Xero
With a properly formatted CSV file in hand, the actual import process in Xero takes only a few minutes. Follow these steps exactly to get your bank statement data into the correct account.
-
Log into Xero and navigate to Accounting > Bank Accounts. This opens the dashboard showing all connected bank accounts in your organization.
-
Select the bank account you want to import transactions into. Click the account name to open its statement view. Make sure you are importing into the correct account, as moving transactions between accounts after import requires manual correction.
-
Click Import a Statement on the bank account's statement page. This option appears near the top of the statement tab. If the account has an active bank feed, the import option is still available for supplementing feed data with historical records.
-
Click Browse and select the CSV file from your local machine. Xero accepts CSV files that follow the column structure and date format requirements covered in the earlier sections of this guide.
-
Review the transaction preview carefully. Xero displays a preview of the parsed transactions before committing the import. Verify three things:
- Dates are parsed in the correct order (day/month vs. month/day matching your expectation)
- Descriptions match what appears on the original bank statement
- Amounts carry the correct sign: positive values for credits (money in) and negative values for debits (money out) when using the 3-column format, or correct placement in the respective Debit and Credit columns for the 4-column format
-
If the preview looks correct, click Import to confirm. Xero processes the file and adds the transactions to the bank account's statement line items.
-
Verify the imported transactions in the statement tab. The new entries appear alongside any existing bank feed or previously imported transactions, ready for reconciliation.
Handling Date Parsing Errors
If the preview shows dates in the wrong order or flags them as unrecognized, the most likely cause is a mismatch between the date format in your CSV and the region setting configured in your Xero organization. Cancel the import, open the CSV in a spreadsheet editor, reformat the date column to match your Xero region's expected format (for example, DD/MM/YYYY for UK/AU or MM/DD/YYYY for US), save the file, and re-attempt the import.
File Size Limit
Xero caps each import at 500 lines per CSV file. If your bank statement contains more than 500 transactions, split the data into multiple CSV files ordered by date and import them sequentially. Each file should cover a distinct date range with no overlap between files.
Avoiding Duplicate Transactions
If your CSV covers dates that overlap with existing transactions in Xero (from a bank feed or previous import), duplicates will appear. Check the latest transaction date in the account before importing, and ensure your CSV starts after that date. See the troubleshooting section below for how to resolve duplicates that have already been imported.
Once all transactions are imported and visible in the statement tab, the next step is reconciliation, where you match each imported bank line to the corresponding invoices, bills, and other financial records in Xero.
After Import: Matching Transactions and Reconciliation
Every imported transaction needs to be reconciled by matching it against a corresponding record already in your accounts, such as an invoice, bill, expense claim, or manual journal entry. Until that happens, the transactions sit in a holding state and your books remain unfinished.
How Xero's Reconciliation Workflow Operates
Once your bank statement data appears in Xero, navigate to Business > Bank accounts and select the relevant account. Xero presents each imported transaction alongside a suggested match drawn from your existing records. If the suggestion is correct, click OK to confirm the match and move to the next transaction.
When Xero's suggestion is wrong or no match exists, you have two options:
- Search manually. Use the search field to find the correct invoice, bill, or contact. Xero will filter your records based on the amount, date, or reference you enter.
- Create a new transaction. If the bank transaction has no corresponding record (a one-off purchase, for example), you can create it as a new spend or receive money transaction directly from the reconciliation screen. Assign the correct account code and tax rate before confirming.
Work through the list from top to bottom. Each confirmed match removes that transaction from the reconciliation queue.
Using Bank Rules to Automate Recurring Matches
For transactions that repeat every month (rent, utility payments, software subscriptions, payroll transfers), setting up bank rules eliminates repetitive manual matching. A bank rule tells Xero: when a transaction meets certain conditions (a specific payee name, amount range, or reference text), automatically assign it to a designated account code and contact.
To create a bank rule, click Create Rule during reconciliation or go to Accounting > Bank accounts > Manage Account > Bank Rules. Define the conditions, set the account code and tax rate, and save. The next time a matching transaction appears, Xero applies the rule automatically and queues it for one-click confirmation.
Bank rules are especially valuable for firms managing multiple client accounts, where the same vendor payments recur across every reconciliation cycle.
Handling Duplicates from Overlapping Imports
If your imported file covers dates that overlap with transactions already in Xero, whether from a previous manual import or an active bank feed, duplicate entries will appear. Xero flags suspected duplicates during reconciliation with a warning indicator.
To resolve them:
- Go to the bank account's transaction list.
- Identify the duplicate entries (same date, amount, and description).
- Select the duplicates and delete them from the bank statement view.
For a broader walkthrough of the full reconciliation process, including handling partial payments and split transactions, see our guide on reconciling bank statement transactions.
Fixing Common Xero Bank Statement Import Errors
When a bank statement import fails, Xero typically returns a generic error message that points you in the right direction but rarely tells you exactly what went wrong. Here are the most frequent import errors, what actually causes them, and how to fix each one.
Date Format Is Incorrect
The problem: Xero rejects the file or misinterprets transaction dates after import.
The cause: The date format in your CSV does not match your Xero organization's regional setting. A UK or Australian Xero organization expects DD/MM/YYYY, while a US organization expects MM/DD/YYYY. If your CSV contains "03/04/2026," Xero reads that as April 3rd or March 4th depending on the region, and it will reject dates outright if the format is unrecognizable.
The fix: Go to Settings > General Settings in Xero and confirm your organization's country/region. Then open your CSV in a plain text editor and reformat every date entry to match. For UK/AU organizations, use DD/MM/YYYY. For US organizations, use MM/DD/YYYY. Apply the change to every row, not just the first few.
Too Many Columns or Column Mismatch
The problem: Xero returns a "too many columns" error or the import wizard cannot map your data correctly.
The cause: Your CSV contains extra columns beyond what Xero accepts. Xero expects either three columns (Date, Description, Amount) or four columns (Date, Description, Debit, Credit). Bank exports often include additional fields like balance, reference numbers, transaction codes, or account numbers.
The fix: Delete every column except the ones Xero needs. If your bank statement uses a single amount column with negative values for debits, keep three columns: Date, Description, Amount. If it separates debits and credits, keep four columns: Date, Description, Debit, Credit. Check for hidden columns as well. In a text editor, each row should have exactly two or three commas, nothing more.
Amount Format Is Incorrect
The problem: Xero rejects the file or imports zero-value transactions.
The cause: Amount fields contain currency symbols ($, £, €), thousand separators (commas within numbers like "1,234.56"), or use the wrong decimal separator for your region. A comma used as a thousand separator inside a CSV is particularly destructive because it creates extra columns that break the entire row.
The fix: Strip all currency symbols from the amount fields. Remove thousand separators entirely so that "1,234.56" becomes "1234.56". Confirm the decimal separator matches your organization's locale: a period for US, UK, and Australian organizations. Run a find-and-replace across the file to catch every instance.
Excel Auto-Formatting Corruption
You opened the CSV in Excel to check it, everything looked fine, but Xero rejected the file anyway. Or the import succeeded but dates and reference numbers are wrong.
The culprit: Excel silently reformats data the moment you open a CSV file. It reinterprets dates based on its own locale setting (converting "01/02/2026" from DD/MM to MM/DD or vice versa), strips leading zeros from reference numbers (turning "007823" into "7823"), and may insert thousand separators into amounts.
The fix: Do not open CSV files in Excel by double-clicking them. Use a plain text editor such as Notepad, TextEdit, or VS Code to review and edit bank statement CSVs. If you must use Excel, import the file through Data > From Text/CSV and set every column type to Text before loading. This prevents Excel from applying its own formatting assumptions to your data.
Duplicate Transactions After Import
The problem: The import succeeds, but your bank account in Xero now shows repeated transactions for the same period.
The cause: The date range in your imported CSV overlaps with transactions already present in Xero from an active bank feed or a previous manual import. Xero does not automatically detect or prevent duplicates during CSV import.
The fix: Before importing, check the most recent transaction date in the Xero bank account and make sure your CSV starts after that date. Trim any overlapping rows from the beginning of the file. If duplicates have already been imported, go to the bank account view in Xero, select the duplicate statement lines, and delete them before they get reconciled.
File Encoding Errors or Garbled Characters
If imported descriptions show garbled or unrecognizable characters, the CSV was likely saved in an encoding other than UTF-8. This is common with spreadsheet applications on macOS that default to legacy encodings. Re-save the file with explicit UTF-8 encoding: in Excel, choose Save As and select CSV UTF-8 (Comma delimited); in Google Sheets, the default CSV download is already UTF-8.
Most import errors come down to a mismatch between how the CSV file formats dates or numbers and what Xero expects based on your organization's regional settings. Before each import attempt, validate your CSV against the format requirements covered earlier in this guide. Confirming the date format, stripping currency symbols, removing thousand separators, and using a text editor instead of Excel prevents the majority of these failures before they happen.
Choosing the Right Import Method for Your Situation
The right approach depends entirely on what your bank gives you. Use this decision framework to match your scenario to the fastest path into Xero.
Your bank supports Xero bank feeds. Use direct bank feeds. Transactions flow in automatically with no manual work. This is the default for most major banks in supported regions.
Your bank provides OFX or QFX file downloads. Import the file directly into Xero. OFX and QFX files carry structured transaction data that Xero reads natively, so there is no formatting or column mapping required.
Your bank provides CSV transaction exports. Check that the CSV matches Xero's format requirements for your region: correct date format, proper column layout, and no currency symbols or thousand separators in the amount column. Reformat any non-compliant fields, then import.
Your bank provides only PDF statements (digital or native text). Start with Hubdoc, which is included free with every Xero subscription. Hubdoc can extract transactions from many native-text PDF statements automatically. If Hubdoc cannot parse your particular statement layout, convert the PDF to CSV using a dedicated extraction tool, then import the resulting file.
Your bank provides only PDF statements (scanned or image-based). Convert the PDF to CSV using an extraction tool built to handle scanned documents with OCR capabilities. Copy-paste is not viable for scanned PDFs because the text layer is either missing or unreliable. Once you have a clean CSV, import it into Xero following the standard process.
You need to import historical statements covering months or years. Batch-convert all PDF statements to CSV first, then import each CSV file sequentially. Keep each file under 500 lines to stay within Xero's per-import limit. Work chronologically from oldest to newest so your transaction history builds in the correct order.
For users who import bank statements regularly, two investments pay for themselves immediately: a validated CSV template file that matches your Xero region's requirements (correct date format, column order, and UTF-8 encoding already configured), and if you use a PDF extraction tool, a saved prompt that produces Xero-compatible output every time. These turn each future import from a multi-step formatting exercise into a two-minute upload.
Related Articles
How to Verify Bank Statements: A 4-Stage Workflow
Verify bank statements with a 4-stage workflow: visual inspection, metadata checks, math reconciliation, and source confirmation. Plus a copy-paste checklist.
How to Convert Bank Statement to Excel (5 Methods Compared)
Compare 5 methods to convert bank statement PDFs to Excel or CSV. Covers direct download, Excel Power Query, copy-paste, converter tools, and AI extraction.
How to Convert PDF to OFX, QFX, and QIF (2026 Guide)
Learn the differences between OFX, QFX, and QIF formats, which accounting software requires each, and how to convert PDF bank statements accurately.
Extract invoice data to Excel with natural language prompts
Upload your invoices, describe what you need in plain language, and download clean, structured spreadsheets. No templates, no complex configuration.