Switching

Move your books across
without stopping the business

You do not have to drag five years of history with you. Bring the balances, the people you invoice and the bank, pick a date, and start posting. Most small businesses are running on Ledgr the same morning they decide to move.

Why people move

The reasons we hear most

None of them are "the old system was broken". They are usually about the South African half of the job — the half that gets bolted on afterwards everywhere else.

The returns come out of the ledger

VAT201, EMP201, EMP501, IRP6 and IT14 are computed from the transactions you already posted, not retyped into a separate return.

PAYE on the current tables

7 2026/27 brackets, the R17 820 primary rebate, UIF capped at R177.12 a month each side and SDL at 1% — no add-on, no separate payroll subscription.

Rands, not a currency setting

VAT at 15% on every line, the SARS mileage rate, B-BBEE tracking and IFRS-for-SMEs statements are the defaults rather than a configuration exercise.

It keeps working in the dark

Load shedding does not stop invoicing. Work offline against a local copy and Ledgr syncs when the power and the line come back.

Pay for the modules you switch on

From R0 to R1 799 a month per business, not per user. Enterprise includes 2 companies and further entities are R249 each, carrying every module you are already licensed for. The plan comparison shows exactly what unlocks where.

You can leave the same way you came

Settings → Data → Export all data hands back a ZIP of CSVs whenever you want it, on every plan including Free. No exit fee, no export ticket.

Be realistic

What comes across, and how

Four things import from a file today: contacts, invoices, products and bank statements. The rest is a small amount of typing. This table is what actually happens, not what we would like to happen.

"Automatic" means a file you already have, uploaded through a wizard in the app. Nothing here needs a support ticket or a paid migration service.
What How it moves Effort
Customers & suppliers Settings → Data → Import data. Upload a CSV, Ledgr detects the name, email and phone columns, shows you the first ten rows, then imports. Names that already exist are skipped, so you can run it twice. Automatic
Bank transactions Banking → Import. CSV or OFX per account, from any of the nine supported SA banks. Map the columns once and the mapping is remembered. Automatic
Invoices Settings → Data → Import data, then choose Invoices. One row becomes one invoice, keeping the number, dates and balance from your old system. A customer that is not in Ledgr yet is created as it goes. Automatic
Products & price list Settings → Data → Import data, then choose Products. Code, name, category, cost, selling price, VAT rate and stock on hand. Automatic
Bank & stock opening balances The opening balance on each bank account, and an opening stock take per location. See opening balances below for what a trial balance can and cannot carry across today. 15 minutes
Unpaid supplier bills Captured by hand under Expenses → Bills so the payables side of the dashboard is right on day one. There is no bill import yet. Typing
Employees & payroll year-to-date Capture each employee in Payroll before the first run. If you move mid-tax-year, enter their year-to-date earnings and PAYE so the IRP5 at year end is complete. Per employee
Historical documents Leave them. Download the PDFs and reports from your old system and archive them — SARS wants them kept for five years, not kept in a live system. Nothing to do
How the importer reads your file.

Upload the CSV once and Ledgr shows you the columns it matched, which of the three targets the file looks like, and the first ten rows — you confirm before anything is written. Headings are matched loosely, so "Customer", "Client" and "Account Name" all find the same field, and amounts survive whatever your spreadsheet did to them (R 1 500,50 and 1,500.50 both read as the same number). Dates are read day-first, the South African way: 03/04/2026 is 3 April.

Two things to know. Contact rows arrive as Customers, so split suppliers into their own file or change the type afterwards. And an invoice whose number already exists in Ledgr is skipped rather than duplicated — which means a part-finished import is safe to run again.

The plan

Six steps, one cutover date

The whole switch hangs off one decision: the date from which Ledgr is the system of record. Everything before it stays where it is; everything after it happens here.

  1. Pick the cutover date

    The first day of a VAT period is the easiest — your old system files the period that just closed, Ledgr files the next one, and no return is split across two systems. The start of a financial year is even cleaner if you can wait for it. Failing both, the first of any month works.

  2. Get your data out of the old system

    Before you cancel anything. You want: a customer and supplier list as CSV, a trial balance as at the day before cutover, an aged debtors and aged creditors listing, your product and price list, and PDFs of the last few years of statements and returns. See from your system for where these usually live.

  3. Set Ledgr up properly once

    Create the account, then in Settings fill in the registered name, registration number, VAT number, financial year end, address, banking details and logo. In Invoicing → Settings → Numbering, set the prefix and next number so your invoice sequence carries on from where the old system stopped rather than restarting at 1. The getting-started guide walks the whole thing.

  4. Import the people and the bank

    Contacts first, through Settings → Data → Import data. Then add each bank account under Banking and import a statement covering the cutover date, so the first reconciliation has something to match against.

  5. Put the balances in

    Bank opening balances, the open invoices, the open bills and an opening stock take. This is the step to do with your accountant if you have one — it is fifteen minutes of their time, and opening balances explains which parts of a trial balance Ledgr can hold today and which it cannot.

  6. Run one cycle in parallel, then stop

    Keep the old subscription alive for one month. Reconcile the bank in Ledgr, run the month-end reports and compare them with the old system's. When they agree — and they will, because they are built from the same bank statement — cancel the old one. Keep its exports.

Do not migrate history you will never open.

The instinct is to bring every transaction across so the reports go back for ever. In practice you look at last year's numbers in last year's system, once, and then never again. Balances plus open items is the switch that finishes; full history is the one that stalls in week three.

The one accounting step

Opening balances

Ledgr builds its statements straight from your documents — invoices, bills, expenses, payroll and bank balances — rather than from posted journals. That makes most of the switch easier and one part of it a manual reconciliation. Read this section before you pick a cutover date.

  1. Print the trial balance as at the day before cutover

    If you cut over on 1 March, you want the trial balance at 28 or 29 February. Keep it — it is the document you check everything against, and your accountant will want it in the year-end file regardless.

  2. Set each bank account's opening balance

    Add the account under Banking and enter the balance as at the cutover date, from the same statement. Everything imported afterwards moves that figure, so the cash position on the dashboard is right from day one.

  3. Import the open invoices

    The unpaid ones only, with their original numbers and dates, through Settings → Data → Import data. This is what makes aged debtors work and what lets a customer's payment reconcile against the right document.

  4. Capture the open supplier bills

    Under Expenses → Bills, by hand — there is no bill import yet. Only the ones still unpaid at cutover.

  5. Add stock, if you carry it

    An opening stock take per location in Inventory, valued at the costing method you intend to keep using — FIFO, LIFO or weighted average. The value should agree with the inventory line on the trial balance.

  6. Reconcile against the trial balance

    Cash, debtors, creditors and stock should now agree with the old system. Note the difference on the remaining lines — that is the gap described below.

The rest of the trial balance has nowhere to go yet.

Fixed assets and accumulated depreciation, loans, share capital, retained income and the VAT control account are balances that only a general journal can carry, and Ledgr has no journal posting today. The trial balance and general ledger reports say so rather than showing you a made-up figure.

In practice that means two things. Cutting over at the start of a financial year is worth waiting for, because it is the point at which those balances matter least. And until journal posting ships, your annual financial statements are still prepared by your accountant from Ledgr's exports plus the opening trial balance — which is what most SMEs were doing anyway.

Mid-year payroll needs one extra step.

The South African tax year runs 1 March to 28 February. Moving payroll on 1 March means there is nothing to carry. Moving in, say, September means you must capture each employee's year-to-date remuneration, PAYE, UIF and SDL before the first Ledgr run, otherwise the EMP501 reconciliation and the IRP5 certificates will only reflect the months processed here. The payroll guide covers the fields.

Where to find things

Coming from a particular system

Menu names differ by product and version, so treat these as directions rather than exact clicks. What you are hunting for is the same everywhere: a CSV of contacts, a trial balance, and an aged listing.

Sage Business Cloud Accounting

Sage exports lists as CSV from the list screens themselves — open your customer list, then look for the export or download action. Take customers and suppliers separately if it lets you.

  • Customer and supplier lists as CSV
  • Trial balance at the cutover date, as PDF and CSV
  • Aged debtors and aged creditors listings
  • Product and price list
  • VAT returns already filed, as PDF, for your records

Sage Pastel Partner / Sage 50

Desktop Pastel keeps its data locally, so start by taking a backup you can always go back to. Exports come out of the reports area rather than the list screens.

  • Full backup, kept somewhere safe and dated
  • Customer and supplier masterfiles exported to CSV or Excel
  • Trial balance and balance sheet at the cutover date
  • Inventory valuation report if you carry stock
  • Employee masterfile and year-to-date figures if payroll is in there

Xero

Xero exports contacts to CSV from the contacts screen and has an export-your-data option that bundles the standard lists. Reports export to PDF and Excel individually.

  • Contacts CSV — tidy the headings if the file has more columns than you need
  • Trial balance at the cutover date
  • Aged receivables and aged payables, detailed
  • Inventory items list
  • Bank statement lines, or re-download the statements from the bank

QuickBooks Online

QuickBooks exports customer and supplier lists to Excel from each list screen, and most reports export as CSV. Save them as CSV before uploading — Ledgr's import reads CSV, not .xlsx.

  • Customer and supplier lists, saved as CSV
  • Trial balance at the cutover date
  • Accounts receivable and payable ageing detail
  • Products and services list
  • Chart of accounts, to sanity-check against Ledgr's

Excel, Google Sheets or paper

The easiest switch of the lot, because there is no export to wrestle with. Put your customer list into a sheet with a Name column, an Email column and a Phone column, save it as CSV, and upload it.

  • One row per customer, one header row, nothing merged
  • Your last bank statement as CSV or OFX from the bank's portal
  • A list of who still owes you what, and what you still owe
  • Your bank balance on the cutover date

Something else entirely

If it can produce a CSV, the importer will probably take it. A customer list, an open-invoice listing and a price list are the whole migration — the rest is your own bookkeeping, in your own system, from the cutover date onwards.

For a large or unusual move, the REST API takes contacts, invoices and products directly, which turns a one-off migration into a short script.

Translation

The same things, different names

Nothing conceptual changes when you move. Mostly the words do.

What you probably call itWhere it is in Ledgr
Customer, debtorA contact with the type Customer, under Contacts
Supplier, creditor, vendorA contact with the type Supplier
Sales invoiceTax invoice, one of nine document types in Invoicing
Estimate, quotationQuote — convert it to an invoice when it is accepted
Supplier invoice, purchase invoiceBill, under Expenses & Bills
Chart of accounts, nominal ledgerAccounts — the categories every module codes to
Manual journal, general journalNo equivalent yet — see opening balances
Bank feed rules, cash codingBank rules, under Banking — they run on every transaction, however it arrived: a statement you imported, one your bank emailed in, or an Investec feed
Aged receivables / payablesAged debtors and aged creditors, under Reports
VAT returnVAT201, in the SARS returns centre
Payroll submissionEMP201 monthly and EMP501 twice a year
Tracking category, class, departmentA separate company if the entities are real, or an expense category if not
Attachment, source documentA receipt captured on the expense, or a file on the document
Before you cancel the old subscription

Cutover checklist

Out of the old system

  • Customer and supplier lists as CSV
  • Trial balance at the day before cutover
  • Aged debtors and aged creditors
  • Inventory valuation, if you carry stock
  • Employee year-to-date figures, if you run payroll
  • PDFs of filed VAT and payroll returns
  • PDFs of the last two years of annual financial statements
  • A final backup, if it is desktop software

Into Ledgr

  • Company details, VAT number and financial year end captured
  • Invoice numbering continues the old sequence
  • Logo, default terms, banking details and footer set
  • Contacts imported and spot-checked
  • Products imported, prices and VAT rates checked
  • Bank accounts added, opening balances set, one statement imported
  • Open invoices imported, open bills captured
  • Opening stock take done, if you carry stock
  • Users invited with the right roles, 2FA switched on
  • Balance sheet agrees with the old system at the cutover date

Questions about switching

How long does it actually take?

A service business with a few dozen customers and no stock: a morning. Add inventory and payroll and it is a day, most of which is capturing employees. The parallel month afterwards is not work — it is the old system sitting there unused while you check the numbers agree.

Can I keep my invoice numbers?

Yes, and you should. Invoicing → Settings → Numbering takes a prefix and a starting number for each of the nine document types. Set the next number to one past your last invoice in the old system and the sequence is unbroken.

What if I am mid-VAT-period?

It works, it is just more careful. File that period from whichever system holds most of it, and make sure the other system's transactions for those weeks are included in the figures. Cutting over on the first day of a period avoids the whole question, which is why it is worth waiting a few weeks for.

Can I try Ledgr before committing to the move?

That is what the Free plan is for — one user, five invoices a month, no card and no trial clock counting down. Set up your company details, import your contacts and issue a real invoice. Nothing you enter is thrown away when you upgrade.

Do you do the migration for me?

There is no paid migration service and no queue to wait in. The contact, invoice, product and statement imports are all self-service, and for anything larger the REST API takes the same records directly. If you are stuck on a specific file, support will look at it.

What happens to my data if I later leave?

Settings → Data → Export all data produces a ZIP of CSVs — contacts, invoices and their lines, expenses, bills, products and time entries — on any plan, at any time, without asking anyone. See data portability.

My accountant works in something else. Does that matter?

No. Give them an Accountant or Tax Practitioner login and they work directly in your books, or export the CSVs and reports they ask for. There is more on how practices use Ledgr across a client base on the accountants page.

Pick a date and start

Create the account today, set it up properly, and cut over on the first of the month.