Create a new booking
Create a new booking in UNCAPTURED state.
The booking flow is two-step: call this endpoint first to reserve the slot and receive a bookingId, then call Update Booking to capture the booking and trigger fulfillment. Bookings not captured within one hour are automatically moved to CAPTURE_TIMEDOUT.
200), failed (e.g. 400), and requests already rejected with 429 all count toward the window, not just bookings created. Once you cross the limit, requests return 429 Too Many Requests with error.code = E_RATE_LIMIT_EXCEEDED. The response includes a retry-after header with the number of seconds to wait (e.g. 1608), and the error message states the same wait time in human-readable form. Use the retry-after value to schedule your next call.Authorizations
Body
The variant (tour option) to book. Obtain from the product's variants list.
The specific inventory slot (time/date) to book. Obtain from the inventory listing endpoint.
Information about all customers included in this booking.
The product to book. Obtain from the product listing endpoints.
Specific seat IDs to reserve, for seatmap-based products. Omit for non-seatmap products.
Booking-level input fields applicable to the whole booking rather than individual customers.
Total booking price — the sum of the inventory netPrice field across all pax types. Use netPrice, not price or headoutSellingPrice. Validated against current inventory pricing to prevent stale-price bookings.
Response
Booking created successfully
Headout's unique identifier for this booking. Use this bookingId for all subsequent operations (capture, cancel, reschedule).
Identifier of the voucher issued for this booking. Pass it to Get a voucher to retrieve the structured voucher payload.
Your own reference ID for this booking, set when capturing. Useful for correlating Headout bookings with your internal order system.
The variant (tour option) that was booked.
Scheduled start time for the experience in local time, with no timezone offset (format yyyy-MM-dd'T'HH:mm:ss).
Summary of the product and variant booked.
All customers included in this booking.
Total price paid for this booking.
Current lifecycle state of the booking. See Booking Status.
UNCAPTURED: Created but not yet captured. Does not lock inventory or price. Auto-expires toCAPTURE_TIMEDOUTafter 1 hour.PENDING: Payment captured — confirmed with supplier. Treat as confirmed; show to the customer as a confirmed booking.COMPLETED: Fulfilled — tickets are available in theticketsarray.CANCELLED: Cancelled by partner, customer, or Headout.FAILED: Booking failed due to a payment or system error.CAPTURE_TIMEDOUT: Not captured within 1 hour of creation; can no longer be captured.
UNCAPTURED, PENDING, COMPLETED, CANCELLED, FAILED, CAPTURE_TIMEDOUT URL to the booking voucher PDF. Available once the booking reaches PENDING or COMPLETED status.
Individual tickets associated with this booking. Populated after successful fulfillment.
Seat assignment details for seatmap-based products. Null for non-seatmap products.
Unix epoch timestamp (seconds) when this booking was first created.