Save App gives every member access to short-term loans backed by their own contribution history. The loan amount a member can borrow is capped at three times their total approved contributions, so the more consistently a member contributes, the more they can access. All loan requests are created inDocumentation Index
Fetch the complete documentation index at: https://docs.digiflecttech.dev/llms.txt
Use this file to discover all available pages before exploring further.
PENDING status and become ACTIVE only after every admin in the group approves them.
Check loan eligibility
Before showing a loan request form, call this endpoint to confirm the member is eligible and to learn the maximum amount they can borrow.is_eligible will be false and reason will explain why. The max_eligible_amount is always returned so you can display it in your UI regardless of eligibility.
Eligibility is calculated as:
max_eligible_amount = contribution_paid × 3, capped at the group’s configured max_loan_limit. A member also needs a credit score of at least 60 to be eligible.Generate a repayment schedule
Let members preview exactly what they will owe each month before committing to a loan.interest = principal × (rate / 100) × (duration_months / 12). The default interest rate is 5% per annum.
Submit a loan request
Once the member has reviewed the schedule and confirmed their intent, submit the loan request. ThememberName must exactly match a registered member’s name.
guarantor and guarantorPhone are optional but recommended for larger loan amounts.
View loans
Retrieve loans with an optional status filter. Members only see their own loans; admins see all loans in the group.status filter values: pending, approved, active, completed, overdue, rejected.
Loan lifecycle
Every loan moves through a defined set of statuses:| Status | Meaning |
|---|---|
PENDING | Submitted, waiting for all admins to approve |
APPROVED | All admins have approved; funds can be disbursed |
ACTIVE | Disbursed and currently being repaid |
COMPLETED | Fully repaid |
OVERDUE | Past the due date with an outstanding balance |
REJECTED | Declined by an admin |
Loan approval requires unanimous consent from all active admins in the group. Each admin calls
POST /api/loans/{id}/approve independently. The API responds with progress (2/3 admins have approved) until the final admin’s vote triggers the status change to ACTIVE.Repay a loan
Record a repayment against an active, approved, or overdue loan. Partial repayments are allowed — the loan moves toCOMPLETED only once repaidAmount >= totalDue.
phoneNumber is optional and is recorded for mobile money transactions for reconciliation purposes. paymentMethod is a free-form string — common values used by Save App groups include "mobile_money" and "cash".
LoanResponse fields
| Field | Type | Description |
|---|---|---|
id | string | Unique loan UUID |
memberName | string | Name of the borrowing member |
amount | float | Principal loan amount |
interest | float | Total interest charged |
totalDue | float | Principal + interest |
repaidAmount | float | Amount repaid so far |
status | string | Current loan status |
dateRequested | datetime | When the loan was submitted |
dueDate | datetime | Repayment deadline |
reason | string | Member-provided reason for the loan |