What are Bank Accounts?
Bank accounts in Agatabo represent the physical bank accounts where your organization keeps its money. Each bank account tracks its cash balance through the general ledger system, with all transactions (deposits, withdrawals, loan disbursements, expenses) automatically updating the balance.Why Track Bank Accounts?
Key benefits:
- Know exactly how much cash you have in each account
- Track which transactions came from which account
- Reconcile Agatabo records with bank statements
- Separate operational funds from reserve funds
- Monitor cash flow across multiple accounts
- Maintain accurate financial statements
- Prevent overdrafts and negative balances
How Bank Accounts Work
Add bank accounts
Create records for each physical bank account (first account is automatically default)
Record transactions
When recording deposits, loans, or expenses, specify which bank account is involved
Bank Account Types
Agatabo supports two types of bank accounts:| Type | Purpose | Typical Use | Constraints |
|---|---|---|---|
| SAVINGS | Savings account | Long-term reserves, dividend funds, emergency funds | Optional |
| CURRENT | Current/checking account | Daily operations, loan disbursements, expense payments | At least one required and active |
Important: Your organization must have at least one active CURRENT account. You cannot deactivate all CURRENT accounts.
Bank Account Information
Each bank account has:Core Fields
Name:- Descriptive name (e.g., “BK Operations Account”, “Equity Reserve Account”)
- Must be unique within your organization
- Used to identify the account in dropdowns and reports
- SAVINGS or CURRENT
- Determines the account’s purpose
- Cannot be changed after creation
- Current cash balance (automatically calculated from ledger)
- Updated in real-time via database triggers
- Always reflects posted transactions
- Active: Account can be used for new transactions
- Inactive: Account is hidden from dropdowns (cannot be used)
- Historical transactions remain visible
- Marks this as the primary bank account
- Used automatically when no specific account is selected
- Only one default account per organization
- First account created is automatically set as default
Calculated Fields
Available Balance:- Formula:
Balance - Total Reserved Amounts - Shows cash available after accounting for reserves
- Use this for operational decisions
- Sum of all reserve allocation balances
- Cannot be spent on regular operations
- Restricted funds
Ledger Integration
How Bank Accounts Work in the Ledger
Each bank account is backed by a CASH ledger account: Ledger Account Properties:- Role:
CASH(asset account, normal debit balance) - Scope Key:
cash:{bankAccountId}(links ledger account to specific bank) - Balance: Maintained by database triggers
- Journal entry is created (e.g., loan disbursement)
- Entry includes CASH ledger line with bankAccountId scope
- Database trigger updates ledger balance automatically
- Bank account balance reflects change instantly
Default Account Selection
The system uses this priority when selecting which bank account to use: Priority:- Explicitly specified account (if provided in transaction)
- Default account (marked with isDefault = true)
- First active CURRENT account (if no default set)
- Loan disbursements: Uses selected or default account
- Expense payments: Uses selected or default account
- Deposits: Uses selected or default account
Account Constraints and Validations
Creation Rules
First Account:- Automatically set as default
- Cannot delete until another account is created
- Each account name must be unique within organization
- Case-sensitive validation
Deletion Rules
You cannot delete a bank account if: ❌ It is the default account (set another as default first) ❌ It is the only account (must maintain at least one) ❌ It has transaction history (journal entries reference it) ❌ Balance is not exactly zero (must be 0.00) To delete an account:- Ensure balance is exactly zero
- If it’s default, set another account as default
- Ensure no transactions reference this account
- Click delete
Modification Rules
Cannot deactivate if:- It’s the only active CURRENT account
- Would leave organization with no active CURRENT accounts
- Name (must remain unique)
- Active/inactive status (subject to constraints)
- Default status (sets isDefault on target, unsets on current default)
Balance Adjustments
Opening Balance Adjustments
When you first set up Agatabo, you may need to adjust opening balances to match your actual bank balances. Endpoint:PATCH /bank-accounts/:id/adjust-balance
How it works:
- Creates or adjusts CASH_OPENING journal entry
- Balances against OPENING_EQUITY ledger account
- One-time operation per account
- Cannot adjust if account is inactive
- Cannot adjust after accounting period is closed
- Cannot create negative opening equity (total adjustments cannot exceed existing equity)
Bank Account Operations
Adding Bank Accounts
Register your organization’s bank accounts
Recording Transactions
Record deposits, withdrawals, and expenses
Reconciliation
Match Agatabo records with bank statements
Bank Transfers
Move money between accounts via manual entries
Transaction Types That Affect Bank Accounts
Cash Inflows (Increase Balance)
Savings Deposits:- Member contributes to savings
- Credits CASH, debits SAVINGS (liability)
- Member pays loan installment
- Credits CASH, debits LOAN_RECEIVABLE
- New member pays entry fee
- Credits CASH, debits ENTRY_FEE_INCOME
- Organization releases reserve funds
- Credits CASH, debits RESERVE_ALLOCATION
Cash Outflows (Decrease Balance)
Loan Disbursements:- Organization lends to member
- Debits LOAN_RECEIVABLE, credits CASH
- Organization pays expense
- Debits EXPENSE, credits CASH
- Bank deducts fees
- Debits BANK_CHARGE_EXPENSE, credits CASH
- Organization pays dividends
- Debits RETAINED_EARNINGS, credits CASH
- Organization sets aside reserves
- Debits RESERVE_ALLOCATION, credits CASH
- Member withdraws savings
- Debits SAVINGS, credits CASH
Reconciliation
What is Reconciliation?
Reconciliation ensures Agatabo’s recorded balance matches your actual bank statement balance. Why reconcile:- Catch data entry errors
- Identify missing transactions
- Detect unauthorized transactions
- Ensure financial statement accuracy
- Monthly (recommended)
- After closing accounting period
- Before generating financial reports
- When balance seems incorrect
Common Scenarios
Scenario 1: Starting with Existing Balances
Scenario 2: Multiple Accounts for Different Purposes
Scenario 3: Inactivating an Old Account
Best Practices
Bank account management tips:
- Create separate accounts for different purposes (operations, reserves, loans)
- Set meaningful, descriptive names
- Always specify bank account when recording transactions (don’t rely on default)
- Reconcile monthly with bank statements
- Keep at least two CURRENT accounts (redundancy)
- Use SAVINGS accounts for restricted funds (reserves, dividends)
- Adjust opening balances BEFORE recording transactions
- Never manually edit ledger balances (use opening balance adjustment)
- Review available balance before large disbursements
- Document purpose when transferring between accounts
Permissions Required
| Action | Permission | Scope |
|---|---|---|
| View bank accounts | accounts:read | ANY |
| Create bank account | accounts:write | ANY |
| Update bank account | accounts:write | ANY |
| Delete bank account | accounts:write | ANY |
| Set default account | accounts:write | ANY |
| Adjust opening balance | accounts:write | ANY |
| View transactions | ledger:read | ANY |
| Reconcile accounts | ledger:read | ANY |
Related Topics
General Ledger Overview
Understand accounting behind bank accounts
Understanding Double-Entry
Learn how transactions affect balances
Recording Transactions
How to record bank transactions