Profile, family and professions
Read and update the member's own record and photo, link children and a spouse, opt out of non-transactional SMS, request data deletion and record professions.
Every route here needs the member token. Routes marked Member token + PIN also need the member's pin in the body, because they change the family or the account itself.
Read the profile
curl https://uat-api.mychurch.co.ke/api/v2/profile \
-H "Authorization: Bearer 11111111-2222-4333-8444-555555555555"{
"message": "Success",
"status": true,
"account": {
"first_name": "Jane",
"middle_name": "",
"other_names": "Wanjiku",
"primary_phone": "254712345678",
"alternative_phone": null,
"email": "[email protected]",
"physical_address": "Kilimani, Nairobi",
"date_of_birth": "1990-04-12",
"confirmation_date": null,
"married_on": "2018-12-01",
"age_group": null,
"status": 1,
"gender": 2,
"marital_status": 2,
"uuid": "00000000-0000-4000-8000-0000000000b1",
"member_number": "GC042",
"tithe_number": "T-118",
"blocked": null,
"baptism_date": "2005-08-14"
},
"department_name": "Departments",
"cell_group_name": "Cell Groups"
}The account block is the login one plus baptism_date; here the two labels sit beside it instead of inside it. age_group is the whole age group record (with its integer id, kept for the installed apps) or null.
Update the profile
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Full name, split into first, middle and other names. |
| physical_address | string | Yes | Where the member lives. |
| gender | integer | Yes | 1 male, 2 female. |
| marital_status | integer | Yes | 1 single, 2 married, 3 single parent, 4 widowed. |
| date_of_birth | string | No | YYYY-MM-DD. Required unless age_group is sent. |
| age_group | uuid | No | Required unless date_of_birth is sent. |
| alternative_phone | string | No | A second number. Must not belong to another member or to the church (422 The alternative phone has already been taken.). |
| tithe_number | string | No | Unique within the church (422 The tithe number has already been taken.). |
| confirmation_date | string | No | YYYY-MM-DD. |
| married_on | string | No | YYYY-MM-DD. |
{"message": "Your account has been updated", "status": true}Upload a photo
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| photo | file | Yes | Multipart field. PNG or JPEG, up to 8 MB. |
curl -X POST https://uat-api.mychurch.co.ke/api/v2/upload-photo \
-H "Authorization: Bearer 11111111-2222-4333-8444-555555555555" \
-F "[email protected]"{"message": "You photo has been uploaded", "status": true, "photo": "https://uat-api.mychurch.co.ke/storage/scarlet/profiles/0a1b2c3d.jpg"}Another file type is a 422: The photo field must be a file of type: png, jpg, jpeg.
Children
No body. Lists the children of the member and their spouse: children registered under the parent (is_member: 0) and members linked to the parent as their child (is_member: 1).
{
"message": "Success",
"status": true,
"children": [
{ "uuid": "00000000-0000-4000-8000-0000000000c1", "first_name": "Brian", "other_names": "Wanjiku", "date_of_birth": "2016-02-20", "gender": 1, "is_member": 0 },
{ "uuid": "00000000-0000-4000-8000-0000000000b7", "first_name": "Mercy", "other_names": "Wanjiku", "date_of_birth": "2004-09-03", "gender": 2, "is_member": 1 }
]
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| pin | string | Yes | The member's PIN, encrypted by the app. A wrong PIN answers You have entered the wrong pin. |
| name | string | Yes | The child's name. |
| date_of_birth | string | Yes | YYYY-MM-DD. |
| gender | integer | Yes | 1 male, 2 female. |
{"message": "Your child is being registered", "status": true}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| pin | string | Yes | The member's PIN, encrypted by the app. A wrong PIN answers You have entered the wrong pin. |
{"message": "Child removed successfully", "status": true}Link an adult child who is a member
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| pin | string | Yes | The member's PIN, encrypted by the app. A wrong PIN answers You have entered the wrong pin. |
| phone | string | Yes | The child's own member phone number in this church. |
{"message": "Child added successfully", "status": true}Failures: A member with the phone number does not exist, The child is already linked to a parent.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| pin | string | Yes | The member's PIN, encrypted by the app. A wrong PIN answers You have entered the wrong pin. |
{"message": "Child removed successfully", "status": true}Spouse
Spouses are linked by invitation: one member invites the other by phone, the invitee receives a code by SMS and confirms it.
{
"message": "Success",
"status": true,
"spouse": {
"uuid": "00000000-0000-4000-8000-0000000000b2",
"first_name": "Peter",
"middle_name": null,
"other_names": "Kamau",
"primary_phone": "254722000111",
"gender": 1,
"physical_address": "Kilimani, Nairobi"
}
}spouse is null when none is linked.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| pin | string | Yes | The member's PIN, encrypted by the app. A wrong PIN answers You have entered the wrong pin. |
| phone | string | Yes | The spouse's member phone number in this church. |
{"message": "Your invite has been sent", "status": true}Failures: There is no member with that phone number, The spouse is already linked to you, The spouse is already linked to another member, You have already invited this spouse., You have been invited by this spouse. Check pending invitations and accept.
{
"message": "Success",
"status": true,
"spouses": [
{
"id": 88, "uuid": "00000000-0000-4000-8000-0000000000d1", "church_id": 12, "invitee": 4410,
"code": 4821, "status": 0, "deleted_at": null,
"created_at": "2026-10-30T08:12:00.000000Z", "updated_at": "2026-10-30T08:12:00.000000Z",
"inviter": {
"id": 4409, "uuid": "00000000-0000-4000-8000-0000000000b2", "first_name": "Peter", "middle_name": null,
"other_names": "Kamau", "primary_phone": "254722000111", "gender": 1, "physical_address": "Kilimani, Nairobi"
}
}
]
}This route keeps the whole legacy record, integer ids included, because the installed apps read it.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| pin | string | Yes | The member's PIN, encrypted by the app. A wrong PIN answers You have entered the wrong pin. |
| code | string | Yes | The code the invitee received by SMS. |
{"message": "Your invite is being processed", "status": true}Unknown code: The code you entered does not exist.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| pin | string | Yes | The member's PIN, encrypted by the app. A wrong PIN answers You have entered the wrong pin. |
{"message": "Spouse removed successfully", "status": true}SMS opt-out
Members can stop the church's general (non-transactional) SMS such as announcements. Receipts, codes and other transactional messages still arrive.
{"message": "You have successfully blocked non-transactional messages", "status": true}{"message": "You have unblocked non-transactional messages", "status": true}Request data deletion
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| pin | string | Yes | The member's PIN, encrypted by the app. A wrong PIN answers You have entered the wrong pin. |
| reason | string | No | Optional reason, shown to the church. |
{"message": "Your request has been received.", "status": true}The church reviews the request in the portal. A second request while one is open answers Your request is under review.
Professions
Members can list the professional services they offer, under a category and sub-category the platform defines, so the church can find skills in its congregation.
{
"message": "success",
"status": true,
"categories": [
{
"uuid": "00000000-0000-4000-8000-0000000000e1", "name": "Health", "description": null,
"deleted_at": null, "created_at": "2024-01-01T00:00:00.000000Z", "updated_at": "2024-01-01T00:00:00.000000Z",
"subs": [
{ "uuid": "00000000-0000-4000-8000-0000000000e2", "category_id": 1, "name": "Nursing", "description": null,
"deleted_at": null, "created_at": "2024-01-01T00:00:00.000000Z", "updated_at": "2024-01-01T00:00:00.000000Z" }
]
}
],
"professions": [
{ "uuid": "00000000-0000-4000-8000-0000000000e9", "sub_category": "Nursing", "category": "Health", "services": "Home visits,First aid training" }
]
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| services | string | Yes | Comma-separated services, e.g. Home visits,First aid training. |
{"message": "Profession saved successfully", "status": true}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| services | string | Yes | The new comma-separated list. |
{"message": "Profession updated successfully", "status": true}{"message": "Profession deleted successfully", "status": true}