Skip to main content
Source snapshot: 13 October 2026. These pages describe the current implementation, including unfinished controls. See coverage and review notes.

Manual journals

Host: admin.<ROOT_DOMAIN> · Route: /[tenant]/accountant/manual-journals

Purpose and access

Review journal postings and create manual double-entry vouchers.You need an account session and a resolved membership context in the selected Mahallu (including the API’s current platform elevation path). The API independently checks the requested operation’s permissions and feature availability.

Screen layout

The page lists journal entries and opens a dialog with date, reference, description, and account/debit/credit lines. Add Line expands the journal; at least two UI lines remain.

Fields and displayed information

Displayed table columns: Entry #, Date, Particulars, Source, Debit, Credit, Status.

Fields and filters: Journal client

Actions

Interaction sequence

New Journal Entry → select accounts and enter debit/credit values → add lines if needed → balance total debits and credits → submit → refresh the journal list.

States and rules

Unbalanced entries are rejected before posting. Zero-amount lines are omitted from the submitted payload. Account choices come from the tenant’s chart of accounts.

Implementation references

Paths below are relative to the application repository. This is source-reviewed behavior, not a recorded browser test.
  • apps/web/src/app/sites/admin/[tenant]/accountant/manual-journals/page.tsx
  • apps/web/src/app/sites/admin/[tenant]/accountant/manual-journals/journal-client.tsx
Data and access helpers: apps/web/src/lib/session.ts, apps/web/src/lib/server-api.ts, apps/web/src/lib/tenants.ts, apps/web/src/lib/finance.ts, apps/web/src/lib/api-client.tsRelevant controller permission keys: accounting.accounts.manage, accounting.journal.create, accounting.view, accounting.journal.cancel, accounting.ledger.view, accounting.reports.view. Keys are operation-specific; the current guard grants OWNER/ADMIN and its platform-elevation context an operational bypass. A visible control still does not establish authorization.

API behavior references

  • apps/api/src/finance/finance.controller.ts