Public booking status for bookings
Summary
The Public API now exposes a booking status in API terms, separate from the internal payment status naming used by Semble.
Bookings can now return status on the Booking type, and createBooking / updateBooking accept an optional status input for supported slot reservation and confirmation flows.
This change is additive. Existing clients can continue to use the existing booking fields.
What changed
The new public enum is BookingStatus:
| Public value | Meaning |
|---|---|
pending | The slot is reserved but not confirmed yet. |
processing | Confirmation or payment processing is in progress. |
confirmed | The booking is confirmed. |
failed | Confirmation or payment failed. |
Confirmed bookings may be backed internally by either no payment status or a completed payment status. Public API clients should use Booking.status rather than relying on internal payment terminology.
Create and update behaviour
createBooking(status: pending)reserves the slot and does not send patient confirmation messages.createBooking(status: confirmed)creates a confirmed booking when the selected product does not require payment.updateBooking(status: confirmed)confirms an existing non-payment booking and sends confirmation side effects according tosendPatientMessages.- Manual confirmation is rejected for products that require payment; those bookings must be confirmed by the payment flow.
Example
mutation ReserveBooking($bookingData: BookingDataInput!) {
createBooking(bookingData: $bookingData) {
data {
id
status
}
error
}
}
Example variables:
{
"bookingData": {
"patient": "PATIENT_ID",
"location": "LOCATION_ID",
"bookingType": "PRODUCT_ID",
"start": "2026-06-19T09:00:00.000Z",
"end": "2026-06-19T09:30:00.000Z",
"status": "pending"
}
}
Integration guidance
- Treat
Booking.statusas the public booking lifecycle field for new integrations. - Parse
BookingStatusvalues defensively so clients can tolerate future enum additions. - Use
pendingonly when your integration is intentionally reserving a slot before confirmation. - Use
confirmedonly for non-payment bookings; payment-required bookings must complete through the payment flow.
See also
- API reference:
BookingStatus - API reference:
createBooking - API reference:
updateBooking