Capabilities
How to use core extensions that ventrata provides.
Ventrata 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/questions | |
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 Ventrata 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. |
octo/resources | This capability exposes underlying availability resources that allows the guest to pick during checkout. Read the documentation here. |
octo/packages | This capability allows you to work with package products which may allow different sub-products to be selected with different travel dates. Read the documentation here. |
octo/gifts |
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 Ventrata 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
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.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
Last modified 2mo ago