Accounting Features¶
This section documents the accounting modules that round out the platform for small-business bookkeeping. Each page is a frontend handoff: the GraphQL surface, setup prerequisites, expected UI behaviour, error states, and known follow-ups.
What's covered¶
| Feature | Domain | What it does |
|---|---|---|
| Period close | accounting_periods/ |
Fiscal years + monthly accounting periods with soft/hard close, year-end retained-earnings close JE |
| Ledger audit trail | ledger_audit/ |
Hash-chained append-only audit log for every GL entry POST and REVERSE |
| Bank statements | bank_statements/ |
Statement upload, AI parsing, transaction matching to invoices/expenses |
| Bank reconciliation | bank_reconciliations/ |
Statement-to-book matching with cleared flags, auto-apply of matcher suggestions, balanced close |
| Recurring journals | recurring_journals/ |
Scheduled balanced JE templates (daily / weekly / monthly / quarterly / yearly) |
| Recurring invoices | recurring_invoices/ |
Scheduled invoice templates that auto-submit to DGI via PAC on cadence |
| Fixed assets | fixed_assets/ |
Asset register, monthly depreciation runs (straight-line, DDB), disposal with gain/loss |
| Budgets | budgets/ |
Per-account per-period plans against a fiscal year with variance reporting |
| Tax filings | tax_filings/ |
ITBMS monthly worksheet, retention certificates, period filing with payment JE |
| Payroll | payroll/ |
Employees, payroll runs, Panama-specific calculations (CSS, Seguro Educativo, ISR, Riesgo Profesional) |
| Opening balances | opening_balances/ |
Sheet-import wizard for GL opening balances with per-row validation and equity check |
Cross-cutting concepts¶
- Every posting flows through
LedgerService. That service consultsAccountingPeriodGuardService(period close) and writes a row intoledger_audit_logs(audit trail) for every POST and REVERSE. New domains in this section all post via that single service, so the guards apply uniformly. - RBAC. Each domain has its own
Pathentry (PERIOD_CLOSE,AUDIT_LOG,BANK_RECONCILIATIONS,RECURRING_JOURNALS,RECURRING_INVOICES,FIXED_ASSETS,BUDGETS,TAX_FILINGS,PAYROLL). Wire menu visibility off these. - Migrations chain in this order from the existing tip:
add_bank_statements → add_fiscal_years_periods → add_ledger_audit_logs → add_bank_reconciliations → add_recurring_journals → add_fixed_assets → add_budgets → add_tax_filings → add_payroll → add_tax_rate_id_to_details → add_recurring_invoices.