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.

Server
https://{operatorDomain}/{basePath}
Server Variables

Orders

The Operator API v2 Order capability provides a mechanism for grouping multiple bookings together.

A new order may be created through the creation of a new pending booking with a unique orderId in the payload body.

New pending bookings can be added to an order by including the same orderId on all pending booking requests.

The endpoints below can be used to operate on all bookings contained within an order. Each order operation acts upon all contained bookings. If an order operation fails on one or more bookings, the entire order operation must fail, and any changes either discarded or reverted. For example, if an order confirmation is requested, but one booking within the order has a utcHoldExpiration in the past, the entire order confirmation must fail (REJECTED).

Fetch an order

Retrieve an order & all associated bookings from the OBS by orderId.

Auth
GET /suppliers/{supplierId}/orders/{orderId}
Copy
Responses
200

Contains a single order and all associated bookings.

400

An error has occurred. See the definition of the ErrorObject for more details.

401

Missing Authorization header or key could not be validated.

403

The Authorization header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.

404

Invalid URI path requested.

500

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.

503

The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).

Response
Copy

Cancel an order

This request will release the inventory hold on an in-progress order & all associated bookings, or cancel a completed order. 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.

Auth
Request Body

The client's cancellation request MUST include a reason.

objectobject
reasonstring

This value indicates the reason that the cancellation request was sent.

  • CUSTOMER is the most common and indicates that the customer requested the cancellation.
  • SUPPLIER indicates that the supplier requested the cancellation (possibly due to bad weather or other unexpected circumstances).
  • FRAUD indicates that the booking cancellation is being requested by the Reseller because it has been determined the booking was fraudulent.
  • OTHER indicates that the cancellation reason does not fall into one of these categories. This SHOULD be used only in rare circumstances.

Enum: CUSTOMER,SUPPLIER,FRAUD,OTHER

reasonDetailsstring

This field provides additional details about the reason for the cancellation request. It may include information from the customer, supplier, or support agent about the reason for the cancellation (especially in the case of requesting a cancellation outside of the normal policy which may require manual approval from the supplier).

DELETE /suppliers/{supplierId}/orders/{orderId}
Copy
Responses
200

Contains a single order and all associated bookings.

400

An error has occurred. See the definition of the ErrorObject for more details.

401

Missing Authorization header or key could not be validated.

403

The Authorization header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.

404

Invalid URI path requested.

500

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.

503

The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).

Response
Copy

Extend the hold on an order

This request attempts to extend the order and all contained bookings. It MUST include a proper reason for the extension, along with a requrested extension time (in minutes).

The OBS MAY accept the extension request & extend the hold by the requested time, or the OBS MAY choose to extend the hold by any arbitrary length of time. Alternatively, the OBS MAY reject the extension request and return an error to the client.

Auth
Request Body

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.

objectobject
reasonstring

This indicates the reason for extending the booking hold.

  • FRAUD_CHECK is the most common scenario where additional time is required to ensure that the booking is not being made using fraudulent payment information.
  • CUSTOMER_REQUESTED is intended for scenarios where the customer is actively completing the checkout process but requires some additional time to complete. The Reseller SHOULD try to ensure that customers may only extend their booking once.
  • OTHER can be used in other unusual circumstances but SHOULD not be abused to maintain a hold without good reason. If this value is specified the Reseller SHOULD provide reasonDetails to explain the justification.

Enum: FRAUD_CHECK,CUSTOMER_REQUESTED,OTHER

reasonDetailsstring

This provides additional details behind the reason for requesting the extension and SHOULD be provided in all cases, but especially if the reason given is OTHER.

holdExpirationMinutesinteger

This is the duration that the Reseller would like the product inventory hold to be extended while the booking is completed. The Booking Platform SHOULD extend the hold on the inventory for at least this duration from the time of the request but MAY reserve for a shorter period of time. The exact hold expiration time will be returned in the response.

minimum: 1

POST /suppliers/{supplierId}/orders/{orderId}/extend
Copy
Responses
200

Contains a single order and all associated bookings.

400

An error has occurred. See the definition of the ErrorObject for more details.

401

Missing Authorization header or key could not be validated.

403

The Authorization header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.

404

Invalid URI path requested.

500

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.

503

The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).

Response
Copy

Confirm an order

Auth
Request Body

This confirms an in-progress order and MUST be sent before the utcHoldExpiration has elapsed.

objectobject
contactobject
fullNamestring

The full name of the lead traveller.

emailAddressstring

The contact email of the lead traveller.

phoneNumberstring

The contact phone number of the lead traveller.

localesarray[string]
countrystring

This MUST be a valid ISO 3166-1 alpha-2 country code.

POST /suppliers/{supplierId}/orders/{orderId}/confirm
Copy
Responses
200

Returns the confirmed order and all associated bookings.

400

An error has occurred. See the definition of the ErrorObject for more details.

401

Missing Authorization header or key could not be validated.

403

The Authorization header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.

404

Invalid URI path requested.

500

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.

503

The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).

Price Schedule

The Price Schedule capability provides Redeam with access to an operator's daily pricing schedules through the Operator Booking System API.

Fetch a price schedule

Returns a breakdown of a Product's prices by Option, Date and Unit.

This endpoint MUST return current and future price schedules up to 365 days into the future. It MAY return price schedules from past dates. Generally, servers should expect requests to have a startDate to endDate interval of at least one year.

Auth
Path Params
supplierIdstring

Identifier of the Supplier, unique to the Operator's Booking System.

productIdstring

Identifier of the Product, unique within the Supplier.

Query String
startDatestring

Optional RFC3339-compliant starting full-date (YYYY-MM-DD) for the returned schedule. Defaults to today's date (local to the Product) if not provided.

endDatestring

Optional RFC3339-compliant ending full-date (YYYY-MM-DD) for the returned schedule. MUST be less than or equal to 365 days after startDate. If left blank, defaults to 30 days after the startDate.

GET /suppliers/{supplierId}/products/{productId}/pricing/schedule
Copy
Responses
200

Returns the requested product's price schedule.

401

Missing Authorization header or key could not be validated.

403

The Authorization header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.

404

Invalid URI path requested.

500

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.

503

The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).