Biometric devices
Fingerprint and face terminals at the church door can check members into the service as they arrive. The device posts each recognition to MyChurch; MyChurch finds the church by the device's serial number.
Step 1: register the device
In the portal, open Check-ins, Biometrics, add the device with its serial number (printed on the device and shown in its settings menu), a name and a location, then assign it to the service schedule it serves. A device that is not registered, or not assigned to a schedule, is ignored.
| Route | Permission | Purpose |
|---|---|---|
| GET/v1/biometrics | church:checkins:view | List the church's devices. |
| POST/v1/biometrics | church:checkins:manage | Register a device: serial_number, name, location. |
| PATCH/v1/biometrics/{uuid} | church:checkins:manage | Rename or move a device. |
| POST/v1/biometrics/{uuid}/assign | church:checkins:manage | Assign the device to a service schedule (schedule_uuid; empty unassigns). |
| DELETE/v1/biometrics/{uuid} | church:checkins:manage | Remove a device. |
church:services:view also reads the list, and church:services:manage also manages devices.
Members are matched by their phone number or member number, so enrol each member on the device with one of those as the user id.
Step 2: point the device at MyChurch
/api/v1/biometric and /api/v2/biometric answer the same way, for devices already configured with them.
Request (JSON or form fields)
| Field | Type | Required | Description |
|---|---|---|---|
| serialNumber | string | Yes | The device serial number registered in Step 1. |
| phone | string | No | The member's phone number, if that is the enrolled id. |
| member_number | string | No | The member number, if that is the enrolled id. |
| checkinTime | string | No | Device time, YYYY-MM-DD HH:MM:SS, Nairobi time. Defaults to the time received. |
| uuid | string | No | The church uuid. Optional; if sent it must match the device's church. |
curl -X POST https://uat-api.mychurch.co.ke/api/biometric \
-H "Content-Type: application/json" \
-d '{
"serialNumber": "BKX3204561",
"phone": "254712345678",
"checkinTime": "2026-10-04 09:47:12"
}'The answer is always an empty HTTP 200, straight away: devices expect nothing else. The check-in itself is processed a moment later.
What is recorded
- One check-in per member per service schedule; repeat scans the same day are ignored.
- Only within the service's start and end time; scans outside it are ignored.
- If the service sends check-in messages, the member gets the church's confirmation SMS.
- Check-ins appear with channel
biometricin the attendance reports.
Testing a device