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.
The reasons we hear most
None of them is "the old system was broken". Most are about the South African side of the job — the side that is usually added on as an afterthought.
The returns come out of the ledger
VAT201, EMP201, EMP501, IRP6 and ITR14 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% — inside the same books, not a separate payroll product.
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 R4 299 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.
What comes across, and how
These import from a file today: your chart of accounts, your opening trial balance, customers and suppliers, products, open invoices, open supplier bills, sales leads, employees, payroll year-to-date figures, recurring payroll deductions and bank statements. Everything else needs a little typing. This table shows what happens today, not what we plan to add.
Scroll the table sideways to see every column.
| What | How it moves | Effort |
|---|---|---|
| Chart of accounts | Settings → Data → Import data → Bring your data across, choosing Accounts. Bring your own account codes and names across so the trial balance you are reconciling to still reads the way you know it. Ledgr seeds a standard SA chart if you would rather start there. | Automatic |
| Opening trial balance | The same import, choosing Trial balance. It is posted as an ordinary opening journal — which means you can read it, check it and reverse it if the figures were wrong. A trial balance that does not balance, or that names an account code your chart does not have yet, is refused rather than half-posted. | Automatic |
| Customers and suppliers | The same import, choosing Contacts. Ledgr matches your file's own headings — the name, VAT number, addresses, phone, email and registration number — and shows you a sample of rows before anything is written. A contact already in Ledgr under the same name is not duplicated (any blank details on it are filled in from the file), so you can run it twice. | Automatic |
| Products and services | The same import, choosing Products. Code, name, category, cost, selling price, VAT rate and stock on hand. A quantity on hand comes across as stock on the balance sheet at the item's cost — see opening balances for what that means for the trial balance. | Automatic |
| Open invoices | The same import, choosing Invoices. One invoice per document number, keeping the number, dates and amount still due from your old system. A customer that is not in Ledgr yet is created as it goes — with a name only, which is why contacts come first. | Automatic |
| Bank transactions | Banking → Import & Export. A CSV, OFX or QIF export, or the bank's PDF statement, per account, from any of the nine SA banks Ledgr recognises. Ledgr reads the bank's layout and shows you the transactions before it imports them. | Automatic |
| Employees | Payroll → Employees → Import, from the CSV your old payroll exports. You check how its columns were matched, and see every row that will not import and why, before anything is written. | Automatic |
| Payroll year-to-date figures | Payroll → Take-on, from a template you download and fill in. This is what makes the IRP5 at year end complete when you move mid-tax-year, and what stops the first payslip withholding a whole year of PAYE in one month. | Automatic |
| Recurring payroll deductions | Payroll → Deductions → Import, from a downloadable template. A garnishee order (Emoluments Attachment Order), a union fee, a staff loan repayment, a medical aid or a provident/pension fund contribution is a standing instruction, not a total — it has nowhere to live in the year-to-date figures above, which is why it is its own file. One row per employee per deduction: who it goes to, what kind it is, the calculation, and — for a garnishee order or a loan — the balance still owing, so it stops on its own once that debt is settled. A beneficiary Ledgr has not seen before (the fund, the union, the lender) is created as it goes, and you see the per-row match before anything is written. | Automatic |
| Sales leads | Sales CRM → Leads → Import, or the Settings import choosing Leads. A preview first, on the same file, so the counts you are shown are the counts that happen. | Automatic |
| Bank opening balances | The balance you type on each bank account in Banking is for your reference; the bank balance in the books comes from the opening trial balance, and the dashboard shows the balance printed on the latest statement you import. | 15 minutes |
| Recipes (bills of materials) | A CSV with one row per component, imported under Bills of Materials → Import or during onboarding. Every product code in the file has to be in your catalogue first — Ledgr will not create a product just because a recipe mentions it. | CSV |
| Open supplier bills | The same import, choosing Supplier bills. One bill per supplier invoice, keeping its number and dates, for the amount still owed. Your opening trial balance already holds what you owe suppliers, so these post nothing of their own — paying one clears it once. | Automatic |
| Historical documents | Leave them. Download the PDFs and reports from your old system and archive them — SARS requires you to keep them for five years, but they do not need to be in a live system. | Nothing to do |
Upload the CSV once and Ledgr shows you the columns it matched, which kind of file it looks like, and a sample of its rows — you confirm before anything is written. Headings are matched loosely, so "Customer", "Customer Name" and "Account Name" all find the name column, and amounts are read correctly whatever format your spreadsheet used (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. Where the file says who is a customer and who is a supplier, Ledgr uses it; where it does not — a Xero contacts export carries no type column, and QuickBooks exports customers and vendors as two separate files — Ledgr asks which list you are importing. 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.
Six steps, one cutover date
The whole switch depends on one decision: the date from which Ledgr is the system of record. Everything before it stays where it is; everything after it happens here.
- 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. If neither suits, the first of any month works.
- Get your data out of the old system
Before you cancel anything. You want: your chart of accounts, a trial balance as at the day before cutover, a customer and supplier list, a list of open invoices with one row per invoice, 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.
- 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 you through all of it.
- Import the books, then the people
In this order, through Settings → Data → Import data → Bring your data across: the chart of accounts, the opening trial balance, contacts, products, then open invoices. Then add each bank account under Banking and import a statement covering the cutover date, so the first reconciliation has something to match against.
- Check the balances
Import the open bills, then check the balance sheet against the old system's. This is the step to do with your accountant if you have one — it is fifteen minutes of their time, and opening balances walks through it.
- Run one cycle in parallel, then stop
Keep the old subscription running 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.
The instinct is to bring every transaction across so the reports go back for years. In practice you look at last year's numbers in last year's system once, and then never again. A switch that brings balances and open items gets finished; one that tries to bring the full history tends to stall in week three.
Opening balances
Ledgr keeps a real double-entry general ledger — every document you raise posts to it, and the income statement, balance sheet and trial balance are read from it. So the opening position is an opening journal, and you can import it. Read this section before you pick a cutover date.
- 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 anyway.
- Import your chart of accounts
Through Settings → Data → Import data → Bring your data across, choosing Accounts, if you are keeping your own account codes. It goes first because the trial balance import refuses any line whose account code the chart does not have yet, and tells you which codes are missing.
- Import the opening trial balance
The same import, choosing Trial balance. It posts as an ordinary opening journal, so you can read every line of it and reverse it if the figures turn out to be wrong. It carries the bank, debtors, creditors, fixed assets, loans, equity and VAT balances in one go.
If your product file carries stock quantities and costs, Ledgr already puts that stock on the balance sheet against 3500 Opening Balance Equity — so in the trial balance, change the inventory line's account code to 3500 rather than deleting the line. Deleting it would leave the trial balance out by that amount, and Ledgr refuses a trial balance that does not balance.
- Import products, with stock if you carry it
A product file with a quantity on hand and a cost puts that stock on the balance sheet, valued at the item's cost, against 3500 Opening Balance Equity — which is why the trial balance's inventory line points at 3500 instead. The import tells you if any quantity could not be valued (a product with no cost, or a company with no stock location yet). Once both are in, 3500 should be zero; a balance left there means the take-on is not finished or something came across twice.
- Import the open invoices
The unpaid ones only, with their original numbers and dates. This is what makes aged debtors work and what lets a customer's payment reconcile against the right document.
- Import the open supplier bills
The unpaid ones only, with the supplier's own invoice number and the amount still owed. They arrive without a journal, because the trial balance already holds them.
- Reconcile
Cash, debtors, creditors and stock should agree with the old system, and so should the rest of the balance sheet — the opening journal carries fixed assets, accumulated depreciation, loans, share capital, retained income and the VAT control account, which the document imports above cannot.
Reports → Journals → New journal handles accruals, prepayments, reclassifications and year-end entries. Anything the trial-balance import did not carry, or anything you need to correct afterwards, goes in there — and it is visible in the journals list with everything Ledgr posted itself.
Once a month is agreed, close the period under Reports so a later correction cannot land in a month you have already reported on. Cutting over at the start of a financial year is still the easier choice — less history to reconcile, and one system behind the year-end statements instead of two — but it is no longer a constraint.
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 — and the first Ledgr payslip would recover a whole year of PAYE in one month. Payroll → Take-on imports those figures from a template you download, and the payroll guide covers the fields.
Take-on only carries totals, so a standing garnishee order, union fee, staff loan, medical aid or provident/pension fund deduction has to come across separately — Payroll → Deductions → Import, also from a downloadable template. Do both before the first live run: a deduction left behind in the old system is one nobody notices is missing until the employee asks why their pay went up.
Coming from a particular system
The same steps, in the same words, as the Bring your data across guide inside Ledgr. What you need is the same whichever system you use: your chart of accounts, a trial balance, your contacts, your products and a list of open invoices, in that order. Menus move between versions and plans — if this doesn't match your screen, look for any export or download option on that list.
Sage Business Cloud Accounting
Sage's South African product exports most of this as reports you can save as CSV. If payroll runs in a separate Sage product, its own year-to-date and deduction reports are what the payroll steps read, not the accounting product.
- Chart of accounts — Your chart of accounts (the account list), exported to CSV. Sage's South African help does not document where this export lives, and it differs between versions: look on the account list, or under Reports, for an option that sends it to CSV. The file needs each account's code, name and financial category. Leave the categories as Sage writes them: Ledgr reads all ten (Sales, Cost of Sales, Other Income, Expenses, Income Tax, Current Assets, Non-Current Assets, Current Liabilities, Non-Current Liabilities, Owners' Equity).
- Opening trial balance — Reports → Financial Statements → Trial Balance, then send it to CSV (top right). As at the day before your Ledgr start date. A two-column Debit/Credit trial balance is ideal; a single signed balance column also works. Import it exactly as it comes out — Ledgr reads the report's own layout, so leave the title rows, the group headings and the totals where they are.
- Customers and suppliers — Customers → Reports → List of Customers, sent to CSV; then the matching list report under Suppliers → Reports. One file per list. Keep every column — Ledgr takes the VAT number, the addresses, the phone and the company registration number from whichever of those the report carries. The VAT number matters most: a tax invoice over R5 000 has to carry your customer's VAT number to be a valid one.
- Products and services — Items → Lists → List of Items. Export the list to CSV if your version offers it there; if it does not, look under Reports for an item listing you can send to CSV. Include cost and selling price, and stock on hand if you carry stock.
- Open invoices — Reports → Customers → Customer Balances - Days Outstanding, run in detail rather than as a summary, then sent to CSV. Check the file lists one row per invoice with the amount still due on it. If it shows one line per customer, it is still a summary, and a customer total has nothing Ledgr can turn into documents. Anything already settled is left out and counted for you, so it cannot be double-counted against the opening trial balance you have already brought in. Import it exactly as it comes out — Ledgr reads the report's own layout, so leave the title rows, the group headings and the totals where they are.
- Open supplier bills — Reports → Suppliers → Supplier Balances - Days Outstanding, run in detail rather than as a summary, then sent to CSV. Check the file lists one row per supplier invoice with the amount still due on it; a line per supplier is a summary. Anything already settled is left out and counted for you, so it cannot be double-counted against the opening trial balance you have already brought in.
- Payroll year-to-date figures — Your payroll product's year-to-date or EMP501-style totals report per employee. Per employee since 1 March: employee number (or ID or tax number), periods worked, gross cash remuneration, PAYE, annual payments and the PAYE on them, UIF (employee and employer), SDL, pension (employee and employer), medical aid (employee and employer), the medical tax credit already applied, and other fringe benefits. Download the template for the exact columns.
- Recurring payroll deductions — Your payroll product's third-party/beneficiary deduction schedule, not the accounting product. One row per employee per deduction. For each: who it goes to, what kind it is, the calculation (a fixed rand amount or a percentage), and — for a garnishee order or a loan — the total still owing, so it stops on its own once that debt is settled.
- SARS filing history — From SARS eFiling rather than your old accounting package. EMP201 per month and VAT201 per period for the current year, last year's IRP5/IT3(a) totals, the last assessed taxable income for the IRP6 basic amount, and any assessed loss carried forward.
- Sales leads — Not applicable — your accounting package has no pipeline to export. If you keep leads in a separate CRM, export its lead list to CSV; otherwise the spreadsheet is your source.
- Recipes (bills of materials) — Not applicable — your accounting package has no recipes to export. If you run a separate manufacturing tool, export its bill of materials list to CSV; otherwise the spreadsheet is your source.
Sage 50cloud Pastel Partner / Xpress
Desktop Pastel keeps its data locally, so start by taking a full backup, dated and kept somewhere safe. (Sage 200 Evolution is a different product with its own import and export utility; these steps do not apply to it.)
- Chart of accounts — Pastel Explorer → General Ledger → right-click the grid → Export to Excel, then save it as CSV. Use the Explorer export rather than File → Export/Import, because of what each file says about an account's category. The Explorer grid carries the words — Sales, Other Income, Cost of Sales, Expenses — and Ledgr reads those. The File → Export/Import general-ledger file says only I (income statement) or B (balance sheet), which tells Ledgr which statement an account belongs on and nothing about which side of it, so those rows are refused rather than guessed at. Keep Code, Name and Category, and if you do use File → Export/Import for anything else, tick Include Field Names before you process or the file arrives with no header row and nothing can be matched to anything.
- Opening trial balance — Pastel Explorer → General Ledger → right-click the grid → Export to Excel, then save it as CSV. The same one export as the chart of accounts, keeping the Code and balance columns as well. Import it exactly as it comes out — Ledgr reads the report's own layout, so leave the title rows, the group headings and the totals where they are. Take it on the day before your Ledgr start date: the Explorer grid shows balances as they are now, so a copy taken later is a different trial balance.
- Customers and suppliers — File → Export/Import → Export Customer Accounts, then again with Export Supplier Accounts. One file per list, and tick Include Field Names before you process — without it there is no header row and nothing can be matched. Pastel keeps the company name in the Description column and the buyer's name in Contact Person; Ledgr reads the company name. Bring your whole customer list across in one file — Ledgr takes up to 5 000 rows at a time.
- Products and services — File → Export/Import → Export Inventory Items (tick Include Field Names). If the file has no cost or quantity on it, add those two columns from Pastel Explorer → Inventory. Pastel keeps the item name in the Description column; Ledgr reads it from there. If you use more than one store, Pastel writes the same item once per store: combine each item into a single row carrying its total quantity before you import, because Ledgr keeps the first row for each item code and skips the rest.
- Open invoices — View → Customers → Monthly/Periodic → Invoices Due, then Print To ASCII with Show Details switched off; open that file in Excel as comma-delimited text and save it as CSV. That gives one row per open invoice — Invoice Number, Invoice Date, Customer and Still to Pay — and Ledgr reads Still to Pay as the amount outstanding. Age Analysis is the wrong report here: it totals per customer rather than per invoice. File → Export/Import cannot produce this at all; it exports account details, not transactions. Anything already settled is left out and counted for you, so it cannot be double-counted against the opening trial balance you have already brought in.
- Open supplier bills — View → Suppliers → Monthly/Periodic → Invoices Due, then Print To ASCII with Show Details switched off; open that file in Excel as comma-delimited text and save it as CSV. One row per open supplier invoice — Invoice Number, Invoice Date, Supplier and Still to Pay — and Ledgr reads Still to Pay as what is owed. Anything already settled is left out and counted for you, so it cannot be double-counted against the opening trial balance you have already brought in.
- Payroll year-to-date figures — Sage Pastel Payroll & HR (or Sage Business Cloud Payroll) — an employee year-to-date totals report, not the accounting product. Per employee since 1 March: employee number (or ID or tax number), periods worked, gross cash remuneration, PAYE, annual payments and the PAYE on them, UIF (employee and employer), SDL, pension (employee and employer), medical aid (employee and employer), the medical tax credit already applied, and other fringe benefits. Download the template for the exact columns. Sage payroll keeps recurring deductions — garnishee orders (Emoluments Attachment Orders), union fees, medical aid, provident or pension fund, staff loans — as its own "Third Party" setup rather than a line in this report, so they do not travel with this file. Bring them across next, with the recurring deductions import below, once the employee and this file are both in.
- Recurring payroll deductions — Sage Pastel Payroll & HR's "Third Party" setup — garnishees/EAOs, union fees, medical aid, provident or pension fund, staff loans. Pastel keeps each of these as its own third-party recipient rather than a row in an export, so there is no single file to pull — list them out per employee: the recipient's name, what kind it is (an Emoluments Attachment Order is Ledgr's "Garnishee order"), the amount or percentage, and for an EAO or a loan the total still owed, which is what makes it stop automatically once paid off.
- SARS filing history — From SARS eFiling rather than your old accounting package. EMP201 per month and VAT201 per period for the current year, last year's IRP5/IT3(a) totals, the last assessed taxable income for the IRP6 basic amount, and any assessed loss carried forward.
- Sales leads — Not applicable — Pastel has no pipeline to export. If you keep leads in a separate CRM, export its lead list to CSV; otherwise the spreadsheet is your source.
- Recipes (bills of materials) — Not applicable — Pastel has no recipes to export. If you keep recipes in a separate manufacturing package, export its bill of materials list; otherwise the spreadsheet is your source.
Xero
Xero exports each list separately — there is no single bundle — and its reports export to Excel, Google Sheets or PDF, so save a report as CSV before you upload it. Bank statement lines can come from the bank itself instead.
- Chart of accounts — Accounting → Chart of accounts → Export. Xero's own chart-of-accounts CSV. Change nothing in it. The asterisks on the required columns ("*Code", "*Name", "*Type") are fine, and so are Xero's own account types — Bank, Current Asset, Fixed Asset, Current Liability, Non-current Liability, Direct Costs, Revenue, Expense, Equity and the rest. Ledgr reads them, and it does not read your Xero account numbers as though they were South African ones.
- Opening trial balance — Reporting → All reports → Trial Balance → Export → Excel. Set the date to the day before your Ledgr start date. Xero's reports export to Excel, Google Sheets or PDF — there is no CSV option — so open the Excel file and save it as CSV. Import it exactly as it comes out — Ledgr reads the report's own layout, so leave the title rows, the group headings and the totals where they are.
- Customers and suppliers — Contacts → All contacts → the three-dot menu → Export. Keep every column. Two things about this file are worth knowing. It does NOT say who is a customer and who is a supplier — Xero only decides that once you have raised a transaction — so use the Customers and Suppliers tabs and bring them across as two files, and Ledgr will ask you which one you are importing. And its "PO" columns are the postal address while its "SA" columns are the street address (Street Address, nothing to do with South Africa); Ledgr keeps them apart.
- Products and services — Sales → Products and services → Export → CSV. The item list as CSV, unchanged. Xero states a purchase price and a sales price on the same row: Ledgr takes your SELLING price from Sales Unit Price and your cost from Purchases Unit Price, and reads the sales tax rate rather than the purchases one. It names each product by its Name and keeps the Sales Description, so the wording that prints on a customer's invoice line comes across too.
- Open invoices — Sales → Invoices → Awaiting Payment tab → Export. The awaiting-payment list, which excludes paid invoices for you. If you export everything instead, that is fine: Xero writes a Status column and Ledgr reads it, so paid, voided, deleted and draft documents are left out and it tells you how many. Xero exports at most 500 transactions at a time — if you have more open than that, narrow the list by date and export it in batches. Anything already settled is left out and counted for you, so it cannot be double-counted against the opening trial balance you have already brought in.
- Open supplier bills — Purchases → Bills → Awaiting Payment tab → Export. The awaiting-payment list, which leaves paid bills out for you. A full export is fine too: Ledgr reads its Status column and leaves paid, voided and draft bills out. Anything already settled is left out and counted for you, so it cannot be double-counted against the opening trial balance you have already brought in.
- Payroll year-to-date figures — Your payroll product's year-to-date totals per employee. Per employee since 1 March: employee number (or ID or tax number), periods worked, gross cash remuneration, PAYE, annual payments and the PAYE on them, UIF (employee and employer), SDL, pension (employee and employer), medical aid (employee and employer), the medical tax credit already applied, and other fringe benefits. Download the template for the exact columns.
- Recurring payroll deductions — Your payroll product's recurring deduction or third-party payment schedule. One row per employee per deduction, with the beneficiary, the kind, the calculation and — for anything with a fixed total to pay off — the balance still owing.
- SARS filing history — From SARS eFiling rather than your old accounting package. EMP201 per month and VAT201 per period for the current year, last year's IRP5/IT3(a) totals, the last assessed taxable income for the IRP6 basic amount, and any assessed loss carried forward.
- Sales leads — Not applicable — your accounting package has no pipeline to export. The pipeline is normally kept in a spreadsheet or a separate CRM. Export whichever holds it, one row per person.
- Recipes (bills of materials) — Not applicable — your accounting package has no recipes to export. Recipes normally live in a spreadsheet or a dedicated MRP tool. Export whichever holds them, one row per component.
QuickBooks Online
QuickBooks exports its lists to Excel, and its reports to Excel or CSV. Save anything
that comes out as Excel to CSV before uploading — Ledgr's import reads CSV, not
.xlsx.
- Chart of accounts — Reports → Standard reports → Account List → Export/Print → Export to Excel. Save the exported file as CSV. Do this before you export anything else: switch account numbers on under Settings → Account and settings → Advanced → Chart of accounts, and turn on BOTH Enable account numbers and Show account numbers, then give every account a number. Account numbers are optional in QuickBooks, and without Show account numbers your trial balance prints account names only — which is what Ledgr matches opening balances on, so it would be refused.
- Opening trial balance — Reports → Standard reports → Trial Balance → Export/Print → Export as CSV. Set the report date to the day before your start date first. Import it exactly as it comes out — Ledgr reads the report's own layout, so leave the title rows, the group headings and the totals where they are. Do check that your accounts have numbers on them first — Ledgr matches opening balances on the account code, so a trial balance that only names its accounts has nothing to land in.
- Customers and suppliers — All apps → Customer Hub → Customers & leads → Export → Export to Excel; then All apps → Expenses & Bills → Vendors → Export. Two files. QuickBooks list exports come out as Excel, so save each one as CSV before you upload it. Neither file says which list it is, so Ledgr will ask — customers first, then suppliers.
- Products and services — All apps → Sales & Get Paid → Products & services → More → Run reports → Export/Print → Export to Excel. QuickBooks has no plain item export, so this one comes out as a report; save it as CSV and import it as it is. Customise the report's columns first if SKU, Cost and Quantity on hand are not showing. Import it exactly as it comes out — Ledgr reads the report's own layout, so leave the title rows, the group headings and the totals where they are.
- Open invoices — Reports → Standard reports → Open Invoices → Export/Print → Export as CSV. The open-invoices report, which excludes paid ones by definition. Import it exactly as it comes out — Ledgr reads the report's own layout, so leave the title rows, the group headings and the totals where they are. Anything already settled is left out and counted for you, so it cannot be double-counted against the opening trial balance you have already brought in.
- Open supplier bills — Reports → Standard reports → Unpaid Bills → Export/Print → Export as CSV. The unpaid-bills report, which excludes paid ones by definition. Import it exactly as it comes out — Ledgr reads the report's own layout, so leave the title rows, the group headings and the totals where they are. Anything already settled is left out and counted for you, so it cannot be double-counted against the opening trial balance you have already brought in.
- Payroll year-to-date figures — Your payroll product's year-to-date totals per employee. Per employee since 1 March: employee number (or ID or tax number), periods worked, gross cash remuneration, PAYE, annual payments and the PAYE on them, UIF (employee and employer), SDL, pension (employee and employer), medical aid (employee and employer), the medical tax credit already applied, and other fringe benefits. Download the template for the exact columns.
- Recurring payroll deductions — Your payroll product's recurring deduction or third-party payment schedule. One row per employee per deduction, with the beneficiary, the kind, the calculation and — for anything with a fixed total to pay off — the balance still owing.
- SARS filing history — From SARS eFiling rather than your old accounting package. EMP201 per month and VAT201 per period for the current year, last year's IRP5/IT3(a) totals, the last assessed taxable income for the IRP6 basic amount, and any assessed loss carried forward.
- Sales leads — All apps → Customer Hub → Customers & leads → the Leads tab (Plus and Advanced only). Export the lead list from there if it offers an export; otherwise, or on a plan with no Customer Hub, the spreadsheet you keep your enquiries in is your source. One row per person.
- Recipes (bills of materials) — Not applicable — your accounting package has no recipes to export. Export from whichever tool holds the bills of materials, one row per component.
Excel, Google Sheets or paper
The easiest switch of all, because there is no export to deal 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 chart of accounts, an opening trial balance, a customer list, a list of open invoices and a price list are all you need to start. Payroll and bank statements have their own imports, listed in the table above, and everything from the cutover date onwards is recorded in Ledgr.
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. API keys come with Business and above.
The same things, different names
The concepts do not change when you move — mostly just the names.
Scroll the table sideways to see every column.
| What you probably call it | Where it is in Ledgr |
|---|---|
| Customer, debtor | A contact with the type Customer, under Contacts |
| Supplier, creditor, vendor | A contact with the type Supplier |
| Sales invoice | Tax invoice, one of ten document types in Invoicing |
| Estimate, quotation | Quote — convert it to an invoice when it is accepted |
| Supplier invoice, purchase invoice | Bill, under Expenses & Bills |
| Chart of accounts, nominal ledger | Accounts — the categories every module codes to |
| Manual journal, general journal | Journal — Reports → Journals → New journal, for accruals, prepayments and year-end entries. Save it as a draft or post it straight to the trial balance |
| Bank feed rules, cash coding | Bank rules, under Banking. You run them from the Bank Rules tab — preview what they would do, then apply — and they reach every unreconciled line whatever brought it in: a statement you imported, one your bank emailed in, or an Investec feed |
| Aged receivables / payables | Aged debtors and aged creditors, under Reports |
| VAT return | VAT201, in the SARS returns centre |
| Payroll submission | EMP201 monthly and EMP501 twice a year |
| Tracking category, class, department | A separate company if the entities are real, or an expense category if not |
| Attachment, source document | A receipt captured on the expense, or a file on the document |
Cutover checklist
Out of the old system
- Chart of accounts
- Trial balance at the day before cutover
- Customer and supplier lists as CSV
- Open invoices, one row per invoice
- Aged debtors and aged creditors, for your records
- 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
- Chart of accounts and opening trial balance imported
- 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
- Stock brought in with the products, and 3500 Opening Balance Equity back to zero
- 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 extra work — the old system simply stays available while you check that 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 ten 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, but it needs more care. 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, 5 documents 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 chart of accounts, trial balance, contact, invoice, product and statement imports are all self-service, and for anything larger the REST API takes the same records directly (API keys come with Business and above). If you are stuck on a specific file, our support team 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.