Retrieve and filter bookings
Get bookings returns purchaser details, participants, amounts, payment method, status, and the booked session. It supports precise filtering:
A daily check-in list is one query - everyone booked for an experience on a given date:
Pagination and sorting
Responses carrymeta (counts, pages - 15 items per page by default) and links (first/previous/next/last) objects; page with ?page= and ?limit=. Sort with ?sortBy=booking.createdAt&sortDir=DESC - other keys include booking.status, booking.purchaser, booking.amount, experience.title, and event.startDateTime.
Cancel and refund
Cancel bookings takes a batch of operations:- Full cancellation:
"cancel": truewith noparticipantscancels the whole booking. - Partial cancellation: pass
participants(participant IDs from the booking) to cancel only some guests - the booking stays active for the rest, and each cancelled participant gets acancelledAttimestamp. - Refunds: add
refundAmountto record a refund, together with or independent of cancelling.
cancelled when fully cancelled). Cancellations fire the booking.cancelled webhook; refunds fire booking.refunded.
Reschedule
Reschedule booking moves a booking to another session:204 and fires booking.rescheduled (plus booking.modified when the price changes).
Guest-initiated flows
Two endpoints support building self-service cancel/reschedule UIs for guests: guest cancellation honors the experience’s cancellation policy automatically, and guest reschedule lists a cart’s reschedulable bookings (it requires the guesttoken from their confirmation email link, so it’s only usable in flows that start from Way’s guest communications).
Keeping your systems in sync
Prefer push over poll: subscribe to thebooking.* webhooks and treat the API as the source of truth when handling them. For reconciliation (after downtime, or as a nightly job), poll Get bookings with updatedFrom set to your last sync point.