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:| Parameter | Type | Required | Description |
|---|---|---|---|
includeInactive | boolean | No | Include inactive accounts in results. Defaults to false (active only). |
Get Single Ledger Account
Get details for a specific ledger account:Get Account Activity
Get journal entry lines affecting a specific account:Account Structure
Each ledger account has the following properties:| Field | Type | Description |
|---|---|---|
| id | UUID | Unique account identifier |
| name | string | Account display name (e.g., “Cash - Main Account”, “Member Savings - Alice”) |
| balance | Decimal | Current balance (positive or negative) |
| isActive | boolean | Whether account is active (inactive accounts excluded from most reports) |
| scopeKey | string | Entity scope (organization, organizationUser, loan, reserve, fixedAsset) |
| roleDefinition | object | Account role defining behavior and type |
| roleDefinition.role | string | System role code (CASH, SAVINGS, LOAN_RECEIVABLE, etc.) |
| roleDefinition.type | enum | Account type (ASSET, LIABILITY, EQUITY, INCOME, EXPENSE) |
| roleDefinition.isSystem | boolean | Whether role is system-managed (true) or custom (false) |
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
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
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
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
- 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
- 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:| Role | Type | Purpose | Scope Pattern |
|---|---|---|---|
| CASH | ASSET | Bank account balances and cash on hand | organization: |
| SAVINGS | LIABILITY | Individual member deposit balances | organizationUser: |
| LOAN_RECEIVABLE | ASSET | Outstanding loan principal | loan: |
| INTEREST_RECEIVABLE | ASSET | Unpaid loan interest | loan: |
| PENALTY_RECEIVABLE | ASSET | Unpaid late fees | loan: |
| FIXED_ASSET | ASSET | Long-term assets (equipment, property) | fixedAsset: or organization: |
| BORROWER_SURPLUS_LIABILITY | LIABILITY | Overpayments from borrowers | loan: |
| RETAINED_EARNINGS | EQUITY | Accumulated profit | organization: |
| RESERVE_ALLOCATION | EQUITY | Designated reserves | reserve: |
| OPENING_EQUITY | EQUITY | Initial capital | organization: |
| OTHER_EQUITY | EQUITY | Miscellaneous equity | organization: or custom |
| INTEREST_INCOME | INCOME | Earned interest on loans | organization: |
| PENALTY_INCOME | INCOME | Late payment penalties | organization: |
| ENTRY_FEE_INCOME | INCOME | Membership fees | organization: |
| DISBURSEMENT_FEE_INCOME | INCOME | Loan processing fees | organization: |
| BAD_DEBT_RECOVERY_INCOME | INCOME | Recovered bad debt | organization: |
| OTHER_INCOME | INCOME | Miscellaneous income | organization: or custom |
| OPERATING_EXPENSE | EXPENSE | General operating costs | organization: |
| BANK_CHARGE_EXPENSE | EXPENSE | Bank fees | organization: |
| BAD_DEBT_EXPENSE | EXPENSE | Loan write-offs | organization: |
Scope Keys
Scope keys link ledger accounts to specific entities, enabling per-entity accounting. Format:| Scope Key | Account Type | Example |
|---|---|---|
organization:org-123 | Organization-wide accounts | Cash, Retained Earnings, Income, Expenses |
organizationUser:user-abc | Member-specific accounts | Alice’s SAVINGS account |
loan:loan-456 | Loan-specific accounts | Bob’s loan LOAN_RECEIVABLE, INTEREST_RECEIVABLE |
reserve:reserve-789 | Reserve-specific accounts | Emergency Fund RESERVE_ALLOCATION |
fixedAsset:asset-012 | Asset-specific accounts | Office furniture FIXED_ASSET |
- ✅ 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
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
Viewing Account Activity
To see all transactions affecting an account:- 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)
| Date | Description | Debit | Credit | Balance |
|---|---|---|---|---|
| Jan 1 | Opening Balance | 5,000,000 | - | 5,000,000 |
| Jan 5 | Member deposit | 100,000 | - | 5,100,000 |
| Jan 10 | Loan disbursement | - | 500,000 | 4,600,000 |
| Jan 15 | Loan repayment | 550,000 | - | 5,150,000 |
| Jan 20 | Operating expense | - | 200,000 | 4,950,000 |
| Jan 31 | Closing Balance | 4,950,000 |
Account Reconciliation
Reconciliation verifies that ledger account balances match external records.Cash Account Reconciliation
Compare to bank statements: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
Member Savings Reconciliation
Compare to member passbooks or statements:Identify discrepancy
Difference: 100,000 RWFInvestigate:
- Recent transactions not yet in passbook
- Passbook balances not updated
- Data entry errors
- Missing transactions
Loan Receivable Reconciliation
Compare to loan portfolio report:Investigate variance
Difference: 50,000 RWFCheck:
- Recent loan disbursements or payments not yet posted
- Loan write-offs not recorded
- Data entry errors
Cannot Modify Account Balances Directly
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
- Requires
ledger:writepermission - Must be balanced (debits = credits)
- Requires approval (recommended)
- See manual journal entries guide →
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)
- ❌ 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
Creating Custom Ledger Accounts
You can create custom ledger accounts for organization-specific needs. Prerequisites:ledger:writepermission- Custom role definition (non-system role)
- ❌ Cannot create accounts with system role definitions
- ❌ Cannot create duplicate accounts with same name
- ✅ Can create multiple accounts with same role (different names)
- 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
- ✅ 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
- ✅ Export and archive chart of accounts
- ✅ Review inactive accounts (reactivate or keep inactive)
- ✅ Compare account balances to prior quarters
- ✅ 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)
Related Topics
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