Skip to content

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 consults AccountingPeriodGuardService (period close) and writes a row into ledger_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 Path entry (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.