BasisBasis
Getting Started

Migration

Move your master data and opening balances from a spreadsheet or another accounting system into Basis.

Choose a clean cutover date — usually the first day of a month or financial year. Everything before that date goes in as opening balances; new transactions start from that date forward.

Migration Overview

Basis does not import historical transaction history. The recommended migration path is:

  1. Set your cutover date (start of month or financial year).
  2. Import or manually create Chart of Accounts.
  3. Import or manually create Parties (customers & suppliers).
  4. Import or manually create Items (if using inventory).
  5. Enter Opening Balances — GL accounts, outstanding AR/AP invoices, and inventory stock as of the cutover date.
  6. Start recording new transactions in Basis from the cutover date.
Migration overview

Step 1 — Import Master Data

Basis supports CSV import for three master data types. Download the CSV template from each import screen — it includes all columns with example data and column descriptions.

Chart of Accounts

Route: /admin/chart-of-accountsImport CSV button.

If your existing system uses a similar account structure, export it and reformat to match the Basis template. Otherwise, use the built-in default chart (installed when you create the business) and add or rename accounts manually.

CSV columns: Code, Name, AccountType, AccountSubType, IsActive.

Parties (Customers & Suppliers)

Route: /master-data/partiesImport CSV button.

CSV columns: Name (required), PartyType (Customer / Supplier / Both), TaxNumber, Email, Phone, Address, CreditLimit, PaymentTermDays.

Items

Route: /master-data/itemsImport CSV button.

CSV columns: Code, Name (required), ItemType (Goods / Service), Unit, Category, SalePrice, PurchasePrice, TaxRate, TrackInventory.

CSV import uses UTF-8 encoding. Date fields use YYYY-MM-DD format. Number fields are plain numbers — no currency symbols or thousand separators. Boolean fields: true / false.

Step 2 — Enter Opening Balances

After master data is in place, go to Settings → Opening Balances and enter:

  • GL Accounts tab — your trial balance as of the cutover date (debit/credit for every account with a non-zero balance).
  • AR/AP Outstanding Bills tab — each unpaid sales invoice and purchase invoice that existed before the cutover date, with the remaining outstanding amount.
  • Inventory Stock tab — opening quantity and unit cost per item per location.

See the Opening Balances guide for full field-by-field instructions.

Step 3 — Verify

After saving opening balances, run these reports to confirm accuracy:

  • Trial Balance — should match your source system's trial balance as of the cutover date.
  • AR Aging — should list all outstanding customer invoices you entered.
  • AP Aging — should list all outstanding supplier invoices you entered.
  • Stock Balance — should match your physical stock count at cutover.
Do not record new transactions until you have verified all three opening balance tabs are correct. Corrections after transactions have been posted are significantly more complex.

Historical Transaction History

Basis does not import historical transactions from other systems. Your old system remains the archive for history before the cutover date. Basis starts fresh from the opening balance date.

If you need to reference a historical invoice from your old system, keep that system accessible or export its data to PDF/Excel before decommissioning.

Backup Before Migrating

For self-hosted deployments, create a backup of the data directory before starting import:

cp -r /data /data-backup-before-migration

This lets you restore to a clean state if anything needs to be redone.

  • Chart of Accounts — create accounts before entering GL balances
  • Parties — create customers/suppliers before entering AR/AP bills
  • Items — create items before entering inventory stock
  • Opening Balances — detailed field-by-field guide
  • Reports — Trial Balance, AR Aging, AP Aging, Stock Balance