Skip to main content
Members are the foundation of every savings group in Save App. As an admin, you can add new members by phone number, assign roles, and control access at any time. Each member gets a credit score, reliability label, and eligibility status calculated automatically by the server so your app always has up-to-date data without any extra work.
All phone numbers must be in Uganda format. Accepted patterns are +256XXXXXXXXX (international) or 0XXXXXXXXX (local). The API will reject any phone number that does not match these formats.

Add a new member

Admins create members directly — no OTP flow is required on the admin side. If you do not supply an initial password, the account is placed in pending status and the member must set their own password before they can log in.
Response
The role field accepts "Member", "Admin", or "Administrator". Omitting password (or passing an empty string) leaves the account in pending state — see the onboarding flow below.

List all members

Any authenticated user can call this endpoint; members will only see themselves, while admins see the full group roster. Results are paginated.
Response
Use limit (1–100) and offset to page through large groups.

Get a single member

Members may fetch their own profile. Admins can fetch any member in the same group.
The response shape is identical to a single element in the list response above.

Update a member

Use PUT /api/members/{id} to change a member’s role or active status. Only the group creator can promote or demote roles; any admin can toggle is_active.
Response
Suspended members (is_active: false) cannot log in, request loans, or appear in the payout queue. Reactivate them before restoring access.

Member onboarding flow

When an admin creates a member without a password — or wants the member to choose their own PIN — the member completes a short self-service onboarding flow.
1

Admin creates the member account

Create the member without a password. The account status is set to pending automatically.
2

Admin shares credentials with the member

Send the member their phone number and the group name out of band (SMS, WhatsApp, or in person). These are the two pieces of information the member needs to start onboarding.
3

Member checks onboarding status

The member’s app calls the onboarding check endpoint to verify the account exists and is awaiting a password.
4

Member sets their password

The member chooses a secure password using the set-password endpoint.
After this call succeeds, status transitions from pending to active and the member can log in normally.

Suspend a member

Suspending a member is a non-destructive operation — all their contribution history, credit score, and loan records are preserved. To suspend, send is_active: false: