Convert a Bank Statement to QIF
Any format your bank offers becomes a .qif here, PDF included, with a balance check that proves nothing was dropped.
No sign-up needed. A PDF is read on our server, never stored.
- PDF, CSV, Excel and the OFX family are all read, and which one you have is taken from what is inside the file rather than its name
- Only a PDF is read on our server, held in memory and dropped when the request ends. Every other format is read in this browser tab
- No account and no card, a handful of PDFs an hour, and no limit at all on the rest
A bank statement is not one kind of file, which is the whole difficulty of this question. Depending on the bank you may have been handed a PDF, a CSV, a spreadsheet, or one of the OFX-family downloads (.ofx, .qfx or .qbo). All of them are read here, and all of them come out as a .qif.
Nothing needs selecting first. The file is identified by what is inside it rather than the name on the end. That matters because banks are careless about extensions. A CSV arrives called .txt often enough, and the three OFX extensions are used interchangeably for the same document.
QIF is the oldest of these formats and the most widely read. It carries no institution and no balance, just dates, amounts and payees, one field per line. That is why software that reads nothing else still reads it.
One of those inputs leaves your machine and the rest do not. Reading a PDF needs a parser too large to hand to a browser, and a scanned statement has to be looked at rather than parsed. So a PDF goes to our server, is held in memory while it is read, and is dropped when the request ends. It is never written to disk and never stored. A CSV, a workbook or an OFX file is read in this browser tab and goes nowhere.
New to the format? Read what a QIF file is. It covers what is inside one, and what it cannot tell you.
A converter that tells you when it missed something.
Most tools hand you a file and let you find out in your ledger. Every conversion here is reconciled against the closing figure first. That figure is read from your statement’s balance column, or typed in from the page when there isn’t one.
When the totals don’t meet you get the exact size of the gap, every row that did read, and the converted file anyway.
Sample balance check
A transaction may be missing. Review the rows below, or re-upload including all pages.
A sample result. This is the same component the converter uses.
Your statement is read, not kept
Reading a PDF needs a server. Here is exactly what happens on it.
The PDF is held in memory while it is read, then dropped when the request ends. It is never written to disk and never stored. There is no copy to delete, lose or be compelled to produce.
Open your browser's network tab and convert. You will see one request, to this site, and nothing after it. The transactions come back as text. The file you download is written here, in this tab.
PDF is the only one that leaves. A CSV or a spreadsheet from the same bank is converted in your browser and never crosses the network. Take that instead when your bank offers both.
Questions people actually ask
Does my statement get uploaded?
Only if it is a PDF. Reading one needs a parser far too large to send to your browser. A scanned statement is a picture of a page, so it has to be looked at rather than parsed. It goes to our server, is held in memory while it is read, and is discarded when the request finishes. It is never written to disk and never stored, so there is no copy to delete afterwards. Every other format this page takes, CSV, Excel, .ofx, .qfx and .qbo, is converted inside this browser tab and never crosses the network. Open your browser's network tab while you convert one and you will see that for yourself.
What can I actually drop in?
A PDF, a CSV, an .xlsx spreadsheet, or an .ofx, .qfx, .qbo or .iif file. The format is detected from the contents, so a file with the wrong extension still works. If a layout cannot be read automatically you are shown the file and asked to point at the date, amount and description columns yourself.
Why does the balance check ask me to type the figures?
It only asks when your source has no balance in it. A CSV with a running-balance column and an OFX-family file both state one, and it is read automatically. A QIF states no balance at all, so nothing can be recovered from the output side. That is exactly why the check runs before the file is written rather than after.
What date format does the file use?
Four-digit MM/DD/YYYY. Quicken's own files abbreviate the 2000s with an apostrophe, as in 12/31'05, which is read on the way in but not reproduced on the way out. An unambiguous date costs nothing and removes a whole category of problem.
Does it read scanned or photographed statements?
Yes. A PDF either carries its own text or is an image of a page. Where there is text, only that text is read. Where there is not, as with a scan, a photograph or a fax, the pages are read as images instead. You are told which of the two happened. They are not equally exact, and you should know which one you are checking.
How do I know every transaction came through?
Check the balance panel above the results. If your statement prints a running balance, the opening and closing figures are taken from it and every step is reconciled against the transactions. A row that went missing breaks the chain and is reported as a figure rather than passed on quietly. Where a statement prints no running balance there is nothing to check against on its own. Type the opening and closing figures in from it and the same check runs.
Do I need an account?
No. There is no sign-up, no email capture and no card. PDFs are capped at a handful an hour, because reading one costs something to run. Every other format is converted in your browser and has no limit.
Try it on the statement that’s annoying you right now.
No account, no card, no limit. If the layout isn’t recognised you will know immediately, rather than after a support ticket.