Create a new booking
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.
Authorizations
Body
The product to book. Obtain from the product listing endpoints.
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 total price the customer is paying. Validated against current inventory pricing to prevent stale-price bookings.
Specific seat IDs to reserve, for seatmap-based products. Omit for non-seatmap products.
Booking-level input fields — collected once for the whole booking, not per customer. Submit fields whose level is BOOKING here; per-customer fields (PRIMARY_CUSTOMER, ALL_CUSTOMER) belong inside customersDetails.customers[].inputFields.
level (who you collect from) and dataType (what shape the value takes) are independent — a BOOKING-level field can be any dataType, and a LOCATION dataType field can be at any level.
Response
Booking created successfully in UNCAPTURED state
Headout's unique identifier for this booking. Use this for all subsequent operations (capture, cancel, reschedule).
Your own reference ID for this booking, set when capturing via Update Booking.
The variant (tour option) that was booked.
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 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.
Booking-level input fields applicable to the whole booking.
Total price paid for this booking.
URL to the booking voucher PDF. Available once the booking reaches PENDING or COMPLETED status.
Seat assignment details for seatmap-based products. Null for non-seatmap products.
Unix epoch timestamp (seconds) when this booking was first created.