Async Confirmation & Webhooks

After a successful POST /v3.0/experiences/bookings, the booking is often not fully confirmed yet. Connect commonly returns PENDING_CONFIRMATION. Final confirmation and vouchers arrive asynchronously.

Booking status lifecycle

StatusMeaning
PENDING_CONFIRMATIONPayment captured and booking accepted; waiting on confirmation
CONFIRMEDBooking confirmed
FAILEDBooking failed
CANCELLATION_REQUESTEDCancel accepted; final cancel / refund may still be pending
CANCELLEDCancelled

Treat book response PENDING_CONFIRMATION as success for payment + accept — then wait for confirmation.


How to learn the final state

Option A — Poll

GET /v3.0/experiences/bookings/{bookingId}

Poll until status is CONFIRMED (or FAILED / CANCELLED). Voucher fields appear when available.

Option B — Partner webhooks (recommended)

Subscribe to Experiences events on your Nuitee Connect partner webhook endpoint.

EventWhen
experience.book.pending.confirmationBook accepted (PENDING_CONFIRMATION)
experience.book.confirmedConfirmed
experience.book.voucher.availableVoucher / ticket ready
experience.book.updated.datetimeDatetime changed
experience.book.updated.pricePrice updated
experience.book.cancelledCancelled
experience.book.failedFailed

Configure which event types your endpoint receives in dashboard / webhook settings.


Important rules

  1. Do not treat the book HTTP 200 alone as “voucher ready.”
  2. Prefer webhooks for voucher delivery; poll as a fallback.
  3. If book returns 502 after payment capture, expect failure handling / refund — surface an error to the guest.
  4. Design confirmation UI for a short “confirming your booking” state.

UX recommendations

  • After book: “We’re confirming your experience…”
  • On CONFIRMED: show voucher / reference and send email
  • On FAILED: apologize and show support path; do not show a voucher

Next



Did this page help you?