Packages
Adds package information showing sub-products within a booking
To use this capability, add octo/packages to your Octo-Capabilities header.
Packages are products that contain selectable sub-products ("includes"). You can sell package products without this capability, but enabling it exposes include-level product schema, include-aware availability, and include booking operations.
Package Products
This capability extends product routes documented in Products:
GET /productsGET /products/{productId}
Each option.packageIncludes[].includes[] item follows the include object schema shown for product responses.
Base product schema: Products. This page documents only package additions.
Package Availability
This capability extends availability routes documented in Availability:
POST /availabilityPOST /availability/calendar
/availability responses add:
Each packageAvailabilities[] item is a full availability object (same fields as top-level availability) plus nested packageAvailabilities. /availability/calendar keeps the normal calendar schema and does not add packageAvailabilities.
Base availability schema: Availability.
Package Booking
This capability extends booking write routes documented in Bookings:
POST /bookingsPATCH /bookings/{uuid}
Additional booking route variants that use the same package payload handling:
POST /bookings/{uuid}/confirm
Variant 1: Parent Booking With packageBookings[]
You can add include bookings while creating or updating the parent package booking by sending packageBookings.
Base booking schema: Bookings.
Variant 2: Direct Include Booking With packageUuid
You can create/update a single include booking directly by sending package context at the top level.
Base booking schema: Bookings.
Booking responses include package-specific fields.
These are additive response fields on the base booking schema from Bookings.
You can target include booking UUIDs on standard booking endpoints (GET, PATCH, POST .../confirm, POST .../cancel, POST .../extend). Always check the returned updatable and cancellable flags to determine whether a specific include booking can be changed or cancelled. In packageBookings[], child rows with hidden includes (or cancellation state mismatched to the parent row) are excluded from serialization.
Listing Include Bookings
Include bookings are returned from GET /bookings (base route in Bookings).
Schema Additions (JSON)
These are additive fragments showing only fields introduced by this capability.
Availability
AvailabilityBatchRow
Booking
BookingUnitItem
Option
PackageAvailability
Product
Last updated