Light provides flexible data import capabilities for bringing data from spreadsheets, CSV files, and other systems. Whether setting up a new company or migrating from another accounting system, import tools streamline the process.
Import capabilities
Light supports importing:
- Chart of accounts: GL accounts and account structure
- Vendor master: Vendor information (customers are created individually or via the API)
- Historical transactions: Past sales invoices, bills, credit notes, and customer credits — each via its own CSV import
- Journal entries: Bulk journal entries, including opening balances
- Budgets: Budget data for planning
This enables comprehensive data setup.
Good to know: Light does not support importing a fixed asset register directly. To enter fixed assets, create a journal entry, bill, or sales invoice with a Fixed Asset release template applied on one or more lines. The fixed asset register itself lives at Accounting → Releases — filter the page by Fixed asset type to view only fixed assets. See Configuring releases: depreciation, prepayments, deferred revenue for details.
Preparing import files
Data must be in structured format:
CSV (.csv): Used by most imports (journal entries, vendors, transactions, budgets)
Excel (.xlsx): Supported for chart of accounts imports
File requirements:
- First row contains column headers (Account Code, Account Name, Balance, etc.)
- Data types must match (numbers, dates, etc.)
- No special characters in field names
- UTF-8 encoding (for international characters)
Prepare a sample file following Light's import template.
Accessing import tools
Each import lives on the page for the records it creates, rather than a single central import screen:
- Chart of accounts: Settings (gear icon) → Chart of accounts
- Vendors: Business partners → Vendors
- Journal entries: Accounting → Journal entries
- Historical transactions (sales invoices, bills, credit notes, customer credits): the corresponding page for each document type
The general flow is the same everywhere:
- Open the page for the record type you want to import
- Open the upload/import action
- Download the import template (shows required and optional fields)
- Fill the template with your data
- Upload the file
- Light validates the file and reports any errors
- Review the imported records
Importing chart of accounts
Create your GL account structure:
- Download COA template
- Fill in:
- Account code: Unique identifier (1000, 1100, 1110) — required
- Account name: Descriptive name (Cash, Accounts Receivable, etc.) — required
- Account category: Standard, Sum, or Header (see below) — required
- Entity codes: Which company entities the account belongs to — required
- Status: Account status — required
- Account type: Specific type such as Bank, Accounts receivable, or Cost of sales, grouped under the Asset, Liability, Equity, Revenue, and Expense classifications
- Currency: Account currency (optional)
- Aggregation rule: (for Sum accounts only) Defines which accounts to roll up
- Upload file (CSV or Excel)
- Light validates the file and lets you review and fix lines before completing
- Light creates GL accounts
- You can now post transactions
Account categories
Light supports three account categories:
- Standard: Regular posting accounts where transactions are recorded
- Sum: Roll-up accounts that aggregate balances from other accounts for reporting (no direct posting)
- Header: Visual grouping labels that appear on reports with zero balance (no direct posting)
Aggregation rules for Sum accounts
Sum accounts use an aggregation rule to define which accounts roll up into them. The rule specifies account code ranges in the format start:end, with multiple ranges separated by commas.
For example, if you have expense accounts 60000–60999 for Operations and 62000–62999 for Administration, you could create a Sum account with the aggregation rule 60000:60999,62000:62999 to show the combined total on reports.
Good to know: Use consistent numbering for account codes (e.g., 1000s = assets, 2000s = liabilities). This makes defining aggregation rules straightforward, since you can group accounts by code range.
Customers
Light does not currently support importing customers from a file. Create customers individually at Business partners → Customers with + Create customer, or create them programmatically via the API. See API access and custom integrations.
Importing vendor master
Load vendor information:
- Download the vendor upload template from Business partners → Vendors
- Fill in the columns you need, including:
- Name: Full company name
- Description: Free-text description
- Email, Phone, Website
- Country, City, Address, Zipcode
- VAT ID: Vendor tax/VAT number
- Bank details: Bank name, country, account number, BIC, domestic account number/code, Swedish Bankgiro/Plusgiro, recipient name
- Currency: Default currency
- Entity codes and Default entity code: Which company entities the vendor belongs to
- Ledger account code: Default expense account
- Tax code: Default tax code
- Upload file — Light maps your file's columns to these fields, and you can review the mapping
- Light validates each line; lines with errors are reported so you can fix them
- Light creates vendor records
- Vendors ready for AP invoicing
Importing historical transactions
Migrate past transactions from your old system. Each document type has its own CSV import with its own template:
- Sales invoices (AR)
- Bills (AP)
- Credit notes
- Customer credits
For each import:
- Download the CSV template for that document type — required columns are annotated with
(required) - Fill in the transaction data (dates, amounts, currency, business partner, account codes, tax codes, line items)
- Upload the file — the import is processed as a background job
- Light validates each entry; failed entries are collected in a downloadable error report
- Choose whether imported documents are posted immediately or left for review
- Journal entries are imported separately via the journal entry CSV upload (see below)
This migrates transaction history.
Important: Typically, only migrate current-year transactions and open receivables/payables. Close prior-year transactions with opening balance approach.
Importing journal entries
Upload journal entries via CSV with the following format.
Downloading the template
Click Download template to get a company-specific CSV template that includes:
- All required columns with
(required)annotations - Your company's active custom properties with
(custom)annotations - Only custom properties relevant to journal entries
The template dynamically reflects your company's configuration, so you can fill it in and upload directly.
Required columns
| Header | Description |
|---|---|
entry id |
Groups lines into one journal entry |
date |
Posting date (YYYY-MM-DD) |
currency |
Currency code (e.g., USD, EUR) |
debit |
Debit amount (zero values are accepted) |
credit |
Credit amount (zero values are accepted) |
account code |
Ledger account code |
entry description |
Description for the entry |
line description |
Description for the line |
business partner name |
Name of the business partner (required) |
Optional columns
| Header | Description |
|---|---|
tax amount |
Tax amount (can be omitted if not needed) |
tax code |
Tax code identifier (can be omitted if not needed) |
business partner id |
UUID of the business partner |
local currency rate |
FX rate for local currency |
group currency rate |
FX rate for group currency |
ledger name |
e.g., PRIMARY, ELIMINATION |
target entity code |
For intercompany entries |
accounting release template name |
Template name for amortization (or use accounting release template id with a UUID) |
accounting release start date |
Amortization start |
accounting release end date |
Amortization end |
| Custom property columns | Use the label name (e.g., "Cost Center") or internal name |
Using display names
You can use friendly display names instead of internal system names:
- Custom property columns: Use the label name (e.g., "Cost Center") instead of the internal name (e.g., "cost_center")
- Custom property values: Use value labels (e.g., "New York") instead of internal names (e.g., "new_york") for single-select and multi-select fields
- Accrual templates: Use the template name instead of the UUID
Internal names and UUIDs still work for backward compatibility—existing uploads are unaffected.
Multi-select values
For multi-select custom properties, separate values with semicolons:
New York; Los Angeles; Chicago
This format works even when labels contain spaces.
Business partner fields
- business partner name — Required string field.
- business partner id — (Recommended) The UUID of an existing customer or vendor in Light. Using the business partner UUID is the recommended approach for importing customers and vendors, as it ensures accurate matching and avoids duplicate or mismatched records. If omitted, Light attempts to match by name, which may cause errors if names don't match exactly or if duplicates exist.
Good to know: Use
entry idto group multiple lines into a single journal entry. All lines with the sameentry idwill be combined into one balanced entry. Headers with(required)and(custom)annotations from the template are automatically stripped during import.
Archiving an import
If you need to remove an import from your books (for example, to correct errors or undo a test import), archive it from the import history table:
- Go to Accounting → Journal entries and open the journal entry import history
- Find the import you want to archive
- Click the actions menu (⋯) and select Archive
- If the import created journal entries, confirm the action
When you archive an import:
- Draft entries are permanently removed from the system
- Posted entries are reversed with offsetting journal entries, preserving the audit trail
Important: Archive requires COMPANY_ADMIN or CONTROLLER permissions. Some entries may fail to archive if they are in closed periods, bank-reconciled, or pending approval. If archiving fails, the import status will show Archive failed—contact support to resolve.
Opening balance import
Opening balances are imported as a journal entry using the journal entry CSV upload described above:
- Prepare a CSV where all lines share the same
entry id, dated as of your transition date - Enter each GL account's opening balance as a debit or credit line against its
account code - Ensure total debits equal total credits
- Upload the file
- Light creates the opening balance journal entry, which you can review before posting
This sets up accounting starting position.
Data validation
Light validates all imports:
- Format validation: Correct data types, required fields present
- Reference validation: Customer/vendor/account codes exist
- Amount validation: Amounts are numeric, balance properly
- Duplicate validation: No duplicate IDs
- Consistency validation: Related data matches
If validation fails, Light provides error report showing exactly what to fix.
Reviewing before completion
Chart of accounts and vendor imports include a mapping and review step:
- After you upload the file, Light maps your file's columns to Light fields
- Review that the mapping is correct (columns mapped to right fields)
- Review the imported lines and fix any lines with validation errors
- Complete the import
This catches most errors before records are created.
Handling import errors
If import fails validation:
- Light records an error for each failed entry
- Download the error report, which shows:
- The entry that failed
- The error message (missing value, invalid value, unbalanced entry, etc.)
- Fix the issue in your file
- Re-upload
- Once validation passes, import succeeds
Iterative approach ensures clean data import.
Multi-currency import
When importing with multiple currencies:
- Include currency column in template
- Specify currency code (USD, EUR, GBP) for each transaction
- Light converts to GL currency using historical rates (if needed)
- All amounts recorded correctly in GL
This handles multi-currency imports.
Import history
Light keeps a history of each import:
- File name
- Import status (in progress, completed, failed)
- User who triggered the import
- Date/time of import
- Error count, with a downloadable error report
Each import type (journal entries, vendors, chart of accounts, transactions) has its own import history on its page.
Undoing an import
If an import creates bad data, you can undo it from the import history:
- Find the import in the import history
- Delete (or archive, for journal entry imports) the import
- Light removes the documents created by the import — draft documents are deleted, and posted documents are reversed to preserve the audit trail
- Fix the import file and re-import
The undo runs as a background job; the import status shows whether it succeeded or failed.
Best practices for importing
Test first: Always test imports with sample data before importing full dataset.
Validate data: Verify source data is clean before importing (no duplicates, required fields populated).
Plan mapping: Understand which source fields map to which Light fields.
Schedule off-peak: Import during off-peak times to avoid impacting users.
Monitor closely: After import, review results and verify accuracy before considering complete.
Related articles
- Integrations overview
- Data migration from E-Conomic
- Data migration from QuickBooks
- Cutover fundamentals and execution
- API access and custom integrations
Was this article helpful?
Thanks for the feedback!