Capabilities

How to use core extensions that ventrata provides.

OCTO Cloud currently implements 11 capabilities. All of them are optional but may provide functionality to improve your integration.

Capability ID

Description

octo/content

Extends the core product, option and unit schemas to provide rich content and images. Read the documentation here.

octo/pricing

Adds pricing to most endpoints giving you advanced static and dynamic pricing capabilities. Read the documentation here.

octo/pickups

Adds hotel pickup options to the booking allowing the guest to be picked up and set which pickup location they want to be picked up from. Read the documentation here.

octo/adjustments

Allows you to make price adjustments to the booking either positive (to increase the price) or negative (to give a discount). Read the documentation here.

octo/offers

This depends on pricing and gives you the ability to use offer codes to apply discounts to bookings and up-sell / cross-sell other products for a discount. Read the documentation here.

octo/cart

Allows you to add more than one booking to a "Cart" which can be confirmed together. Read the documentation here.

octo/cardPayments

Exposes various payment gateways for card tokenisation so that the supplier can be the merchant of record and collect the card payment directly. Read the documentation here.

octo/checkin

Some products require further steps by the guest after booking, e.g. signing a waiver, filling out a questionnaire or picking dates and times for components of a multi-part package. This capability provides a URL to give to the guest where they can complete these steps and checkin before arrival. Read the documentation here.

octo/webhooks

Programatically create webhooks to listen out for booking confirmations, updates and cancellations as well as availability updates. Read the documentation here.

octo/mappings

Send mapping sheets programatically to OCTO Cloud for the supplier to fill out and submit. Dramatically reducing the burden of mapping on your team. Read the documentation here.

octo/redemption

This capability is intended for supplier redemption of your tickets, it's not abled by default and isn't intended for resellers. Read the documentation here.

The capabilities are defined per-product which you can find in the mapping section. Each capability is defined like:

{
"id": "octo/offers",
"revision": 1,
"required": false,
"dependencies": ["octo/pricing"],
"docs": "https://docs.ventrata.com/capabilities/offers",
"default": true
}

Field

Description

id

The identifier of this capability. You'll need to include this in the request header or parameter. To use this capability.

revision

A auto-incrementing integer indicating the supported revision of this capability. Capability revisions will always be backward compatible.

required

Whether supporting this capability is required in order to sell this product.

dependencies

An array of other capabilities that this capability requires in order to be used.

docs

A URL to the online documentation for this capability.

default

Whether this is a default capability that's enabled.

By default OCTO Cloud will enable all default capabilities all the time. You can control which capabilities you want to enable by using the Octo-Capabilities header. For example:

GET /octo/availability HTTP/1.1
Host: api.ventrata.com
Authorization: Bearer 5bd1629a-323e-4edb-ac9b-327ef51e6136
Octo-Capabilities: octo/content, octo/offers

It's also possible to use the _capabilities query parameter if you're unable to use headers:

GET /octo/availability?_capabilities=octo/content,octo/offers HTTP/1.1
Host: api.ventrata.com
Authorization: Bearer 5bd1629a-323e-4edb-ac9b-327ef51e6136

You can list all the capabilities with a comma to separate each one. If a capability depends on another (for example octo/offers depends on octo/pricing) if you just include octo/offers we will automatically add the other dependent capabilities.

If you want to use a non-default capability, but also all the default capabilities without having to specify all of them individually, you can use the wildcard * like so:

GET /octo/availability HTTP/1.1
Host: api.ventrata.com
Authorization: Bearer 5bd1629a-323e-4edb-ac9b-327ef51e6136
Octo-Capabilities: *, octo/cardPayments

To know which capabilities you are using, the HTTP response will echo the Octo-Capabilities header including the list that were applied. For example:

HTTP/1.1 200 OK
Octo-Capabilities: octo/offers, octo/pricing

Required Capabilities

Some products cannot be sold without the use of a capability. If that is the case then the required: true will be put on the capability object within that product. If you have not implemented that capability then you cannot sell the product.

Capability Versioning

The capabilities defined on products include a revision number which will increment each time we update the capability. It's important to note that capabilities will NEVER introduce breaking changes, if they do then a new capability will be written entirely. For example: octo/pricing2