Solavel Solavel Docs

Chart of Accounts

docs/solavel-finance/chart-of-accounts.md

Who can use this: Owner and Manager; Accountants can view only. Approvers cannot see this page. URL / Route: /finance/accounts (finance.accounts.index). Detail pages are finance.accounts.show / edit / update / destroy. Plan / feature gate: feature:tracker.chart_of_accounts (default: enabled). Permissions: accounts.view, accounts.create, accounts.edit, accounts.delete, accounts.change_type, accounts.add_opening_balance, accounts.subtypes.manage.

Purpose

The Chart of Accounts (COA) is the list of every ledger account your organization posts to. Every transaction in Solabooks — invoices, bills, payments, journal entries — debits and credits accounts on this list. The COA is created during the setup wizard but you can extend or rename it at any time.

Step by step

Browse the chart

  1. Open /finance/accounts. Each row shows the account code, name, type (Asset, Liability, Equity, Income, Expense), subtype (e.g. Current Asset, Cost of Sales), parent, status (Active or Archived), and current balance.
  2. Use the toolbar to filter by type or status, search by code or name, and switch between flat and hierarchical view.

Create an account

Route: finance.accounts.create / finance.accounts.store. Permission: accounts.create.

  1. Click New account.
  2. Pick the Type (Asset / Liability / Equity / Income / Expense). Type cannot be changed after the account has any postings.
  3. Pick the Subtype. If the subtype you need is not in the list, click + New subtype (requires accounts.subtypes.manage).
  4. Enter the Code (must be unique) and Name.
  5. Optionally set a Parent account to make a sub-account.
  6. Optionally set a Tax default so transactions hitting this account pre-fill that tax code.
  7. Save.

Edit an account

Route: finance.accounts.edit / finance.accounts.update. Permission: accounts.edit.

You can rename, re-code, change parent, change tax default, change description. The Type is locked once any transaction posts to the account. Owner-only operation accounts.change_type exists for emergency reclassification but is hidden in the UI by default.

Activate / archive an account

Route: finance.accounts.toggle (PATCH). Permission: accounts.edit.

Archiving keeps the account in reports historically but stops it from showing in transaction pickers. You can un-archive at any time.

Add an opening balance

Route: finance.accounts.opening-balance (POST). Permission: accounts.add_opening_balance.

Enter the opening balance as of your fiscal year start. The system creates a balanced opening journal so the trial balance comes out right.

Bulk actions

  • Bulk delete: finance.accounts.bulk-delete (accounts.delete).
  • Bulk activate / deactivate: finance.accounts.bulk-activate / bulk-deactivate (accounts.edit).

Pick one or more rows in the list, then choose an action from the bulk menu.

Delete a single account

Route: finance.accounts.destroy. Permission: accounts.delete.

You can delete an account only if it has zero postings. If it has been used, archive it instead.

Behaviour and rules

  • Type is structural. Once an account has any debit or credit, you cannot change its type without an admin operation. The whole P&L / Balance Sheet split depends on the type.
  • Subtypes drive reports. Subtypes (Current Asset, Fixed Asset, Long-term Liability, Cost of Sales, Operating Expense, etc.) decide which section a number lands in on the Balance Sheet and P&L. Get them right.
  • Active vs archived. Archived accounts no longer appear in transaction line pickers but their balances still appear in reports for periods when they had activity.
  • Default account map. Settings → Account defaults (finance.settings.account-defaults) lets you say which account is "default sales", "default cost of goods sold", "default rounding", etc. Those settings refer to entries in this chart.
  • Manager limitation. Managers can create, edit, and toggle accounts but cannot change account type, delete, or archive — those are reserved for the Owner.

Permissions / restrictions

  • View list: accounts.view.
  • Create: accounts.create.
  • Edit: accounts.edit (excluding type changes).
  • Change type: accounts.change_type (Owner-only by default).
  • Add opening balance: accounts.add_opening_balance.
  • Manage subtypes: accounts.subtypes.manage (Owner-only by default).
  • Delete: accounts.delete (Owner-only by default).

Common mistakes

  • Can't change an account's type. accounts.change_type is Owner-only by default. The Manager and Accountant roles are denied. Ask the Owner, or grant a role override in Settings.
  • Opening balance on a locked period. Adding an opening balance writes a journal — that journal needs an open period. Unlock first (Owner-only) or pick a date in an open period.
  • Archived account still referenced. Archiving doesn't block existing transactions — only new ones. The historic postings keep working. If you want to fully remove an account, you must first re-tag every line on every document that references it.
  • Account code collision. Codes must be unique per org. The new-account form blocks duplicates.

Related

  • Setup wizard — installs the default Chart of Accounts.
  • Journal entries — every line picks an account from here.
  • Banking — Bank / Cash accounts are CoA entries.
  • Fixed assets — asset, accumulated-depreciation, and depreciation-expense accounts live here.
  • Base currency adjustments — Unrealised FX Gain/Loss accounts.
  • Settings — for account defaults.
  • Reports — General Ledger, Account Balances, Trial Balance, Balance Sheet, P&L.
Source: docs/solavel-finance/chart-of-accounts.md ← All documentation