Ventrata currently implements 10 main capabilities. All of them are optional but may provide functionality to improve your integration.
Capability ID | Description |
| Extends the core product, option and unit schemas to provide rich content and images. Read the documentation here. |
| Adds pricing to most endpoints giving you advanced static and dynamic pricing capabilities. Read the documentation here. |
| 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. |
| 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. |
| 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. |
| Allows you to add more than one booking to a "Cart" which can be confirmed together. Read the documentation here. |
| 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. |
| 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. |
| Programatically create webhooks to listen out for booking confirmations, updates and cancellations as well as availability updates. Read the documentation here. |
| 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. |
The capabilities are defined per-product which you can find in the mapping section. Each capability is defined like:
{"id": "ventrata/offers","revision": 1,"required": false,"dependencies": ["ventrata/pricing"],"docs": "https://docs.ventrata.com/capabilities/offers","default": true}
Field | Description |
| The identifier of this capability. You'll need to include this in the request header or parameter. To use this capability. |
| A auto-incrementing integer indicating the supported revision of this capability. Capability revisions will always be backward compatible. |
| Whether supporting this capability is required in order to sell this product. |
| An array of other capabilities that this capability requires in order to be used. |
| A URL to the online documentation for this capability. |
| 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 X-Capabilities
header. For example:
GET /octo/availability HTTP/1.1Host: api.ventrata.comAuthorization: Bearer 5bd1629a-323e-4edb-ac9b-327ef51e6136X-Capabilities: ventrata/content, ventrata/offers
It's also possible to use the _capabilities
query parameter if you're unable to use headers:
GET /octo/availability?_capabilities=ventrata/content,ventrata/offers HTTP/1.1Host: api.ventrata.comAuthorization: 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 ventrata/offers
depends on ventrata/pricing
) if you just include ventrata/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.1Host: api.ventrata.comAuthorization: Bearer 5bd1629a-323e-4edb-ac9b-327ef51e6136X-Capabilities: *, ventrata/card_payments
To know which capabilities you are using, the HTTP response will echo the X-Capabilities
header including the list that were applied. For example:
HTTP/1.1 200 OKX-Capabilities: ventrata/offers, ventrata/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: ventrata/pricing2