The system configuration API lets you read your group’s current financial rules at any time without authentication, and update those rules as an admin with a singleDocumentation Index
Fetch the complete documentation index at: https://docs.digiflecttech.dev/llms.txt
Use this file to discover all available pages before exploring further.
PUT request. Every field is optional on update — only the fields you include are changed, and the full updated configuration is returned immediately. Changes persist to the database and take effect across all connected devices without a restart.
GET /api/config
Returns the current system configuration. This endpoint is public — no authentication is required.GET /api/config requires no Authorization header. You can call it from an unauthenticated client to display group settings on onboarding screens or public-facing pages.Response
See the full SystemConfig fields table below.Sample response
PUT /api/config
Updates system configuration. Requires an admin JWT. Only the fields present in the request body are modified — omitted fields retain their current values. Returns the full updatedSystemConfig object.
Request body
All fields are optional. Include only the fields you want to change.Financial rules
Annual interest rate applied to loans, expressed as a percentage. Must be between
0 and 100.Maximum loan amount expressed as a multiple of the member’s savings. For example,
3 means a member can borrow up to three times what they have contributed. Must be >= 0.Absolute maximum loan amount in UGX, regardless of savings multiplier. Must be
>= 0.Maximum amount disbursed per payout execution, in UGX. Must be
>= 0.Percentage of the payout amount retained in the group fund rather than disbursed. Must be between
0 and 100.Daily penalty rate applied to overdue loan balances, expressed as a percentage. Must be
>= 0.Fixed contribution amount required from each member per cycle, in UGX. Must be
>= 0.Maximum loan term in months. Must be
>= 0.Credit score weights
These values are added to or subtracted from a member’s credit score when the corresponding event occurs.Points added when a contribution is made on time.
Points added (negative) when a contribution is made after the due date.
Points added (negative) when a contribution is missed entirely.
Points added when a loan is fully repaid on or before the due date.
Points added (negative) when a loan is repaid after the due date.
Points added (negative) when a loan is marked as defaulted.
Points added when a member completes a full group cycle.
Credit score boundaries
Floor value for the credit score. A score cannot fall below this number.
Ceiling value for the credit score. A score cannot rise above this number.
Credit score assigned to every new member when their account is created.
Cycle and chama settings
Contribution and payout cycle frequency (e.g.,
"Monthly", "Weekly").Number of members who receive a payout per cycle execution.
Fixed late fee charged per overdue loan repayment event, in UGX.
The date the current cycle started, used as the reference point for scheduling. Accepts a human-readable date string (e.g.,
"Jan 1, 2025").When
true, payouts are executed automatically by the scheduler. When false, an admin must trigger each payout manually.When
true, the system sends reminders and tracks contribution due dates based on the configured frequency and start_date.When
true, member transactions are rounded up and the difference is added as a micro-contribution to the group fund.When
true, the system automatically advances the group to the next cycle when all conditions are met.When
true, members can submit new loan requests. Set to false to pause the loan request flow for all members.Response
Returns the full updatedSystemConfig object. See the sample response under GET /api/config.
Error responses
| Status | Condition |
|---|---|
400 Bad Request | A field value is out of its valid range (e.g., loan_interest_rate outside 0–100, or a negative amount field). |
401 Unauthorized | No valid Authorization header was provided. |
403 Forbidden | The authenticated user does not have the admin role. |
Notifications
GET /api/notifications
Returns all notifications for the authenticated user, ordered bycreated_at descending. Requires authentication.
Response
Returns an array ofNotificationResponse objects.
UUID of the notification.
Short title of the notification.
Full notification body text.
Category of the notification (e.g.,
"loan", "contribution", "payout").true if the user has read this notification.ISO 8601 timestamp of when the notification was created.
POST /api/notifications//read
Marks a single notification as read. The notification must belong to the authenticated user. Returns404 if the ID is not found or belongs to a different user.
UUID of the notification to mark as read.
Response
true when the notification was successfully marked as read.Confirmation message:
"Notification marked as read".POST /api/notifications/read-all
Marks all unread notifications for the authenticated user as read in a single operation.Response
true when all notifications were successfully updated.Confirmation message:
"All notifications marked as read".POST /api/notifications/update-token
Registers or replaces the FCM (Firebase Cloud Messaging) push token for the authenticated user’s device. Call this endpoint after obtaining a fresh token from the Firebase SDK — typically on app launch and wheneveronTokenRefresh fires.
Request body
The FCM device token obtained from the Firebase SDK. Must be at least 1 character.
Response
true when the token was saved successfully.Confirmation message:
"FCM token updated successfully".Sample response (all notification endpoints)