General Ledger Setup
This guide walks through the steps to configure the General Ledger, subledger accounting, and tax. Complete these steps in order — each step builds on the previous one.
Step 1 — Create value sets
Value sets define the valid values for each segment of your chart of accounts. Create one value set per segment you need (e.g. Company, Account, Department).
For each value set:
- Navigate to General Ledger → Value Sets
- Create a value set with a code (e.g.
COMPANY), name, and validation typeINDEPENDENT - Add the individual values (e.g.
100,200) with names and, for the natural account segment, anaccount_type(ASSET,LIABILITY,EQUITY,REVENUE, orEXPENSE)
Step 2 — Create the chart of accounts structure
The COA structure defines how segments are arranged and which value set each segment draws from.
- Navigate to General Ledger → Chart of Accounts Structures
- Create a structure with a code (e.g.
STANDARD_COA), name, and delimiter (e.g.-) - Add segments in order, assigning each to a value set:
- Mark exactly one segment as the balancing segment (typically Company)
- Mark exactly one segment as the natural account segment (typically Account)
- Optionally enable dynamic insertion if you want code combinations to be created automatically when new segment value combinations are used
Step 3 — Create code combinations
Code combinations are the actual GL account codes — each one is a specific combination of segment values.
- Navigate to General Ledger → Code Combinations
- Create combinations by specifying the segment values (e.g.
100-1200-000for Company 100, Account 1200, Department 000) - Set
allow_postingtoTRUEfor accounts that should accept journal entries - The
account_typeis derived automatically from the natural account segment's value
If dynamic insertion is enabled on the COA structure, combinations are created automatically when referenced.
Step 4 — Create the accounting calendar
The calendar defines your fiscal year structure.
- Navigate to General Ledger → Calendars
- Create a calendar with a code, name, and period type (e.g.
MONTHLYfor 12 periods per year) - Add periods for each month, specifying:
- Period name (e.g.
JAN-26) - Period year and number
- Start and end dates
- Whether it is an adjustment period
- Period name (e.g.
Periods must not overlap within the same calendar (adjustment periods are excluded from this check).
Step 5 — Create the ledger
The ledger ties everything together.
- Navigate to General Ledger → Ledgers
- Create a ledger with:
- A code and name
- The COA structure from step 2
- The calendar from step 4
- The functional currency (e.g.
NZD) - The accounting method — select
STANDARD(Standard Accrual)
- Optionally set:
- Retained earnings account — the code combination used for year-end close (future phase)
- Suspense account — used when posting unbalanced journals (requires
suspense_enabled = TRUE)
Step 6 — Open periods
Before any journals can be posted, the relevant periods must be opened.
- Navigate to General Ledger → Period Statuses
- For each period you need to work in, open it for the appropriate applications:
- Open for GL to allow manual journal posting
- Open for AR to allow subledger transfer from Accounts Receivable
- Open for AP to allow subledger transfer from Accounts Payable
Period statuses progress: NEVER_OPENED → OPEN → CLOSED → PERMANENTLY_CLOSED. A closed period can be reopened; a permanently closed period cannot.
Step 7 — Configure source accounts
Source accounts map business entities to GL accounts for subledger journal entry creation. The account derivation engine uses these mappings to determine which code combination each journal line posts to.
Ledger defaults
At a minimum, configure ledger default accounts for each line type. These are the catch-all accounts used when no more specific mapping exists.
- Navigate to General Ledger → Source Accounts
- For each line type below, create a source account with:
- Source type:
LEDGER_DEFAULT - Source entity: your ledger
- Line type: the line type code
- Code combination: the default GL account
- Source type:
| Line type | Typical account |
|---|---|
RECEIVABLE | Trade Receivables (e.g. 100-1200-000) |
REVENUE | Sales Revenue (e.g. 100-4000-000) |
PAYABLE | Trade Payables (e.g. 100-2100-000) |
EXPENSE | General Expense (e.g. 100-5000-000) |
UNAPPLIED | Unapplied Cash (e.g. 100-1250-000) |
REALISED_GAIN | Realised FX Gain (e.g. 100-7100-000) |
REALISED_LOSS | Realised FX Loss (e.g. 100-7200-000) |
Customer and supplier site accounts
For more specific account assignment, create source accounts with source type CUSTOMER_SITE or SUPPLIER_SITE. These take priority over ledger defaults in the derivation chain.
Item accounts
To post revenue or expense by product, create source accounts with source type ITEM and the GPM item as the source entity.
Bank account mappings
For cash accounts, create source accounts with source type BANK_ACCOUNT_USE and the CMM bank account use as the source entity.
Step 8 — Configure tax
Tax configuration enables automatic tax calculation on AR and AP transactions.
Tax regimes and rates
The system seeds tax regimes for New Zealand (NZ_GST), Australia (AU_GST), and the United Kingdom (UK_VAT) with standard rates. To review or modify:
- Navigate to General Ledger → Tax → Regimes to view regimes
- Navigate to General Ledger → Tax → Taxes to view tax types per regime
- Navigate to General Ledger → Tax → Rates to view and edit rates and classification codes
Tax accounts
For each tax rate that will be used, configure source accounts so the subledger can derive the correct GL account:
- Navigate to General Ledger → Source Accounts
- For each active tax rate, create a source account with:
- Source type:
TAX_RATE - Source entity: the tax rate
- Line type:
TAX_LIABILITY(for AR) orTAX_RECOVERABLE(for AP) - Code combination: the tax GL account (e.g.
100-2300-000for GST Collected,100-1300-000for GST Receivable)
- Source type:
Tax classification on transaction lines
Once tax is configured, users can set a tax_classification_code on AR and AP transaction lines (e.g. STANDARD, ZERO, EXEMPT) to control which rate applies. When left blank, the default rate is used.
Further reading
- Subledger Accounting — how accounting events and journal entries work
- Tax — tax regimes, rates, and calculation
- Account Derivation — the rule engine that resolves GL accounts from source accounts