Overview
Journal entries are the fundamental accounting records in Agatabo. Every financial transaction (member deposits, loan disbursements, expenses, dividends, reserve allocations) creates a journal entry showing exactly how accounts were debited and credited.Automatic creation: Most journal entries are created automatically when you perform business operations. You record transactions, and Agatabo handles the accounting.
Accessing Journal Entries
Journal Entry Information
Each entry displays:| Field | Description |
|---|---|
| ID | Unique identifier for the journal entry |
| Transaction Date | When the transaction occurred (not when entry was created) |
| Kind | Type of transaction (SAVINGS_DEPOSIT, LOAN_DISBURSEMENT, DIVIDEND_DISTRIBUTION, etc.) |
| Title | Short label describing the transaction |
| Description | Detailed explanation of what happened |
| Status | POSTED (permanent, affects balances) or DRAFT (temporary, can be edited) |
| Lines | Debit and credit details (must balance) |
| Created By | User who recorded the transaction |
| Created At | Timestamp when entry was created |
| Idempotency Key | Unique key preventing duplicate entries |
| References | Links to source entities (loan ID, member ID, reserve ID, dividend pool ID, etc.) |
| Parent Entry | Parent journal entry (for multi-step transactions) |
| Reversed Entry | Link to reversal entry (if reversed) |
| Documents | Attached supporting documents |
Journal Entry Kinds
Agatabo uses these transaction types:Savings & Deposits
- SAVINGS_DEPOSIT: Member deposits funds to savings account
- ENTRY_FEE: Membership fee payment
Loans
- LOAN_DISBURSEMENT: Loan principal disbursed to member
- LOAN_PAYMENT: Member makes loan payment (principal + interest)
- LOAN_PENALTY: Late payment penalty applied
- LOAN_DEFAULT: Loan written off as bad debt
- INTEREST_PAID_IN_ADVANCE: Upfront interest payment
Expenses
- EXPENSE_PAYMENT: Operating expense payment
- BANK_CHARGE: Bank fees and charges
Reserves
- RESERVE_TOP_UP: Allocate funds from retained earnings to reserve
- RESERVE_RELEASE: Release funds from reserve back to retained earnings
- RESERVE_EXPENSE: Expense paid directly from reserve funds (creates parent RESERVE_RELEASE + child RESERVE_EXPENSE)
Dividends
- DIVIDEND_DISTRIBUTION: Distribute retained earnings to member savings accounts
Fixed Assets
- ASSET_CASH_PURCHASE: Purchase asset with cash
- ASSET_COLLATERAL: Acquire asset as loan collateral
- ASSET_GIFT: Receive donated asset
- ASSET_DISPOSAL: Sell or dispose of asset
- CASH_OPENING: Record opening cash balance
Administrative
- REVERSAL: Reverse a previous journal entry
- PERIOD_CLOSE: Close accounting period and transfer net income to retained earnings
Understanding Journal Lines
Each journal entry consists of 2 or more lines that must balance (total debits = total credits).Example 1: Member Deposit
Example 2: Dividend Distribution
Example 3: Reserve Allocation
Filtering Journal Entries
Filter by Date Range
Parameters:- from: Start date (ISO format: YYYY-MM-DD)
- to: End date (ISO format: YYYY-MM-DD)
Filter by Kind
Parameter:kind (journal_entry_kind enum)
Common filters:
Filter by Status
Parameter:status (DRAFT or POSTED)
DRAFT:
- Entry created but not yet finalized
- Does not affect account balances
- Can be edited or deleted
- Not included in financial reports
- Used for preparing entries before posting
- Entry finalized and locked
- Affects account balances immediately
- Cannot be edited or deleted (permanent)
- Included in all financial reports
- Creates audit trail
Filter by Entity Reference
Member filter:Filter by Creator
Parameter:createdBy=organizationUserId
Shows all entries created by a specific user (useful for audit).
Example:
Filter by Parent/Reversal
Parent entry:Search by Text
Parameter:searchTerm=text
Searches in:
- Entry description
- Entry title
- Account names
- Member names
- Related entity details
Pagination
Parameters:- page: Page number (default: 1)
- limit: Items per page (default: 20, max varies by endpoint)
Viewing Entry Details
Click on any journal entry to see: Full transaction information:- All debit and credit lines with account details
- Scope keys showing which specific entity each line affects
- Running balance (before/after) for each affected account
- Transaction amount and balance verification
- Created by (user who created the entry)
- Created at timestamp
- Transaction date (when it occurred)
- Idempotency key (prevents duplicates)
- Source entity links (loan ID, member ID, reserve ID, dividend pool ID)
- Parent journal entry (for multi-step transactions)
- Reversed entry (if entry was reversed)
- Attached receipts, invoices, or documentation
- Document type and description
- Who created the entry
- When it was created
- What triggered its creation
- Related transactions
Common Use Cases
Finding a Specific Transaction
By transaction date and amount:Reviewing All Transactions for a Member
View member’s financial history:Investigating an Accounting Error
Find and diagnose discrepancies:Auditing Dividend Distributions
Verify dividend distribution accuracy:Tracking Reserve Activity
Monitor reserve allocations and releases:Reversing Journal Entries
When to Reverse
Appropriate uses:- Correcting accounting errors (wrong account, wrong amount)
- Voiding duplicate entries
- Correcting period mismatches (transaction in wrong accounting period)
- Normal business corrections (use proper operations instead)
- Member requested refunds (use withdrawal transaction)
- Loan payment errors (use loan adjustment features)
How Reversals Work
Original entry:- Original entry remains in ledger (for audit)
- Reversal entry offsets it (nullifies impact)
- Both entries permanently recorded
- Account balances return to pre-transaction state
API Endpoint
Permission required:
ledger:write - Only accountants and administrators can reverse entries.Reconciliation
Journal entries should match external records: Cash reconciliation:- Compare journal entries (kind=CASH_*) with bank statements
- Ensure all deposits, withdrawals, and fees are recorded
- Investigate discrepancies immediately
- Compare entries affecting SAVINGS accounts with member expectations
- Verify deposits and withdrawals match member records
- Check dividend distributions are correct
- Ensure loan disbursements match loan schedules
- Verify payments applied correctly (principal vs. interest)
- Check penalties and fees are accurate
Exporting Journal Entries
Use cases:- External audit (provide transaction log to auditors)
- Analysis (download to Excel for pivot tables)
- Compliance (transaction log for regulators)
- Backup (archive accounting records)
Export includes:
- All visible journal entries matching filters
- All debit and credit lines for each entry
- Account details, amounts, dates, descriptions
- Formatted for readability in chosen format
Best Practices
Working with journal entries:Regular Review:
- Review journal entries monthly for accuracy
- Spot-check automatic entries to verify correctness
- Monitor for unusual or unexpected entries
- Report suspicious entries to management immediately
- Use specific filters to narrow results (date + kind + entity)
- Start broad, then narrow down when searching
- Save common filter combinations for frequent use
- NEVER create manual journal entries without accountant approval
- Understand double-entry basics before attempting manual entries
- Always document reason for manual entries clearly
- Verify entry balances before posting
- Keep exported journal entry reports for 7+ years
- Cross-reference with source documents during audits
- Maintain documentation for all manual entries
- Track all reversals with clear explanations
- Trust automatic entries (they’re tested and correct)
- Don’t reverse entries unless absolutely necessary
- Use proper business operations to correct most errors
- Consult accountant before manual interventions
Technical Details
API Endpoints
Search journal entries:Permissions Required
| Action | Permission | Scope |
|---|---|---|
| View journal entries | ledger:read | ANY or specific entity |
| Search all entries | ledger:read | ANY |
| View specific entry | ledger:read | Entry’s organization |
| View account activity | ledger:read | Account’s organization |
| Reverse entry | ledger:write | ANY |
Typical roles:
- Administrators and Accountants:
ledger:readandledger:write(ANY scope) - can view and modify all entries - Treasurers:
ledger:read(ANY scope) - can view all entries but not modify - Regular members:
ledger:read(own organizationUserId scope) - can only view their own transactions
Need Help?
Double-Entry Accounting
Learn accounting basics
Ledger Roles
Understand account roles
General Ledger Overview
Complete accounting system overview
Manual Journal Entries
Create manual accounting entries
Reconciliation
Reconcile accounts and detect errors