Skip to main content

Overview

Recording expenses ensures all organizational spending is tracked in Agatabo. This maintains accurate financial records, enables budgeting, and generates complete financial reports. Expenses can be paid from bank account cash or funded from reserve allocations.

Before You Begin

Prerequisites:
  • You have expenses:write permission
  • You have a receipt or documentation for the expense
  • You know which bank account paid the expense (or which reserve funded it)
  • You’ve decided on a clear, descriptive title for the expense

Recording a Standard Expense

Step 1: Navigate to Expenses

1

Open Expenses section

Click Expenses in the left sidebar
2

Click Record Expense or Add Expense

Opens the expense recording form/dialog

Step 2: Fill Required Fields

Required Information: Example values:
  • Title: “Office Rent - June 2026”
  • Amount: 150000 (or 150,000 RWF)
  • Date: 2026-06-08
Title field is NOT “Category”: The backend uses a free-form title field, not a predefined category dropdown. Use clear, consistent titles to organize your expenses.

Step 3: Fill Optional Fields

Optional Information: Description tips:
  • Explain what was purchased and why
  • Include relevant details (period, vendor, purpose)
  • Example: “Monthly office space rental at Kimihurura for June 2026, paid to Landlord ABC”
Documents:
  • Upload photos or PDFs of receipts
  • Store invoice copies
  • Keep audit trail of supporting documentation

Step 4: Add Bank Charge (Optional)

If the expense incurred a bank service charge (transaction fee, wire fee):
1

Enter Bank Charge Amount field

Add the additional bank fee amount
2

System creates linked entry

Agatabo automatically creates separate BANK_CHARGE journal entry
3

Total deduction

Bank account decreases by expense amount + bank charge
Example:

Step 5: Submit

1

Review all fields

Verify title, amount, date, and bank account are correct
2

Click Save or Record Expense

Creates the expense record with journal entries
3

Confirm success

Expense appears in expense history
4

Verify bank balance

Check bank account balance decreased correctly

Recording a Reserve-Funded Expense

For expenses paid from designated reserve allocations (emergency fund, specific reserve):

Step 1: Navigate and Start

1

Open Expenses section

Click Expenses in sidebar
2

Click Record Expense

Opens expense form

Step 2: Fill Expense Details

Fill the same required fields:
  • Title: Descriptive expense name
  • Amount: How much to spend from reserve
  • Date: When expense occurred

Step 3: Select Reserve Allocation

1

Find Reserve Allocation field

Dropdown or selector for reserve funds
2

Select the reserve

Choose which reserve fund to draw from (e.g., “Emergency Fund”, “Equipment Reserve”)
3

Verify sufficient balance

Reserve must have enough balance for the expense

Step 4: Optional Bank Account

Reserve-funded expenses behavior:
  • Bank account is optional (can be omitted)
  • If provided: System releases reserve TO that account, then pays expense FROM it
  • If omitted: Uses default bank account

Step 5: Submit

1

Review details

Verify reserve allocation and amount
2

Click Save

Creates TWO journal entries automatically
3

Verify results

  • Reserve balance decreased
  • Expense recorded
  • Bank balance unchanged (released then spent)
What happens:
Learn more about reserves →

Recording with Bank Charge

Complete example of expense with bank charge:

Scenario: Pay Supplier with Wire Fee

Details:
  • Supplier payment: 500,000 RWF
  • Wire transfer fee: 5,000 RWF
  • Total cost: 505,000 RWF

Steps

1

Fill expense fields

  • Title: “Payment to Supplier XYZ”
  • Amount: 500,000
  • Date: 2026-06-11
  • Bank Account: Operations Account
  • Description: “Purchase order #456 - Office furniture”
2

Add bank charge

  • Bank Charge Amount: 5,000
3

Submit

System creates 2 linked journal entries
Result:

What Happens When You Record

When you submit an expense, Agatabo automatically:
  1. Validates inputs:
    • Amount >= 0.01
    • Title is non-empty
    • Date is valid ISO format
    • Bank account exists and is active
    • Reserve has sufficient balance (if reserve-funded)
  2. Creates journal entries:
    • Main expense entry (EXPENSE_PAYMENT or RESERVE_EXPENSE)
    • Reserve release entry (if reserve-funded)
    • Bank charge entry (if bank charge amount provided)
  3. Updates balances:
    • Reduces bank account balance (CASH ledger)
    • Reduces reserve balance (if reserve-funded)
    • Records expense in OPERATING_EXPENSE or BANK_CHARGE_EXPENSE
  4. Records metadata:
    • Creates ExpenseMeta record with all details
    • Links to journal entries
    • Stores documents as JSON
  5. Logs audit trail:
    • Records who created the expense
    • Timestamp of creation
    • IP address and user agent (if available)
  6. Updates reports:
    • Appears on Profit & Loss statement
    • Shows in expense history
    • Affects financial metrics

Editing Expenses

You can edit expenses to correct errors or update information.

How to Edit

1

Navigate to expense history

Expenses → View History or List Expenses
2

Find the expense

Search or browse for the expense to edit
3

Click Edit

Opens edit form with current values
4

Update fields

Change any field (title, amount, description, date, etc.)
5

Submit changes

System uses reverse-and-repost pattern

What You Can Change

All fields are editable:
  • Title
  • Amount
  • Date
  • Description
  • Bank account
  • Reserve allocation
  • Bank charge amount
  • Documents

How Editing Works (Reverse-and-Repost)

Important: Agatabo doesn’t modify existing entries. Instead:
  1. Reverses old entries:
    • Creates reversal of main expense
    • Reverses linked bank charge (if exists)
    • Reverses reserve release (if reserve-funded)
  2. Creates new entries:
    • Posts new expense with updated values
    • Creates new bank charge (if amount provided)
    • Creates new reserve release (if reserve-funded)
  3. Maintains audit trail:
    • Old entries remain visible as REVERSED
    • New entries show as POSTED
    • Complete history preserved
Example:

Constraints on Editing

Cannot edit if:
  • ❌ Expense is in closed accounting period
  • ❌ Expense has already been reversed
  • ❌ You don’t have expenses:write permission
Can edit:
  • ✅ Any POSTED expense in open period
  • ✅ All fields including amount and date
  • ✅ Can change from standard to reserve-funded (or vice versa)

Deleting Expenses

You can delete expenses if they were recorded in error.

How to Delete

1

Navigate to expense history

Expenses → View History
2

Find the expense

Locate the expense to delete
3

Click Delete

Opens confirmation dialog
4

Confirm deletion

System reverses all entries
5

Verify results

  • Expense removed from history (or marked as reversed)
  • Bank balance restored
  • Reserve balance restored (if applicable)

What Happens During Deletion

Reversal process:
  1. Reverses main expense:
    • Creates reversal entry: Dr CASH / Cr OPERATING_EXPENSE
    • Restores bank account balance
  2. Reverses bank charge (if exists):
    • Reverses linked bank charge entry
    • Restores additional bank fees
  3. Reverses reserve release (if reserve-funded):
    • Reverses reserve release entry: Dr RESERVE_ALLOCATION / Cr CASH
    • Restores reserve balance
  4. Updates metadata:
    • Marks expense as deleted
    • All journal entries show status: REVERSED
    • Audit trail maintained
Example:

Constraints on Deletion

Cannot delete if:
  • ❌ Expense is in closed accounting period
  • ❌ Already reversed/deleted
  • ❌ Don’t have expenses:write permission
Warning:
  • Deletion may create negative balance if bank account doesn’t have sufficient funds
  • Use skipNegativeBalanceCheck parameter if intentional

Common Scenarios

Scenario 1: Monthly Recurring Expenses

For expenses that happen every month (rent, salaries, utilities): Best practice:
1

Create a checklist

List all recurring expenses with amounts and due dates
2

Record at consistent time

E.g., first business day after payment
3

Use consistent titles

Format: “Expense Type - Month Year” Examples: “Office Rent - June 2026”, “Treasurer Stipend - June 2026”
4

Set reminders

Calendar alerts to record on time
Example recurring expenses:

Scenario 2: Recording Reimbursements

If reimbursing a member who paid on behalf of the organization:
1

Record the actual expense

Use the real expense title and date when member paid
2

Note reimbursement in description

Example: “Taxi fare for bank trip (reimbursing Jane Uwase)”
3

Pay the member separately

Via bank transfer, cash, or credit to savings
Example:

Scenario 3: Emergency Expense from Reserve

Using emergency fund for urgent, unplanned expense:
1

Record expense

Fill title, amount, date as normal
2

Select Emergency Reserve

Choose “Emergency Fund” in Reserve Allocation field
3

Add detailed description

Explain why emergency fund was used
4

Submit

System releases from reserve and records expense
Example:

Scenario 4: Large Payment with Bank Charge

Significant payment with wire transfer fee:

Scenario 5: Correcting an Error

Recorded wrong amount, need to fix:
1

Find the expense

Locate in expense history
2

Click Edit

Opens edit form
3

Update amount

Change from wrong amount to correct amount
4

Submit

System reverses old entry and creates new one
Example:

Validation and Error Messages

Common Errors

Validation Rules

Amount:
  • ✅ Must be >= 0.01
  • ✅ Must match currency decimal places
  • ❌ Cannot be 0 or negative
Title:
  • ✅ Must be non-empty string
  • ❌ Cannot be blank spaces
Date:
  • ✅ Must be valid ISO date (YYYY-MM-DD)
  • ✅ Can be in the past
  • ❌ Cannot be in closed period
  • ❌ Cannot be future date (some implementations)
Bank Account (if provided):
  • ✅ Must exist in organization
  • ✅ Must be active
  • Falls back to default if omitted
Reserve Allocation (if provided):
  • ✅ Must exist and be active
  • ✅ Must have sufficient balance
  • ✅ Balance >= (expense amount + bank charge amount)

Best Practices

Expense recording tips:
  • Record expenses within 1 week of occurrence (fresher memory)
  • Keep physical receipts in organized file or envelope
  • Take photos of receipts for digital backup (upload as documents)
  • Use clear, consistent title format: “Category - Description - Period”
  • Include detailed descriptions for amounts over 100,000 RWF
  • Require approval workflow for large expenses (implement externally)
  • Review expense trends monthly to catch unusual spending patterns
  • Separate personal expenses from organizational expenses (never mix)
  • Use reserve-funded expenses for emergency or planned reserve spending
  • Always include bank charges when applicable (don’t hide fees)
  • Reconcile bank statements monthly to catch missing expenses
  • Close accounting periods regularly to lock historical data

Permissions Required

Typical access: Accountants and Administrators have expenses:write. Regular members may have expenses:read (view only) or no access.

Expenses Overview

Understand expense types and integration

Expense Categories

Organize spending by category

View Expense History

Browse and analyze past spending

Bank Accounts

Learn about bank account tracking

Reserves

Understand reserve allocations

Profit & Loss Report

See expense impact on profitability