MyChurchDocs

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

Parking needs the church's premium plan. A basic church answers 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)

POSThttps://uat-api.mychurch.co.ke/api/v2/record-parkingMember token, premium

Parameters

FieldTypeRequiredDescription
number_platestringYesThe plate, e.g. KDA 123A. Stored upper case.
parking_spotstringNoA named spot. Must exist and be free (not reserved for someone else, not occupied).
phonestringNoThe number to prompt for the fee; defaults to the member's.
typeintegerNo2 records the car as a visitor's (visitor fee, phone then required).
bash
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"}'
Response (fee due)
{"message": "Car Parking for. KDA 123A. set successfully. A payment request has been sent.", "status": true}
Response (no fee)
{"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)

POSThttps://uat-api.mychurch.co.ke/api/v2/record-parking-noauth/{church}Public

Parameters

FieldTypeRequiredDescription
number_platestringYesThe plate.
phonestringYesThe driver's phone, prompted for the visitor fee.
parking_spotstringNoA named spot.

Same answers. The church in the path must be on the premium plan.

Pay for a parking

POSThttps://uat-api.mychurch.co.ke/api/v2/pay-parking-auth/{parking}Member token, premium

Parameters

FieldTypeRequiredDescription
phonestringNoThe number to prompt; defaults to the member's.
Response
{"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}.

POSThttps://uat-api.mychurch.co.ke/api/v2/pay-parking/{church}Public

Parameters

FieldTypeRequiredDescription
parkinguuidYesThe parking, which must belong to the church in the path.
phonestringNoThe 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

GEThttps://uat-api.mychurch.co.ke/api/v2/my-parkingsMember token, premium
Response
{
  "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.

POSThttps://uat-api.mychurch.co.ke/api/v2/myparkings/{church}Public

Parameters

FieldTypeRequiredDescription
phonestringYesThe driver's phone.
bash
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.