ocrsnip No uploads
.csv · .xlsx → .iif

CSV to IIF for QuickBooks Desktop.

Drop a spreadsheet of transactions and get the tab-separated .iif file QuickBooks Desktop imports. You choose the accounts; the page shows exactly what the import will do before you download it. Free, and the file never leaves this computer.

Free, no row limitYou name the accountsNothing uploaded
Drop a .csv or .xlsx of transactions Exported from your bank or typed by hand. Opened in this tab — nothing is uploaded. Choose file Try a sample CSV stays on this device

What an IIF file actually is

Tab-separated text with its column headings written inside it. A line beginning !TRNS declares the columns for transactions, !SPL declares them for the other side of each one, and every transaction is then three lines: a TRNS, at least one SPL and an ENDTRNS. Double-entry bookkeeping, spelled out by hand — the money leaves one account and arrives in another, and the two lines must cancel exactly or QuickBooks refuses the transaction rather than importing half of it.

That is why this page asks for accounts rather than guessing them. Money in is posted against the income account you name, money out against the expense account, and both sides of every row are written with opposite signs.

Four ways an IIF import goes wrong

A name that does not exist is created, not refused. QuickBooks matches accounts by text. Type Checkings where your chart says Checking and you will not see an error — you will see a second bank account with a month of transactions in it. Copy the names, do not type them.

There is no undo. An IIF import is not reviewed, not staged and not reversible. The documented order is: back up the company file, import, inspect. If something is wrong, restoring the backup is the fix.

The signs decide the direction. Money out is negative on the bank account. A sheet that writes payments as positive numbers in a separate column is read correctly here — that is what the debit and credit roles above are for — but a sheet with one Amount column whose signs are inverted will import every transaction backwards. The summary above the download says the net effect on the bank account before you commit to it; check that it has the sign you expect.

Dates are American in the file. IIF carries dates as MM/DD/YYYY whatever your QuickBooks displays, so they are written that way here regardless of how your spreadsheet showed them. The control above decides how your file is read; the file written is always in the order QuickBooks expects.

When not to use IIF at all

If your bank can give you a .qbo, .qfx or .ofx, use that instead: those go through QuickBooks' own bank-feed import, which previews, matches and can be undone. CSV to QBO builds one from the same spreadsheet you are holding, and it is free as well. IIF earns its place when the transactions are not a bank feed at all — journal entries, an opening balance, a batch from another system — or when the account they belong to has no feed to import into.

Questions

Something else? Write to support@ocrsnip.com.

Is this free?

Yes, with no row limit and no account. It reshapes a file you already have, which is what every free converter here does.

Does QuickBooks Online import IIF?

No — IIF is a QuickBooks Desktop format. QuickBooks Online takes .csv, .qbo, .qfx and .ofx on its upload screen, and CSV to QBO builds the .qbo from the same spreadsheet.

Where do I find the import in QuickBooks?

File → Utilities → Import → IIF Files, with the company file open. Recent versions ask whether to import it for you or to use the older importer; both read the same file. Back up first — this is the import that cannot be undone.

Can I post to more than two accounts?

Not from this page. Every row becomes one transaction against one income or expense account, which is what a bank statement is. A file with several splits per transaction is a journal, and writing one by hand from a spreadsheet is where IIF stops being the easy answer.

Do you see my transactions?

No. Reading the sheet and writing the IIF both happen in this tab; there is no upload step and no server that receives files. The network panel of your developer tools stays empty while you convert.