Overview
Asset disposal in Agatabo is the process of removing a fixed asset from your records when it is sold, donated, discarded, or no longer in use. The system uses a journal reversal approach - deleting an asset creates a REVERSAL journal entry that undoes the original acquisition entry.When to Remove an Asset
Common scenarios for deleting an asset:- Sold: Asset sold to buyer for cash
- Donated: Asset given away to another organization or individual
- Discarded: Asset broken, obsolete, or no longer functional and thrown away
- Stolen/Lost: Asset stolen or lost
- Trade-in: Asset traded for new equipment (delete old, record new)
- Transferred: Asset moved to related organization
Before You Begin
Prerequisites:
- You have
assets:writepermission - You have verified the asset is truly no longer in the organization’s possession
- You have documentation of disposal (sales receipt, donation letter, or incident report)
- Accounting period where asset was acquired is not closed (otherwise deletion will be rejected)
How Asset Deletion Works
What Happens During Deletion
When you delete an asset viaDELETE /assets/:id, Agatabo:
- Removes asset record from the AssetMeta table
- Reverses original journal entry by creating a REVERSAL entry with opposite debits/credits
- Reverses linked bank charges (if the asset had associated bank fees)
- Updates Balance Sheet - Total Fixed Assets value decreases by asset amount
- Logs audit trail - Records who deleted the asset, when, and the asset details
Journal Entry Reversal Process
The deletion process creates REVERSAL journal entries (not ASSET_DISPOSAL entries): Cash Purchase Asset:Bank Charge Reversal
If the original asset had linked bank charges, those are also reversed:Critical Understanding: The reversal debits to CASH do NOT represent actual cash receipts. They are accounting reversals that undo the original entry. If you actually sold the asset for cash, you must record the cash receipt separately.
Step-by-Step: Deleting an Asset
Step 1: Navigate to Asset
Step 2: Delete the Asset
Click Delete or Remove Asset
Usually found in asset actions menu (three dots) or at bottom of details page
Confirm deletion
Dialog appears warning that this action is permanent and will reverse the journal entry
What You Can Do
| Action | Supported | How |
|---|---|---|
| Delete asset | ✅ YES | DELETE /assets/:id endpoint |
| Reverse acquisition entry | ✅ YES | Automatic on deletion |
| Record sale proceeds | ❌ NO | Must record manually via bank deposit |
| Calculate gain/loss | ❌ NO | Must calculate and record manually |
| Specify disposal reason | ❌ NO | Hardcoded as “Asset deletion” |
| Track buyer/recipient | ❌ NO | Document externally |
| Partial disposal | ❌ NO | All or nothing deletion |
Handling Asset Sales
If you sold an asset for cash, you must record the transaction in multiple steps:Step 1: Delete the Asset
Delete the asset from Agatabo to remove it from the Fixed Assets balance:
Result: Asset removed from Fixed Assets, original entry reversed
Step 2: Record Cash Receipt (Sale Proceeds)
Record the actual cash you received from the sale:
Learn about recording bank deposits →
Step 3: Calculate and Record Gain or Loss (Optional)
If tracking gain/loss for financial reporting: Gain Calculation:- Create manual journal entry for the gain or loss
- No dedicated gain/loss accounts exist, so use general income/expense
Simplified approach for small organizations: Many small tontines do not track gains/losses separately. They simply:
- Delete the asset (removes from Fixed Assets via reversal)
- Record cash received from sale (increases Cash)
- Let the net difference affect equity
Complete Example: Selling a Laptop
Asset Details:- Title: “HP Laptop - Serial ABC123”
- Book Value: 850,000 RWF (original purchase price)
- Sale Price: 300,000 RWF
Common Scenarios
Disposing of Stolen or Lost Asset
Accounting treatment:
- Deletion reverses the asset (reduces Fixed Assets)
- No cash received (theft/loss)
- Loss absorbed in equity unless manually recorded
Donating Asset to Another Organization
Accounting treatment:
- Deletion reverses the asset (reduces Fixed Assets)
- No cash received (donation)
- Value reduction absorbed in equity
Trade-In for New Equipment
When trading old asset for new:
Example:
Discarding Obsolete or Broken Equipment
Accounting treatment:
- Deletion reverses the asset (reduces Fixed Assets)
- No cash received (discarded)
- Loss absorbed in equity
Bulk Asset Disposal
If deleting multiple assets at once (e.g., office renovation, equipment upgrade):No bulk deletion: Agatabo does not have a bulk asset deletion feature. Each asset must be deleted individually via the DELETE endpoint.
Validation and Constraints
What You Cannot Do
Cannot delete if:- ❌ Asset was recorded in a closed accounting period
- ❌ You lack
assets:writepermission - ❌ Asset ID is invalid or doesn’t belong to your organization
- ❌ Disposal reason (sold vs. donated vs. scrapped) - hardcoded as “Asset deletion”
- ❌ Sale proceeds or sale price
- ❌ Buyer or recipient information
- ❌ Gain or loss on disposal (must calculate manually)
- ❌ Disposal date separate from deletion timestamp
- ❌ Accumulated depreciation (not tracked in Agatabo)
Idempotency
Asset deletion requiresx-idempotency-key header:
- Prevents duplicate deletions from retries
- Safe for network failures and refreshes
- Duplicate requests with same key succeed without error
Best Practices
Asset disposal tips:Before Disposal:
- Verify asset is truly gone (not just out for repair or temporarily unavailable)
- Take photos of asset condition before disposal
- Get committee approval for high-value assets (> 500,000 RWF)
- Ensure all supporting documentation is ready
- Keep sales receipts, donation letters, or incident reports
- Record disposal reason and details in external log (Agatabo doesn’t track this)
- Note disposal date, buyer/recipient, and sale proceeds externally
- Update insurance policies when high-value assets are disposed
- For asset sales, always record the cash receipt separately
- Consider recording gain/loss manually for formal financial reporting
- Review and reconcile asset list annually
- Conduct physical inventory count before and after bulk disposals
- Document committee approval for significant disposals
- Keep external disposal log with reasons and supporting docs
- Maintain audit trail of who authorized and who executed disposal
- Keep disposal documentation for tax and audit purposes
Troubleshooting
”Cannot delete asset - period closed”
Cause: Asset was recorded in a closed accounting period Solution:- Accounting periods are locked to prevent changes to past transactions
- Contact your accountant or administrator to re-open the period if deletion is necessary
- Alternatively, wait until current period closes and adjust in next period
“x-idempotency-key header is required”
Cause: Frontend didn’t send idempotency key with DELETE request Solution:- This is a frontend/API client issue
- Ensure the DELETE request includes
x-idempotency-keyheader - Use unique key per deletion attempt (e.g., UUID)
“Insufficient permissions”
Cause: You lackassets:write permission
Solution:
- Contact an administrator to grant
assets:writepermission - Only users with this permission can delete assets
- Check your role and permission assignments
”Asset not found”
Cause: Asset doesn’t exist or already deleted Solution:- Verify asset ID is correct
- Check if asset was already deleted (check audit logs)
- Ensure you’re using the correct organization ID
”Cash balance would become negative”
Cause: Reversal would create negative cash balance (rare for deletions) Solution:- This usually indicates accounting inconsistency
- Use
skipNegativeBalanceCheck=truequery parameter (requires special permission) - Investigate why reversal would cause negative balance
Permissions Required
| Action | Permission | Scope |
|---|---|---|
| View assets | assets:read | ANY |
| Delete asset | assets:write | ANY |
| Skip balance check | assets:write + special permission | ANY |
Typical roles: Administrators and Accountants have
assets:write. Regular members may have assets:read (view only) or no access.Audit and Compliance
For organizations with formal auditing requirements:Disposal documentation checklist:
- ✅ Reason for disposal (sold, donated, discarded, stolen)
- ✅ Disposal date and authorization (document externally - not in Agatabo)
- ✅ Sale proceeds with receipt (if applicable)
- ✅ Donation acknowledgement letter (if donated)
- ✅ Police report (if stolen)
- ✅ Photos of asset condition before disposal
- ✅ Committee or board approval for high-value disposals
- ✅ Updated insurance policy (removing disposed assets)
- ✅ Gain/loss calculation (if required for financial reporting)
- No disposal reason tracking (hardcoded as “Asset deletion”)
- No sale proceeds field (must document externally)
- No gain/loss calculation (must calculate manually)
- No buyer/recipient information (must document externally)
- ASSET_DISPOSAL journal entry kind exists but is never used (only REVERSAL entries created)
Technical Details
API Endpoint
What Happens Internally
- Validate request: Check idempotency key, organization ID, permissions
- Fetch asset: Retrieve asset record and journal entry
- Delete asset record: Remove from AssetMeta table
- Reverse acquisition entry: Create REVERSAL journal entry with opposite debits/credits
- Reverse bank charges: If asset had linked bank charges, reverse those too
- Check balances: Ensure no negative balances (unless skipped)
- Log audit trail: Record who, when, what (asset title and details)
- Return success: Confirm deletion and reversal
Journal Entry Kind
ASSET_DISPOSAL exists but is NOT used:- The
journal_entry_kindenum includesASSET_DISPOSAL - This kind is mapped to display label “Asset Disposal”
- However, it is never instantiated in the codebase
- Asset deletion creates REVERSAL entries, not ASSET_DISPOSAL entries
- This suggests disposal functionality was planned but not fully implemented
Related Topics
Fixed Assets Overview
Understand asset types and features
Adding Fixed Assets
Record new assets
Manual Journal Entries
Record gains/losses manually
Balance Sheet
View asset totals after disposal
Period Closing
Understand period constraints
Bank Accounts
Record sale proceeds