Skip to main content

What are Fixed Assets?

Fixed assets are long-term tangible items owned by your organization that provide value over time, such as equipment, furniture, vehicles, or property. Unlike expenses that are consumed immediately, fixed assets are investments that serve the organization for years.

Why Track Fixed Assets?

Key benefits:
  • Maintain accurate record of organizational property
  • Know total asset value for financial reporting
  • Track source of asset acquisition (purchase, donation, collateral, existing)
  • Calculate organization’s net worth
  • Provide transparency to members about major investments
  • Support balance sheet preparation and financial analysis
  • Document ownership and prevent loss or theft
  • Prepare for audits with complete asset records

Asset Acquisition Types

Agatabo supports three ways to acquire fixed assets:
TypeDescriptionJournal EntryUse Case
Cash PurchaseAsset bought with organization fundsDr FIXED_ASSET / Cr CASHOffice furniture, computers, equipment purchased from bank account
CollateralAsset seized from defaulted loanDr FIXED_ASSET / Cr BAD_DEBT_RECOVERY + BORROWER_SURPLUS_LIABILITYProperty or equipment taken when borrower cannot repay loan
GiftAsset donated to organizationDr FIXED_ASSET / Cr OTHER_EQUITYEquipment, land, or property received as donation
Opening Balance Assets: Agatabo does not currently support recording pre-existing assets through the standard asset creation endpoint (no ASSET_OPENING acquisition kind in the API). If you need to record assets owned before using Agatabo, contact support about manual journal entry procedures or opening balance adjustments.

1. Cash Purchase

When you purchase an asset using organization funds: Journal Entry:
Kind: ASSET_CASH_PURCHASE
Date: Purchase date

Dr FIXED_ASSET              Amount
   Cr CASH (Bank Account)   Amount
What happens:
  • Funds deducted from selected bank account
  • Asset recorded at purchase price
  • Bank account balance decreases
  • Total assets unchanged (cash → fixed asset)
Optional bank charges:
  • Can record wire fees, processing fees, etc.
  • Creates separate BANK_CHARGE journal entry
  • Linked to asset via parentAssetId
Example:
Purchase office furniture for 1,000,000 RWF + 5,000 RWF bank charge

Entry 1 - Asset Purchase:
Dr FIXED_ASSET (Furniture)      1,000,000
   Cr CASH (Operations Account) 1,000,000

Entry 2 - Bank Charge (auto-linked):
Dr BANK_CHARGE_EXPENSE  5,000
   Cr CASH (Operations)  5,000

Total bank decrease: 1,005,000 RWF
Asset recorded: 1,000,000 RWF
Learn more about bank accounts →

2. Collateral Seizure

When a borrower defaults and you seize pledged collateral: Prerequisites:
  • Loan must be DEFAULTED
  • Loan must have written-off bad debt (from defaulting process)
  • Collateral was pledged as security
Journal Entry (two-part split):
Kind: ASSET_COLLATERAL
Date: Seizure date
Linked to: Loan ID

Dr FIXED_ASSET              CollateralValue
   Cr BAD_DEBT_RECOVERY_INCOME  min(CollateralValue, BadDebt)
   Cr BORROWER_SURPLUS_LIABILITY  max(0, CollateralValue - BadDebt)
Calculation logic:
  1. Bad debt recovery: min(collateral value, bad debt amount)
  2. Borrower surplus: max(0, collateral value - bad debt amount)
What happens:
  • Asset recorded at collateral valuation
  • Recovers previously written-off bad debt (income)
  • Creates liability to borrower if collateral exceeds bad debt
  • No cash movement (collateral conversion)
Example 1: Collateral equals bad debt
Defaulted loan bad debt: 500,000 RWF
Seized property value: 500,000 RWF

Dr FIXED_ASSET (Property)          500,000
   Cr BAD_DEBT_RECOVERY_INCOME     500,000

Result:
- Asset: +500,000 RWF
- Income (recovered bad debt): +500,000 RWF
- No liability to borrower (exactly equal)
Example 2: Collateral exceeds bad debt
Defaulted loan bad debt: 500,000 RWF
Seized property value: 700,000 RWF

Dr FIXED_ASSET (Property)              700,000
   Cr BAD_DEBT_RECOVERY_INCOME         500,000
   Cr BORROWER_SURPLUS_LIABILITY       200,000

Result:
- Asset: +700,000 RWF
- Income (recovered): 500,000 RWF (max recovery)
- Liability: 200,000 RWF (owed to borrower if asset sold)
Example 3: Collateral less than bad debt
Defaulted loan bad debt: 500,000 RWF
Seized property value: 300,000 RWF

Dr FIXED_ASSET (Property)          300,000
   Cr BAD_DEBT_RECOVERY_INCOME     300,000

Result:
- Asset: +300,000 RWF
- Income (partial recovery): 300,000 RWF
- Remaining bad debt: 200,000 RWF (still written off)
- No liability to borrower
Borrower Surplus Liability: If collateral value exceeds bad debt, the organization owes the surplus to the borrower. This liability should be settled if/when the asset is sold. The surplus represents the borrower’s equity in the seized asset.
Learn more about loan defaulting →

3. Gift (Donation)

When someone donates an asset to the organization: Journal Entry:
Kind: ASSET_GIFT
Date: Receipt date

Dr FIXED_ASSET       FairMarketValue
   Cr OTHER_EQUITY   FairMarketValue
What happens:
  • Asset recorded at fair market value
  • Increases organization equity (net worth)
  • No cash movement
  • Represents external contribution
Example:
Member donates land worth 5,000,000 RWF

Dr FIXED_ASSET (Land)      5,000,000
   Cr OTHER_EQUITY         5,000,000

Result:
- Asset: +5,000,000 RWF
- Equity: +5,000,000 RWF
- Organization net worth increased by donation
Valuation notes:
  • Use fair market value (current selling price)
  • May require professional appraisal for large assets
  • Document valuation method in description

Asset Information

Each fixed asset record includes:

Required Fields

Title:
  • Name or description of the asset
  • Example: “HP Laptop - Serial ABC123”, “Toyota Land Cruiser - Plate RAB 456C”
  • Required, non-empty string
Amount:
  • Acquisition value or purchase price
  • Must be at least 0.01
  • Represents asset value on balance sheet
Acquisition Date:
  • When asset was acquired
  • ISO date format (YYYY-MM-DD)
  • Can be historical (past dates allowed)
Acquisition Kind:
  • CASH_PURCHASE, COLLATERAL, or GIFT
  • Cannot be changed after creation (immutable)

Optional Fields

Description:
  • Detailed information about the asset
  • Include: serial number, warranty info, vendor, location, condition
  • Example: “Dell Latitude laptop purchased from ABC Computers, 3-year warranty expires 2029-06-01, assigned to Treasurer”
Bank Account (cash purchases only):
  • Which account paid for the purchase
  • Falls back to default account if not specified
Source Loan (collateral only):
  • Which loan was defaulted
  • Required for COLLATERAL acquisitions
  • System validates loan has bad debt
Documents:
  • Upload receipts, invoices, appraisals, photos
  • Stored as JSON array
  • Include ownership proof, purchase records
Bank Charge Amount (cash purchases only):
  • Additional fees paid during purchase
  • Wire fees, processing charges, etc.
  • Creates linked BANK_CHARGE entry
Notify Members:
  • Send email notification about asset acquisition
  • Optional boolean flag

Automatically Generated

Asset ID: Unique identifier (UUID) Journal Entry ID: Links to accounting entry Organization ID: Scope to organization Created At / Updated At: Timestamps

What You Can Do with Assets

Create Assets

Endpoint: POST /assets Record new asset acquisitions with full journal entry creation. Learn how to add assets →

View Assets

Endpoint: GET /assets/:id View complete asset details including:
  • All asset information
  • Journal entry details
  • Linked bank charges
  • Acquisition breakdown

Edit Assets

Endpoint: PUT /assets/:id Update asset information using reverse-and-repost pattern:
  • System reverses original journal entry
  • Creates new entry with updated values
  • Maintains complete audit trail
  • All old entries marked as REVERSED
What you can change:
  • Title
  • Amount
  • Description
  • Acquisition date
  • Bank account (cash purchases)
  • Source loan (collateral - recalculates bad debt recovery)
  • Documents
What you CANNOT change:
  • Acquisition kind (immutable - delete and recreate if needed)
Example edit:
Original:
- Title: "Laptop"
- Amount: 500,000 RWF

Edit to:
- Title: "HP Laptop - Serial XYZ789"
- Amount: 550,000 RWF (corrected price)

Result:
- Old entry: REVERSED (Dr CASH 500,000 / Cr FIXED_ASSET 500,000)
- New entry: POSTED (Dr FIXED_ASSET 550,000 / Cr CASH 550,000)
- Net change: Additional -50,000 RWF bank balance

Delete Assets

Endpoint: DELETE /assets/:id Remove assets recorded in error:
  • Reverses acquisition journal entry
  • Reverses all linked bank charges
  • Restores bank account balance (cash purchases)
  • Maintains audit trail (soft delete)
Constraints:
  • May create negative balance if bank account insufficient
  • Cannot delete if referenced by other transactions (future constraint)

Integration with Other Features

Bank Accounts

Cash purchases decrease bank account balances through CASH ledger credits. How it works:
  1. Select bank account for purchase
  2. System creates journal entry crediting CASH
  3. Bank balance decreases automatically
  4. Transaction appears in bank history
Best practice: Always select correct bank account to match actual payment source. Learn about bank accounts →

Loans and Collateral

Collateral seizure integrates with loan defaulting process. Workflow:
  1. Borrower defaults on secured loan
  2. System marks loan as DEFAULTED
  3. Writes off uncollectible amount as bad debt
  4. Create asset with COLLATERAL acquisition kind
  5. Link to defaulted loan
  6. System calculates bad debt recovery automatically
Requirements:
  • Loan must be DEFAULTED status
  • Loan must have written-off bad debt amount
  • Collateral must have been pledged as security
Learn about loan defaulting →

Balance Sheet

Fixed assets appear on Balance Sheet under Assets section. Breakdown by acquisition kind:
  • Physical Assets - Cash Purchase: XXX,XXX RWF
  • Physical Assets - Collateral: XXX,XXX RWF
  • Physical Assets - Gift: XXX,XXX RWF
Total Assets calculation:
  • Cash + Loans Receivable + Fixed Assets + Other Assets = Total Assets
Impact on net worth:
  • Assets = Liabilities + Equity
  • Fixed assets increase organizational value
Learn about balance sheet →

Depreciation

Depreciation is NOT tracked: Agatabo does not currently implement depreciation functionality. Assets remain at acquisition cost on the balance sheet indefinitely.
What this means:
  • Assets recorded at purchase/acquisition value
  • Value never decreases over time in Agatabo
  • No accumulated depreciation accounts
  • No depreciation expense calculated
  • Balance sheet shows historical cost, not current value
Workarounds:
  • Track depreciation in separate spreadsheet
  • Use external accounting software for tax depreciation
  • Manually adjust asset values periodically (edit assets)
  • Maintain depreciation schedule outside Agatabo
Future considerations:
  • ASSET_DISPOSAL journal kind exists (placeholder for future)
  • No implementation for asset sale/disposal yet
  • May be added in future versions

Asset Disposal (Not Yet Implemented)

Coming in future: Asset disposal/sale functionality is planned but not yet implemented. Currently, you can only delete assets (reversal), not record sales or disposals properly.
Current limitations:
  • No dedicated disposal endpoint
  • Cannot record asset sales
  • Cannot track gain/loss on disposal
  • Delete function is reversal, not disposal
Temporary workaround:
  • Delete asset to remove from balance sheet
  • Manually record sale proceeds as income (manual journal entry)
  • Document disposal in notes/external records

Validation and Constraints

Input Validation

Amount:
  • ✅ Must be at least 0.01
  • ✅ Must match currency decimal places
  • ❌ Cannot be negative or zero
Title:
  • ✅ Must be non-empty string
  • ❌ Cannot be blank
Acquisition Date:
  • ✅ Must be valid ISO date
  • ✅ Can be historical (past dates)
  • ❌ Cannot be in closed accounting period
Acquisition Kind:
  • ✅ Must be one of: CASH_PURCHASE, COLLATERAL, GIFT, ASSET_OPENING
  • ❌ Cannot be changed after creation (immutable)
Source Loan (collateral only):
  • ✅ Must exist and belong to organization
  • ✅ Must be DEFAULTED status
  • ✅ Must have written-off bad debt
  • ❌ Cannot use loan without bad debt

Business Logic Validation

Balance checks:
  • Verifies bank account won’t go negative (cash purchases)
  • Can skip via skipNegativeBalanceCheck parameter
  • Validates total amounts against available cash
Accounting period:
  • Cannot create asset in closed period
  • Cannot edit asset in closed period
  • Cannot delete asset in closed period
Idempotency:
  • All operations require idempotency key
  • Prevents duplicate assets from retries
  • Safe for network failures

Permissions Required

ActionPermissionScope
View assetsassets:readANY
Create assetassets:writeANY
Edit assetassets:writeANY
Delete assetassets:writeANY
Typical roles: Administrators and Accountants have assets:write. Regular members may have assets:read (view only) or no access.

Best Practices

Asset management tips:Recording:
  • Record assets immediately after acquisition
  • Use descriptive titles with serial numbers, models
  • Upload photos and receipts for documentation
  • Include all relevant details in description field
Titling conventions:
  • Format: “Type - Brand Model - Identifier”
  • Example: “Laptop - HP Elitebook 840 - Serial ABC123”
  • Example: “Vehicle - Toyota RAB 456C”
  • Makes asset inventory scannable
Documentation:
  • Always upload purchase receipts
  • Include warranty information
  • Photo documentation for physical condition
  • Appraisal reports for donations/gifts
Valuation:
  • Cash purchases: Use actual purchase price
  • Collateral: Use professional appraisal or market value
  • Gifts: Use fair market value (may require appraisal)
  • Opening assets: Use current reasonable value
Bank charges:
  • Record all associated fees (wire fees, registration, etc.)
  • Don’t hide true cost of acquisition
  • Use bank charge amount field for automatic linking
Inventory management:
  • Create asset tag or numbering system
  • Physical annual inventory count
  • Reconcile physical count with Agatabo records
  • Mark disposed/missing assets
Collateral seizure:
  • Only record when collateral physically seized
  • Use professional valuation for accuracy
  • Document legal process in description
  • Track borrower surplus liability settlement
Periodic review:
  • Review asset list quarterly
  • Verify assets still exist physically
  • Update descriptions if asset relocated/reassigned
  • Consider depreciation for reporting (external)

Adding Fixed Assets

Record new organizational assets

Depreciation

Understand depreciation (not implemented)

Asset Disposal

Remove assets from records (future)

Balance Sheet

View total asset value

Loan Defaulting

How collateral seizure works

Bank Accounts

Understand cash purchase impact