IIF file checker for QuickBooks Desktop
Drop in an .iif file before you import it. The checker reads every row the way QuickBooks Desktop needs it: the !TRNS, !SPL and !ENDTRNS headers, tabs between columns, transactions that add up to zero, dates, amounts, account names and transaction types. For each problem it shows the line and a plain-English fix.
How to use the checker
- Add the file. Drop the .iif onto the box above, click to choose it, or open it in Notepad and paste the contents. It's read in your browser and never leaves your computer.
- Read the verdict. Green means every transaction has its headers, its TRNS, SPL and ENDTRNS rows and adds up to zero. Red lists the problems QuickBooks will probably refuse. Amber lists things that usually import but post to the wrong account, date or type with no error, which Intuit warns can happen: its IIF overview says imports have only limited error checking and bad formatting can import incorrectly without an error.
- Fix and check again. Each finding shows the line numbers and what to change. For safe, mechanical fixes (amount formatting, year-first dates, stray spaces, a byte-order mark, a CSV that should be tab-delimited), download the cleaned copy. It never changes an amount's value, adds rows or guesses a date.
- Back up, then import. Back up the company file first (Intuit's import steps say to), then File → Utilities → Import → IIF Files. If QuickBooks still says File not imported, use Review now and follow our IIF import errors guide.
The summary shows how many transactions the file holds, how many are clean, the net change to the bank or card account, money in and out, and the date range, so you can compare them with the statement before anything posts. If the source statement itself doesn't tie out, the free bank statement balance checker finds the line that's off.
What it checks, and where each rule comes from
Intuit's help articles cover IIF in outline (the detail is in its downloadable IIF Import Kit), and Intuit doesn't offer assisted support for creating or importing IIF files. So every finding is labelled: Intuit rule (from Intuit's help articles and sample files), How our exporter writes it (Utilly's own IIF export, which imports cleanly), or Common cause (a frequent reason imports fail, not an Intuit rule).
| Check | What goes wrong | Source |
|---|---|---|
| Tab-delimited | A CSV renamed to .iif, or tabs turned into spaces by copying from an email or web page. | Intuit: IIF files are ASCII text, tab-separated (TSV) |
| !TRNS, !SPL, !ENDTRNS headers | Missing, misspelled (!TRANS) or placed after the rows they describe. | Intuit: header rows begin with "!", and their spelling and placement are required |
| TRNS → SPL → ENDTRNS | A missing ENDTRNS (the next transaction runs into this one), an SPL outside a transaction, a TRNS with no SPL. | Intuit's sample transaction layout |
| Adds up to zero | TRNS and SPL amounts that don't net to 0.00, including SPLs with the same sign as the TRNS. | Intuit's sample (−70 + 10 + 60 = 0); users see QuickBooks' "Transaction not in balance" message |
| Column counts | A tab inside a memo or name pushes every later value one column right. | Common cause |
| Required columns | No TRNSTYPE, DATE, ACCNT or AMOUNT on !TRNS; no ACCNT or AMOUNT on !SPL; ACCOUNT or AMT instead of ACCNT or AMOUNT. | Intuit sample + our exporter |
| Account names | Empty ACCNT, trailing spaces, the same account spelled two ways, doubled colons. | Intuit: an account not already in the company file is created as a new bank account |
| Dates | Day-first (15/08/2026), year-first (2026-08-15), Excel serial numbers, impossible dates, typos decades away. | Intuit's samples are month first (3/3/2010); our exporter writes MM/DD/YYYY |
| Amounts | $ signs, thousands commas, (parentheses), trailing minus, CR/DR, 1.23E+05, more than 2 decimals. | Our exporter writes plain numbers like -1234.50 |
| Transaction types | Empty or unknown TRNSTYPE (WITHDRAWAL, DEBIT), TRNS and SPL types that differ, a CHECK with a positive amount. | Our exporter: CHECK/DEPOSIT for banks, CREDIT CARD/CCARD REFUND for cards |
| Characters and encoding | Curly quotes, long dashes, non-breaking spaces, a byte-order mark, a file saved as Unicode (UTF-16). | Intuit: ASCII text; specific characters are a common cause |
List rows such as !ACCNT, !VEND and !CUST are counted but not checked in detail. Most import trouble is in the transactions.
Anatomy of a clean bank IIF file
This is the shape our converter writes for a checking account, and the same shape as the check in Intuit's IIF overview. Columns are separated by tabs.
!TRNS TRNSTYPE DATE ACCNT NAME AMOUNT MEMO
!SPL TRNSTYPE DATE ACCNT NAME AMOUNT MEMO
!ENDTRNS
TRNS CHECK 08/03/2026 Checking -4.50 STARBUCKS #12
SPL CHECK 08/03/2026 Uncategorized Expense 4.50 STARBUCKS #12
ENDTRNS
TRNS DEPOSIT 08/04/2026 Checking 2000.00 ACME PAYROLL
SPL DEPOSIT 08/04/2026 Uncategorized Income -2000.00 ACME PAYROLL
ENDTRNS
- Three header rows first. Intuit: "In a transaction import file, there are usually three file header lines", beginning !TRNS, !SPL and !ENDTRNS.
- TRNS is the bank side. Money out is negative, money in is positive. In Intuit's example the check is −70 on Main Checking.
- SPL is the other side. The same amount with the opposite sign, or several SPLs that add up to it (Intuit's example splits 70 into 10 for Fuel and 60 for Auto Repair).
- ENDTRNS closes it. Every transaction needs one.
- Credit cards use the card account on the TRNS row, with CREDIT CARD for charges (negative) and CCARD REFUND for refunds and credits (positive).
- NAME can stay blank. Bank descriptions go in MEMO. Raw bank text in NAME creates a new name for every merchant.
The errors behind most failed imports
"Transaction not in balance"
The TRNS and SPL amounts of one transaction don't net to zero. The usual causes are a penny of rounding, an SPL with the same sign as the TRNS, or a missing ENDTRNS that merges two transactions. The checker shows the amount it's out by and, for a single SPL, the value that would balance it.
"File not imported"
On QuickBooks Desktop 2019 and later, Intuit's Improved IIF Import shows how many lists and transactions failed and writes a new .IIF of the failed rows with ERROR descriptions. Run that file through this checker too. Our IIF import errors guide covers Review now, ERROR rows and why Import it for me. I'll fix it later isn't recommended.
Shifted columns
A tab inside a memo makes a row one column longer than its header, so the memo's second half lands in the next column. The checker shows the spilled text. Our exporter replaces tabs, line breaks and double quotes in descriptions with spaces for this reason.
Transactions in a new, empty account
Intuit: "If you import a transaction with an account that is not already created in the QuickBooks data file, that account will be created as a new bank account." A trailing space or different capitalisation is enough. Open Accounts on TRNS rows in the report and compare each name with Lists → Chart of Accounts.
Dates a month (or a century) off
US QuickBooks Desktop reads dates month first. A file built from a UK or Canadian bank export, or from a spreadsheet set to year-first dates, can post 04/05 on April 5 instead of May 4 with no error. When some dates in the file can only be day first, the checker flags every date that could be read either way.
Editing an IIF in Excel without breaking it
Intuit's own steps for editing an IIF in Excel: File → Open, set the file type to All Files, open the .iif, click Next, Next and Finish in the Text Import Wizard, make your changes, then File → Save and choose Yes to keep the format. When you exit, Excel asks again: choose Don't Save.
- Leading zeros. Intuit notes Excel drops leading zeros (in check numbers, for example) unless you format those cells as Custom first.
- Dates and amounts. Excel can reformat dates (to year-first or a serial number) and add thousands separators. Check the file here after saving.
- Save as text, not Unicode. "Unicode Text" writes UTF-16, which isn't the ASCII text Intuit describes. Use Text (Tab delimited).
- Quotes. Some save options wrap values in double quotes. Our exporter writes none; Intuit's samples only quote a name that contains a comma.
Starting from a PDF statement? Skip building the IIF by hand
Utilly turns text-based PDF bank and credit card statements into a QuickBooks Desktop .IIF that passes every check on this page: balanced transactions, TRNS/SPL/ENDTRNS in place, plain amounts and MM/DD/YYYY dates. Each statement is checked against its ending balance before you download. Preview free with no sign-up; $9 for 5 statements. Already have a CSV? The CSV to IIF converter lets you set the account name and is free up to 100 rows.
Convert a PDF statement to IIFFAQ
Is my IIF file uploaded?
No. The checker is JavaScript that runs on this page. Your file is read on your own computer and never sent to Utilly or anyone else, and the tool area is excluded from our analytics and session replay. Once the page has loaded it works offline.
Why does QuickBooks say "File not imported"?
On QuickBooks Desktop 2019 and later, the Improved IIF Import found records it couldn't import. It shows how many lists and transactions failed and writes a new .IIF of the failed rows with ERROR descriptions. Run your file (or that failure file) through this checker, fix what it finds, and import again. Our IIF import errors guide walks through Review now.
What does "Transaction not in balance" mean in an IIF import?
The TRNS amount and its SPL amounts don't add up to zero. In Intuit's sample check, the TRNS is -70 and the two SPLs are 10 and 60. Common causes are an SPL with the same sign as the TRNS, a penny of rounding, or a missing ENDTRNS that merges two transactions. The checker shows how far out each transaction is.
What date format does an IIF file need?
US QuickBooks Desktop reads month first. Intuit's sample files use dates like 3/3/2010, and our exporter writes MM/DD/YYYY, like 08/03/2026. Day-first (15/08/2026) and year-first (2026-08-15) dates are common reasons imports fail or land on the wrong day.
Can I open and fix an IIF file in Excel?
Yes. Intuit's steps: in Excel choose File > Open, set the file type to All Files, open the .iif, finish the Text Import Wizard, edit, then File > Save and choose Yes to keep the format; when you exit, choose Don't Save. Excel can reformat dates and amounts and drops leading zeros unless the cells are formatted as Custom, so check the saved file here.
Does the checker work for lists, invoices or payroll?
It checks the structure, balance, dates, amounts and accounts of any TRNS/SPL transaction, and its type checks are tuned for bank and credit card imports (CHECK, DEPOSIT, CREDIT CARD, CCARD REFUND, TRANSFER, GENERAL JOURNAL). List rows such as !ACCNT, !VEND and !CUST are counted but not checked in detail.
Will a file that passes always import?
It catches the problems that most often stop or spoil an import, but QuickBooks also checks things only your company file knows, such as whether each NAME exists and is active and whether an account's type suits the transaction. Back up first, import a small test file, and reconcile the account to the statement afterwards.
Related guides
- QuickBooks Desktop IIF import errors (File not imported, Review now, and how to fix them)
- How to import bank transactions into QuickBooks Desktop after bank feeds stopped (2026)
- QBO vs IIF vs QIF: which file QuickBooks and Quicken actually need
- Catch-up bookkeeping: getting 12 months of bank statements into QuickBooks or Xero and reconciled
Sources: Intuit, IIF Overview: import kit, sample files, and headers (updated 8/4/2026), https://quickbooks.intuit.com/learn-support/en-us/help-article/list-management/iif-overview-import-kit-sample-files-headers/L5CZIpJne_US_en_US ; Export, import, and edit IIF files (updated 8/4/2026), https://quickbooks.intuit.com/learn-support/en-us/help-article/import-export-data-files/export-import-edit-iif-files/L56LT9Z0Q_US_en_US ; Improved IIF Import in QuickBooks 2019 and later (updated 8/5/2026), https://quickbooks.intuit.com/learn-support/en-us/help-article/import-export-data-files/improved-iif-import-quickbooks-2019-later/L1K3ZQDX9_US_en_US . The "Transaction not in balance" message as reported by QuickBooks users on Intuit's developer forum. Checked against Intuit's IIF Import Kit sample transaction files. Read October 19, 2026. Intuit updates these pages; if a screen differs, follow the current article for your version.