Overview
Create a temporary hold on the selected tour slot and a Stripe PaymentIntent for checkout. If your account has an enabled credit line with payment bypass, you can instead pass usePaymentSdk: false to skip Stripe entirely and hold the slot for a credit-line booking.
When to Use
- Checkout start — After the user picks option, slot, and participants from booking-options
- Payment setup — Obtain
transactionIdandsecretKeyfor Stripe SDK confirmation - Hold window — Reserve inventory for ~10 minutes before book
What You Get
- Checkout context —
tourId,optionId,dateTime,language,participants, and pricing echoed back - Provider refs —
cartId,experienceBookingId,providerBookingId,status,reservationExpiresAt - Stripe fields —
transactionId,secretKey, andpaymentTypesincludingTRANSACTION_IDwhenusePaymentSdkis true - Credit line (alongside Stripe) —
creditLine.remainingCreditandCREDITinpaymentTypeswhenusePaymentSdkis true, the account has an enabled credit line with payment bypass, and the remaining credit covers this prebook. The Stripe intent is still created; book with either method - Credit line (no Stripe) — Pass
usePaymentSdk: falseinstead to skip Stripe entirely. This requires an enabled credit line with payment bypass on the account, otherwise the request is rejected with 400. Stripe fields are omitted andpaymentTypesreturns["CREDIT"]only
Quick Start
POST the same selection used for display pricing from booking-options with usePaymentSdk: true. Confirm payment with Stripe, then call POST /experiences/bookings with payment.method: TRANSACTION_ID. If the response includes CREDIT in paymentTypes, you may instead call book with payment.method: CREDIT and skip Stripe confirmation.
If your account has an enabled credit line and you'd rather skip Stripe from the start, POST with usePaymentSdk: false and call book with payment.method: CREDIT.
Error codes
Product-operation codes are listed below. Shared authentication/access/rate-limit middleware can return common codes such as 401, 40301 or 4290. HTTP status and error code are separate; do not parse message text.
| Code | Meaning |
|---|---|
| 72001 | selection price mismatch |
| 72002 | invalid experience selection |
| 72003 | prebook resource not found |
| 72004 | experience selection rejected by provider |
| 72005 | experience prebook conflicts with the current state |
| 72006 | prebook provider request failed |
| 72007 | prebook provider request timed out |
| 72008 | prebook request is unauthorized |
| 72009 | prebook request is forbidden |
| 72010 | prebook service is temporarily unavailable |
| 72011 | booking currency is not accepted for this selection |
| 72099 | failed to create prebook |
For 72001, requested/expected are customer SELL totals; do not apply markup or FX again. Inspect the code on HTTP 400, 409 and 422. A generic no-money error must not open price-change consent.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||