Accounting Module
Phase 6 Finance module on the frozen platform. Provides the financial backbone: chart of accounts, manual journal entries (draft → post → void), account transfers, fiscal periods / year-end close, bank reconciliation, and general ledger inquiry. Single-currency. Soft auto-post from Invoices (send), Credit Notes (apply), Payments (deposit), Expenses (paid from), Payroll (paid from), Purchase Orders (receipt → accounts payable), and Inventory (stock in / out) when those modules are entitled alongside Accounting. Aged receivables lives under Financial Reports.
Guides
| Audience | Document |
|---|---|
| Operators / workspace users | accounting.md · tax-types.md |
| Engineers | accounting.md · tax-types.md |
| Production / ops | accounting.md |
| Financial Reports | financial-reports-overview.md |
| Tenant API | ../api/tenant-v1-accounting.md · ../api/tenant-v1-tax-types.md |
Capabilities
- Chart of accounts with types
asset|liability|equity|revenue|expense - Parent / header hierarchy:
is_headeraccounts are non-postable grouping rows; parents on create/edit; headers rejected on journal lines - Cash / bank flag (
is_cash_bank) on asset accounts; starter Cash1000is cash/bank; add multiple banks as custom asset + cash/bank - Current balance on account list/show (from posted journal lines)
- Opening trial balance: balanced multi-line journal via
/accounts/opening-balances(POST /accounts/opening-balances) - Set balance on cash/bank accounts: target amount posts a delta journal (
ADJ-); default offset Owner Equity3000; voidable history on the account - Starter system accounts seeded on first Accounts list (Cash, AR, AP, Tax Payable
2100, Withholding Tax Receivable1150, Withholding Tax Payable2150, Salaries Payable2200, Equity, Retained Earnings3100, Revenue, common expenses including Salary Expense6400, Fixed Assets1500, Accumulated Depreciation1550, Depreciation Expense6500); existing workspaces backfilled viaensureMissingSystemAccounts - Asset depreciation when Assets is installed: first post Dr
1500/ Cr Owner Equity3000; each month Dr6500/ Cr1550 - Tax types catalog (tax-types): sales tax on billing lines; withholding on customer payments and expense pay
- Journal entries with balanced debit/credit lines (
JE-numbers) - Lifecycle: draft → post → void (voided entries excluded from GL and reports)
- Account transfers (
TRF-numbers): move money between cash/bank accounts (auto-posted journal; void reverses) - Soft accrual journals from Invoices (Send: Dr AR / Cr Revenue / Cr Tax Payable when tax > 0) and Credit Notes (Apply: reverse split) when Accounting is installed
- Soft cash movements from Payments (Deposit to; optional withholding splits deposit vs WHT receivable), Expenses (Paid from; optional withholding splits cash vs WHT payable), and Payroll (Paid from on Mark paid; payment JE after accrual) when Accounting is installed
- Soft receipt journals from Purchase Orders: tracked lines Dr Inventory Asset
1200/ Cr Accounts Payable2000at quantity × unit price; other lines Dr Operating Expenses6000/ Cr2000.tax_rateis not posted. A purchase order already converted to an expense does not post this journal - Soft inventory journals: manual stock in Dr
1200/ Cr Owner Equity3000at product cost; stock out Dr Cost of Goods Sold5000/ Cr1200; adjust journals only the quantity change; warehouse transfers post nothing - Fiscal periods:
fiscal_year_start_month(Settings → General); period CRUD + lock/unlock (accounting.voidto unlock); journal post/void blocked in locked periods; year-end close zeros P&L into Retained Earnings3100and locks the FY - Bank reconciliation: clear posted cash/bank lines against a statement; complete only when cleared balance matches the statement
- Bank reconciliation: start against cash/bank, clear lines, complete
- General ledger inquiry over posted lines with optional account and date filters
- Module licensing (
module:accounting) + Spatie permissions — free Marketplace opt-in - Optional soft dependencies from Purchase Orders and Inventory (receipt and stock journals; no valuation layers)
Permissions
accounting.view · create · update · delete · restore · force.delete · post · void
Catalog: slug accounting, category finance, is_default_included = false, is_billable = false, sort_order = 10. Version 1.8.0 (purchase-order receipt and inventory journals; tax types remain in tax-types).
Explicitly deferred
- Multi-currency accounting / FX on transfers
- Budgets
- Split a single payment across multiple deposit accounts
- Historical backfill of accrual journals for invoices/credits issued before Accounting entitlement