Skip to main content

Overview

Bank account transactions in Agatabo are recorded automatically through journal entries when you perform financial operations. Every transaction that affects cash creates journal lines that debit or credit the CASH ledger account linked to your bank account.
Important: You don’t manually record “bank transactions.” Instead, you perform business operations (record deposits, disburse loans, pay expenses), and Agatabo automatically creates the accounting entries that update your bank account balances.

How Automatic Recording Works

The Ledger Connection

Each bank account is backed by a CASH ledger account:
When you perform an operation:
  1. Operation creates a journal entry with specific kind (e.g., SAVINGS_DEPOSIT)
  2. Journal entry contains balanced debit/credit lines
  3. One or more lines affect CASH ledger account(s)
  4. Database triggers update ledger balances instantly
  5. Bank account balance reflects the change

Transaction Types That Affect Bank Accounts

1. Savings Deposits (Increases Balance)

Operation: Member deposits money into savings Endpoint: POST /savings/record Journal Entry:
Effect on Bank Account: ✅ Increases balance (cash received) Example:
Where to record: Deposits → Record Deposit Learn more about recording deposits →

2. Loan Disbursements (Decreases Balance)

Operation: Organization lends money to member Endpoints:
  • POST /loans (initial disbursement)
  • POST /loans/:id/modify (additional disbursement via top-up)
Journal Entry:
Effect on Bank Account: ❌ Decreases balance (cash given to borrower) Example:
Where to record: Loans → Create Loan or Modify Loan Learn more about creating loans →

3. Loan Payments (No Direct Effect)

Operation: Member repays loan installment Endpoint: POST /loans/:id/payments Journal Entry:
Effect on Bank Account: ⚠️ No direct effect (internal transfer from member savings to loan receivable) Example:
Where to record: Loans → Record Payment Learn more about loan payments →

4. Expense Payments (Decreases Balance)

Operation: Organization pays operational expense Endpoint: POST /expenses Journal Entry:
Effect on Bank Account: ❌ Decreases balance (cash paid to supplier/vendor) Example:
Where to record: Expenses → Record Expense Learn more about expenses →

5. Bank Charges (Decreases Balance)

Operation: Bank deducts fees or charges Endpoint: POST /expenses with bankChargeAmount field Journal Entry:
Effect on Bank Account: ❌ Decreases balance (bank fee deducted) Example:
Where to record:
  • Expenses → Record Expense → Bank Charge Amount field
  • Assets → Purchase Asset → Bank Charge field
Bank charges are separate entries: When you include a bank charge amount with an expense or asset, Agatabo creates TWO journal entries: one for the main transaction, and a separate BANK_CHARGE entry.

6. Dividend Distributions (Decreases Balance)

Operation: Organization distributes profits to members Endpoint: POST /dividends/:poolId/distribute Journal Entry:
Effect on Bank Account: ❌ Decreases balance (if cash distribution) or ⚠️ No effect (if credited to savings) Example (Cash Distribution):
Where to record: Dividends → Distribute Dividends Learn more about dividends →

7. Reserve Operations (Varies)

Reserve Top-up (Decreases Balance):
Reserve Release (Increases Balance):
Where to record: Reserves → Allocate or Release Reserves Learn more about reserves →

8. Entry Fees (Increases Balance)

Operation: New member pays entry fee Endpoint: POST /organization-users/:id/entry-fee Journal Entry:
Effect on Bank Account: ✅ Increases balance (fee received) Learn more about entry fees →

9. Opening Balance Adjustments (Sets Balance)

Operation: Set initial bank account balance when starting Agatabo Endpoint: PATCH /bank-accounts/:id/adjust-balance Journal Entry:
Effect on Bank Account: Sets balance to target amount Example:
Where to record: Bank Accounts → Select Account → Adjust Balance Learn more about opening balances →

10. Bank Transfers (Decreases One, Increases Another)

Operation: Transfer money between your bank accounts Method: Manual journal entry Journal Entry:
Effect on Bank Accounts:
  • Source: ❌ Decreases balance
  • Destination: ✅ Increases balance
Total cash: Unchanged (money moved internally) Where to record: General Ledger → Manual Journal Entries Learn more about transfers →

Selecting Bank Account

When recording operations that affect cash, you must select which bank account to use:

Account Selection Fields

Appears in:
  • Deposit forms (“Bank Account” dropdown)
  • Loan creation (“Disbursement Account” dropdown)
  • Loan modification (“Bank Account” dropdown)
  • Expense forms (“Bank Account” dropdown)
  • Dividend distribution (“Payment Account” dropdown)
  • Reserve operations (“Bank Account” dropdown)
Default behavior:
  • Pre-selects the default bank account
  • You can change to any active account
  • System validates account is active
1

Look for Bank Account field

Appears in most financial transaction forms
2

Verify pre-selected account

Default account is auto-selected
3

Change if needed

Select different account from dropdown if appropriate
4

Complete transaction

Selected account balance updates automatically
Always select the correct account: This ensures your Agatabo balances match your actual bank statements for each account. If deposit goes to Account A physically, select Account A in Agatabo.

Viewing Bank Account Activity

Viewing Transaction History

To see all transactions for a specific bank account:
1

Navigate to Bank Accounts

Click “Bank Accounts” in sidebar
2

Select an account

Click on the bank account name
3

View transaction list

See all journal entries affecting this account
4

Filter and search

Use date range, entry kind filters if available
Information shown:
  • Transaction date
  • Entry kind (SAVINGS_DEPOSIT, EXPENSE_PAYMENT, etc.)
  • Description
  • Debit or Credit amount
  • Running balance (if available)
  • Related entity (member, loan, expense)

Viewing via General Ledger

Alternatively, view transactions through the ledger system:
1

Navigate to General Ledger

Click “General Ledger” or “Accounting”
2

Search for CASH account

Find CASH ledger account for your bank
3

View account activity

See all journal lines affecting this ledger account
Learn more about the general ledger →

Transaction Validation

Automatic Validations

When posting transactions affecting bank accounts, Agatabo validates: Balance Constraints:
  • ✅ Cash balance cannot go negative (except when explicitly allowed for opening balances)
  • ✅ Sufficient funds for disbursements and expenses
  • ✅ Available balance calculation accounts for reserves
Accounting Period:
  • ✅ Cannot post to closed accounting periods
  • ✅ Transaction date must be in open period
Journal Entry Rules:
  • ✅ Debits must equal credits (balanced entry)
  • ✅ All amounts must be positive
  • ✅ All ledger accounts must be active
  • ✅ Idempotency key prevents duplicates
Account Status:
  • ✅ Bank account must be active
  • ✅ Cannot use inactive accounts for new transactions

Idempotency Protection

Every transaction uses an idempotency key to prevent duplicates: How it works:
  • System generates unique key per operation
  • If request is retried with same key, returns existing transaction
  • Prevents accidental double-posting
  • Safe for network retries

Understanding Journal Entries

What is a Journal Entry?

A journal entry is the accounting record created for each financial transaction: Components:
  • Kind: Type of transaction (SAVINGS_DEPOSIT, LOAN_PAYMENT, etc.)
  • Date: Transaction date
  • Lines: Individual debits and credits
  • Status: POSTED (active) or REVERSED (voided)
Example:
Learn more about journal entries →

Summary Table

Best Practices

Transaction recording tips:
  • Always select the correct bank account when recording transactions
  • Verify bank account balance matches physical statement regularly
  • Use consistent account selection (operations → Account A, loans → Account B)
  • Document transfers between accounts with clear descriptions
  • Reconcile monthly to catch discrepancies early
  • Review transaction history to understand balance changes
  • Use opening balance adjustment only once during setup
  • Don’t try to manually adjust balances (use proper transaction types)
  • Monitor for negative balance warnings
  • Ensure transaction dates are accurate

Troubleshooting

Balance Doesn’t Match Bank Statement

Problem: Agatabo shows different balance than physical bank Solutions:
  1. Review all transactions in Agatabo for the account
  2. Compare against bank statement line-by-line
  3. Check for missing deposits or expenses
  4. Verify all bank charges were recorded
  5. Look for transactions recorded to wrong account
  6. Run reconciliation report
Learn about reconciliation →

Cannot Record Transaction (Insufficient Funds)

Problem: “Insufficient cash balance” error Solutions:
  1. Check current bank account balance
  2. Verify you selected correct account
  3. Account for reserved funds (reserves reduce available balance)
  4. Transfer funds from another account if needed
  5. Verify member has sufficient savings for loan payment

Transaction Not Appearing

Problem: Recorded operation but don’t see bank transaction Solutions:
  1. Refresh the bank account page
  2. Check if you selected different bank account
  3. Verify transaction was successfully posted (check journal entries)
  4. Some operations don’t affect bank directly (loan payments debit savings)
  5. Check accounting period is open

Permissions Required

Bank Accounts Overview

Understand bank account management

Recording Deposits

How to record member savings

Recording Expenses

How to pay organization expenses

General Ledger

Understand the accounting system

Viewing Journal Entries

See all accounting transactions

Reconciliation

Match with bank statements