How Do I Import an IIF File Into QuickBooks Online? 4 Ways That Work

Accounting
(
October 8, 2026
)
How Do I Import an IIF File Into QuickBooks Online

QuickBooks Online doesn’t support IIF files, the format QuickBooks Desktop uses for imports. This guide explains what’s inside an IIF file and walks through four ways to get that data into QuickBooks Online: converting it to CSV, migrating through Desktop, using an importer app, or replacing the IIF export with a direct integration.

Why QuickBooks Online Won't Open an IIF File

IIF (Intuit Interchange Format) is a tab-delimited text format that QuickBooks Desktop uses to import and export lists and transactions. QuickBooks Online was built around a different model: a spreadsheet with one header row, mapped field by field on screen.

Intuit's own import FAQ lists CSV, Google Sheets, and XLS/XLSX as the accepted formats. Intuit's community team has also confirmed that IIF import is a QuickBooks Desktop feature only.

This gap matters more every year. Intuit stopped selling new subscriptions of QuickBooks Desktop Pro Plus, Premier Plus, and Mac Plus to new U.S. customers after September 30, 2024. Many businesses have moved to QuickBooks Online while their POS, scheduling, practice-management, or shop software still exports IIF files built for Desktop.

Why So Much Software Still Exports IIF

IIF is easy for a software vendor to produce. It's just text, and it doesn't require building or maintaining a live connection to QuickBooks. For years, that made it the simplest way for industry software to hand accounting data to QuickBooks Desktop users.

Supporting QuickBooks Online is different. It means building and maintaining an API integration, and many vendors haven't done it. That leaves their customers holding a file that only QuickBooks Desktop knows how to read.

First, Which Situation Are You In?

Most guides treat every IIF file the same way. They aren't. A one-time backlog and a file that arrives every morning need different fixes.

A one-time import is usually history: an old QuickBooks Desktop file or a backlog from a system you're retiring. What matters is getting it right once. Doing it by hand costs a few hours, one time, so Methods 1, 2, and 3 all work well here.

A recurring export is different. Your POS, scheduling, or practice-management software creates a new IIF file every day or week. What matters is never missing a day and never posting one twice. Any manual process becomes a permanent daily chore, which is why Method 4 exists.

If your files arrive on a schedule, read Method 4 before you spend time perfecting a manual process.

What's Inside an IIF File (and Why Renaming It Fails)

IIF stands for Intuit Interchange Format. It's a plain text file with columns separated by tabs, which is why it opens in Excel or Notepad. But it isn't a spreadsheet. A spreadsheet has one header row and one record per row, while an IIF file can hold several kinds of records, each with its own set of columns.

How an IIF File Is Organized

Every IIF file is built from two kinds of lines. Header lines start with an exclamation point and name the columns for one record type, such as !TRNS for transactions or !ACCNT for accounts. Data lines start with the same keyword, without the exclamation point, and hold the values in that column order.

One file can switch between record types several times. It might define accounts first, then customers, then a run of transactions. Each new header line tells QuickBooks Desktop how to read the lines below it until the next header appears.

Lists and Transactions Share the Same Format

IIF files carry two broad kinds of data. List records and add names to QuickBooks: accounts (ACCNT), customers (CUST), vendors (VEND), items (INVITEM), and classes (CLASS). Transaction records post activity, such as general journal entries, invoices, bills, checks, deposits, and cash sales.

Files that software exports every day are almost always transaction files. Files from a one-time cleanup or migration often mix lists and transactions.

How a Transaction Is Written

A transaction in an IIF file isn't one row. It's a small block of rows. A TRNS line opens the block and carries the main side of the transaction. One or more SPL lines follow, one for each split. An ENDTRNS line closes the block.

Take a daily sales entry for Store 12 on October 1, 2026. The TRNS line debits undeposited funds for $1,250.00. The first SPL line credits Sales for $1,150.00, and the second credits Sales Tax Payable for $100.00. All three lines carry the same date, the class Store 12, the document number DS-1001, and the memo Daily sales.

IIF doesn't use separate debit and credit columns. It uses one Amount column with a sign: positive numbers are debits and negative numbers are credits. So the file stores 1250.00, -1150.00, and -100.00, and because every transaction must balance, the amounts in each block add up to zero.

Everything Is Matched by Name

IIF files refer to accounts, customers, vendors, items, and classes by their exact names, not by internal IDs. If the file says Sales Tax Payable and your chart of accounts says Sales Tax Liability, the line has nowhere to go. QuickBooks Online's import rejects any line whose account doesn't already exist under that exact name.

Why Renaming the File Doesn't Work

Changing .iif to .csv changes the label, not the contents. QuickBooks Online's Import Data expects one header row, one record per row, and comma-separated values. An IIF file has several header rows, transactions spread across multiple rows, tab separators, and a single signed Amount column, so the mapping screen has nothing it can line up.

Method 1: Convert the IIF File to CSV and Use Import Data

Best for: a one-time file of journal entries or lists, under 1,000 rows per file, when you're comfortable working in Excel or Google Sheets.

This is the free route. You turn the IIF file into a spreadsheet QuickBooks Online understands, then load it through the built-in Import Data tool. The steps below use journal entries, because that's what most IIF exports contain and what QuickBooks Online imports most reliably.

Step 1: Open the File With Tab as the Separator

Don't double-click the IIF file. Excel may guess the format wrong and change your data before you even see it.

In Excel, go to Data > From Text/CSV, choose the file, and select Tab as the delimiter. Then choose Transform Data and set the account number and date columns to Text. In Google Sheets, go to File > Import, upload the file, set the separator type to Tab, and turn off the option that converts text to numbers and dates.

Keeping those columns as text matters. Otherwise, Excel drops leading zeros from account numbers and may reinterpret dates based on your computer's regional settings.

Step 2: Remove the Structure Rows

Delete every row that starts with an exclamation point, such as !TRNS, !SPL, and !ENDTRNS. Then delete every ENDTRNS row. What's left are TRNS and SPL rows, each holding real accounting data.

Before you delete the header rows, note which column holds which value. You'll need that when you rename the columns in Step 5.

Step 3: Give Each Transaction One Journal Number

QuickBooks Online decides which rows belong to the same journal entry by the Journal No. column. The TRNS row and all of its SPL rows must share one value, and no two transactions can share the same value.

If the DOCNUM column is filled in and unique for each transaction, use it. If it's blank or repeats, create your own numbers, such as JE-0001, JE-0002, and so on.

Step 4: Split the Signed Amount Into Debits and Credits

Add two new columns named Debits and Credits. A positive amount goes into debits as it is. A negative amount goes into credits without its minus sign. Then delete the original Amount column.

A simple formula does this for you. If the amount sits in column F, use =IF(F2>0,F2,"") for debits and =IF(F2<0,-F2,"") for credits. Copy both down the sheet, then paste the results as values so the formulas don't travel with the file.

Step 5: Rename the Columns

QuickBooks Online expects these column names for journal entries: Journal No., Journal Date, Account Name, and Debits and Credits. You can also include Description (from the IIF Memo column), Name for a customer or vendor, and Class or Location if you track them.

Delete any column QuickBooks Online doesn't use, such as TRNSTYPE. Extra columns won't break the import, but they make mapping slower and easier to get wrong.

Step 6: Check That Every Entry Balances

Total the debits and credits for each journal number. They must match the cent. A pivot table or a SUMIF by journal number makes this a two-minute check.

In the Store 12 example, journal DS-1001 now has three rows. Undeposited Funds shows $1,250.00 under Debits, Sales shows $1,150.00 under Credits, and Sales Tax Payable shows $100.00 under Credits. Debits and credits both total $1,250.00, so the entry is ready to import.

Step 7: Prepare QuickBooks Online

Intuit's journal entry import guide lists three settings to handle first. Turn off account numbers before you import, and turn them back on afterward. Write subaccounts as Parent account:Subaccount. If your file uses classes or locations, turn on class and location tracking.

Also confirm that every account, customer, vendor and class named in your file already exists in QuickBooks Online, spelled exactly the same way.

Step 8: Save the File and Import It

Save the sheet as a CSV file with fewer than 1,000 rows. If you have more, split the file by date range so each journal entry stays whole inside one file.

In QuickBooks Online, go to Settings (the gear icon) > Import Data > Journal Entries. Browse to your file, choose the date format it uses, and match each column to its QuickBooks field. Select Start import, then open a few of the new entries to confirm they look right.

Converting List Files Instead

If your IIF file holds lists rather than transactions, the job is simpler. Each customer, vendor, account or item already sits on one row, so there are no splits or signs to deal with.

Remove the header rows, rename the columns to match QuickBooks Online's sample file for that list, and import through Import Data. Load lists in Intuit's order: chart of accounts, customers, vendors, then products and services.

What This Method Can't Do Well

Import Data covers lists, bank data and a short list of transaction types, including invoices, bills and journal entries. IIF types without a native importer, such as checks, deposits and customer payments, can only come in as journal entries.

That changes how they behave in your books. They show up as journal entries in reports and registers instead of checks or deposits. A customer payment posted as a journal entry also won't close the invoice it paid. For these types, an importer app or a direct integration is usually the better choice.

Method 2: Import Into QuickBooks Desktop, Then Migrate

Best for: you still have QuickBooks Desktop and you're moving your whole company to QuickBooks Online anyway.

This route uses the one QuickBooks product that still reads IIF files natively. You load the file into Desktop, where every transaction keeps its original type, and then move the whole company to QuickBooks Online in one pass.

Step 1: Prepare the Desktop File

Back up the company file before you change anything. Install the latest Desktop updates, sign in as the admin user, and run Verify Data so you start from a clean file.

Step 2: Import the IIF File in Desktop

Go to File > Utilities > Import > IIF Files, then choose Import IIF and select your file. Since the 2019 release, Desktop scans the file for errors before importing. If some rows fail, it gives you a new IIF file containing only those rows, with a description of each error, so you can fix and reimport just the failures.

Step 3: Review the Imported Data

Run a Profit and Loss and a Balance Sheet for the period the file covers. Compare the totals with the source system's own reports, and open a few transactions to check accounts, classes and dates.

Step 4: Move the Company to QuickBooks Online

Sign in to Desktop as the admin. Open the Company menu and use the export to QuickBooks Online option; Intuit's support team also gives a shortcut: press Ctrl+1, then Ctrl+B+Q, and select Get started.

Sign in to QuickBooks Online and choose the company that will receive the data. If you track inventory, you'll be asked to confirm that choice and pick an as-of date. Type Agree and select Replace to start the move.

Step 5: Compare Reports After the Move

Intuit's team recommends running matching reports in both products once the move finishes. Compare the Profit and Loss, Balance Sheet and open receivables and payables for the same dates before you stop using Desktop.

Watch out: the move replaces all existing data in the QuickBooks Online company you choose. Use this route only for a full move, never to add one IIF file to a QuickBooks Online company that's already in use. And once you've left Desktop behind, this route is gone for any files that arrive later.

Method 3: Use an IIF Importer App

Best for: a backlog of mixed transaction types, or an occasional file you don't want to rebuild by hand.

Several apps on the QuickBooks App Store read IIF files, convert them behind the scenes and post through the QuickBooks Online API. Intuit's community team suggests searching the App Store for "IIF importer" to find them.

How an IIF Importer Works

Most importers follow the same flow. You connect the app to your QuickBooks Online company from the App Store, upload the IIF file, and tell the app what kind of record it holds. The app reads the TRNS and SPL blocks for you, so you skip the manual cleanup from Method 1.

Next you match the file's columns to QuickBooks fields, review a preview, and start the import. The app posts each record through the QuickBooks Online API and reports back on every row, so you can see what posted and what failed.

What to Check Before You Pay

  • Transaction types: does it support every type in your file, or only journal entries and invoices?
  • Split lines: does it keep multi-line transactions together as one entry?
  • Preview: can you review what will post before anything reaches your books?
  • Undo: can you roll back an import if something is wrong?
  • Missing names: what happens when the file references an account, customer or class that doesn't exist yet?

Where Importers Fall Short

An importer removes the conversion work. It doesn't remove the routine. Someone still has to export the file, upload it, check the mapping and review the results every time a new file arrives.

That's fine for a backlog you'll load once. For a daily file, the bigger risk is the file nobody uploaded. An importer can only process what it's given, so nothing tells you when a day's file never arrived.

Method 4: Stop Exporting IIF Files and Connect the Source Directly

Best for: any software that creates a new IIF file every day or week.

If the file arrives on a schedule, the file is the problem. Every day it has to be exported, converted, uploaded and checked, and every manual step is a chance to skip a day or post one twice. A direct integration removes the file: it reads from the source system on a schedule and posts to QuickBooks Online automatically.

Here's what changes when the IIF step goes away:

  • Nothing to export or upload. Data moves on its own, on the schedule you set.
  • Transactions keep their real type. A sales receipt stays a sales receipt and a deposit stays a deposit, instead of everything becoming a journal entry.
  • Locations and classes map once. Each store or department posts to the right class or location every time.
  • Gaps get flagged. A day with no data shows up as a missing day, not a silent hole in your books.

How a Direct Integration Works

A well-built integration follows five stages. Each one replaces a manual step you'd otherwise repeat with every file.

  1. Connect. You authorize access to the source system and to your QuickBooks Online company. The integration reads from one side and posts to the other, so nobody exports or uploads anything.
  2. Map. You decide once where each kind of data goes: which sales hit which income account, which payment types land in which clearing account, and which store maps to which class or location.
  3. Validate. The integration runs against real data in a preview first. You compare the results with your current books before a single entry posts.
  4. Automate. You set the schedule, for example every night after the stores close. From then on, each day's data posts without anyone touching it.
  5. Monitor. Every run is checked. Failed records, entries that don't balance and days with no data get flagged so someone can act on them.

What Staying Manual Really Costs

Say exporting, converting, uploading and checking one IIF file takes 20 minutes. Done every business day, that's roughly 87 hours a year for a single location, before anyone fixes a mistake.

Now multiply that by every location that sends its own file. The bigger cost is the error you don't see: a day that never got posted, or a day that got posted twice, quietly throwing off your sales and tax numbers until month-end.

What to Ask Your Software Vendor

Before you choose a path, find out what your source system can offer besides IIF:

  • Does it have an API, and which data does the API expose?
  • Can it send a scheduled export in CSV, by SFTP or by email instead of IIF?
  • Does it already have a QuickBooks Online integration, and what does that integration actually post?
  • How far back can it provide history if you need to load past periods?

An API or a scheduled export is usually all a direct integration needs.

How Autymate Does It

Autymate builds and runs these integrations for you, from the source system into QuickBooks Online, QuickBooks Desktop and other accounting systems. We handle the connection, the mapping, the testing and the monitoring, so your team only deals with the exceptions we flag.

For The UPS Store, that means POS data from 2,500 locations posting to QuickBooks, with per-location checks for missing dates. The same approach works whether you have one location or hundreds.

Which Method Should You Use?

For a one-time file, pick Method 1, 2 or 3 based on volume and transaction types. For a file that keeps coming, Method 4 is the only one that stops the work instead of moving it.

Choose Method 1 if you have a one-time file of journal entries or lists and you're comfortable in a spreadsheet. It's free and keeps multi-line entries together by journal number, but most transaction types end up posted as journal entries and every file takes real effort.

Choose Method 2 if you're leaving QuickBooks Desktop for good. Desktop imports the IIF file with its transaction types intact, and the migration carries everything over in one pass. It only works once, before you start using QuickBooks Online.

Choose Method 3 for a backlog with mixed transaction types or an occasional file. An importer saves the conversion work, though how well it keeps split lines and transaction types depends on the app you pick.

Choose Method 4 if the files keep coming. After setup there's no file to handle at all, transaction types stay intact, and missing days get flagged automatically.

Before You Import: A 10-Point Checklist

Imports into QuickBooks Online are hard to reverse. Intuit notes there's no bulk undo for imported contacts, so test small and check first.

  1. Import lists before transactions. Follow Intuit's order: chart of accounts, customers, vendors, products and services, then invoices, bills and journal entries. A transaction can't post to an account or name that doesn't exist yet.
  2. Match every account name exactly. Compare the account names in your file with your chart of accounts, including spelling, spacing and punctuation. One extra space is enough to reject a line.
  3. Write subaccounts with their parent. Use the Parent account:Subaccount format. A subaccount name on its own triggers a "Line Account invalid" error.
  4. Turn off account numbers for the journal entry import. Intuit recommends this for a smooth import. Turn them back on as soon as you're done.
  5. Turn on class and location tracking first. If your file uses classes or locations and tracking is off, that information is lost on import.
  6. Check that every journal balances. Debits must equal credits for each journal number. One unbalanced entry can stop the rows around it from importing.
  7. Keep each file under 1,000 rows. Split larger files by date range so no journal entry is cut in half.
  8. Use one date format. Pick the same format during import that your file uses, so October 1 doesn't arrive as January 10.
  9. Avoid duplicate journal numbers. If the duplicate-number warning is on in your settings, entries that reuse an existing number are rejected.
  10. Test with 5 to 10 transactions first. Import a small sample, check it in QuickBooks Online, and only then load the rest.

Fixing Common Import Errors

Most failed IIF conversions come down to one of these nine problems.

"Line Account invalid"

A subaccount was entered without its parent account. Write it as Parent account:Subaccount, exactly as it appears in your chart of accounts.

Every row lands in one journal entry

QuickBooks Online groups rows by Journal No. If you mapped a Reference Number column instead, or every row shares one number, everything merges. Give each transaction its own Journal No. and map that column.

The entry is rejected as out of balance

Either the signs weren't converted correctly, or a split row was deleted along with the header rows. Recheck that debits equal credits for every journal number.

The first row of data is missing

QuickBooks Online reads the first row as column headers and doesn't import it. Add a header row above your data.

A customer or vendor is skipped

That contact already exists in QuickBooks Online, and duplicates aren't imported. Rename the duplicate or remove it from the file.

Some columns didn't import

QuickBooks Online only imports certain fields for each data type. Download the sample file inside your company and match its fields.

Dates are wrong or account numbers lost their leading zeros

Excel reformatted those columns when it opened the file. Reopen the file with those columns set to Text.

The file won't upload

It has 1,000 rows or more. Split it into smaller files and import them one at a time.

Journal numbers are rejected

The duplicate journal number warning is turned on in your settings. Use new numbers, or turn the warning off for the import.

Sources for these rules: Intuit's import FAQ, journal entry import guide and a QuickBooks Team answer on grouped entries.

After the Import: How to Check It Worked

A clean upload message only means QuickBooks Online accepted the rows. It doesn't mean the numbers are right. Run these four checks before you call it done:

  1. Compare totals. Run a Trial Balance in QuickBooks Online for the imported period and compare it to the totals in the IIF file or the original system's report.
  2. Trace a few transactions. Open 3 to 5 imported entries and match each line to the source file: account, amount, date, class.
  3. Check clearing accounts. Look at Undeposited Funds and any holding accounts. Leftover balances usually mean a deposit or payment is missing.
  4. Check for missing dates. For daily files, confirm every expected date arrived. In multi-location businesses, one store's missing day is the error that goes unnoticed longest.

Frequently Asked Questions

What is an IIF file?

An IIF (Intuit Interchange Format) file is a tab-separated text file that QuickBooks Desktop uses to import and export lists and transactions. Many industry software products create IIF files so their data can be loaded into QuickBooks Desktop.

Can QuickBooks Online import IIF files?

No. QuickBooks Online's Import Data tool accepts CSV, XLS/XLSX and Google Sheets files only. IIF import exists only in QuickBooks Desktop. You can still get IIF data into QuickBooks Online by converting it, migrating from Desktop, using an importer app or replacing the export with a direct integration.

Can I just rename the .iif file to .csv?

No. Renaming changes the extension, not the contents. The file still has multiple header rows, tab separators and signed amounts, so QuickBooks Online can't map it.

How do I convert an IIF file to CSV without Excel?

Use Google Sheets. Go to File > Import, upload the IIF file and set the separator type to Tab. Clean it up as in Method 1, and you can import the sheet into QuickBooks Online without downloading it.

How many rows can I import at once?

QuickBooks Online accepts files with fewer than 1,000 rows. Split larger files and import them one at a time.

Will my transaction types survive the conversion?

Only some. Invoices, bills and journal entries have native importers. Types like checks, deposits and customer payments usually become journal entries unless you use an importer app or a direct integration.

Can I keep using QuickBooks Desktop for IIF imports and sync it to QuickBooks Online?

No. Desktop and Online don't sync. Moving Desktop data to Online is a one-time migration, and it replaces whatever is already in the QuickBooks Online company.

My software only exports IIF. What should I do?

Ask your vendor if it also offers a CSV export, an API or a scheduled report. A CSV export makes Method 1 easier. An API or scheduled export makes a direct integration possible, which removes the file entirely.

Is an IIF file the same as a .QBO file?

No. A .QBO file is a bank statement download from your bank's website. QuickBooks Online can upload .QBO files through Banking when your bank feed isn't connected. IIF files have no equivalent upload option.

How do I see what's inside an IIF file?

Open it in any text editor, such as Notepad, to see the raw lines. For an easier view, import it into Excel or Google Sheets with Tab as the separator, as described in Step 1 of Method 1. Avoid saving changes back over the original file, so you always have a clean copy.

Can I convert just part of an IIF file?

Yes. You can filter the rows by date or transaction type before converting, as long as you keep each TRNS line together with all of its SPL lines. Splitting a transaction across two files will leave both halves out of balance.

Stop Converting the Same File Every Day

For a one-time backlog, Method 1 or 3 will get the job done in an afternoon. If your software hands you a new IIF file every morning, though, a better converter just makes the chore faster.

Autymate connects your POS, scheduling or industry software straight to QuickBooks Online, maps every account, class and location once, and runs it for you. It flags missing days so nothing slips through. As an Intuit Gold Partner, we've built integrations for businesses from a single location to thousands.

Talk to an Integration Specialist and tell us which system is sending you IIF files.

Stop Moving Data Between Systems by Hand autymate that

Connect your POS, CRM, ERP, QuickBooks, databases and any other system with an API, through custom integrations designed around your workflow.

Talk to Us
Bryan Perdue
Founder & CEO, Autymate
Follow On:
LinkedIn
Bryan leads all client engagement, leveraging his business process experience to “autymate” manual workflows by creating low-code/no-code data integrations and custom applications that deliver decision quality data into the hands of business users.