githubEdit

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 /products

  • GET /products/{productId}

Available extras are returned in the product response as:

  • option.extras for booking-level extras

  • unit.extras for 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 /availability

  • POST /availability/calendar

  • POST /availability/batch

  • POST /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_LIMIT for booking-level extras

  • EXTRAS_UNIT_QTY_LIMIT for 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 /bookings

  • PATCH /bookings/{uuid}

  • POST /bookings/{uuid}/confirm

Use extraItems to reserve extras on bookings:

  • Booking-level extras: set extraItems on the booking object.

  • Unit-level extras: set extraItems inside each unitItems[] 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

AvailabilityCalendarBatchRequest

AvailabilityCalendarRequest

AvailabilityRequest

Booking

BookingUnitItem

BookingUnitItemWriteRequest

BookingWriteRequest

Option

Unit

Last updated