CSV to QIF Converter

Convert CSV to QIF in your browser, matching the columns yourself and seeing the values before you download. Nothing is uploaded and no account is needed.

Choose your CSV file
Pick the spreadsheet you want to turn into a Quicken file.

Your data stays in your browser.

How to Convert CSV to QIF

Two files, one direction: the spreadsheet you already have, and the Quicken file you need. A CSV to QIF conversion runs entirely in your browser, and the one thing it cannot work out on its own is which column holds which field. If the file you already have is a .qif, the QIF to CSV converter reads it without any column mapping, because a QIF names its own fields.

  1. 1
    Choose your .csv file, or drag it onto the drop area
  2. 2
    Check the column matches; they are guessed from your header row, and every one of them can be changed
  3. 3
    Convert, then download the .qif and import it into your accounting program

You get every row this could read. A row whose date or amount cannot be read is left out and counted rather than guessed at, so if the number of transactions is not what you expected, the result panel says how many were dropped.

What Each Match Writes Into the File

A CSV explains itself: the first row names the columns. A QIF has no such row. A record is a short list of lettered lines, and the letter is the only thing that says what the line means, so there is nowhere in the file to record that the third column held the payee. That decision has to be made here, once, before a CSV to QIF conversion writes anything. Every match below is guessed from your header row and shown for you to change, and if your file has no header row at all, the switch above the matches says so and every match is yours to set.

You matchWhat it becomes
DateThe D line, written as M/D/YYYY. A row whose date cannot be read is left out rather than guessed at.
AmountThe T line, at two decimal places, with the sign exactly as your column has it. This is the only number a QIF record carries.
Money in (credit)Only needed when your export splits money across two columns. Each side is read as an amount, and the sign comes from which column the figure sat in, so the money-in column lands positive and the money-out column negative.
PayeeThe P line. In a bank export this is usually the merchant or the description.
MemoThe M line, written exactly as it stands, for a second line of description the payee field has no room for.
CategoryThe L line. A bank CSV rarely has one, but a file you keep yourself usually does.
NumberThe N line. Cheque numbers, reference numbers and anything else you want to find again later; whatever the column holds is written as it stands.
AccountWritten as an !Account block before each group of records, naming the account on an N line. Leave it unmatched and the file opens one plain section instead.

Why Not Let Quicken Read the CSV Directly?

It can, and for some files that is the shorter route. Quicken's own help spells out the CSV it will take: ten columns, the first seven in exactly this order, starting with the date and the payee, and a bank's export is written to the bank's idea of a transaction rather than to that list. The same page adds two warnings worth knowing before you try. A CSV import does not check what it finds against what you already have, so importing one file twice gives you every transaction twice. And it does not build a transfer from a category, even when the cell holds a bracketed account name like [Checking]. A QIF is a format Quicken writes itself, both out and in, and GnuCash documents its own QIF import, so a CSV to QIF conversion is a way back to something those programs were built to read. It also puts the column question in front of you, before a number reaches the file.

The column list and both warnings are on Quicken's own help page: Import transactions from .CSV file.

What the .qif File Looks Like Inside

A QIF is plain text, so you can open the file you get in any text editor and read it. Everything on this page is visible there, and it is worth a look before you import anything. If your problem is the other way round, and the file you have is a .qif you want back in a spreadsheet, QIF to Excel reads one in the opposite direction.

It opens with a line that names the record type
!Type:Bank tells the program that the records which follow are banking records, and that is the only record type this writes. When you matched an account column, every group of records is preceded by an !Account block carrying the account name on an N line.
Each field is a lettered line
D for the date, T for the amount, P for the payee, M for the memo, L for the category, N for the number, and a caret on a line of its own to close the record. Only D, T and the caret are always there; the rest appear when that column was matched and the row had something in it.
Dates and amounts go in in one shape
The date is written as M/D/YYYY, month first and without leading zeros. The amount is written at two decimal places and keeps whatever sign it was given, whether that came from your column or from the money-in column. Both are worth checking in the preview above, which shows them exactly as they will be written.
How the lines are separated
Records are separated by CRLF line endings, and the file carries no byte-order mark, so the first character in it is the exclamation mark of the first line. Nothing is padded or wrapped.
Where the records land
Quicken's QIF import does not create the account for you. The one you import into has to exist in your file first, and you pick it in the import dialog; Quicken's help says so directly. Any account type can receive these records, so a credit card or a savings account takes them as readily as a checking account.

Quicken's help covers the import dialog and the accounts it will offer: What if all my accounts aren't listed in the QIF Import dialog?.

When the Import Does Not Go Right

Most problems here are visible before you import anything. The preview lists the values that will be written and marks any row the conversion would leave out, and the result panel counts those same rows.

The account is not in the import dialog
Quicken does not create the account during a QIF import. The one you import into has to exist in your file first, and you pick it in the dialog. Create the account, then run the import again.
A transaction is missing from the file
Rows whose date or amount cannot be read are left out rather than guessed at, and the result panel counts them. The row is still in your spreadsheet; it simply never reached the QIF. Correct that cell and convert again.
Every amount has the wrong sign
Two columns of money are easy to match the wrong way round, with the money-out column sitting in the Money in slot. Nothing complains afterwards: the rows import with the sign flipped. Swap the two matches and check the Amount column in the preview before you download.
Dates are going missing
A date written with slashes or dashes is read month first, the American order, because that is what Quicken writes. A date written with dots is read only when one of its numbers is above 12, since only then there is nothing to guess at. A day-first export is the usual reason rows disappear.
An investment account will not convert properly
Records are written as banking records whatever account they go into, so cash transactions arrive as they should. What cannot be produced is an investment transaction: a security and an action have no column to be matched from. A brokerage export will import as ordinary rows, not as buys and sells.

Questions About CSV to QIF Conversion

A CSV is a grid: rows of values, with the first row naming the columns. A QIF is a list of records, and a record is a handful of lettered lines with no column names anywhere in it. That difference is the reason a CSV to QIF conversion has to ask you about the columns: there is nowhere in a QIF to keep a header row.

Yes. Quicken still documents exporting a QIF and importing one, and GnuCash has a QIF import chapter in its own manual. It is decades old, it is plain text, and it is still a format those programs read.

You can. A record is three to seven lines, and only the date, the amount and the closing caret have to be in it. The awkward parts are the ones a spreadsheet formula will not warn you about: the date has to be written as M/D/YYYY, and the amount has to carry the right sign. This tool reports the rows it dropped; it does not judge whether a sign is right, so read the Amount column in the preview before you download.

You can, since the format is plain text and the rules above are nearly all of it. If you convert files like this often, a script earns its keep. For one file, matching a few columns by hand is quicker than writing and debugging one.

Yes. Column order does not matter in a CSV to QIF conversion, because the match decides what each column is, not its position in the row. Header names are only used to guess the matches at the start; anything the guess gets wrong, or cannot recognise at all, is yours to set.

Convert your CSV file to QIF

No account, no sign-up, and nothing uploaded.