Skip to main content

What are Ledger Accounts?

Ledger accounts are the individual categories where financial transactions are recorded in the double-entry accounting system. Together, all ledger accounts form the chart of accounts - the complete list of financial categories used by your organization.
Key concept: Every journal entry affects at least two ledger accounts (one debit, one credit). Ledger accounts track the cumulative effect of all transactions over time, providing a running balance for each financial category.

API Endpoints

List All Ledger Accounts

Get all ledger accounts for an organization:
Query parameters: Response:
Accounts sorted by: Name (ascending, alphabetical)

Get Single Ledger Account

Get details for a specific ledger account:
Response:

Get Account Activity

Get journal entry lines affecting a specific account:
Query parameters: See Viewing Journal Entries for complete filter documentation.

Account Structure

Each ledger account has the following properties:

Account Types

1. Assets (ASSET)

Resources owned by the organization: Account roles:
  • CASH: Cash on hand or in bank accounts
  • LOAN_RECEIVABLE: Principal amount of outstanding loans
  • INTEREST_RECEIVABLE: Accrued interest not yet paid
  • PENALTY_RECEIVABLE: Accrued penalties not yet paid
  • FIXED_ASSET: Property, equipment, furniture, buildings
Normal balance: DEBIT (positive balance = debit side) Increases with: Debit entries Decreases with: Credit entries Example accounts:

2. Liabilities (LIABILITY)

What the organization owes to others: Account roles:
  • SAVINGS: Member savings balances (one account per member)
  • BORROWER_SURPLUS_LIABILITY: Overpayments from borrowers
Normal balance: CREDIT (positive balance = credit side) Increases with: Credit entries Decreases with: Debit entries Example accounts:
Important: Member savings are liabilities (not equity) because the organization owes these funds to members on demand. Members can withdraw their savings at any time, making it an obligation.

3. Equity (EQUITY)

Organization’s net worth (capital): Account roles:
  • RETAINED_EARNINGS: Accumulated profits from operations
  • RESERVE_ALLOCATION: Designated reserves (emergency fund, loan loss reserve, etc.)
  • OPENING_EQUITY: Initial capital when starting organization
  • OTHER_EQUITY: Miscellaneous equity accounts
Normal balance: CREDIT (positive balance = credit side) Increases with: Credit entries (profits, capital contributions) Decreases with: Debit entries (losses, dividend distributions, reserve allocations) Example accounts:

4. Income (INCOME)

Revenue earned by the organization: Account roles:
  • INTEREST_INCOME: Interest earned on loans
  • PENALTY_INCOME: Late payment penalties
  • ENTRY_FEE_INCOME: Membership fees
  • DISBURSEMENT_FEE_INCOME: Loan processing fees
  • BAD_DEBT_RECOVERY_INCOME: Recovered previously written-off debts
  • OTHER_INCOME: Miscellaneous income
Normal balance: CREDIT (positive balance = credit side) Increases with: Credit entries (earning revenue) Decreases with: Debit entries (reversals, corrections) Example accounts:
Period-end behavior:
  • Income accounts reset to zero at period close
  • Balances transferred to Retained Earnings

5. Expenses (EXPENSE)

Costs incurred by the organization: Account roles:
  • OPERATING_EXPENSE: General operating costs (rent, utilities, supplies, salaries)
  • BANK_CHARGE_EXPENSE: Bank fees and charges
  • BAD_DEBT_EXPENSE: Loan write-offs
Normal balance: DEBIT (positive balance = debit side) Increases with: Debit entries (incurring expenses) Decreases with: Credit entries (reversals, corrections) Example accounts:
Period-end behavior:
  • Expense accounts reset to zero at period close
  • Balances transferred to Retained Earnings (reducing equity)

Account Roles

System-defined roles determine account behavior and how transactions are processed. Complete list of account roles: View complete ledger roles reference →

Scope Keys

Scope keys link ledger accounts to specific entities, enabling per-entity accounting. Format:
Examples: Why scope keys matter:
  • ✅ Each member has their own SAVINGS account (tracked separately)
  • ✅ Each loan has its own LOAN_RECEIVABLE account
  • ✅ Each reserve has its own RESERVE_ALLOCATION account
  • ✅ Enables per-member, per-loan, per-reserve accounting
  • ✅ Allows querying all accounts for a specific entity
Example: Member-specific accounts:

Account Balance

For each account, the balance represents:
  • Cumulative effect of all posted journal entries affecting that account
  • Running total since account creation
  • Current value as of the latest transaction
Balance calculation:
Example - Cash Account (ASSET):
Example - Member Savings Account (LIABILITY):

Viewing Account Activity

To see all transactions affecting an account:
Response includes:
  • All journal entry lines affecting the account
  • Transaction date, description, amount, debit/credit side
  • Running balance after each transaction
  • References to related entities (member, loan, reserve)
Example activity: View complete account activity documentation →

Account Reconciliation

Reconciliation verifies that ledger account balances match external records.

Cash Account Reconciliation

Compare to bank statements:
1

Get ending balance from bank statement

Bank statement shows: 5,100,000 RWF
2

Get Cash ledger account balance

Agatabo shows: 4,950,000 RWF
3

Identify differences

Difference: 150,000 RWFPossible causes:
  • Outstanding checks (issued but not yet cleared)
  • Deposits in transit (deposited but not yet cleared)
  • Bank fees not yet recorded in Agatabo
  • Interest earned not yet recorded
4

Record adjustments

Create journal entries for bank fees, interest, or errors
5

Verify reconciliation

Adjusted balance should match bank statement

Member Savings Reconciliation

Compare to member passbooks or statements:
1

Get total Member Savings from trial balance

Sum of all SAVINGS accounts: 18,000,000 RWF
2

Get sum of all member passbook balances

Manual calculation or report: 17,900,000 RWF
3

Identify discrepancy

Difference: 100,000 RWFInvestigate:
  • Recent transactions not yet in passbook
  • Passbook balances not updated
  • Data entry errors
  • Missing transactions
4

Resolve discrepancies

Update passbooks or correct ledger entries

Loan Receivable Reconciliation

Compare to loan portfolio report:
1

Get total Loan Receivable from trial balance

Sum of all LOAN_RECEIVABLE accounts: 15,000,000 RWF
2

Get sum of all outstanding loans

Loan portfolio report: 15,050,000 RWF
3

Investigate variance

Difference: 50,000 RWFCheck:
  • Recent loan disbursements or payments not yet posted
  • Loan write-offs not recorded
  • Data entry errors
4

Drill down to individual loans

Compare each loan account balance to loan detail

Cannot Modify Account Balances Directly

Ledger account balances cannot be edited directly. They change only through journal entries.This ensures:
  • ✅ Complete audit trail (every change recorded)
  • ✅ Double-entry integrity (all entries balanced)
  • ✅ Compliance with accounting standards
  • ✅ Protection against unauthorized changes
To adjust an account balance: Option 1: Use standard features
  • Member deposit → Records to SAVINGS and CASH accounts
  • Loan disbursement → Records to LOAN_RECEIVABLE and CASH accounts
  • Expense payment → Records to OPERATING_EXPENSE and CASH accounts
  • Dividend distribution → Records to RETAINED_EARNINGS and SAVINGS accounts
Option 2: Create manual journal entry

Inactive Accounts

Accounts can be marked inactive when they are no longer in use. When to inactivate:
  • Account has zero balance
  • No activity expected in foreseeable future
  • Member has left organization (zero savings balance)
  • Loan fully repaid (zero receivable balance)
  • Reserve fully released (zero allocation balance)
Effects of inactive status:
  • ❌ Excluded from default reports (unless includeInactive=true)
  • ❌ Cannot be used in new journal entries
  • ✅ Still appears in historical reports for date ranges when it was active
  • ✅ Balance preserved (can verify historical balances)
  • ✅ Can be reactivated if needed
API: Include inactive accounts

Creating Custom Ledger Accounts

You can create custom ledger accounts for organization-specific needs. Prerequisites:
  • ledger:write permission
  • Custom role definition (non-system role)
API: Create custom ledger account
Restrictions:
  • ❌ Cannot create accounts with system role definitions
  • ❌ Cannot create duplicate accounts with same name
  • ✅ Can create multiple accounts with same role (different names)
Example use cases:
  • SMS charges expense category
  • Donation income category
  • Specific project expense tracking
  • Specialized reserve categories

Best Practices

Ledger account management best practices:Daily:
  • ✅ Review key account balances (Cash, Member Savings totals)
  • ✅ Verify no abnormal balances (negative cash, negative savings)
  • ✅ Monitor large balance changes
Monthly:
  • ✅ Reconcile all Cash accounts to bank statements
  • ✅ Verify Member Savings total matches sum of individual balances
  • ✅ Reconcile Loan Receivable to loan portfolio report
  • ✅ Review trial balance (all account balances)
  • ✅ Investigate unusual balances or variances
Quarterly:
  • ✅ Export and archive chart of accounts
  • ✅ Review inactive accounts (reactivate or keep inactive)
  • ✅ Compare account balances to prior quarters
Best Practices:
  • ✅ Use consistent account naming conventions
  • ✅ Don’t create unnecessary custom accounts (use system accounts when possible)
  • ✅ Inactivate zero-balance accounts that won’t be used again
  • ✅ Document reason for custom accounts
  • ✅ Review account list regularly for cleanup
  • ✅ Report discrepancies to accountant immediately
  • ✅ Never edit balances directly (always use journal entries)

Understanding Double-Entry

Learn how debits and credits affect different account types

Ledger Roles

Complete reference of all account roles and types

Viewing Journal Entries

See how transactions affect account balances

Balance Sheet

Classified account report showing financial position

Reconciliation

Verify account balances match external records