Looks like you’re in the United States.

Skip to content

GETTING STARTED

Importing Data

Import people, businesses, products & services, and chart of accounts from CSV files to get your account set up quickly.

Watch the Importing Data tutorial 4 min 44 sec

Overview

Beeswax lets you bulk-import data from CSV files so you can get up and running quickly — especially useful when migrating from another system. You can import four types of data:

  • People — contacts and users
  • Businesses — clients and suppliers
  • Products & Services — items you buy and sell
  • Chart of Accounts — your transaction accounts (income, expense, asset, loan, and transfer accounts)

Each import type has a downloadable CSV template you can use as a starting point.

Note: Bank statement imports are handled separately via Money > Bank Import. See the Bank Import help article for details on importing bank CSV files.


Getting Started

Start an import from the list you're importing into: People, Businesses, Products & Services or Chart of Accounts. Click the cloud button in the toolbar and choose Import. This opens the first step for that type of record.

The first step has a Download Template button. The template has the correct column headers and a few example rows. Download it, replace the examples with your own records, save it as a CSV, then upload it.

The Import link in the breadcrumb at the top of each import step opens the Data Imports page. It has a card for each of the four types, with an Import button and a Download CSV Template link, and an Import History button.

Note: Importing is not available on the Free plan.

Import in this order

  1. Chart of Accounts
  2. Businesses
  3. People
  4. Products & Services

Products post to your income and expense accounts, and people belong to businesses, so those need to be in place first.


The Import Workflow

Every import follows the same four-step process:

Step 1 — Select File

Choose your CSV file, then click Upload and Preview.

Requirement Detail
File format CSV (.csv)
Encoding UTF-8 recommended
First row Must contain column headers
Maximum size 10 MB

Step 2 — Preview

After uploading, Beeswax shows how many rows it found and a preview of the first five, so you can check the data before going on. If something looks wrong, click Upload Different File. Otherwise, click Continue to Field Mapping.

Step 3 — Field Mapping

Each row shows one column from your CSV: its header, the value from your first row, and the Beeswax field it maps to. When a header matches a template column, Beeswax picks the field for you. Otherwise, choose the field from the dropdown, or leave it blank ("Don't import") to skip the column. Each field can only be used once.

Required fields are flagged with a Required badge. Start Import stays disabled until every required field is mapped, and Beeswax lists the missing ones beside it.

Import Options

Option Description
Update Existing Records When enabled, if a matching record is found (by email for people, by name for businesses and accounts, by title for products), the existing record is updated instead of creating a duplicate. The field used for matching is locked while this is on.

Step 4 — Complete

Once the import completes, you see a summary showing:

  • Number of records created
  • Number of records updated (if Update Existing was enabled)
  • Number of failures with error details

If any rows fail, the results page lists the first ten with the row number and the reason, so you can fix them in your CSV and click Import Again. The row numbers match your spreadsheet: the header row is row 1, so your first record is row 2.

Note: Large imports (over 500 KB or more than 100 rows) are processed in the background. You are taken to a results page that refreshes itself every few seconds, and a message appears when the import has finished.


Importing People

Import contacts into your account. Each person is associated with a business. The template has no business column, but you can add one (headed company_name, company, business or organisation). If the business doesn't exist yet, it is created as a client. If no business name is provided, the person is assigned to your default company.

CSV Template Fields

Field Required Description
first_name Yes Person's first name
last_name Yes Person's last name
email Yes Email address (used to match existing records when updating)
address No Street address
city No City or town
state No State or region
postcode No Postal or ZIP code
country No Country
phone No Phone number
mobile No Mobile number
fax No Fax number
company_name No Not in the template; add the column yourself. Business to associate this person with — created as a client if it does not exist

Matching for Updates

When Update Existing Records is enabled, people are matched by email address and business within your account. If a person with the same email already exists at the same business, their details are updated.


Importing Businesses

Import client and supplier businesses into your account.

CSV Template Fields

Field Required Description
name Yes Business name (must be unique within your account). New businesses are created as clients
address No Street address
city No City or town
state No State or region
postcode No Postal or ZIP code
country No Country
phone No Phone number
web_address No Website URL

Matching for Updates

When Update Existing Records is enabled, businesses are matched by name (case-insensitive) within your account.


Importing Products & Services

Import the items you buy and sell. These appear as line items when creating invoices and expenses.

CSV Template Fields

Field Required Description
title Yes Item name (must be unique within your account)
description No Item description
kind Yes One of: Sell, Buy, or Buy & Sell
unit Yes One of: Units, Hours, or Days
sell_amount Yes Default sell price
buy_amount No Default buy price
sell_account_name For items you sell Name of the income account that sales post to, exactly as it appears in your chart of accounts. Not needed for Buy items
buy_account_name For items you buy Name of the expense account that purchases post to. Needed whenever the buy amount is more than zero
item_category_name No Item category name — created automatically if it does not exist (defaults to "Main")
active No Whether the item is active — accepts: true, false, yes, no, 1, 0

Validation Rules

  • Kind must be exactly one of: Sell, Buy, or Buy & Sell (case-insensitive)
  • Unit must be exactly one of: Units, Hours, or Days (case-insensitive, singular forms like "Hour" or "Day" are also accepted)
  • Account names must match one of your income (sell) or expense (buy) accounts. The match ignores capital letters. A name that doesn't match fails that row, so a typo never sends sales or costs to the wrong account
  • A Sell or Buy & Sell item needs a sell account. A Buy item doesn't: it is given your default income account

Matching for Updates

When Update Existing Records is enabled, products are matched by title (case-insensitive) within your account.


Importing Chart of Accounts

Import transaction accounts (your chart of accounts). This is useful when migrating from another accounting system.

The template lists the accounts every new Beeswax business starts with, as an example of the format. Replace them with your own accounts: a name you already have fails that row, unless Update Existing Records is on.

CSV Template Fields

Field Required Description
name Yes Account name
type No Account type — one of: IncomeAccount, ExpenseAccount, AssetAccount, LoanAccount, or TransferAccount. You can also use the short form: income, expense, asset, loan, transfer. Defaults to AssetAccount if not specified
opening_balance No Opening balance amount (decimal)
description No Account description
bsb No BSB number (for bank accounts)
account_number No Bank account number
bank_account No Whether this is a bank account — true, yes, y or 1. Anything else counts as no
active No Whether the account is active — true, yes, y or 1. Anything else counts as no

The template has the name, type and opening_balance columns. Add any of the others you need.

Account Types

Type Value Description
IncomeAccount (or income) Revenue accounts (e.g. Services, Interest Earned)
ExpenseAccount (or expense) Expense accounts (e.g. Rent, Software & Subscriptions)
AssetAccount (or asset) Asset accounts (e.g. Bank accounts, Equipment)
LoanAccount (or loan) Loan and liability accounts
TransferAccount (or transfer) Transfer accounts for moving money between accounts

Equity accounts are available in the application but are not supported by this CSV account importer. Create them through the chart of accounts instead.

Matching for Updates

When Update Existing Records is enabled, accounts are matched by name within your account.


Import History

To see past imports, open the Data Imports page (the Import breadcrumb on any import step) and click Import History. Each result shows:

  • The data type that was imported
  • Number of records created, updated, and failed
  • Status (Completed, Completed with Errors, Processing, Pending or Failed)
  • Date of the import

Click on an individual result to see detailed error information for any rows that failed.


Tips & Best Practices

  • Start with the template. Download the CSV template for each data type and use it as your starting point. This ensures your column headers match what Beeswax expects.
  • Import in order. Chart of accounts, then businesses, then people, then products and services.
  • Clean your data first. Remove empty rows, fix formatting, and ensure required fields are filled in before uploading.
  • Use Update Existing for corrections. If you need to fix data after an initial import, enable "Update Existing Records" and re-import your corrected CSV.
  • Check the results. After each import, review the results page for any failed rows and fix them in your CSV before re-importing.
  • Use UTF-8 encoding. If your data contains special characters (accents, symbols), save your CSV with UTF-8 encoding to avoid character issues.
← All resources Still have a question? ↗
Browse Topics