How to convert a bank CSV to a QIF file
QIF (Quicken Interchange Format) is the oldest and simplest of the bank import formats. It is a plain text list of transactions with one letter marking each field, which is why software that will not read anything else will usually still read a QIF.
🔒 Convert your CSV to QIF now — free, runs in your browser, nothing uploaded.
The steps
- Export a CSV from your bank. Any layout. Comma, semicolon or tab separated, and junk rows above the header are fine.
- Drop it into the converter. QBOKit works out the delimiter, finds the header row and guesses the date, description and amount columns.
- Check the columns — in particular whether the dates are day-first or month-first.
- Pick QIF as the output, choose whether the account is a bank account or a credit card, and download.
- Import it through your software's file-import screen.
What a QIF file actually looks like
There is no XML, no SGML and no header block. A file opens by declaring the account type, then lists transactions separated by a single ^ line:
!Type:Bank
D04/01/2026
T-82.40
PDIRECT DEBIT ACME LTD
^
D04/02/2026
T2000.00
PSALARY PAYMENT APRIL
^
Each line starts with a one-letter code: D for date, T for the transaction amount, P for the payee, and ^ to end the record. A credit card account is declared as !Type:CCard instead of !Type:Bank, which is why the converter asks you which one it is — get it wrong and some software will refuse the file or file the signs the wrong way round.
The one thing QIF cannot do
A QIF file carries no transaction ids. OFX and QBO give every transaction a FITID, which is how the importing software recognises a transaction it has seen before and skips it. QIF has no equivalent field, so nothing in the file can tell your software that two imports overlap. Import January to March and then February to April, and February and March will land twice.
If your accounting software accepts OFX or QBO, prefer one of those and keep the duplicate protection. Reach for QIF when it is the only format your software will take.
Dates are the other trap
QIF never settled on one date format, so different programs read the same file differently. QBOKit writes dates as MM/DD/YYYY. If your software reads them day-first, a transaction dated 04/01 will come in as 1 April rather than 4 January, and nothing will look obviously broken — the dates will simply be wrong. Import a short file first and check one date before you trust a year of statements.
Reading your CSV is the part we do take care of: the day-first versus month-first question is decided by looking at the whole date column rather than row by row, so a UK or European export is not half-read as American.
Which software takes QIF
Xero accepts it — their help centre publishes Import a QIF bank statement. QIF is also the traditional import format for older desktop finance software such as Quicken, Microsoft Money and GnuCash, though which dialect each version wants varies, so check your own program's import screen and its documentation rather than taking our word for it.
QIF, OFX or QBO?
| Format | Transaction ids | Use it for |
|---|---|---|
| .QIF | No | Older finance software, and anything that will not read the others. |
| .OFX | Yes | Xero and other accounting software that lists OFX import. |
| .QBO | Yes | QuickBooks Desktop, via Web Connect. |
| Clean CSV | No | QuickBooks Online and Xero, which both take CSV directly. |
What we fix in your CSV on the way
- Day-first versus month-first decided across the whole column, not per row.
1,234.56and1.234,56both read correctly, plus(12.34),12.34-andCR/DRsuffixes.- Separate debit and credit columns merged into one signed amount.
- Preamble rows above the real header skipped, byte-order marks and currency symbols stripped.
Sources
- Import a QIF bank statement — Xero Central.