Skip to content
StatementSmith
Statement file converter

Convert QFX to QIF

Drop in a .qfx file and get a .qif back, with a balance check that proves nothing was dropped.

No sign-up needed. Files never leave your browser.

This is a conversion backwards in time, and it is usually deliberate. A .qfx is a tagged OFX document. A .qif is a flat list of one-character codes that predates it by years. Software that reads only the older format is the reason anybody wants this. Plenty of it is still in daily use, and plenty of it is not going to be updated.

What comes out holds every transaction the .qfx held: the same dates, the same amounts, the same payees. What it cannot hold is everything the newer format wrapped around them. QIF has no field for any of it: no institution identifier, no statement period, no closing balance and no unique id per transaction.

That loss is worth understanding rather than discovering. The transactions are complete, and the file no longer says where they came from or what the account stood at afterwards. For getting figures into a program that speaks QIF, that is exactly enough. For archiving a statement, keep the original.

New to these formats? Read what a QFX file is and what a QIF file is. They cover what each one holds, and what neither can tell you.

Balance validation

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

Closing balance is 240.18 short

A transaction may be missing. Review the rows below, or re-upload including all pages.

Opening4,210.11
Rows total1,154.46
Computed5,364.57
Statement says5,604.75

A sample result. This is the same component the converter uses.

Client statements never leave the tab

Conversion runs in your browser, in JavaScript on this page.

No server copy

Closing the tab discards the file and everything read out of it. There is nothing to delete later and nothing to breach.

Nothing to opt out of

There is no upload step to decline, because there is no upload. Open your browser's network tab and convert. You will see no request carrying your data.

Keeps working with the network off

Once this page has loaded, conversion runs with no connection at all. Useful on a client site with locked-down wifi. It also proves the file stays put.

Questions people actually ask

What do I lose converting QFX to QIF?

Four things, none of them a transaction. The Intuit identifier naming the institution, the statement period, the closing balance the file asserted, and the unique id on each row that importing software uses to recognise entries it has seen before. QIF has no field for any of them. Every date, amount and payee survives intact.

Why would I want the older format?

Because something you use reads it and does not read QFX. QIF is the widest-supported of these formats by a distance. It predates the others, it is simple enough to parse in an afternoon, and a great deal of personal finance and small-business software never moved past it.

Is a .qbo different from a .qfx or an .ofx?

Not in substance. All three are OFX documents carrying the same transaction list. The extension records which product the file was made for. On top of that, .qbo and .qfx carry an Intuit institution identifier. The converter reads whichever you have and does not care what it is named.

Where does the balance check get its figures?

From the file. An OFX document states its own closing balance in a LEDGERBAL element. That figure is read directly, and the opening balance is whatever it implies given the transactions. You can overwrite both if your statement says otherwise.

Does my statement get uploaded anywhere?

No. The conversion runs inside your browser using JavaScript on this page. The file is read from your disk into memory, converted, and offered back as a download. Nothing is sent to a server, so there is nothing for us to store, log or delete. You can confirm this by opening your browser's network tab while you convert.

Do I need an account?

No. There is no sign-up, no email capture and no usage limit on CSV conversion.

How do I know every transaction came through?

Every conversion shows a balance check above the results. If your file has a running balance column, the opening and closing balances are read from it. Otherwise you type them in from your statement. The check adds up every converted transaction, compares the total to the closing balance, and tells you the exact size of any difference.

My dates came out wrong. What happened?

A date like 05/01/2026 is ambiguous: 5 January in the UK and most of Europe, 1 May in the US. Turn on the day-first option and the file is re-read immediately. If your statement contains a date that can only be day-first, such as 19/02, the converter points this out before you download.

Some rows were skipped. Is that a problem?

Usually not. Totals rows, page footers, repeated column headings and blank lines carry no transaction date, so they are left out and counted. The skipped count is shown with the results so you can check it against what you expected.

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.

Convert a statement