MyChurchDocs

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

RoutePermissionPurpose
GET/v1/churchAny signed-in caller of the churchThe acting church's profile, plan, status and active_until.
GET/v1/church/overviewAny signed-in caller of the churchDashboard 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/churchchurch:profile:editUpdate the profile.
GET/v1/churches/selectableAny signed-in callerChurches the caller may act on (one for a church user; the tree for a head office; all for staff).
GET/v1/countiesAny signed-in callerKenya's counties, for county_uuid.

Profile fields

FieldTypeRequiredDescription
namestringYesThe church's name as members see it.
phonestringNoContact phone, shown in the app's Contact us and in USSD.
emailstringNoContact email.
physical_addressstringNoStreet address.
townstringNoTown.
county_uuiduuidNoOne of GET /v1/counties.
about_usstringNoAbout text for the app.
missionstringNoMission statement.
visionstringNoVision statement.
welcome_messagestringNoWelcome text for the app.
sloganstringNoShort slogan.
allows_prayer_requestsbooleanNoMembers can send prayer requests from the app.
allows_livestreambooleanNoThe app shows the church's livestreams.
is_livebooleanNoA livestream is on now.
inactive_after_daysintegerNoMark 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.

RoutePermissionPurpose
GET/v1/settingschurch:settings:viewEverything below in one object.
PUT/v1/settings/approvalchurch:settings:editMember approval and app login rules.
PUT/v1/settings/data-entrychurch:settings:editWhether members may edit their own details, and the inactive-member rule.
PUT/v1/settings/customisationschurch:settings:editRename the app's sections (items of type and title).
PUT/v1/settings/messageschurch:settings:editSMS templates (items of type and message) and the member number prefix.
GET/v1/settings/logoschurch:settings:viewUploaded logos and which is current.
POST/v1/settings/logoschurch:settings:editUpload a logo (multipart image: JPG, PNG or WebP, at most 5 MB).
DELETE/v1/settings/logos/{uuid}church:settings:editRemove a logo.
GET/v1/settings/subscriptionchurch:subscriptions:viewThe church's plan, amount, active_until, how to pay, and its subscription payments (page, page_size).

Approval

Parameters

FieldTypeRequiredDescription
approve_ussd_membersbooleanNoWhen true, people who register by USSD are active at once; when false they wait as pending for approval.
approve_childrenbooleanNoThe same rule for children registered from the app or USSD.
allow_otp_loginbooleanNoAfter the PIN, the app may ask for an SMS code as a second step.
remember_loginbooleanNoSkip that SMS code step for returning members.
PUT /v1/settings/approval
{
  "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.

PUT /v1/settings/messages
{
  "items": [
    { "type": "birthday", "message": "Happy birthday [name]! The [church_name] family celebrates you today." }
  ],
  "member_number_prefix": "EFC"
}

Sending SMS

These templates go out through the church's own Mobile Sasa sender ID. See SMS and delivery reports.

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.