Parking
Record a car in the church parking, pay the parking fee with an M-Pesa prompt, with or without a member login, and list recent parkings.
Premium
Your church is currently not subscribed to this feature.The church sets a parking fee for members and one for visitors (either may be zero). A paid parking carries the account number CAR- followed by the number plate, so a driver can also pay at the church paybill directly (account numbers). Ushers confirm and check cars out in the portal.
Record parking (member)
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| number_plate | string | Yes | The plate, e.g. KDA 123A. Stored upper case. |
| parking_spot | string | No | A named spot. Must exist and be free (not reserved for someone else, not occupied). |
| phone | string | No | The number to prompt for the fee; defaults to the member's. |
| type | integer | No | 2 records the car as a visitor's (visitor fee, phone then required). |
curl -X POST https://uat-api.mychurch.co.ke/api/v2/record-parking \
-H "Authorization: Bearer 11111111-2222-4333-8444-555555555555" \
-H "Content-Type: application/json" \
-d '{"number_plate": "KDA 123A"}'{"message": "Car Parking for. KDA 123A. set successfully. A payment request has been sent.", "status": true}{"message": "Car Parking for. KDA 123A. set successfully. ", "status": true}Failures: The parking spot you have entered does not exist, The parking spot you selected is currently reserved., The parking spot you have entered is occupied.
Record parking (no login)
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| number_plate | string | Yes | The plate. |
| phone | string | Yes | The driver's phone, prompted for the visitor fee. |
| parking_spot | string | No | A named spot. |
Same answers. The church in the path must be on the premium plan.
Pay for a parking
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| phone | string | No | The number to prompt; defaults to the member's. |
{"message": "A payment request has been initiated. Input your pin when requested", "status": true}When the member fee is zero the parking is marked paid at once: {"message": "Parking has been saved successfully", "status": true}.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| parking | uuid | Yes | The parking, which must belong to the church in the path. |
| phone | string | No | The number to prompt; defaults to the phone recorded with the parking. |
Charges the visitor fee, same answers. Failure: This church has no paybill configured for payments. On /api/v1 the route is pay-parking/{parking} with the parking uuid in the path.
Recent parkings
{
"message": "Success",
"status": true,
"parkings": [
{
"account_number": "CAR-KDA 123A", "uuid": "00000000-0000-4000-8000-000000001501", "number_plate": "KDA 123A",
"time_checked_in": "2026-11-01 08:47:10", "time_confirmed": null, "time_checked_out": null,
"status": 1, "transaction_reference": "TKA12BC34D"
}
],
"total": 6
}The 10 latest; total counts all. status is 0 unpaid, 1 paid, 2 confirmed by an usher, 3 checked out, 4 awaiting the checkout code. time_confirmed is always null, as it always was.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| phone | string | Yes | The driver's phone. |
curl -X POST https://uat-api.mychurch.co.ke/api/v2/myparkings/00000000-0000-4000-8000-000000000001 \
-H "Content-Type: application/json" \
-d '{"phone": "0712345678"}'Same shape, for parkings recorded with that phone at that church.