1. Your statement
A PDF downloaded from your bank's website or app (it has selectable text). Or copy the table out of any PDF viewer and paste it below.
Choose a PDF or paste the text, then click Read and check.
Result
Balance check
Transactions
| Line | Date | Description | Amount | Balance | Sign from |
|---|
Download
Need an OFX or QBO file instead? Download the generic CSV and use the bank CSV to QBO converter.
The model, and what it leaves out
- Reading the PDF: the text layer is read directly (FlateDecode streams, compressed object streams, ToUnicode character maps) and grouped into lines by position. Nothing is rendered and nothing is recognised from pictures.
- Rows: a transaction starts with a date (or a transaction date and a posting date), has a description, and ends with one to three amounts. A line below with no date and no amount is added to the description above it.
- Money in or out: from the running balance when the statement prints one (the sign that makes the balance add up wins), otherwise from the Debit/Credit or Withdrawals/Deposits column the amount sits under, otherwise from a minus sign, brackets or CR/DR. An amount with none of these is shown as money in and called a guess.
- Balance check: opening + all rows = closing, in whole cents with no floating point. A gap is reported with its amount, a missing-row, wrong-side or flipped-sign hint, and the line where the running balance first breaks.
- Also checked: the statement's own "total deposits" and "total withdrawals" lines, dates that are not real days, a missing year, and identical rows.
- Not checked: that the file matches your bank's online record or your books, scanned or image-only statements, password-protected PDFs, statements whose text has no character map, several accounts or currencies in one PDF, and bank-specific layouts nobody has tried. The import layouts for Xero and QuickBooks are written from memory of their public import help and were not tested against a live import.
Common questions
How do I convert a bank statement PDF to CSV?
Choose the PDF (or paste the text copied from it) and press Read and check. The page reads the PDF's text layer in your browser, finds each dated line and its amount, and checks that the opening balance plus the transactions equals the closing balance. Then download the CSV in the layout your accounting software wants.
Is it safe to put a bank statement into a web page?
The PDF is read inside this browser tab. Nothing is uploaded: there is no server behind the page, and a test in the code asserts it contains no network calls. Many online converters upload the file to their servers; this one cannot. Your own policies still decide whether you may open bank data in a browser.
Why does my PDF say it has no text?
A scan or a photo of a paper statement is an image, and this tool does not do OCR. Download the statement as a PDF from your bank's website instead; those have a text layer. A password-protected PDF also cannot be read: open it, enter the password, and print it to a new PDF.
How do I know the converted rows are right?
The statement is proved against itself. The opening balance plus every row must equal the closing balance, to the cent, and where the statement prints a running balance each row is checked against it. If something does not add up, the page tells you by how much and what is likely wrong, such as a missing row of exactly that amount or a flipped sign.
Does it work for credit card statements?
Yes. Choose Credit card as the account type: a bare amount is a charge, a minus sign or CR is a payment or refund, and the CSV shows charges as negative amounts so it imports like a bank feed. The previous balance and new balance are checked the same way.
Which accounting software can use the CSV?
There are layouts for Xero's statement import (*Date, *Amount, Payee, Description, Reference), QuickBooks Online's three-column and four-column imports, and a generic Date, Description, Amount, Balance file that spreadsheets and most other tools accept. For an OFX or QBO file, run the CSV through the bank CSV to QBO converter.
What does this not do?
It does not do OCR, read password-protected PDFs, or understand every bank's layout. Statements whose columns are drawn as images, or text stored without a character map, cannot be read. It does not check the result against your bank or your books. A clean result means the rows add up to the statement's own totals, nothing more.
What happens to dates with no year?
Many statements print 01/05 with no year. The year is taken from the statement period line when there is one, or from the year you enter. Day-month versus month-day is detected from any date that can only be one way and otherwise you are warned and can choose.