Extras
Extras are upsell items that can be added to bookings and unit items
To use this capability, add octo/extras to your Octo-Capabilities header.
Extras are upsell items that can be configured either on the booking (option-level) or per unit item (unit-level). An example of an extra could be a "Lunch Package" or a "Fast Track Entrance".
Product Extras
This capability extends product routes documented in Products:
GET /productsGET /products/{productId}
Available extras are returned in the product response as:
option.extrasfor booking-level extrasunit.extrasfor unit-level extras
When combined with octo/pricing and octo/content, extra objects include pricing/content keys. Pricing values use the same schema as unit pricing. Read pricing capability for full pricing field details.
Extra IDs are returned as extra_<id> in responses. For request payloads, both extra_<id> and raw IDs are accepted.
For item-based products, item objects still include extras, but it is always an empty array.
Extra Availability
This capability extends availability routes documented in Availability:
POST /availabilityPOST /availability/calendarPOST /availability/batchPOST /availability/calendar/batch
Extras do not require availability by themselves, but you can include extra quantities in availability queries to calculate total pricing.
If an extra quantity exceeds configured limits, the API responds with:
EXTRAS_QTY_LIMITfor booking-level extrasEXTRAS_UNIT_QTY_LIMITfor unit-level extras
See Availability for the base request/response schema.
When used with octo/pricing, availability pricing includes both extra pricing breakdowns and totals.
extraPricingFrom is used instead of extraPricing on "from" payloads.
Booking Reservation
This capability extends booking write routes documented in Bookings:
POST /bookingsPATCH /bookings/{uuid}POST /bookings/{uuid}/confirm
Use extraItems to reserve extras on bookings:
Booking-level extras: set
extraItemson the booking object.Unit-level extras: set
extraItemsinside eachunitItems[]object.
When extraItems is present it must be an array.
uuid and resellerReference are optional. contact is also permitted as an object. The same extra can be included multiple times if allowed by the extra configuration.
Booking and unit item responses both include extraItems with the same object schema.
When using the octo/pricing capability, the booking/unit-item pricing totals include the sum of attached extra items. For purchase unit items, extraItems is always an empty array.
Schema Additions (JSON)
These are additive fragments showing only fields introduced by this capability.
AvailabilityBatchRequest
AvailabilityBatchRequestAvailabilityCalendarBatchRequest
AvailabilityCalendarBatchRequestAvailabilityCalendarRequest
AvailabilityCalendarRequestAvailabilityRequest
AvailabilityRequestBooking
BookingBookingUnitItem
BookingUnitItemBookingUnitItemWriteRequest
BookingUnitItemWriteRequestBookingWriteRequest
BookingWriteRequestOption
OptionUnit
UnitLast updated