Booking Flow

Session Bookings

A SessionBooking records a customer's attendance against a specific session occurrence — captures check-in, no-show, intake form status and arrival stage so reception staff can manage walk-in flow.

The SessionBooking object

Attributes

  • idstringrequired

    The ID of the session.

  • checked_in_atdate-timerequirednullable

    The time this booking was checked in.

  • customer_idstringrequired

    The ID of the customer this booking is for.

  • emailstringrequired

    The email address of the customer.

  • first_namestringrequired

    The first name of the customer.

  • guestsobject[]required
  • intake_forms_completedbooleanrequired

    Whether the required intake form has been completed.

  • intake_form_requiredbooleanrequired

    Whether the session booking requires an intake form to be completed.

  • is_no_showbooleanrequired

    Whether this booking was marked as a no-show.

  • last_namestringrequired

    The last name of the customer.

  • order_idstringrequired

    The ID of the order associated with this session.

  • order_item_idstringrequired

    The ID of the order item associated with this session.

  • order_refstringrequired

    The order reference associated with this session.

  • organisation_idstringrequired

    The ID of the organisation the session booking belongs to.

  • phonestringrequired

    The customer's phone number.

  • session_idstringrequired

    The ID of the session this booking is for.

  • session_type_idstringrequired

    The ID of the session type.

  • session_type_namestringrequired

    The name of the session type.

  • site_idstringrequired

    The ID of the site the session booking belongs to.

  • stagestringrequired

    The current stage of the order the session belongs to.

    Possible values:not_arrivedarrivedin_treatmentchecked_out
  • statusstringrequired

    The status of the booking.

    Possible values:newin_progressconfirmedwaitlisted
  • created_atdate-timerequired

    A datetime string of when the resource was created.

  • updated_atdate-timerequired

    A datetime string of when the resource was last updated.

{
  "id": "5dcb47800000000000000000",
  "checked_in_at": "2022-03-02T09:00:00+00:00",
  "customer_id": "5dcb47800000000000000020",
  "email": "janedoe@example.com",
  "first_name": "Jane",
  "guests": [
    "string"
  ],
  "intake_forms_completed": false,
  "intake_form_required": true,
  "is_no_show": true,
  "last_name": "Doe",
  "order_id": "5dcb47800000000000000009",
  "order_item_id": "5dcb47800000000000000019",
  "order_ref": "TRY00",
  "organisation_id": "00000000-0000-0000-0000-000000000000",
  "phone": "+447727123456",
  "session_id": "5dcb47800000000000001111",
  "session_type_id": "5dcb47800000000000001234",
  "session_type_name": "Spa access",
  "site_id": "00000000-0000-0000-0000-111111111111",
  "stage": "not_arrived",
  "status": "none",
  "created_at": "2026-01-15T09:30:00+00:00",
  "updated_at": "2026-01-15T09:30:00+00:00"
}
post/shop/session-bookings/{bookingId}/check-in

Check a guest in to a session booking

actionCheckInSessionBooking

Marks a SessionBooking as checked in. Used by front-of-house staff and self-service kiosks at the start of a session to record arrival. Setting is_checked_in to false reverses an earlier check-in.

The request body is optional — calling the endpoint with no body is equivalent to passing { "is_checked_in": true }.

Path parameters

  • bookingIdobject-idrequired

    The ID of the SessionBooking.

Request body

  • is_checked_inbooleanoptional

    Set to false to clear an existing check-in. Defaults to true when omitted, marking the booking as checked in.

Responses

  • 200

    A single SessionBooking.

  • 400

    The request failed.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

post/shop/session-bookings/{bookingId}/no-show

Mark a session booking as a no-show

actionMarkSessionBookingNoShow

Flags a SessionBooking as a no-show. Used by front-of-house staff after the session start time has elapsed without the guest arriving. Setting is_no_show to false reverses an earlier no-show flag.

The request body is optional — calling the endpoint with no body is equivalent to passing { "is_no_show": true }.

Path parameters

  • bookingIdobject-idrequired

    The ID of the SessionBooking.

Request body

  • is_no_showbooleanoptional

    Set to false to clear an existing no-show flag. Defaults to true when omitted.

Responses

  • 200

    A single SessionBooking.

  • 400

    The request failed.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation