The Save App analytics API gives you programmatic access to the numbers that matter most: total group balances, pending approvals, per-member savings, financial period reports, individual credit scores, and a full audit trail of every admin action. Dashboard and report endpoints are restricted to admins; the summary endpoint is available to all authenticated users.Documentation Index
Fetch the complete documentation index at: https://docs.digiflecttech.dev/llms.txt
Use this file to discover all available pages before exploring further.
GET /api/analytics/dashboard
Returns high-level counts for the group. Requires an admin JWT.Response
Total number of users with the
member role in the group.Number of members whose accounts are currently active (
is_active = true).Current total balance of the group fund, in UGX.
Number of loan requests currently in
PENDING status awaiting admin approval.Number of transactions currently in
PENDING status awaiting admin approval.Number of payouts currently in
PENDING status awaiting execution.Sample response
GET /api/analytics/summary
Returns a personalised summary for the authenticated user. Available to all authenticated users — both admins and members.Response
Total number of members in the group.
Number of currently active members.
Current total balance of the group fund, in UGX.
The authenticated user’s total contribution amount (
contribution_paid), in UGX.Combined count of pending loans and pending transactions across the group.
Name of the savings group the authenticated user belongs to.
Display name of the authenticated user making the request.
Sum of all approved contribution transactions for the current calendar month, in UGX.
Total interest amount accrued from loans in
APPROVED, ACTIVE, or COMPLETED status, in UGX.Unique identifier of the group, if available. May be
null.Sample response
GET /api/analytics/reports
Returns a financial summary for a given date range. Requires an admin JWT.Query parameters
Start of the report period as a Unix millisecond timestamp. Defaults to 30 days before the current time if omitted.
End of the report period as a Unix millisecond timestamp. Defaults to the current time if omitted.
Response
ISO 8601 datetime derived from the resolved
startDate value.ISO 8601 datetime derived from the resolved
endDate value.Sum of all approved contribution transactions within the period, in UGX.
Sum of all approved payouts executed within the period, in UGX.
Sum of all approved, active, or completed loan principal amounts requested within the period, in UGX.
Sum of all loan repayment amounts recorded within the period, in UGX.
Sample response
GET /api/credit-scores/me
Returns the credit score record for the authenticated user. Available to all authenticated users.Response
UUID of the member whose score is returned.
Display name of the member.
Current credit score. The scale runs from
min_credit_score (default 300) to max_credit_score (default 850), with new members starting at starting_credit_score (default 500).Number of contribution payments made on time.
Number of contribution payments made after the due date.
Number of contribution payments that were missed entirely.
Number of loans fully repaid before or on the due date.
Number of loans repaid after the due date.
Number of loans that defaulted without repayment.
Number of complete group cycles the member has participated in.
Number of cycles successfully completed by the member.
ISO 8601 timestamp of the most recent score recalculation.
GET /api/audit-logs
Returns a paginated list of admin action records. Requires an admin JWT.Query parameters
Filter results to actions performed by a specific admin UUID.
Filter by the type of entity that was acted on (e.g.,
"loan", "member", "config").Filter by the action string (e.g.,
"approve", "reject", "update").ISO 8601 datetime. Only return logs created at or after this time.
ISO 8601 datetime. Only return logs created at or before this time.
Maximum number of records to return. Upper bound is
500.Zero-based index of the first record to return. Use with
limit for pagination.Response
Returns an array ofAuditLogResponse objects, ordered by created_at descending.
UUID of the audit log entry.
UUID of the admin who performed the action.
Display name of the admin who performed the action.
String describing what was done (e.g.,
"approve", "reject", "update").The type of entity that was acted on (e.g.,
"loan", "member", "config").UUID of the entity that was acted on.
JSON-serialised representation of the entity’s state before the action. May be
null for creation events.JSON-serialised representation of the entity’s state after the action. May be
null for deletion events.ISO 8601 timestamp of when the action was recorded.
Sample response