Either you have a database of products that you need to map to products returned in this API, or you choose to import the product list from this endpoint to your system.
Ventrata has also implemented a self-service mapping capability that substantially reduces the burden of maintaining mappings. We recommend you implement this if you are able to. Click here for the documentation.
[{"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681","internalName": "Walking Tour of Barcelona","reference": "BRC-WALK","locale": "en","timeZone": "Europe/Madrid","allowFreesale": true,"availabilityType": "START_TIME","deliveryFormats": ["PDF_URL", "QRCODE"],"deliveryMethods": ["TICKET", "VOUCHER"],"redemptionMethod": "DIGITAL","capabilities": [{"id": "ventrata/content","revision": 1,"required": false,"dependencies": []},{"id": "ventrata/cart","revision": 1,"required": false,"dependencies": []},{"id": "ventrata/pricing","revision": 1,"required": false,"dependencies": []},{"id": "ventrata/offers","revision": 1,"required": false,"dependencies": ["ventrata/pricing"]},{"id": "ventrata/card-payment","revision": 1,"required": false,"dependencies": []}],"options": [{"id": "DEFAULT","default": true,"internalName": "DEFAULT","reference": null,"restrictions": {"minUnits": 0,"maxUnits": null},"units": [{"id": "adult","internalName": "Adult","reference": "adult","type": "ADULT","restrictions": {"minAge": 18,"maxAge": 99,"idRequired": false,"minQuantity": null,"maxQuantity": null,"paxCount": 1,"accompaniedBy": []}},{"id": "child","internalName": "Child","reference": "child","type": "CHILD","restrictions": {"minAge": 0,"maxAge": 17,"idRequired": false,"minQuantity": null,"maxQuantity": null,"paxCount": 1,"accompaniedBy": ["adult"]}}]}]}// ...rest of the products]
A description of each of the keys is given below:
Field | Description |
| The product id, you'll need to save this. |
| The name this suppliers calls the product. |
| An optional code this supplier might use to identify the product. |
| A language code indicating what language this product content is in. |
| The IANA TimeZone name this product is located in. |
| Whether a booking can be made for this product without having to query availability first. |
| Whether bookings will be immediately confirmed when a sale is made, otherwise the supplier will later either accept or reject the booking. |
| Whether an |
| What type of availability this product has, possible values are:
|
| An array of formats the API will deliver the tickets as. Possible values are:
|
| How the formats described in
|
| How must the guest present the ticket or voucher when they arrive at the venue. Possible values are:
|
| Capabilities define API extensions that this product supports. Capabilities can be enabled using a special HTTP header that's described in the next section. |
| The capability id which identifies it |
| An integer which will increment each time the specification for this capability is updated. |
| Whether this product cannot be sold without this capability being used. |
| An array of other capability ids that this capability depends on. |
| A url to the documentation for this capability is. |
| Whether this capability is enabled by default. |
| An array of all options for this product. All products must have at least one option. |
| The id that identifies this option, it is only unique within the product |
| If there is only one option this value is |
| Like product internalName except for each option |
| Like product reference except for each option |
| An object containing a fixed list of restrictions. Keys and values are:
|
| This is how long before the tour the booking can be still be cancelled. We also provide |
| The numeric amount for the cutoff (e.g. 1) |
| The cutoff unit (e.g. hour). Possible values are: |
| The list of ticket types (units) available for sale |
| The id of the unit, this will be unique to the option |
| Like product/option internalName but for units |
| Like product/option reference but for units |
| This is the ticket type of the unit, values are:
|
| An object containing restrictions about this unit. Possible keys and values are:
|
If your server wants to query specific information about a product at a later stage, either to refresh your inventory or check for updates, you can call the following endpoint:
{"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681","internalName": "Walking Tour of Barcelona","reference": "BRC-WALK","locale": "en","timeZone": "Europe/Madrid","allowFreesale": true,"availabilityType": "START_TIME","deliveryFormats": ["PDF_URL", "QRCODE"],"deliveryMethods": ["TICKET", "VOUCHER"],"redemptionMethod": "DIGITAL","capabilities": [{"id": "ventrata/content","revision": 1,"required": false,"dependencies": []},{"id": "ventrata/cart","revision": 1,"required": false,"dependencies": []},{"id": "ventrata/pricing","revision": 1,"required": false,"dependencies": []},{"id": "ventrata/offers","revision": 1,"required": false,"dependencies": ["ventrata/pricing"]},{"id": "ventrata/card-payment","revision": 1,"required": false,"dependencies": []}],"options": [{"id": "DEFAULT","default": true,"internalName": "DEFAULT","reference": null,"restrictions": {"minUnits": 0,"maxUnits": null},"units": [{"id": "adult","internalName": "Adult","reference": "adult","type": "ADULT","restrictions": {"minAge": 18,"maxAge": 99,"idRequired": false,"minQuantity": null,"maxQuantity": null,"paxCount": 1,"accompaniedBy": []}},{"id": "child","internalName": "Child","reference": "child","type": "CHILD","restrictions": {"minAge": 0,"maxAge": 17,"idRequired": false,"minQuantity": null,"maxQuantity": null,"paxCount": 1,"accompaniedBy": ["adult"]}}]}]}
A description of the fields is given above