Gym

1 operation. Every schema and example on this page is generated from the platform contract.

Manually check a member into the gym.

Front-desk staff check a member in by hand (walk-ins, dead phones, day passes): records a visit (gym_checkins, token_type=manual), recomputes member status (active/trialing/past_due vs frozen/cancelled/none) and month-to-date visits, and broadcasts the check-in on the store Realtime channel. No dedup by design, a repeat tap is a repeat visit.

Request body

store_idstring · uuidrequired

Store checking the member in (also authorises the merchant).

customer_idstring · uuidrequired

Customer being manually checked in.

Response, 200

approvedbooleanrequired

Whether the check-in was allowed (active membership) or denied.

checkin_idstring, nullablerequired

The recorded gym_checkins row id (null if the insert failed open).

member_namestringrequired

The member display name (falls back to "Member").

plan_namestring, nullablerequired

The membership plan name, when known.

visits_this_monthnumber, nullablerequired

Approved visits this calendar month including this one (null on a denied check-in).

denial_reasonstring, nullablerequired

Why the check-in was denied (no_membership / frozen / cancelled); null when approved.

member_photo_urlstring, nullablerequired

The member profile photo URL, when set.

curl -X POST "https://www.membber.com/api/v1/gym/manual-checkin" \
  -H "Authorization: Bearer $MEMBBER_TOKEN" \
  -H "Idempotency-Key: 1f0e2d3c-4b5a-4678-9abc-def012345678" \
  -H "Content-Type: application/json" \
  -d '{
    "store_id": "6659c139-0000-4000-8000-d0c500000066",
    "customer_id": "96607d1c-0000-4000-8000-d0c500000096"
  }'
Response, 200
{
  "approved": true,
  "checkin_id": "e1a5166d-0000-4000-8000-d0c5000000e1",
  "member_name": "<member_name>",
  "plan_name": "<plan_name>",
  "visits_this_month": 1,
  "denial_reason": "Added at the front desk",
  "member_photo_url": "https://example.com/image.jpg"
}
WhatsApp
Book a Call
Start Free