Skip to main content
Back to Articles

Convert a Bank Statement PDF for Xero (CSV, Not PDF)

Xero doesn't import PDFs. Convert your bank statement to a Xero-ready CSV — with the right columns and date format — and import it without errors.

Try with your file

Drop your PDF

1 file · 100 pages max · Free preview of 2 pages

Save hours every week

Turn your PDFs into Excel, CSV, or OFX, with no manual data entry.

Try for free

Xero can now import some bank-statement PDFs directly, but that feature is not universal. As of July 2026, Xero documents direct PDF import for organisations in the United States and Canada, with plan, language, file and statement requirements. If your organisation is elsewhere, your PDF is password-protected, or Xero cannot read the layout, convert the statement to CSV and import that file instead.

The best route is therefore a decision, not a blanket “Xero accepts PDFs” or “Xero rejects PDFs” rule:

Your source and Xero organisationBest route
Bank offers OFX for the required periodImport OFX; Xero recommends it where available
US or Canadian Xero organisation and eligible PDFTry Xero’s direct PDF import, then review every extracted line
Other region, unsupported plan/layout, scan error or locked PDFConvert the PDF to CSV, validate it, then import the CSV

Xero’s current overview of manual bank-transaction imports lists PDF alongside OFX, QFX, QIF, CSV and QuickBooks files, while its dedicated PDF import documentation explains the regional and file restrictions.

Route 1: import an eligible PDF directly into Xero

Direct PDF import is currently documented for Xero organisations in the US and Canada. It is not available on the Xero Ledger plan. The PDF must be in English, no larger than 35 MB, no longer than 100 pages, at least 200 DPI, straight rather than skewed, and not password-protected. Xero says validated banks are more likely to produce high-quality results, but it also allows other banks with variable accuracy.

If your file qualifies:

  1. In Xero, open Accounting → Bank accounts.
  2. Open the menu for the target account and choose Import a Statement.
  3. Upload the PDF and click Next.
  4. Review the transactions marked ready, warning or error.
  5. Clear any line you do not want to import, then complete the import.

Do not skip the review screen. A PDF import is an extraction step: it can misread a date, amount or wrapped description even when the table looks plausible. Compare the first and last transaction, the number of rows, the period total, and the closing balance with the original statement before reconciling.

Route 2: convert the bank-statement PDF to a Xero-ready CSV

Use CSV when direct PDF import is unavailable or unreliable, or when you want to inspect and correct the extracted rows outside Xero first.

Step 1 — prefer a bank-native export when one exists

Download OFX or CSV from your bank for the exact account and period if the portal offers it. A bank-native structured export avoids OCR altogether. Use a converter only when the historical statement is available as PDF but the transactions are not available in a structured format.

Step 2 — extract the PDF into rows

Upload the unlocked statement to BankStatementLab, review the extracted transactions, and export CSV. BankStatementLab exports CSV, XLSX and JSON; it does not create OFX, QIF or QBO and it does not connect directly to Xero. The Xero step remains a manual file import.

The app rejects password-protected PDFs, so remove the password locally before uploading. Successful source files are deleted after extraction; failed jobs may be retained for troubleshooting for up to 14 days. Current product limits and credit usage are listed on the pricing page.

Step 3 — prepare the CSV using Xero’s actual rules

Xero’s official CSV bank-statement guide requires only Date and Amount to create statement lines. Payee, Description, Reference and Cheque number are optional but make reconciliation easier.

Converted columnXero fieldPreparation check
DateTransaction DateUse one supported format for every row; YYYY/MM/DD is unambiguous
Signed amountTransaction AmountIncome positive, expenses negative; remove currency symbols and grouping commas
Description or payeePayee / DescriptionKeep a wrapped statement description in one CSV cell
ReferenceReferenceOptional; useful for invoice or transfer references
Running balanceDo not importXero calculates the account balance from statement lines

Remove the account number, opening/closing-balance columns and empty rows. Do not import subtotals, “balance brought forward” rows or zero-value lines as transactions. Xero supports several date formats and prompts you when a date is ambiguous; consistency matters more than guessing from the organisation’s country.

Step 4 — import, map and verify

In Accounting → Bank accounts, choose Import a Statement, upload the CSV, map its Date and Amount columns, select the date format if prompted, and inspect the review screen. Xero saves the mapping for later files with the same headers, so stable column names make recurring imports easier.

Before completing the import, check:

  • the account and currency match the statement;
  • the earliest and latest dates cover the intended period;
  • the row count matches the source statement;
  • income and expense signs are correct;
  • no period already supplied by a bank feed is included.

Xero recognises duplicates from imported files, but duplicate prevention is not a substitute for choosing a clean, non-overlapping date range. If the file fails, Xero’s import-error guide identifies common causes such as blank lines, invalid dates, wrong field mapping and files that need splitting.

What “statement lines” means in Xero

Imported rows become bank statement lines. Xero then matches each line to an existing invoice, bill or account transaction, or lets you create a transaction during reconciliation. Xero’s bank reconciliation guide makes that distinction explicit: importing the statement supplies the bank side of the comparison; reconciliation connects it to the books.

That is why the safest workflow is:

source statement → validated PDF extraction or bank export → import → reconcile

The conversion is not finished when Xero accepts the file. It is finished when the imported lines reconcile to the original statement and the ledger.

Frequently asked questions

Can Xero import a PDF bank statement?

Yes, but Xero currently documents direct PDF imports only for organisations in Canada and the United States, and not on the Ledger plan. The PDF must also meet Xero’s language, size, resolution, page and password requirements. Other organisations should use a bank-native file or a validated CSV.

Should I use PDF, OFX or CSV for Xero?

Use OFX when your bank supplies it; Xero recommends that route. Use direct PDF import only where it is available and review the extracted lines. Use CSV when the PDF route is unavailable, the source needs conversion, or you want an editable checkpoint before import.

What columns does a Xero CSV require?

Date and Amount are the mandatory fields in Xero’s template. The amount is a single signed column: income is positive and expenses are negative. Payee, Description, Reference and Cheque number are optional but useful.

Why does my Xero CSV import fail?

Check for an inconsistent or invalid date format, blank rows, currency symbols or commas in the amount column, wrong field mapping, zero-value transactions, and an account currency mismatch. Xero may also ask you to split an unusually large file.

Does BankStatementLab connect directly to Xero?

No. It converts the source document into CSV, XLSX or JSON. You review the CSV and import it through Xero’s Import a Statement screen.

Conclusion

Start with the least lossy source: OFX from the bank, then Xero’s eligible direct PDF import, then a carefully validated CSV conversion. If conversion is required, BankStatementLab gives you editable rows before the accounting import rather than pretending the PDF can be trusted without review.

Convert an unlocked statement to CSV for Xero, then reconcile the imported lines against the original PDF.


---
🎁 5 credits on signup, then 5/month
💎 1 credit = 1 page

Ready to Automate your CSV exports?

Create structured CSV files compatible with all your accounting tools.

Try BankStatementLab
Written by bankStatementLab Team