Bank statement converter: PDF to CSV
Drop a bank statement PDF or photo and get its transactions back as a table you can read and download as CSV for Excel, Google Sheets or your accounting software, with a line saying whether the lines add up to the balances the statement prints. Free, no account.
PDF, JPEG, PNG or HEIC, up to 10 MB and 20 pages. 3 statements a day, no account.
Tick the box above to convert a statement.
Waiting on the statement rather than holding it? Open a DokuTrak request with the bank statement already on the list — your client uploads it through one link, no account.
Send via DokuTrakWhat happens to the file
DokuTrak doesn’t store your statement. It travels straight from your browser to the conversion, is held in memory while it is read, and is dropped when the table comes back. It is scanned for malware on the way in, and nothing — not the file, not a line read off it, not the account holder’s name — is written to our storage or our logs. The table you see is built in your browser, and so is the CSV you download.
Cloudflare Workers AI does the reading. It is the same reader that runs inside DokuTrak, and it is the only AI vendor in the chain. What Cloudflare keeps is covered by its own Workers AI terms, which our security page links, and our privacy page names the subprocessor too.
Read the table against the PDF. A transcription is a first pass, not a bookkeeping record. The reconciliation below the table is there so you know when to look twice: it adds the lines up against the statement’s own balances and says plainly when they do not meet.
What the reconciliation means
- The lines add up
- The opening balance plus the transactions comes to the closing balance the statement prints, so no amount is missing from the table. Dates and descriptions are still worth a read against the PDF.
- The lines do not add up
- The transactions do not account for the difference between the two printed balances — a line is missing, or one was misread. The table is still yours to use; read it against the PDF first.
- Nothing to check against
- The statement printed no opening or closing balance we could read, or a line came through without an amount. Nothing here says whether the table is the whole statement.
How to convert a bank statement to CSV or Excel by hand
You may not need a bank statement converter at all: many banks let you download transactions from online banking as a CSV file, or as QFX or OFX for accounting software, for a date range you choose. When all you have is the PDF, you can import it into Excel, copy it out, or retype it. Each of those takes checking.
Ask the bank first. A download from online banking comes from the bank’s own records, so there is nothing to transcribe. Look for “Download”, “Export” or “Download transactions” next to the account history. If the statement belongs to a client, a transaction export for the same dates is a reasonable thing to ask for alongside the PDF.
Import the PDF into Excel. Excel for Microsoft 365 on Windows can read tables from a PDF: Data > Get Data > From File > From PDF, then pick the table in the Navigator and select Load or Transform Data. Microsoft documents it in its Power Query import guide; the Mac instructions do not list it. Microsoft’s own PDF connector notes warn that rows spread over several lines may not be recognized, which is how many statements print a long description.
Copy and paste from a text PDF. Select the transaction lines in your PDF reader and paste them into a spreadsheet. It works on a PDF downloaded from the bank, not on a scan. Expect to fix:
- descriptions that wrap onto a second line and land in their own row;
- the date, description and amount merged into a single cell;
- minus signs or “CR”/“DR” markers lost, so money in and money out look the same;
- dates printed without a year, like “Aug 3”, which a spreadsheet reads as the current year;
- page headers and running totals pasted in between transactions.
Retype it. For a short statement, typing can be faster than cleaning a paste. Whichever route you take, finish with the reconciliation below: it is how you know no amount was dropped.
Before you convert anything, it helps to know the file is the right document. The bank statement checker tells you whether a file is a usable statement, flags a missing account holder or period date, and catches a balance screenshot or a receipt sent in its place.
Import the CSV into Excel, QuickBooks Online or Xero
This converter exports one format: a CSV file, built in your browser. Excel, Numbers and Google Sheets open it as it is. QuickBooks Online and Xero accept it after a few edits, because each expects its own layout. DokuTrak does not produce an .xlsx, QBO, QFX or OFX file.
What the CSV looks like
Five columns, in this order, one row per transaction line, in the order the statement prints them:
| Column | What it holds |
|---|---|
| Date | Year-month-day (2026-08-03). Empty when the line’s date could not be read, never guessed |
| Description | The line’s text, as the statement prints it |
| Debit | Money out, as a positive number |
| Credit | Money in, as a positive number |
| Balance | The running balance when the statement prints one; can be negative |
Amounts are plain numbers with a decimal point: no currency symbol, no thousands separator. The file is UTF-8 with a byte-order mark, which is what makes Excel show accented payee names correctly. A description that starts with =, +, - or @ gets a leading apostrophe, so a spreadsheet treats it as text and never as a formula; delete it if it shows up after an import.
| Where it goes | Layout it expects | Dates | Edits to the CSV |
|---|---|---|---|
| Excel, Numbers, Google Sheets | Opens as it is | Read as dates | None |
| QuickBooks Online | Date, Description, Credit, Debit (or a single Amount) | One format for the whole file; Intuit suggests dd/mm/yyyy | Drop Balance, fill empty dates |
| Xero | Date and one signed Amount column | DD/MM/YYYY, MM/DD/YYYY, YYYY/MM/DD and others Xero lists | Add Amount, drop Balance, fill empty dates, change date format |
Excel and Google Sheets
Double-click the file, or in Excel use Data > Get Data > From File > From Text/CSV. In Google Sheets, use File > Import and upload the CSV. To keep a workbook, save it from Excel as .xlsx.
QuickBooks Online
Intuit’s guide, Manually upload transactions into QuickBooks Online, accepts CSV, QBO and QFX files. A CSV can have three columns (Date, Description, Amount) or four (Date, Description, Credit, Debit). To match the four-column layout:
- Delete the Balance column.
- Fill in any empty Date cell from the PDF, and move Credit before Debit if you want the columns in the order Intuit lists them.
- Keep the dates as they are or change them to one format for the whole file (Intuit’s guide suggests dd/mm/yyyy), and pick that same format when you map the columns.
- Save the file as CSV (File > Save As > CSV UTF-8), not as a workbook, before you upload it.
The same guide caps an upload at 1,000 lines and 350 KB, and asks for cells that would only hold a zero to be left blank, which is how the converter leaves them.
Xero
Xero Central’s article Import a bank statement in CSV format only needs a Date and an Amount, but the Amount is one column: income positive, expenses negative. It also asks you to delete opening and closing balance columns, because Xero works the balance out from the transactions. So:
- Fill in any empty Date cell from the PDF; a row without a date will not import.
- Add an Amount column with
=D2-C2(Credit minus Debit) and fill it down, then delete the Balance column. - Change the dates to one of the formats Xero lists, such as DD/MM/YYYY, MM/DD/YYYY or YYYY/MM/DD.
- Save as CSV, then map Date, Amount and Description on Xero’s import screen.
For the other tools a practice uses around statements, see AI tools for bookkeepers.
Scanned PDFs, photos and other limits
A bank statement downloaded from online banking converts best, because the text is already in the file. A photo works too: the image is read by a vision model. A scanned statement saved as a PDF is the weak case. When a PDF carries almost no text, the converter reads only its first page, so the table stops there.
What to do with a scan:
- Ask for the statement as a download from online banking, with the transaction export alongside it if you need the lines.
- If the scan is all there is, convert it page by page as photos or images, and put the tables together yourself. Pages converted on their own rarely reconcile, since the two balances and the lines between them sit on different pages; add the tables together and run the check below by hand. Each page counts toward your three conversions a day.
- Keep photos flat, straight on and in daylight, with the whole page in frame, including the balances.
The other limits, as the tool enforces them:
- 10 MB and 20 pages per file. A longer statement is refused rather than half-read. Split it by month.
- 600 transaction lines. Past that, the table stops and the reconciliation says there is nothing to check against, because a table we cut ourselves cannot be judged complete.
- One account and one currency per file. The converter returns one list of transactions with one opening and one closing balance. A combined statement for several accounts is unlikely to reconcile; split it by account.
- Password-protected PDFs. The converter has no step for a password. Open the file with its password and save an unprotected copy first, if you are allowed to.
- Credit card statements. They are read as statements, but their balance is what is owed, so the check can report that the lines do not add up even when every line is right. Read that table against the statement.
- Not a statement, no table. A receipt, a screenshot of a balance, a pay stub or an invoice returns nothing. To see what a file actually is, run it through the document checker.
How to reconcile a converted bank statement
Bank statement reconciliation comes down to one sum: the opening balance, plus every credit, minus every debit, should equal the closing balance the statement prints, to the cent. If the numbers meet, no amount is missing or in the wrong column, though a misread date or description can still slip through. If they miss, something was dropped, doubled or put in the wrong column, and the size of the gap tells you where to look.
The converter runs this check for you and shows it under the table, but it is worth knowing how to do it by hand, for a table you built yourself or one from another tool:
- Find the opening (or beginning) balance and the closing (or ending) balance on the statement. Banks use different labels for the same two figures.
- Sum the Debit column and the Credit column.
- Compute opening balance + total credits − total debits.
- Compare the result with the printed closing balance. A difference of zero means every amount is accounted for.
When there is a gap, read it like this:
- The gap equals one transaction amount. A line is missing, often the first or last one on a page, or a line under a page break.
- The gap is twice a transaction amount. A line landed in the wrong column: a deposit read as a withdrawal, or the reverse.
- The gap equals a line that appears twice. A line was repeated where a page ends and the next one begins.
- The gap divides evenly by 9. Two digits were likely swapped in one amount, 54.00 read as 45.00.
- The table stops early. A page is missing from the file itself. Check the page numbers on the PDF.
The running balance helps you find the spot. Walk down the table and check that each Balance equals the previous Balance plus the credit or minus the debit on that line. The first row where it doesn’t is where the problem starts. The converter transcribes the running balance but does not use it in its own check, so this step is left to you, along with a read of the dates and descriptions against the PDF.
A reconciliation shows the amounts add up to the statement’s own balances. Two errors can cancel each other out, and it says nothing about months you don’t have. If you are collecting statements for a year, the missing bank statement tracker shows which months you still have to ask for, and the monthly bookkeeping checklist lists what else usually comes with them. To reconcile the statement against your books, with deposits in transit and outstanding checks, use a full bank reconciliation template.
Questions
What does the converter give me back?
One row per transaction line, in the order the statement prints them: the date, the description, the amount in the debit or the credit column as the statement has it, and the running balance when one is printed. You read it on the page and download it as CSV, which opens in Excel, Numbers or Google Sheets.
How do I know the table is the whole statement?
That is what the reconciliation line is for. The tool adds the opening balance and every transaction it read, and compares the total with the closing balance the statement itself prints. When the two meet, the table accounts for the statement. When they do not, the page says so in as many words rather than handing you a table that looks finished.
Do you keep the statement I upload?
No. DokuTrak doesn’t store your file: we hold it in memory for the length of the conversion and write it nowhere — not to our storage, not to our logs, and no line read off it either. The account holder’s name is not even sent back to your browser. The page is sent to Cloudflare Workers AI, our AI subprocessor, to be read; what Cloudflare retains is governed by its own Workers AI terms rather than by a promise we make on its behalf. Our security page names the subprocessor and links the terms.
Which AI reads the file?
Cloudflare Workers AI, the same reader DokuTrak runs inside the product. There is no other AI vendor in the chain, which is what lets us name the one that is.
My statement is longer than 20 pages. What then?
A file over 20 pages is refused outright rather than half-read: a table that stops at page 20 is not that statement, and its reconciliation could never hold. Export the months you need separately, or ask for the statement through a DokuTrak request.
What file types and sizes work?
PDF, JPEG, PNG and HEIC, up to 10 MB. A PDF exported from your bank gives the reader text that is already there; a photo of a printout gives it pixels to work from.
Can I convert a bank statement to Excel?
Yes. The converter gives you a CSV file, which Excel opens directly: Date, Description, Debit, Credit and Balance, one row per transaction. It is saved as UTF-8 with a byte-order mark so Excel shows accented names correctly. There is no .xlsx download; if you need one, open the CSV in Excel and save it as a workbook.
Can I import the converted CSV into QuickBooks Online?
Yes, after a few edits. Intuit's upload guide accepts a four-column CSV with Date, Description, Credit and Debit. Delete the Balance column, fill in any empty date from the PDF, keep one date format for the whole file and pick it when you map the columns, then save as CSV. DokuTrak does not produce QBO or QFX files.
Can I import the converted CSV into Xero?
Yes. Xero's CSV import needs a Date and a single Amount column, with income positive and expenses negative. Add a column equal to Credit minus Debit, delete the Balance column, fill in any empty date, change the dates to a format Xero lists such as DD/MM/YYYY or MM/DD/YYYY, and map the columns on Xero's import screen.
Does it work on a scanned bank statement?
Partly. Photos are read by a vision model, one image per page. A scanned PDF with no text layer is read on its first page only, so a multi-page scan comes back incomplete. Download the statement from online banking instead, or convert a scan page by page as images and check each table against the page.
Is there a limit on the number of transactions?
Yes: 600 lines per statement, within the 20-page and 10 MB limits. When a statement goes past 600 lines, the table stops there and the reconciliation reports that there is nothing to check against, rather than calling a table we cut ourselves complete. Split a long statement by month and convert each part.
Can I convert statements a client has to send me?
Yes — that is the product rather than the tool. A DokuTrak request lists the statement, the client uploads it through one link with no account, and the same reader runs on what arrives. 14-day free trial, no card. Add one only to keep going.