Accounting

Availableapp.erp.io/accounting/ledger

Journal and ledger

The ledger is append-only. A mistake is corrected by a reversing entry, never by editing history — which is what makes the audit trail worth reading.

Ledger
Append-only
Corrections
Reversing entries
Balance check
Enforced at posting
Audit trail
Every posting, every actor

The general ledger

Every posting in the module — an invoice, a bill, a bank transaction, a manual entry — appears in the general ledger as a balanced set of debits and credits. The ledger is filterable by account, period, dimension and source, and every line traces back to the document that caused it.

app.erp.io/accounting/ledger
General ledger

March 2026 · all accounts

FilterExport
DateAccountSourceDebitCredit
11 Mar1010 Bank — currentINV-1042 receipt8,400.00
11 Mar1100 Accounts receivableINV-1042 receipt8,400.00
10 Mar5200 Office suppliesBill MS-2026-04131,840.00
10 Mar2200 VAT controlBill MS-2026-0413368.00
10 Mar2100 Accounts payableBill MS-2026-04132,208.00
The general ledger. Every line names the document that produced it.

Manual journal entries

For accruals, prepayments, depreciation, payroll, corrections and anything else that does not arrive as a document. An entry must balance to post — the module refuses an unbalanced entry rather than accepting it and flagging it, because an unbalanced ledger is not a ledger.

  • Every entry needs a description a stranger could follow six months later. "Adjustment" is not one.
  • Entries can carry dimensions, which is how you keep a manual accrual visible in departmental reporting.
  • Recurring entries — a monthly accrual, a depreciation charge — can be templated and repeated.
  • An entry into a locked period is refused. That is what locking means.

Correcting a mistake

Nothing is edited in place

A posted entry is never modified and never deleted. A correction is a new entry that reverses the wrong one, and then the right one. The result is a ledger where the history of a mistake is visible — which feels worse and is far better, because the alternative is a set of books whose current state cannot be explained.

Find the entry

In the ledger or the audit trail.

Reverse it

A single action that creates the opposite entry, dated appropriately.

Post the correct one

With a description that references what it replaces.

If the period is locked

Post the correction into the current open period rather than reopening a closed one. Reopening a closed period invalidates statements that have already been issued.

The audit trail

/accounting/audit records every posting with who made it, when, from what source, and — where an agent proposed it — what was proposed and who accepted. Both halves are kept, which is what makes it possible to distinguish a model that classified badly from a person who confirmed without looking.

What this does not do

No entry editing

By design. Reverse and repost.

No draft approval workflow for journals

An entry posts when you post it. There is no maker-checker step.

No inter-company eliminations

Multi-entity consolidation does not automatically eliminate inter-company balances.

No foreign-currency revaluation run

Period-end revaluation of foreign balances is a manual entry.

Questions

Can we import journal entries in bulk?

Yes, via the API. There is no CSV upload screen.

Who can post a journal entry?

Anyone with the module. There is no separate posting permission.

Can we attach a file to an entry?

Yes — the supporting calculation should live with the entry.