Migrating to Ringbook
This guide walks you through moving your books from an existing accounting system — Xero, QuickBooks, MYOB, Sage, Wave, FreshBooks, a local package, or a spreadsheet — into Ringbook. The goal is simple: get your chart of accounts and your opening position into Ringbook so that, from your cutover date forward, Ringbook is your source of truth.
You don't have to re-key years of history. Migration is mostly a one-file import plus a single opening balance, and most teams finish in well under an hour.
These guides are available in English and Traditional Chinese. The app also supports Japanese, Russian, Thai and Simplified Chinese.
Before you start
Make sure you've created your Ringbook organization first — its name, base currency, and fiscal year-end. The base currency cannot be changed once set, so pick the currency you report in. If you haven't done this yet, the Getting Started guide in the docs covers it in a few minutes.
You'll need two things out of your old system:
- A chart of accounts (or any export that lists your account names and numbers).
- A Trial Balance as of the day before your cutover date.
Both are standard exports in every accounting package. If all you have is a spreadsheet, that works too — the importer reads .xlsx, .xls, and .csv.
Importing is permission-gated. Running an import requires the Import access right (
journal:import:create). Organization owners and admins have it by default; if you're a non-admin and don't see the Import journals button, ask an admin to grant you the Import permission under Settings → Access Rights.
Step 1 — Pick your cutover date
Choose the date Ringbook takes over as your system of record. The cleanest choice is the first day of a fiscal period — the start of a month, quarter, or (best of all) your fiscal year. Everything before the cutover stays in your old system as history; everything on or after it lives in Ringbook.
Your opening balances are then taken as of the day before the cutover. For example, if you cut over on 2026-01-01, your opening Trial Balance is the one dated 2025-12-31.
Step 2 — Export from your old system
From your old accounting system, export:
- Chart of accounts — account names and numbers/codes. This becomes the structure Ringbook imports.
- Trial Balance as of the day before cutover — every account with its closing debit or credit balance.
Save them as .xlsx, .xls, or .csv. You don't need to reformat the columns by hand — Ringbook's importer lets you map whatever columns your export happens to have. A single export that contains both the account list and the closing balances is ideal, because you can do the whole thing in one pass.
Step 3 — Run the import (Book → Import journals)
Importing only a chart of accounts? You can skip the journal importer: on the Chart of Accounts page (the Accounts tab), click Import and upload the account list directly. It offers two modes — Append new accounts (adds what's missing, touches nothing else) and Replace (deletes every unused account first, then imports the file — accounts with activity are kept). The rest of this step is for imports that carry journals or balances alongside the accounts.
Go to Book → Import journals. The importer is a guided wizard that reads your file and builds your chart of accounts (and segments) for you, so you don't recreate the structure by hand. The steps are:
- Upload File — drop in your
.xlsx,.xls, or.csvexport. - Select Sheet — if it's a multi-sheet workbook, pick the sheet to import.
- Map Columns — tell Ringbook which column is the account name, which is the code, which holds amounts, and so on. Ringbook pre-guesses the mapping from your headers; you just confirm or adjust.
- Review Accounts — Ringbook proposes the new accounts it will create from your file, classified into the five account types (Asset, Liability, Equity, Revenue, Expense). Review the names, codes, and types, and fix anything that looks off before continuing.
- Review Segments — if your data carries dimensions like cost centers, departments, projects, or locations, Ringbook proposes the segments it will create alongside the accounts. (Segments are Ringbook's tags for slicing reports beyond the account level.) Review them the same way.
- Review & Import — a final summary of everything that will be created. Confirm to run it.
- Import Complete — Ringbook creates the accounts and segments and confirms what was created.
The key idea: the system creates your new accounts and segments from your import. You're not typing in a chart of accounts — you're reviewing the one Ringbook derived from your own export.
Step 4 — Clean up unused accounts
Every Ringbook organization ships with a sensible starter chart of accounts. After importing your own accounts, you'll usually have some of those starter defaults that you never use sitting alongside the real ones.
You can remove them in one click:
- Go to the Chart of Accounts page (the Accounts tab).
- Accounts that have no journal entries are marked with an Unused badge.
- Click Clean up unused to delete every account that has no journal entries inside it in a single action.
Because the cleanup only ever touches accounts with zero journal entries, it's safe — Ringbook will skip (not delete) any account that already has activity, as well as reserved system accounts like Retained Earnings. You can also select specific accounts and bulk-delete just those.
Do this cleanup before posting your opening balance, so you're working with a tidy chart.
Step 5 — Bring across your opening trial balance
Now mirror your closing position from the old system as a single opening journal in Ringbook, dated the day before your cutover (e.g. 2025-12-31).
The Trial Balance from your old system lists every account with a debit or credit balance. Post one journal that reproduces it exactly:
- Debit each account that carried a debit balance (assets, and any expense balances — see retained earnings below).
- Credit each account that carried a credit balance (liabilities, equity, and any revenue balances).
Because a Trial Balance already balances (total debits = total credits), your opening journal will balance too. Ringbook shows a running Difference as you build it and requires equal debit and credit totals before posting.
You can enter this opening journal manually from the Book (Add Journal Entry), or — if your export is structured as a list of accounts and amounts — bring it in through the same Book → Import journals flow you used for the chart of accounts.
Once it's posted, your starting position in Ringbook matches the day you left your old system.
Retained earnings, the right way
Retained Earnings is a protected system account in Ringbook; you can't post directly into it. When the importer recognises retained earnings or accumulated losses in your closing balances, it automatically uses an ordinary Equity account named Retained earnings - opening. It reuses a suitable existing opening account, including the earlier name Opening retained earnings, or proposes a new one in account review. New accounts are created only when you confirm the import.
Check the date against your source statement. An accumulated profit is normally a credit; an accumulated loss is a debit. The opening Equity account appears on the Balance Sheet, where you can open its transactions, and does not change P&L.
Example. A $90,000 retained-earnings credit as of 2024-12-31 becomes a $90,000 credit to Retained earnings - opening, alongside the other lines in your opening journal. You don't need to select Sales or another P&L account to complete the import.
Optional prior-year P&L detail. If you later import verified income and expense detail for profit already included in the opening balance, use the same reporting period and review the opening-Equity offset so the profit is not counted twice. If you reclassify an existing opening line to a Revenue or Expense account, its journal date determines which year's P&L changes; later-year reports include that profit or loss in system retained earnings. Check those reports against your source records after making the change.
Open items (invoices and bills)
Your opening Trial Balance already includes the totals for Accounts Receivable and Accounts Payable, so your balance sheet is correct from day one without any extra work.
If you also want individual open invoices and bills to age correctly going forward (so a customer's overdue invoice shows up in your aging), enter each outstanding item individually against the relevant AR/AP account instead of as one lump sum. Most teams only do this for items still open at cutover; everything already settled stays as history in the old system.
Multi-currency opening balances
If you hold foreign-currency balances (a USD bank account on EUR books, foreign AR/AP, etc.), capture them at the exchange rate that produces the base-currency balance shown on your old Trial Balance. That keeps your opening base-currency position exactly matching what you're migrating from. From there, Ringbook handles ongoing FX gain/loss and period-end revaluation automatically — see Multi-Currency and FX in the docs.
Verify the migration
After the import and the opening journal are in:
- Trial Balance — run it as of your cutover date. It must balance, and the per-account figures should match your old system's closing Trial Balance line for line.
- Balance Sheet — as of the cutover date, it should show the Balanced indicator and match your old system's closing balance sheet.
- Spot-check a few accounts — open Cash, AR, and AP and confirm the opening figures are what you expect.
If the Trial Balance is off, the difference is almost always a single transposed or mis-typed line in the opening journal — Ringbook's own entry rules guarantee debits equal credits, so a non-zero report difference points at the data you entered, not the math.
Migration checklist
- Organization created with the correct base currency and fiscal year-end.
- Import permission available (or granted to you under Access Rights).
- Cutover date chosen; opening balances taken as of the day before.
- Chart of accounts and closing Trial Balance exported from the old system.
- File imported via Book → Import journals; accounts and segments reviewed and created.
- Clean up unused run on the Chart of Accounts to drop unused starter defaults.
- Opening journal posted, with retained earnings in opening Equity and the account, date and amount checked.
- Open AR/AP items entered individually if you need aging.
- Trial Balance and Balance Sheet verified against the old system.
FAQ
Do I have to import all my historical transactions?
No. You migrate the chart of accounts plus an opening balance as of your cutover date. History stays in your old system, which you can keep read-only for reference. See retained earnings for the opening-Equity default and optional prior-year P&L detail.
Where exactly is the importer?
Book → Import journals. If you don't see the button, you don't have the Import permission yet — an admin can grant it under Settings → Access Rights.
What file types can I import?
Excel (.xlsx, .xls) and .csv. Multi-sheet workbooks are supported — you pick the sheet during the wizard.
What are "segments"?
Segments are Ringbook's tagging dimension — cost centers, departments, projects, locations — that let you slice reports below the account level. If your export carries those dimensions, the importer offers to create them in the Review Segments step.
Is the "Clean up unused" delete safe?
Yes. It only removes accounts with zero journal entries. Any account that already has activity, and reserved system accounts like Retained Earnings, are skipped automatically.
Can I just run Ringbook alongside Xero or QuickBooks instead of replacing it?
Yes — many teams keep their old system as the system of record and use Ringbook as the capture-and-draft layer, exporting entries across at month-end. See Using Ringbook Alongside Xero or QuickBooks.
Something doesn't tie out — who can help?
Email samyip@ringbook.io with your organization ID (from your profile) and your old system's closing Trial Balance, and we'll help you reconcile the opening position.
Import review, history and recovery
The journal importer starts in Book → Import journals. In addition to spreadsheets, supported image imports can extract journal data for review. Check dates and debit/credit signs carefully. Map existing accounts before creating new ones; review account levels, segments and subledgers. Standalone account, segment and subledger imports are available from their respective management areas.
Review the pre-import journal summary and every unresolved mapping. Recognised retained-earnings rows automatically use Retained earnings - opening in Equity, or a suitable existing opening account. There is no separate retained-earnings destination step. Check the account, source date, debit/credit amounts and financial impact in the normal review before confirming. Compare the imported trial balance and prior-year results with your source records.
Import history preserves the run summary and completion details. Undo is available only when the run passes the safety checks shown in its history. Later changes or linked activity can block it. Review those blockers; starting another import is not a substitute for undoing a previous one. Check duplicate warnings before deliberately importing a repeated voucher.
For outbound files, Book has dedicated Xero, QuickBooks Online and MYOB formats. These export base-currency journal lines with no-tax defaults; see accounting exports.