Skip to main content
Once bookings exist - created by your integration, the brand’s storefront, or the dashboard - this guide covers operating on them: finding the right ones, cancelling and refunding, rescheduling, and staying in sync.

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:
For per-guest detail at the door, Get booking participants returns the experience and each participant.
Organization-level keys query bookings across all your brands in one call. See Authentication.

Pagination and sorting

Responses carry meta (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": true with no participants cancels 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 a cancelledAt timestamp.
  • Refunds: add refundAmount to record a refund, together with or independent of cancelling.
The response returns the updated bookings (status cancelled when fully cancelled). Cancellations fire the booking.cancelled webhook; refunds fire booking.refunded.

Reschedule

Reschedule booking moves a booking to another session:
Pick the target session from the availability endpoints first - rescheduling into a sold-out session fails. A successful reschedule returns 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 guest token 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 the booking.* 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.