Church settings
The church profile the app shows, its logo, how new members are approved, the labels and SMS templates it uses, and its MyChurch subscription.
Church profile
| Route | Permission | Purpose |
|---|---|---|
| GET/v1/church | Any signed-in caller of the church | The acting church's profile, plan, status and active_until. |
| GET/v1/church/overview | Any signed-in caller of the church | Dashboard figures: members by status, visitors, children, groups, check-ins this week and last, giving this month, last month and this year, by month. |
| PUT/v1/church | church:profile:edit | Update the profile. |
| GET/v1/churches/selectable | Any signed-in caller | Churches the caller may act on (one for a church user; the tree for a head office; all for staff). |
| GET/v1/counties | Any signed-in caller | Kenya's counties, for county_uuid. |
Profile fields
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | The church's name as members see it. |
| phone | string | No | Contact phone, shown in the app's Contact us and in USSD. |
| string | No | Contact email. | |
| physical_address | string | No | Street address. |
| town | string | No | Town. |
| county_uuid | uuid | No | One of GET /v1/counties. |
| about_us | string | No | About text for the app. |
| mission | string | No | Mission statement. |
| vision | string | No | Vision statement. |
| welcome_message | string | No | Welcome text for the app. |
| slogan | string | No | Short slogan. |
| allows_prayer_requests | boolean | No | Members can send prayer requests from the app. |
| allows_livestream | boolean | No | The app shows the church's livestreams. |
| is_live | boolean | No | A livestream is on now. |
| inactive_after_days | integer | No | Mark members inactive after this many days without activity (0 turns it off); checked daily. |
# Paste your token once (it starts with mc_):
export MYCHURCH_TOKEN="mc_your_token_here"
curl -X PUT https://uat-api.mychurch.co.ke/v1/church \
-H "Authorization: Bearer $MYCHURCH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Example Fellowship Church",
"phone": "0711000222",
"email": "[email protected]",
"town": "Nakuru",
"about_us": "A family church in the heart of Nakuru.",
"allows_prayer_requests": true
}'Plan, status, active_until and the app visibility flags are set by MyChurch, not by the church.
Settings
Reading takes church:settings:view or church:settings:edit (or the head office and staff view permissions with X-Church); every change takes church:settings:edit.
| Route | Permission | Purpose |
|---|---|---|
| GET/v1/settings | church:settings:view | Everything below in one object. |
| PUT/v1/settings/approval | church:settings:edit | Member approval and app login rules. |
| PUT/v1/settings/data-entry | church:settings:edit | Whether members may edit their own details, and the inactive-member rule. |
| PUT/v1/settings/customisations | church:settings:edit | Rename the app's sections (items of type and title). |
| PUT/v1/settings/messages | church:settings:edit | SMS templates (items of type and message) and the member number prefix. |
| GET/v1/settings/logos | church:settings:view | Uploaded logos and which is current. |
| POST/v1/settings/logos | church:settings:edit | Upload a logo (multipart image: JPG, PNG or WebP, at most 5 MB). |
| DELETE/v1/settings/logos/{uuid} | church:settings:edit | Remove a logo. |
| GET/v1/settings/subscription | church:subscriptions:view | The church's plan, amount, active_until, how to pay, and its subscription payments (page, page_size). |
Approval
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| approve_ussd_members | boolean | No | When true, people who register by USSD are active at once; when false they wait as pending for approval. |
| approve_children | boolean | No | The same rule for children registered from the app or USSD. |
| allow_otp_login | boolean | No | After the PIN, the app may ask for an SMS code as a second step. |
| remember_login | boolean | No | Skip that SMS code step for returning members. |
{
"approve_ussd_members": false,
"allow_otp_login": true
}Fields you leave out keep their current value.
Labels and SMS templates
Customisation types: cell_groups, departments, children, affinity_groups, ministries, services, sermons, pledges, word_of_the_day, sunday_school, full_members, associate_members and more; GET /v1/settings returns the full list with defaults.
Message types include welcome_full_member, welcome_associate_member, welcome_visitor, pledge_reminder, pledge_completed, birthday, child_birthday, anniversary and collection_receipt. Each accepts only its own placeholders, such as [name], [church_name] and [member_number] in a welcome; an unknown placeholder answers 422 naming it.
{
"items": [
{ "type": "birthday", "message": "Happy birthday [name]! The [church_name] family celebrates you today." }
],
"member_number_prefix": "EFC"
}Sending SMS
Subscription
GET /v1/settings/subscription tells the church what it pays, until when it is active, and the platform paybill and CH- account number to pay with. When active_until passes, the daily subscription check marks the church inactive and its users and tokens are refused with 403 until a payment renews it. See Account numbers for the CH- prefix.