QuickBooks Desktop 2019 puts IIF imports through full validation
IIF imports in QuickBooks Desktop now face the same validation as typed entries, with rejected records listed in an Excel report you fix and rerun.
Teams that move lists and transactions into QuickBooks Desktop through IIF files spent years working around an importer that trusted the file over the program. With the 2019 releases, Intuit closed that gap. The change altered what an import does when the data inside a file is flawed.
The old importer took files on faith
IIF, short for Intuit Interchange Format, has long served as a shortcut into desktop company files. Accountants used it for lists, for transactions, and for payroll data. Plenty of third-party tools still write it as their export of choice. The weakness sat in the pipeline rather than the format. Imported rows skipped the business logic that screens every manually typed entry, so the program accepted a file largely as written.
The checking burden fell on whoever ran the import. A misdated invoice, an unfamiliar customer name, or a row nobody would type by hand could post without protest. Users who spotted the damage later faced cleanup that often cost more than the import saved, yet the format stayed popular. The alternative was retyping everything, one window at a time.
The 2019 releases changed the rules
The turnaround arrived with version 19.0, the 2019 version year of the desktop product. Intuit presented the change alongside Enterprise, but it applies across the 2019 desktop editions rather than to Enterprise alone. An IIF file now passes through the same validation that governs manual entry, covering both lists and transactions. The program inspects each record before anything posts.
For offices that relied on IIF, the practical effect is a shift in timing. Problems surface at the door instead of weeks later, when the ledger already reflects them. That trade preserves data integrity and cuts the manual verification the old importer demanded.
What happens when a record fails validation?
Rejects do not sit in limbo while the good rows post. When records fail the checks, the import is blocked, and the program writes an error report you can open in Microsoft Excel. Every rejected transaction or list entry appears with its reason highlighted, so the cause is visible at a glance.
You then correct the flagged rows in the source file, save it, and run the import again. Plan on a full rerun rather than a partial load. Nothing from a failing file reaches the company data, which is the point of the redesign.
Can you import while others are logged in?
Yes. The 2019 change also lifted the single-user restriction that came with IIF imports. Under the old importer, everyone else had to log out before a file could go in, which pushed imports to after hours or lunch breaks. The validated importer runs in multi-user mode, so a list update no longer requires an empty office.
For firms that import during the business day, that alone changed the workflow.
Getting a failed file through
A few habits make the new importer work in your favor. First, update the product to its current release before importing, because the validated behavior ships inside the release rather than as a setting you can toggle. Second, open the Excel report and read the highlighted reasons before touching any data.
Most flags are ordinary mismatches. A customer name spelled differently from the list entry, a date outside the accepted range, or an account that does not exist yet will each stop a row. Fix those records in your source file and import the whole file again. Once the listed reasons are resolved, the corrected file imports cleanly.
Where this leaves desktop users
The 2019 redesign traded the anything-goes path for data integrity. Files that once posted unchecked now face the same screening as typed entries, and failures arrive as a readable report instead of silent damage. The validated importer lives in the release, not in the file, so an installation on an older release keeps the old behavior. If your imports still run that way, moving the product to a current release and rerunning the file is what resolves the issue.