How to convert Bank statement to CSV
- 01Add Bank statement filesChoose files or drop them on the page.
- 02Converted on your deviceNothing is uploaded. Adjust settings if you like.
- 03DownloadSave each file, or all of them as one ZIP.

What’s a statement PDF?
A statement PDF from your bank. The transactions are there, but locked in a page layout.
Pick a bank statement PDF and this tool lists its transactions in a CSV file with Date, Description, Debit, Credit and Balance columns, ready for a spreadsheet or budgeting app. It runs in your browser, so the statement is never uploaded, and it costs nothing.
How to convert a bank statement to CSV
- Download the statement from your online banking as a PDF. Scanned paper statements won’t work.
- Click Choose files or drop the PDF onto the page. Add several months at once if you like.
- Each statement converts straight away. Choose how amounts and dates should look in the settings panel on the right, then click Apply to all files if you changed anything.
- Click Save to get the CSV, named after the statement with -transactions on the end, or Download all (.zip) for a batch.
- Open it in Excel or Google Sheets and compare the last balance with the statement to confirm nothing was missed.
How transactions are found
A transaction is a row that starts with a date and ends with one or more amounts. Dates can look like 2024-03-05, 05/03/2024, 05/03, 5 Mar 2024, 05-Mar-24 or Mar 5, 2024. When a bank prints the date once for several transactions, those rows take the date from the row above. A second date on the row, such as a value date, is removed from the description.
Amounts must have two decimal places, which keeps reference numbers out of the money columns. Symbols such as $, €, £, ¥ and ₹ are recognized, and so are both 1,234.56 and 1.234,56 styles.
Descriptions that wrap onto a second or third line are joined into one cell. Rows such as opening balance, closing balance, balance brought forward, totals and page numbers are skipped.
To decide whether money went in or out, the tool uses the column headings when the statement has them (Debit, Credit, Paid in, Paid out, Money in, Money out, Withdrawals, Deposits, Balance). Without headings it looks for a minus sign, brackets or CR and DR markers. If there is still no clue, it compares each balance with the one before. An amount it can’t place at all is treated as a debit.
What the settings do
- Amounts. Debit and Credit columns (the default) puts money out and money in in separate columns, both as positive numbers. One signed Amount column gives a single column where money in is positive and money out is negative, which many budgeting apps expect.
- Dates. As in the statement keeps each date exactly as printed. YYYY-MM-DD rewrites them as 2024-03-05, which sorts correctly everywhere. Missing years are filled in from the first year printed on page one, moving to the next year when the months roll from December to January.
Checking the result
Statements vary a lot between banks, so treat the CSV as a draft. Compare the Credit and Debit totals with the statement’s totals, if it prints them, and check that the final Balance matches the closing balance.
One edge case is worth knowing. With YYYY-MM-DD, the tool decides between day-first and month-first by looking for a day above 12 anywhere in the statement. If every date in the file is ambiguous, for example a US statement covering the 1st to the 12th, it assumes day first. Keep As in the statement in that case and convert the dates in your spreadsheet.
Common problems and fixes
- No transactions found. The rows don’t start with a date or don’t end with an amount, or the PDF has no text layer. PDF to Excel is a good fallback, since it copies every row as it appears.
- The PDF asks for a password. Some banks lock the statements they email. Open it with the password and print or save it as a new PDF without one, then convert that.
- Whole-number amounts are missing. Amounts without two decimals, such as statements in currencies that don’t use cents, aren’t recognized as money.
- A deposit shows up as a debit. The statement had no column headings or signs, and the balance couldn’t settle it. Move the value across in the spreadsheet.
Privacy
Bank statements carry your account number, address and spending history. Here the PDF is read in your browser tab and the CSV is created on your device. No copy is sent to a server, and nothing is kept after you close the page.
Guides
At a glance
- Price
- Free. No sign-up, no watermark.
- Privacy
- Files are processed in your browser and never uploaded.
- Accepts
- PDF bank statements with selectable text
- You get
- CSV
- Batch
- Convert many files at once and download them as a ZIP
- Works in
- Chrome, Edge, Firefox and Safari, on phones and computers
- Offline
- Keeps working without internet once the page has loaded
Questions
Are my files uploaded?
Never. Bank statement to CSV conversion runs in your browser, so your files stay on your device.
Which banks work?
Most statements with selectable text. Each row starting with a date becomes a transaction.
Can I convert many at once?
Yes. Add as many as you like and download them all as one ZIP.
Is there a size limit?
Only your device’s memory. Long documents take a little longer.
Can it read a password-protected statement?
No. Open the statement with its password, save or print it as a new PDF without a password, and convert that file.
Does it work with credit card statements?
Often, yes, as long as each transaction row starts with a date and ends with an amount that has two decimals. Check the debit and credit columns afterwards.
Why aren’t the opening and closing balances in the CSV?
They aren’t transactions, so they’re skipped. The opening balance is still used behind the scenes to work out which amounts were money in and which were money out.
Can I combine several months into one CSV?
Each statement gives its own CSV. Download them all as a ZIP, then paste the rows into one sheet. With YYYY-MM-DD dates they sort into order.
Which layout should I choose for a budgeting app?
Most apps ask for either one signed amount or separate debit and credit columns. Check your app’s import screen and pick the matching Amounts option.