Custom Questions
Adds custom questions to order, booking, and unit-item flows
To use this capability, add octo/questions to your Octo-Capabilities header.
Custom questions let you collect additional guest information during booking and order flows. These questions are informational and do not change availability or pricing.
Question Definitions
Supported product routes:
GET /productsGET /products/{productId}
With this capability enabled, question definitions are added to option and unit schemas in product responses.
Questions are sorted by configured question position.
The same questions arrays are also returned on:
booking.option.questions[]booking.option.units[].questions[]booking.unitItems[].unit.questions[]The same nested booking paths under
order.bookings[]
Question Object Fields
inputType is derived from options:
textarea: no optionsradio: 1-5 optionsselect: more than 5 options
Question objects are returned in the product and booking/order schemas from Products, Bookings, and Multi-Booking Cart.
You should display booking-level questions once per booking, and ticket-level questions once per unit item.
Submit question answers before or on your final booking/order confirmation call so they are persisted with the confirmed records.
Submit Answers On Booking Routes
Booking question fields are supported by these booking write routes:
POST /bookingsPATCH /bookings/{uuid}POST /bookings/{uuid}/confirm
Request Body Fields
Base booking schema: Bookings.
Submit Answers On Order Routes (octo/cart Required)
To submit order-level question answers, include both capabilities in the header:
octo/questionsocto/cart
Order question fields are supported by:
POST /ordersPATCH /orders/{orderId}PATCH /orders/{orderId}/previewPOST /orders/{orderId}/confirm
Returned Answer Fields
Booking objects include question answers on these routes:
POST /bookingsPATCH /bookings/{uuid}POST /bookings/{uuid}/confirmPOST /bookings/{uuid}/extendPOST /bookings/{uuid}/cancelGET /bookingsGET /bookings/{uuid}
Order objects include question answers on these routes (octo/cart required):
POST /ordersPATCH /orders/{orderId}PATCH /orders/{orderId}/previewPOST /orders/{orderId}/confirmPOST /orders/{orderId}/extendPOST /orders/{orderId}/cancelDELETE /orders/{orderId}GET /ordersGET /orders/{orderId}
Each answer object field is included in the booking and order schemas.
Base schemas: Bookings and Multi-Booking Cart.
questionAnswers arrays are returned in question position order and include all currently valid questions for that object, plus any existing persisted answers that are still attached.
Recommended flow: create or fetch the booking/order first, then render your form from questionAnswers (and unitItems[].questionAnswers for unit items). Unanswered questions are returned with value: null.
Schema Additions (JSON)
These are additive fragments showing only fields introduced by this capability.
Booking
BookingUnitItem
BookingUnitItemWriteRequest
BookingWriteRequest
Option
Order
OrderCreateRequest
OrderUpdateRequest
Unit
Last updated