The Operator API v2 Booking System (OBS) is an API specification with endpoints for listing suppliers, products, availabilities, and managing holds and bookings.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 RFC 2119 RFC 8174 when, and only when, they appear in all capitals, as shown here.
Suppliers
Returns a list of suppliers and associated contact details.
This list MAY be limited based on the suppliers that the authenticated user has been granted access to.
List of suppliers with details.
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Products
Returns a list of products for a specific supplier.
WARNING: this endpoint may live under a different domain, path or both depending on the supplier endpoint URL returned by the GET /suppliers.
Contains all product details necessary to ingest, map, and sell.
List of products with details.
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Returns a list of dates and their availability status.
WARNING: this endpoint may live under a different domain, path or both depending on the supplier endpoint URL returned by the GET /suppliers.
For any dates which are never available for booking, the response MUST exclude those dates entirely.
If the product's availabilityType
is OPENING_HOURS
then the localDateTimeStart
and localDateTimeEnd
are the hours of operation. If a product has more than one hours of operation on the same day (e.g. the supplier is open 8-5 but closed for lunch from 12-1) then one availability object MUST be returned for each contiguous range of time for that day.
The availability id
value MUST be sent when making a Booking request.
The status
field SHOULD be used to infer how frequently your cache should be updated from the Booking Platform. The RECOMMENDED frequency is as follows:
FREESALE
: Always available. Refresh no more than once/week.AVAILABLE
: Currently available for sale, but has a fixed capacity. Refresh every 12 hours.LIMITED
: Currently available for sale, but has a fixed capacity and may be sold out soon. Refresh at least once/hour.SOLD_OUT
: Currently sold out, but additional availability may free up. Refresh no more than once/hour.CLOSED
: Currently not available for sale, but not sold out (e.g. temporarily on stop-sell) and may be available for sale soon. Refresh no more than once/12 hours.
List of availability objects with status.
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Returns a list of dates after evaluating the specific Unit and Availability IDs that the customer would like to book.
WARNING: this endpoint may live under a different domain, path or both depending on the supplier endpoint URL returned by the GET /suppliers.
This request is intended to provide the Booking Platform a complete view of the Unit IDs, Unit quantity, and Availability IDs so that additional restrictions and policies can be validated within the Booking Platform prior to making a Booking. The purpose is to provide a clear and accurate answer to the Reseller about whether the requested booking configuration could be accepted by the Supplier. This is to support complex booking requirements without the Reseller needing to know the details of the restriction (e.g. "must purchase at least 1 adult ticket if a child ticket is purchased").
This MUST include all units that the customer is attempting to reserve and SHOULD include all possible availability IDs that the customer may be interested in reserving.
List of availability objects with status.
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Create a new pending booking.
WARNING: this endpoint may live under a different domain, path or both depending on the supplier endpoint URL returned by the GET /suppliers.
This creates a new pending booking.
This call has to be idempotent. To be able to safely retry a call on any network error or timeout, therefore it MUST not fail on retry or create a duplicate booking. The idempotency key is the UUID. A supplier SHOULD verify that a retried request with the same UUID is matching the original booking data, to avoid erroneous clients generating repeating UUIDs, and respond with an HTTP 400 status in such a case.
This MUST include all unitItems that the customer wants to book.
A complete representation of the current booking booking status.
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Gets the current details of an in-progress booking or completed booking.
WARNING: this endpoint may live under a different domain, path or both depending on the supplier endpoint URL returned by the GET /suppliers.
This returns the current state of any valid booking. This request MAY be made at any point after the initial createBooking
request is processed successfully and it MUST return the booking object.
A complete representation of the current booking booking status.
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Extend the hold of an in-progress booking.
WARNING: this endpoint may live under a different domain, path or both depending on the supplier endpoint URL returned by the GET /suppliers.
This extends the hold of an in-progress booking. The utcHoldExpiration
MUST NOT be elapsed when this request is sent, otherwise the response MAY show a status
of EXPIRED
.
This MUST include the proper reason
for requesting the extension and MUST NOT be abused to keep availability reserved due to processing delays by the Reseller.
A complete representation of the current booking booking status.
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Confirm an in-progress booking.
WARNING: this endpoint may live under a different domain, path or both depending on the supplier endpoint URL returned by the GET /suppliers.
This confirms an in-progress booking. The utcHoldExpiration
MUST NOT be elapsed when this request is sent, otherwise the response MAY show a status
of EXPIRED
.
This call MUST be idempotent so that a Reseller may retry the request for any network error or timeout. The Booking uuid
MUST be used to ensure idempotency of the request.
This confirms an in-progress booking and MUST be sent before the utcHoldExpiration
has elapsed.
A complete representation of the current booking booking status.
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
Either cancel the booking, or expire the hold of an in-progress booking.
WARNING: this endpoint may live under a different domain, path or both depending on the supplier endpoint URL returned by the GET /suppliers.
This expires the hold of an in-progress booking, releasing its availability for other bookings to use. Resellers SHOULD send this in order to ensure proper cleanup of any outstanding holds.
This call MUST be idempotent, using the UUID of the booking as the idempotency key. Meaning, repeated attempts to cancel the same booking MUST return a successful response (with the cancelled booking in the response body).
This request will release the inventory hold on an in-progress booking or cancel a completed booking. It is RECOMMENDED that this request be sent if the customer fails to complete their booking, in order to release the inventory for other customers. It is also RECOMMENDED that this request be sent for a completed booking even if no refund is expected so that the Supplier can attempt to sell the unused inventory to another customer.
A complete representation of the current booking booking status.
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).