How the general ledger works

Kiravy is a real double-entry ledger — every action posts a balanced journal entry.

Kiravy is a double-entry general ledger. Every financial event — a transaction you type in, an invoice you raise, a payment you record — posts a balanced journal entry behind the scenes: equal debits and credits, every time. That's what makes a real trial balance, P&L, and (soon) balance sheet possible, and it's why the numbers always reconcile.

You don't have to think in debits and credits to use Kiravy. You record sales, expenses, and payments the way you always have; Kiravy does the double-entry bookkeeping underneath. This page explains what's happening under the hood, so the reports make sense.

The journal is the source of truth

Every report in Kiravy — trial balance, P&L, SST summary — reads from the journal, not from the raw transaction list. When you save a transaction or post an invoice, Kiravy writes a journal entry with two or more lines that always balance.

A few examples of what posts behind a familiar action:

You do thisKiravy posts
Record income of RM1,000 + RM80 SSTDr Bank/clearing 1,080 · Cr Revenue 1,000 · Cr SST output 80
Record an expense of RM300 + RM24 SSTDr Expense 300 · Dr SST input 24 · Cr Bank/clearing 324
Raise a sales invoice for RM1,080Dr Accounts receivable 1,080 · Cr Revenue 1,000 · Cr SST output 80
Mark that invoice paidDr Bank 1,080 · Cr Accounts receivable 1,080
Transfer RM500 between two bank accountsDr destination bank 500 · Cr source bank 500

In every case the debits equal the credits. If they didn't, Kiravy would refuse to save — that balance rule is the ledger's first law, and it's enforced in one place that every entry passes through.

Posted entries are immutable

Once an entry is posted, its debits and credits are never edited in place. Kiravy changes the books in one of two ways, depending on what you're doing:

  • Editing a transaction — Kiravy hides the old journal entry and posts a fresh one with the new values. Reports show only the new figure; the old one is retained, just not counted. This is automatic when you edit a transaction.
  • Voiding a document (cancelling an invoice or bill, or refunding a paid one) — Kiravy posts a reversal: a mirror entry that flips every debit and credit. The original and the reversal both stay on the books, netting to zero, so the full "raised then cancelled" trail stays visible. This is the auditor-friendly way to undo a document.

This is why a posted invoice can't be edited — to change it you cancel and re-issue. And why a paid invoice can't simply be cancelled — you issue a refund, which reverses both the invoice and the payment (see Settlements & refunds).

The chart of accounts behind it

Double-entry needs more than the revenue and expense codes you book day-to-day. Kiravy's chart of accounts also carries the balance-sheet and control accounts the ledger posts to:

AccountCodeUsed for
Bank / cash100-000Money in and out
Accounts receivable200-000What customers owe (raised by invoices)
Accounts payable300-000What you owe suppliers (raised by bills)
SST output (payable)310-000SST you've charged on sales
SST input (claimable)210-000SST you've paid on purchases
Unclassified payment100-900A holding account when the bank account isn't known yet
Opening-balance equity490-000The balancing side of opening balances

These are created for every entity automatically. Your own revenue and expense codes stay exactly as they are — see Chart of Accounts.

Where you see the ledger

The journal powers, and is visible through, several places:

  • Journal entries — post a manual adjusting entry, or view the entries behind any transaction or invoice.
  • Trial balance — every account's balance on its natural side, with the proof that total debits equal total credits.
  • P&L report — revenue and expenses, read straight from the journal.
  • Opening balances — where a migrating business enters its starting position.
  • Period lock — sealing a closed month so nothing back-dated slips in.

What's next