Bank statement PDF to CSV converter
Convert a bank statement PDF, scan or photo to CSV and get two files from one conversion: a CSV with every column for a spreadsheet, and a three-column CSV shaped for an import into Xero, QuickBooks and other bookkeeping software.
Last updated September 17, 2026
Online banking usually exports CSV for a limited stretch of recent history, and the columns it chooses are rarely the ones your software asks for. The statement PDF covers every period the bank printed. Converting it gives you a CSV for any of those periods, with the arithmetic checked against the balances on the page before a single row is written.
Convert a statement3 free pages a day, no account needed
Two CSV files, for two jobs
A CSV that a person reads and a CSV that software imports want different things. One conversion gives you both, so there is nothing to delete or rearrange before the import.
| Detail | CSV | CSV for import |
|---|---|---|
| Columns | Date, Description, Debit, Credit, Balance, Amount | Date, Description, Amount |
| Dates | Year first (2026-03-05), which no spreadsheet reads the wrong way round | With slashes, day first or month first, in the order set on the Statement details sheet |
| Money out | In Debit, and negative in Amount | Negative in Amount |
| Running balance | Included | Left out, because importers calculate the balance themselves |
| Text | UTF-8 with a byte order mark, so Excel shows accented letters correctly | UTF-8 without a byte order mark, which importers read as clean text |
| Made for | Excel, Google Sheets, Numbers and a person reading it | Xero, QuickBooks, Sage, FreeAgent and other column-mapping imports |
This is what the CSV for import looks like for a statement whose dates put the day first:
Date,Description,Amount 03/03/2026,Card payment,-42.60 05/03/2026,Deposit,2140.00 12/03/2026,"Supplier, March",-960.00
A description that contains a comma is quoted, and a cell that starts with an equals sign is prefixed so no spreadsheet treats it as a formula.
How it works
Step 1: Convert your statement
Upload the PDF, scan or photos on the converter page. The rows are read and the running balance is rebuilt and compared with each balance the bank printed. This is the step that uses pages.
Step 2: Check it in Excel
Download the review workbook and correct any row marked Review this row. On the Statement details sheet, check the opening balance, and set Date order in QIF and CSV files if your software reads dates the other way round. Left empty, dates are day first unless the statement is in US dollars.
Step 3: Upload it, get your files
Upload the saved workbook on the same page and press CSV, CSV for import or both. Neither download uses pages.
Import the CSV into Xero
- In the Accounting menu, select Bank accounts.
- Open the menu on the account the transactions belong to and select Import a Statement.
- Upload the file whose name ends in _import.csv.
- Match the columns to Xero's fields: Date to the transaction date, Amount to the amount, and Description to the description or the payee.
- When Xero asks for the date format, choose the order the file uses: DD/MM/YYYY for a day-first file, MM/DD/YYYY for a US dollar statement.
- In the preview, check a transaction from the middle of the file whose day is after the 12th. If its month is right, every date is. Then complete the import.
Xero recommends OFX over CSV for a manual import, and an OFX file skips the column matching and the date prompt entirely. PDF to OFX for Xero and MYOB.
Import the CSV into QuickBooks Online
- Go to Transactions, then Bank transactions, open the Link account drop-down and choose Upload from file.
- Select the file ending in _import.csv and pick the QuickBooks account it belongs to.
- On the mapping screen, say the first row is a header and the amount is in one column, then map Date, Description and Amount.
- Set the date format. QuickBooks can suggest MM/dd/yyyy even for a company outside the United States, so for a day-first file change it to dd/MM/yyyy before you continue.
- Check a row dated after the 12th in the preview, then confirm. The rows arrive under For review.
A CSV carries transactions and no balance, so the bank balance QuickBooks shows for the account does not come from it. When you want that balance in QuickBooks, take the QBO file from the same workbook instead.
Open it in Excel or Google Sheets
Take the plain CSV for this, not the one for import. In Excel, open it directly: the byte order mark tells Excel the text is UTF-8, so accented letters come through intact. In Google Sheets, use File, then Import, and upload it. Year-first dates are read as dates in every locale, so sorting and filtering by date work straight away.
If you want formatted columns, real Excel dates and nothing to import, the Excel (.xlsx) download from the same workbook is the better file.
Before you import
- Set the date order before you download. It lives on the Statement details sheet and applies to the CSV for import and the QIF. The plain CSV is always year first.
- One statement period per file. A CSV carries no transaction identifier, so a period that overlaps a live bank feed can arrive twice. End the file the day before the feed's history begins.
- A long run of statements. QuickBooks Online takes up to 1,000 rows in one upload, so a busy year goes in as several statement periods.
- Card statements. Set Account type to Credit card, so purchases are money out and payments are money in, then import into a credit card account. Credit card statements to Excel.
- Scans and photos convert to CSV the same way, at about 20-40 seconds a page. Scanned bank statements to Excel.
- Large files. A PDF of up to 100 pages and 50 MB converts in one go, with up to 80 transactions on a page.
Questions
Which CSV file should I import into Xero?
The CSV for import, the file ending in _import.csv. It has a date, a description and one amount column with money out negative, which is the shape Xero names in its own instructions, and it leaves out the balance columns Xero asks you to remove. The plain CSV is for reading in a spreadsheet.
Which date format does the CSV use?
The plain CSV writes dates year first, such as 2026-03-05, so no spreadsheet swaps the day and the month. The CSV for import writes them with slashes in the order set on the Statement details sheet: day first unless the statement is in US dollars. Choose the same order when your software asks.
Why did QuickBooks put my transactions in the wrong month?
The date format chosen on the mapping screen did not match the file. QuickBooks can suggest MM/dd/yyyy even for a company outside the United States. Exclude the rows under For review, upload the CSV again and choose dd/MM/yyyy for a day-first file.
Can I convert a scanned statement or a photo to CSV?
Yes. Scanned PDFs and phone photos go through the same reading and the same balance check as a native PDF, at about 20-40 seconds a page, and give the same two CSV files.
Do accented letters survive in the CSV?
Yes, in both CSV files. They are written as UTF-8, and the descriptions keep their letters exactly as printed. The files that fold accents to plain letters are QBO, OFX and QFX, whose format declares plain ASCII text.
Does downloading both CSV files cost more pages?
No. Pages are counted when the statement is converted. Every download from the review workbook, both CSV files included, uses no pages.
Other formats from the same workbook
The same conversion gives QBO for QuickBooks, OFX for Xero and MYOB, QIF for MYOB and Quicken and an Excel workbook. Import PDF bank statements into Xero covers what Xero asks of a CSV in more detail.
Format compatibility only. We are not affiliated with Xero, Intuit or any other software company named here.
Convert one and see
Three pages a day are free, and you don't need an account to run your own statement through it.