Skip to main content
The general ledger is the complete, authoritative record of every financial event your organisation has ever recorded. Every deposit, loan disbursement, expense payment, dividend distribution, and reserve allocation produces at least one journal entry in the general ledger. Those entries, taken together, are the source of truth from which Agatabo generates your Balance Sheet, Profit & Loss statement, and all other financial reports.
You do not need to manage the general ledger manually. Agatabo creates journal entries automatically whenever you perform a business operation — recording a deposit, disbursing a loan, paying an expense. The accounting happens behind the scenes. This page explains how the system works so you can understand your reports, investigate discrepancies, and — when necessary — create manual adjustments.

Double-Entry Bookkeeping

Agatabo uses double-entry accounting: every transaction affects at least two accounts, with total debits always equalling total credits. This is not just an accounting convention — it is what makes your financial reports self-consistent and fraud-resistant. An unbalanced entry is mathematically impossible to post; Agatabo rejects it outright. The accounting equation that double-entry preserves is:
Assets = Liabilities + Equity
Every journal entry moves amounts between accounts on this equation while keeping both sides equal. Learn the full mechanics of double-entry →

Journal Entries

A journal entry is the atomic record of a single financial event. Each entry contains:
FieldDescription
KindThe type of transaction — one of 21 predefined kinds (see below)
Transaction DateWhen the event occurred
StatusPOSTED (permanent, affects balances) or DRAFT (can be edited, does not affect balances)
LinesTwo or more debit/credit lines that must balance
Title / DescriptionHuman-readable summary for audit and reporting
Idempotency KeyPrevents duplicate entries from network retries

The 21 Journal Entry Kinds

Savings & Member Fees
  • SAVINGS_DEPOSIT — Member deposits funds into their savings account
  • ENTRY_FEE — New member pays the initial membership fee
Loans
  • LOAN_DISBURSEMENT — Loan principal disbursed to a borrower
  • LOAN_PAYMENT — Member makes a loan repayment (principal + interest + penalties)
  • LOAN_PENALTY — Late-payment penalty applied to a loan
  • LOAN_DEFAULT — Loan written off as bad debt
  • INTEREST_PAID_IN_ADVANCE — Upfront interest payment collected at disbursement
Expenses
  • EXPENSE_PAYMENT — Standard operating expense paid from cash
  • BANK_CHARGE — Bank fee linked to a parent expense, asset, or loan transaction
Reserves
  • RESERVE_TOP_UP — Allocate retained earnings into a reserve
  • RESERVE_RELEASE — Return reserve funds to undesignated retained earnings
  • RESERVE_EXPENSE — Expense paid directly from a reserve (child of a RESERVE_RELEASE)
Dividends
  • DIVIDEND_DISTRIBUTION — Retained earnings distributed to member savings accounts
Fixed Assets
  • ASSET_CASH_PURCHASE — Asset purchased with cash
  • ASSET_COLLATERAL — Asset received as loan collateral
  • ASSET_GIFT — Asset received as a donation
  • ASSET_DISPOSAL — Asset sold or disposed of
Administrative
  • CASH_OPENING — Opening cash balance when setting up an account
  • REVERSAL — Reversal of a previously posted entry
  • PERIOD_CLOSE — Transfers net income to retained earnings at period end
  • MANUAL_JOURNAL — Any manual adjustment created by an accountant

Ledger Accounts

Ledger accounts are the individual categories that accumulate the effect of every journal entry over time. They fall into five account types:
TypeWhat It RepresentsNormal Balance
ASSETResources the organisation owns or is owedDebit
LIABILITYObligations the organisation owes to members or othersCredit
EQUITYThe organisation’s net worth — retained earnings and reservesCredit
INCOMERevenue earned during a periodCredit
EXPENSECosts incurred during a periodDebit

All 20 Account Roles

RoleTypePurposeScope Pattern
CASHASSETCash on hand or in bank accountscash:{bankAccountId}
LOAN_RECEIVABLEASSETOutstanding loan principalloan:{id}
INTEREST_RECEIVABLEASSETAccrued loan interest not yet paidloan:{id}
PENALTY_RECEIVABLEASSETUnpaid late-payment penaltiesloan:{id}
FIXED_ASSETASSETEquipment, furniture, buildingsfixedAsset:{id}
SAVINGSLIABILITYIndividual member deposit balancesorganizationUser:{id}
BORROWER_SURPLUS_LIABILITYLIABILITYOverpayments from borrowersloan:{id}
RETAINED_EARNINGSEQUITYAccumulated organisational profitsorganization:{id}
RESERVE_ALLOCATIONEQUITYDesignated reserve fundsreserve:{id}
OPENING_EQUITYEQUITYInitial capital contributed at setuporganization:{id}
OTHER_EQUITYEQUITYMiscellaneous equity itemsorganization:{id}
INTEREST_INCOMEINCOMEInterest earned on loansorganization:{id}
PENALTY_INCOMEINCOMELate-payment penalty revenueorganization:{id}
ENTRY_FEE_INCOMEINCOMEMembership fee revenueorganization:{id}
DISBURSEMENT_FEE_INCOMEINCOMELoan processing fee revenueorganization:{id}
BAD_DEBT_RECOVERY_INCOMEINCOMEPreviously written-off debt recoveredorganization:{id}
OTHER_INCOMEINCOMEMiscellaneous revenueorganization:{id}
OPERATING_EXPENSEEXPENSEGeneral operating costsorganization:{id}
BANK_CHARGE_EXPENSEEXPENSEBank fees and chargesorganization:{id}
BAD_DEBT_EXPENSEEXPENSELoan write-offsorganization:{id}

Scope Keys

Scope keys link ledger accounts to specific entities, enabling per-member, per-loan, and per-reserve accounting. The format is {entity_type}:{entity_id}.
Scope PatternUsed For
organization:{orgId}Organisation-wide accounts: retained earnings, income, expenses
cash:{bankAccountId}One CASH account per bank account
organizationUser:{userId}One SAVINGS account per member
loan:{loanId}One set of receivable accounts per loan
reserve:{reserveId}One RESERVE_ALLOCATION account per reserve
fixedAsset:{assetId}One FIXED_ASSET account per asset

Transaction Examples with Journal Entries

Deposit — Member saves 500,000 RWF

Kind: SAVINGS_DEPOSIT  |  Date: 2026-06-12

Dr  CASH (organization:org123)               500,000
    Cr  SAVINGS (organizationUser:alice123)  500,000

Cash balance:    +500,000 RWF
Alice's savings: +500,000 RWF

Loan Disbursement — 2,000,000 RWF to Member Bob

Kind: LOAN_DISBURSEMENT  |  Date: 2026-06-12

Dr  LOAN_RECEIVABLE (loan:bob-loan-456)  2,000,000
    Cr  CASH (organization:org123)       2,000,000

Cash balance:         −2,000,000 RWF
Bob's loan balance:   +2,000,000 RWF

Dividend Distribution — 5,000,000 RWF to 50 Members

Kind: DIVIDEND_DISTRIBUTION  |  Date: 2026-06-12

Dr  RETAINED_EARNINGS (organization:org123)    5,000,000
    Cr  SAVINGS (organizationUser:alice)         100,000
    Cr  SAVINGS (organizationUser:bob)           100,000
    Cr  SAVINGS (organizationUser:carol)         100,000
    … (one line per member)

Retained Earnings:  −5,000,000 RWF
Member savings:     +5,000,000 RWF (aggregate)

Reserve Allocation — 1,000,000 RWF to Emergency Fund

Kind: RESERVE_TOP_UP  |  Date: 2026-06-12

Dr  RESERVE_ALLOCATION (reserve:emergency-fund)  1,000,000
    Cr  RETAINED_EARNINGS (organization:org123)  1,000,000

Emergency Fund balance:            +1,000,000 RWF
Retained Earnings (undesignated):  −1,000,000 RWF
Total equity:                       unchanged

Guidance by Role

For treasurers and administrators — Trust Agatabo’s automatic journal entries. You do not need to understand debits and credits to record daily transactions. Focus on entering accurate transaction data: correct amounts, correct dates, correct bank accounts. Review your Balance Sheet and Profit & Loss reports periodically to understand your organisation’s financial position. Involve an accountant before creating any manual journal entries. For accountants — The system enforces proper double-entry throughout. All automatic entries are balanced and validated before posting. Use manual journal entries sparingly, always with clear descriptions. Verify the trial balance before closing each accounting period. Export journal entries for external audit using the journal entries view.

Double-Entry Accounting

Learn the accounting principles behind every journal entry.

Balance Sheet

See how ledger balances roll up into the balance sheet.

Period Closing

Close accounting periods and generate automated closing entries.

Audit Trail

Track who made changes and when across your organization.