Initialize a Chart of Accounts
September 15th, 2026
POST /chart-of-accounts initializes the entire chart of accounts for an organization that does not
have one yet, in a single atomic call. Use it to bootstrap a new organization before adding individual
accounts with POST /accounts.
- Each account takes the same
name,code,type,subtype, andintercompanyfields as
POST /accounts, plus optionalparent_grouping(custom group name) andprepaid_account_code
(code of aPrepaid Expenseaccount in the same request). - The full request is validated before anything is created. It must contain exactly one
Accounts Receivable,Accounts Payable,Sales Tax Liability, andRetained Earnings, and at
least oneUnbilled Revenue,Prepaid Expense, andDeferred Revenue. Validation failures return
400 without a partial chart of accounts.Cash in Transitis created automatically. - When the request has exactly one
Prepaid Expenseaccount, expense accounts default to it; when it
has several, each expense account must setprepaid_account_code. - Returns 409 when the organization already has a chart of accounts.
- Account responses on
GET /accounts,POST /accounts, and this endpoint now include
parent_groupingandprepaid_account_code.
Applies to V4 only.
