Coming from Xero, Wave, QuickBooks Online, or a system nobody has heard of? If it can export its journal as a spreadsheet, TaDa Books can bring the history over. You say which column means what, once, and the same penny check that guards the QuickBooks import proves the books before anything is kept.
Just your customers and vendors
Starting fresh, with no history to bring? Open Payees and press Import. Pick a spreadsheet of your contacts with a header row: Name is the one column it needs, and Email, Phone, the address (whole, or Street, City, State and Zip), 1099 and Tax ID come over too. If the sheet mixes customers and vendors, a Type column saying which keeps them apart; otherwise say which the rows are.
You see every contact it will add before anything is added, with any row it left out and why (no name, a name repeated in the sheet, an email that is not one). A name already in your contacts is left as it is, so importing the same sheet again adds nothing twice.
What to export
Three spreadsheets, as .csv or .xlsx:
- The journal, every entry with one line per row: a date, an account, a debit and a credit (or one signed amount). This one is required. Export it up to the last day of the history you are bringing.
- The chart of accounts, with each account's type. Optional, but with it the importer knows which accounts are bank accounts, income, expenses and so on without asking.
- The trial balance as of that last day. Optional. With it the check compares the journal against your old system's own totals, account by account. Without it the journal is checked against itself.
- Open invoices and open bills as of that last day. Optional. A list of the invoices (and, separately, the bills) still unpaid, each with its number, the customer or vendor, and its due date. The invoices and bills themselves come from the journal either way; these lists give the ones still open their real due dates. Without them, each is due on the day it was written, so the Aging would show it overdue straight away.
In Xero these are the Journal report, the Chart of Accounts export and the Trial Balance. In Wave, the Account Transactions export and the Trial Balance. In QuickBooks Online, the Journal report, the Account List and the Trial Balance, each exported to Excel. For the open lists: Xero's Aged Receivables Detail and Aged Payables Detail, QuickBooks Online's A/R Aging Detail and A/P Aging Detail. Export with all dates or the full history range, so nothing is cut off.
Invoices and bills come over as documents
Your old system's invoices, bills and the payments against them arrive as real invoices, bills and payments, not only as balances: you can collect an open invoice, send a statement, pay a bill and see them on the Aging, with each payment already applied to what it paid.
Each entry is read by the type your system wrote on it ("Receivable Invoice", "Bill Payment (Check)" and so on). When the file has no type at all (Wave) or a word the importer does not know, the entry's own lines decide: money one customer owes is an invoice, money owed to one vendor is a bill, and money coming in or going out against them is a payment. Anything else (a write-off, a manual journal, an entry with two customers) stays a journal entry, and the balances still match to the penny. A credit given back to a customer ("Receivable Credit Note", or income given back with no money moving) arrives as a credit memo, used the way QuickBooks imports use theirs, and a QuickBooks Online "Sales Receipt" arrives as a sales receipt when it names one customer. A credit from a vendor ("Payable Credit Note", "Vendor Credit", or an amount owed to one vendor taken down with no money moving) arrives as a vendor credit, spent on that vendor's bills.
Money in or out of one bank or card with no invoice or bill behind it (Xero's Spend Money and Receive Money, QuickBooks Online's Expense, Wave's plain bank lines) arrives as what it is: money out of a bank is a check, out of a card a card charge, money in is a deposit (a card refund on a card), and money moved between two of your own accounts is a transfer.
Before you press Check, What becomes a document counts the invoices, payments, bills and bill payments, and how many due dates found their invoice or bill. An invoice or payment with no single customer or vendor on it stays a journal entry, and the window says how many; map the journal's customer, vendor or contact column to bring them over as documents.
How it works
- Open Connections in the menu and, on the Other bookkeeping systems row, press Open, then Open spreadsheet import.
- Pick where the files come from. A known system maps its own columns; for anything else, pick Another spreadsheet and the importer reads the header words.
- Set the last day of the history. Entries dated after it are refused, so the books that follow start clean on the next day.
- Drop each file into its slot. A table per file shows every column with sample values and what it reads as. Correct any column that was read wrong: the date, the account name or code, the debit and credit, the description, a class or tracking category, the customer or vendor.
- If an account's type is not one the importer knows, it asks you which kind it is, right there, before checking.
- Press Check the files. The check names anything that does not add up: an entry whose debits and credits differ, a date past the cutover, a trial balance line the journal does not reproduce. Only when everything is proven does Import light up.
- Press Import. The chart, the classes, the customers and vendors and every entry are written, and the books open on the history.
Give the mapping a name and save it. Next time the same export comes in, pick the saved mapping and the columns read exactly as they did before.
What the importer will and will not do
- It refuses rather than guesses. An entry that does not balance is reported by row and is never nudged to fit. A trial balance that disagrees with the journal by a cent stops the import and names the account.
- It groups lines the way your system did. A transaction id column keeps lines together; without one, lines share a date and a reference; a line with no date at all belongs to the dated line above it, the way the QuickBooks Online journal is written.
- It reads what your system wrote. Dates as "5 Jan 2025" or "01/05/2025", money with dollar signs and commas, an account named "Checking (090)" with its code in brackets, a Total line at the bottom.
- It does not read a bank statement. For that, use the bank feeds and the statement import under Banking.
- It never counts the same money twice. If these books already hold entries dated inside the history you are importing (typed in, added from the bank feed, invoices, or your opening balance entry), the check lists them and stops: importing would count that money twice. Void or delete them, or move the cutover back to before them. If you are sure they are not in the file, tick Keep them and import anyway. Before replacing an earlier import, the confirmation names it (which import, when it ran, how far its history went) and warns in red when it came from a different system.