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.

objectobject

An order aggregates one or more bookings.

idstring

The order's identifier, unique to the Supplier.

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmOrder request, the status MUST be CONFIRMED.

After a successful cancelOrder request, the status MUST be CANCELLED.

Following are the only valid Order flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> Order ON_HOLD -> Order EXPIRED
  • New Booking -> Order ON_HOLD -> Order CONFIRMED
  • New Booking -> Order ON_HOLD -> Order PENDING -> Order REJECTED
  • New Booking -> Order ON_HOLD -> Order PENDING -> Order CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /orders endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,CONFIRMED,PENDING,CANCELLED,EXPIRED,REJECTED

utcExpiresAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the availability hold will be released. This SHOULD be equivalent to the time calculated by adding holdExpirationMinutes to the current UTC time from the original Pending Booking request, but MAY be either earlier or later than the requested duration.

utcConfirmedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the order was confirmed by the Operator.

bookings

All booking objects aggregated by this order.

objectobject
uuiduuid

This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record.

resellerReferencestring

An OPTIONAL tracking reference for the Reseller that SHOULD be tracked by the Booking Platform. This MUST be returned if the value was provided in the request body.

channelNamestring

The originating channel's human-readable name.

A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET /channels endpoint).

This is provided in the Pending Booking request, and should be mirrored back in every Booking response.

channelIduuid

The unique identifier of the originating channel.

A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET /channels endpoint).

This is provided in the Pending Booking request, and should be mirrored back in every Booking response.

supplierReferencestring

An OPTIONAL tracking reference for the Supplier that SHOULD be tracked by the Reseller.

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmBooking request, the status MUST be CONFIRMED.

After a successful confirmCancellation request, the status MUST be CANCELLED.

Following are the only valid Booking flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> ON_HOLD -> EXPIRED
  • New Booking -> ON_HOLD -> CONFIRMED
  • New Booking -> ON_HOLD -> PENDING -> REJECTED
  • New Booking -> ON_HOLD -> PENDING -> CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /bookings endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,EXPIRED,PENDING,REJECTED,CONFIRMED,CANCELLED

cancellableboolean

Indicates whether the booking is cancellable right now

utcHoldExpirationdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the availability hold will be released. This SHOULD be equivalent to the time calculated by adding holdExpirationMinutes to the current UTC time but MAY be either earlier or later than the requested duration.

refreshFrequencystring

This is the RECOMMENDED refresh interval for the Reseller and SHOULD be used by the Reseller to control the frequency at which they make a getBooking request for the following scenarios:

  • To see if a booking has changed out of a PENDING status into CONFIRMED or REJECTED.
  • To see if a booking has had any new Vouchers or Tickets delivered for the booking.
  • To see if a booking has changed from CONFIRMED to CANCELLED in the event of a supplier-initiated cancellation.
  • To see if a booking has an updated utcRedeemedAt/utcResolvedAt value for the Voucher or any of the Tickets.

Enum: HOURLY,DAILY

productIdstring

A valid product ID that matches the id returned from GET /suppliers/{supplierId}/products.

optionIdstring

A valid option ID that matches the id returned from GET /suppliers/{supplierId}/products.

availabilityobject
idstring

This MUST be a unique identifier within the scope of the Option.

optionIdstring

This MUST be a valid option ID that matches the id returned from GET /suppliers/{supplierId}/products.

localDateTimeStartdate-time

This MUST be an RFC 3339 compliant date and time.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

deliveryMethodstring

A value of TICKET indicates that there will be one deliveryValue for each ticket in the Booking while a value of VOUCHER indicates that there will be one deliveryValue that is shared among all tickets in the Booking.

Enum: TICKET,VOUCHER

unitItemsarray[object]
uuidstring

This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record.

unitIdstring

A valid unit ID that matches the id returned from GET /suppliers/{supplierId}/products.

resellerReferencestring

An OPTIONAL tracking reference for the Reseller that SHOULD be tracked by the Booking Platform. This MUST be returned if the value was provided in the request body.

quantityinteger

The total number of this unit that the customer wants to purchase.

cancellationRequestobject
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).

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmBooking request, the status MUST be CONFIRMED.

After a successful confirmCancellation request, the status MUST be CANCELLED.

Following are the only valid Booking flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> ON_HOLD -> EXPIRED
  • New Booking -> ON_HOLD -> CONFIRMED
  • New Booking -> ON_HOLD -> PENDING -> REJECTED
  • New Booking -> ON_HOLD -> PENDING -> CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /bookings endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,EXPIRED,PENDING,REJECTED,CONFIRMED,CANCELLED

refundstring

This value indicates the expected refund from the Supplier.

  • FULL indicates that the Supplier has fully refunded the booking and will not be paid by the Reseller for this booking. This is the expected state when a valid cancellation request is made before any cancellation cutoff policy or when a Supplier approves a cancellation request that was made after the cutoff.
  • PARTIAL indicates that the Supplier has agreed to partially refund the customer. This may be due to a cancellation policy that grants a partial refund or because the Supplier has agreed to partially refund the customer when the cancellation policy would otherwise have not allowed any refund.
  • NONE indicates that no refund will be given by the Supplier. The customer may still be refunded by the Reseller but the Supplier MUST still be paid for this booking.

Enum: FULL,PARTIAL,NONE

utcRequestedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation request was originally started. This timestamp MUST be used for any validation against a cancellation policy. This is important because there may be some delay in confirming this cancellation request during the 2-phase workflow which could finish just after the cancellation policy cutoff has elapsed.

utcConfirmedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation request was confirmed by the Reseller.

utcResolvedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation was confirmed. This will typically be the same as utcConfirmedAt however if the cancellation request required manual approval from the Supplier, it may be different.

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.

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.

objectobject

An order aggregates one or more bookings.

idstring

The order's identifier, unique to the Supplier.

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmOrder request, the status MUST be CONFIRMED.

After a successful cancelOrder request, the status MUST be CANCELLED.

Following are the only valid Order flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> Order ON_HOLD -> Order EXPIRED
  • New Booking -> Order ON_HOLD -> Order CONFIRMED
  • New Booking -> Order ON_HOLD -> Order PENDING -> Order REJECTED
  • New Booking -> Order ON_HOLD -> Order PENDING -> Order CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /orders endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,CONFIRMED,PENDING,CANCELLED,EXPIRED,REJECTED

utcExpiresAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the availability hold will be released. This SHOULD be equivalent to the time calculated by adding holdExpirationMinutes to the current UTC time from the original Pending Booking request, but MAY be either earlier or later than the requested duration.

utcConfirmedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the order was confirmed by the Operator.

bookings

All booking objects aggregated by this order.

objectobject
uuiduuid

This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record.

resellerReferencestring

An OPTIONAL tracking reference for the Reseller that SHOULD be tracked by the Booking Platform. This MUST be returned if the value was provided in the request body.

channelNamestring

The originating channel's human-readable name.

A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET /channels endpoint).

This is provided in the Pending Booking request, and should be mirrored back in every Booking response.

channelIduuid

The unique identifier of the originating channel.

A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET /channels endpoint).

This is provided in the Pending Booking request, and should be mirrored back in every Booking response.

supplierReferencestring

An OPTIONAL tracking reference for the Supplier that SHOULD be tracked by the Reseller.

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmBooking request, the status MUST be CONFIRMED.

After a successful confirmCancellation request, the status MUST be CANCELLED.

Following are the only valid Booking flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> ON_HOLD -> EXPIRED
  • New Booking -> ON_HOLD -> CONFIRMED
  • New Booking -> ON_HOLD -> PENDING -> REJECTED
  • New Booking -> ON_HOLD -> PENDING -> CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /bookings endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,EXPIRED,PENDING,REJECTED,CONFIRMED,CANCELLED

cancellableboolean

Indicates whether the booking is cancellable right now

utcHoldExpirationdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the availability hold will be released. This SHOULD be equivalent to the time calculated by adding holdExpirationMinutes to the current UTC time but MAY be either earlier or later than the requested duration.

refreshFrequencystring

This is the RECOMMENDED refresh interval for the Reseller and SHOULD be used by the Reseller to control the frequency at which they make a getBooking request for the following scenarios:

  • To see if a booking has changed out of a PENDING status into CONFIRMED or REJECTED.
  • To see if a booking has had any new Vouchers or Tickets delivered for the booking.
  • To see if a booking has changed from CONFIRMED to CANCELLED in the event of a supplier-initiated cancellation.
  • To see if a booking has an updated utcRedeemedAt/utcResolvedAt value for the Voucher or any of the Tickets.

Enum: HOURLY,DAILY

productIdstring

A valid product ID that matches the id returned from GET /suppliers/{supplierId}/products.

optionIdstring

A valid option ID that matches the id returned from GET /suppliers/{supplierId}/products.

availabilityobject
idstring

This MUST be a unique identifier within the scope of the Option.

optionIdstring

This MUST be a valid option ID that matches the id returned from GET /suppliers/{supplierId}/products.

localDateTimeStartdate-time

This MUST be an RFC 3339 compliant date and time.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

deliveryMethodstring

A value of TICKET indicates that there will be one deliveryValue for each ticket in the Booking while a value of VOUCHER indicates that there will be one deliveryValue that is shared among all tickets in the Booking.

Enum: TICKET,VOUCHER

unitItemsarray[object]
uuidstring

This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record.

unitIdstring

A valid unit ID that matches the id returned from GET /suppliers/{supplierId}/products.

resellerReferencestring

An OPTIONAL tracking reference for the Reseller that SHOULD be tracked by the Booking Platform. This MUST be returned if the value was provided in the request body.

quantityinteger

The total number of this unit that the customer wants to purchase.

cancellationRequestobject
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).

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmBooking request, the status MUST be CONFIRMED.

After a successful confirmCancellation request, the status MUST be CANCELLED.

Following are the only valid Booking flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> ON_HOLD -> EXPIRED
  • New Booking -> ON_HOLD -> CONFIRMED
  • New Booking -> ON_HOLD -> PENDING -> REJECTED
  • New Booking -> ON_HOLD -> PENDING -> CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /bookings endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,EXPIRED,PENDING,REJECTED,CONFIRMED,CANCELLED

refundstring

This value indicates the expected refund from the Supplier.

  • FULL indicates that the Supplier has fully refunded the booking and will not be paid by the Reseller for this booking. This is the expected state when a valid cancellation request is made before any cancellation cutoff policy or when a Supplier approves a cancellation request that was made after the cutoff.
  • PARTIAL indicates that the Supplier has agreed to partially refund the customer. This may be due to a cancellation policy that grants a partial refund or because the Supplier has agreed to partially refund the customer when the cancellation policy would otherwise have not allowed any refund.
  • NONE indicates that no refund will be given by the Supplier. The customer may still be refunded by the Reseller but the Supplier MUST still be paid for this booking.

Enum: FULL,PARTIAL,NONE

utcRequestedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation request was originally started. This timestamp MUST be used for any validation against a cancellation policy. This is important because there may be some delay in confirming this cancellation request during the 2-phase workflow which could finish just after the cancellation policy cutoff has elapsed.

utcConfirmedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation request was confirmed by the Reseller.

utcResolvedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation was confirmed. This will typically be the same as utcConfirmedAt however if the cancellation request required manual approval from the Supplier, it may be different.

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.

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.

objectobject

An order aggregates one or more bookings.

idstring

The order's identifier, unique to the Supplier.

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmOrder request, the status MUST be CONFIRMED.

After a successful cancelOrder request, the status MUST be CANCELLED.

Following are the only valid Order flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> Order ON_HOLD -> Order EXPIRED
  • New Booking -> Order ON_HOLD -> Order CONFIRMED
  • New Booking -> Order ON_HOLD -> Order PENDING -> Order REJECTED
  • New Booking -> Order ON_HOLD -> Order PENDING -> Order CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /orders endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,CONFIRMED,PENDING,CANCELLED,EXPIRED,REJECTED

utcExpiresAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the availability hold will be released. This SHOULD be equivalent to the time calculated by adding holdExpirationMinutes to the current UTC time from the original Pending Booking request, but MAY be either earlier or later than the requested duration.

utcConfirmedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the order was confirmed by the Operator.

bookings

All booking objects aggregated by this order.

objectobject
uuiduuid

This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record.

resellerReferencestring

An OPTIONAL tracking reference for the Reseller that SHOULD be tracked by the Booking Platform. This MUST be returned if the value was provided in the request body.

channelNamestring

The originating channel's human-readable name.

A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET /channels endpoint).

This is provided in the Pending Booking request, and should be mirrored back in every Booking response.

channelIduuid

The unique identifier of the originating channel.

A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET /channels endpoint).

This is provided in the Pending Booking request, and should be mirrored back in every Booking response.

supplierReferencestring

An OPTIONAL tracking reference for the Supplier that SHOULD be tracked by the Reseller.

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmBooking request, the status MUST be CONFIRMED.

After a successful confirmCancellation request, the status MUST be CANCELLED.

Following are the only valid Booking flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> ON_HOLD -> EXPIRED
  • New Booking -> ON_HOLD -> CONFIRMED
  • New Booking -> ON_HOLD -> PENDING -> REJECTED
  • New Booking -> ON_HOLD -> PENDING -> CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /bookings endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,EXPIRED,PENDING,REJECTED,CONFIRMED,CANCELLED

cancellableboolean

Indicates whether the booking is cancellable right now

utcHoldExpirationdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the availability hold will be released. This SHOULD be equivalent to the time calculated by adding holdExpirationMinutes to the current UTC time but MAY be either earlier or later than the requested duration.

refreshFrequencystring

This is the RECOMMENDED refresh interval for the Reseller and SHOULD be used by the Reseller to control the frequency at which they make a getBooking request for the following scenarios:

  • To see if a booking has changed out of a PENDING status into CONFIRMED or REJECTED.
  • To see if a booking has had any new Vouchers or Tickets delivered for the booking.
  • To see if a booking has changed from CONFIRMED to CANCELLED in the event of a supplier-initiated cancellation.
  • To see if a booking has an updated utcRedeemedAt/utcResolvedAt value for the Voucher or any of the Tickets.

Enum: HOURLY,DAILY

productIdstring

A valid product ID that matches the id returned from GET /suppliers/{supplierId}/products.

optionIdstring

A valid option ID that matches the id returned from GET /suppliers/{supplierId}/products.

availabilityobject
idstring

This MUST be a unique identifier within the scope of the Option.

optionIdstring

This MUST be a valid option ID that matches the id returned from GET /suppliers/{supplierId}/products.

localDateTimeStartdate-time

This MUST be an RFC 3339 compliant date and time.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

deliveryMethodstring

A value of TICKET indicates that there will be one deliveryValue for each ticket in the Booking while a value of VOUCHER indicates that there will be one deliveryValue that is shared among all tickets in the Booking.

Enum: TICKET,VOUCHER

unitItemsarray[object]
uuidstring

This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record.

unitIdstring

A valid unit ID that matches the id returned from GET /suppliers/{supplierId}/products.

resellerReferencestring

An OPTIONAL tracking reference for the Reseller that SHOULD be tracked by the Booking Platform. This MUST be returned if the value was provided in the request body.

quantityinteger

The total number of this unit that the customer wants to purchase.

cancellationRequestobject
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).

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmBooking request, the status MUST be CONFIRMED.

After a successful confirmCancellation request, the status MUST be CANCELLED.

Following are the only valid Booking flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> ON_HOLD -> EXPIRED
  • New Booking -> ON_HOLD -> CONFIRMED
  • New Booking -> ON_HOLD -> PENDING -> REJECTED
  • New Booking -> ON_HOLD -> PENDING -> CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /bookings endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,EXPIRED,PENDING,REJECTED,CONFIRMED,CANCELLED

refundstring

This value indicates the expected refund from the Supplier.

  • FULL indicates that the Supplier has fully refunded the booking and will not be paid by the Reseller for this booking. This is the expected state when a valid cancellation request is made before any cancellation cutoff policy or when a Supplier approves a cancellation request that was made after the cutoff.
  • PARTIAL indicates that the Supplier has agreed to partially refund the customer. This may be due to a cancellation policy that grants a partial refund or because the Supplier has agreed to partially refund the customer when the cancellation policy would otherwise have not allowed any refund.
  • NONE indicates that no refund will be given by the Supplier. The customer may still be refunded by the Reseller but the Supplier MUST still be paid for this booking.

Enum: FULL,PARTIAL,NONE

utcRequestedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation request was originally started. This timestamp MUST be used for any validation against a cancellation policy. This is important because there may be some delay in confirming this cancellation request during the 2-phase workflow which could finish just after the cancellation policy cutoff has elapsed.

utcConfirmedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation request was confirmed by the Reseller.

utcResolvedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation was confirmed. This will typically be the same as utcConfirmedAt however if the cancellation request required manual approval from the Supplier, it may be different.

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.

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.

objectobject

An order aggregates one or more bookings.

idstring

The order's identifier, unique to the Supplier.

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmOrder request, the status MUST be CONFIRMED.

After a successful cancelOrder request, the status MUST be CANCELLED.

Following are the only valid Order flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> Order ON_HOLD -> Order EXPIRED
  • New Booking -> Order ON_HOLD -> Order CONFIRMED
  • New Booking -> Order ON_HOLD -> Order PENDING -> Order REJECTED
  • New Booking -> Order ON_HOLD -> Order PENDING -> Order CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /orders endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,CONFIRMED,PENDING,CANCELLED,EXPIRED,REJECTED

utcExpiresAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the availability hold will be released. This SHOULD be equivalent to the time calculated by adding holdExpirationMinutes to the current UTC time from the original Pending Booking request, but MAY be either earlier or later than the requested duration.

utcConfirmedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the order was confirmed by the Operator.

bookings

All booking objects aggregated by this order.

objectobject
uuiduuid

This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record.

resellerReferencestring

An OPTIONAL tracking reference for the Reseller that SHOULD be tracked by the Booking Platform. This MUST be returned if the value was provided in the request body.

channelNamestring

The originating channel's human-readable name.

A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET /channels endpoint).

This is provided in the Pending Booking request, and should be mirrored back in every Booking response.

channelIduuid

The unique identifier of the originating channel.

A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET /channels endpoint).

This is provided in the Pending Booking request, and should be mirrored back in every Booking response.

supplierReferencestring

An OPTIONAL tracking reference for the Supplier that SHOULD be tracked by the Reseller.

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmBooking request, the status MUST be CONFIRMED.

After a successful confirmCancellation request, the status MUST be CANCELLED.

Following are the only valid Booking flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> ON_HOLD -> EXPIRED
  • New Booking -> ON_HOLD -> CONFIRMED
  • New Booking -> ON_HOLD -> PENDING -> REJECTED
  • New Booking -> ON_HOLD -> PENDING -> CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /bookings endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,EXPIRED,PENDING,REJECTED,CONFIRMED,CANCELLED

cancellableboolean

Indicates whether the booking is cancellable right now

utcHoldExpirationdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the availability hold will be released. This SHOULD be equivalent to the time calculated by adding holdExpirationMinutes to the current UTC time but MAY be either earlier or later than the requested duration.

refreshFrequencystring

This is the RECOMMENDED refresh interval for the Reseller and SHOULD be used by the Reseller to control the frequency at which they make a getBooking request for the following scenarios:

  • To see if a booking has changed out of a PENDING status into CONFIRMED or REJECTED.
  • To see if a booking has had any new Vouchers or Tickets delivered for the booking.
  • To see if a booking has changed from CONFIRMED to CANCELLED in the event of a supplier-initiated cancellation.
  • To see if a booking has an updated utcRedeemedAt/utcResolvedAt value for the Voucher or any of the Tickets.

Enum: HOURLY,DAILY

productIdstring

A valid product ID that matches the id returned from GET /suppliers/{supplierId}/products.

optionIdstring

A valid option ID that matches the id returned from GET /suppliers/{supplierId}/products.

availabilityobject
idstring

This MUST be a unique identifier within the scope of the Option.

optionIdstring

This MUST be a valid option ID that matches the id returned from GET /suppliers/{supplierId}/products.

localDateTimeStartdate-time

This MUST be an RFC 3339 compliant date and time.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

deliveryMethodstring

A value of TICKET indicates that there will be one deliveryValue for each ticket in the Booking while a value of VOUCHER indicates that there will be one deliveryValue that is shared among all tickets in the Booking.

Enum: TICKET,VOUCHER

unitItemsarray[object]
uuidstring

This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record.

unitIdstring

A valid unit ID that matches the id returned from GET /suppliers/{supplierId}/products.

resellerReferencestring

An OPTIONAL tracking reference for the Reseller that SHOULD be tracked by the Booking Platform. This MUST be returned if the value was provided in the request body.

quantityinteger

The total number of this unit that the customer wants to purchase.

cancellationRequestobject
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).

statusstring

After a successful createBooking request, the status MUST be ON_HOLD.

After a successful confirmBooking request, the status MUST be CONFIRMED.

After a successful confirmCancellation request, the status MUST be CANCELLED.

Following are the only valid Booking flow status transitions:

  • New Booking -> REJECTED
  • New Booking -> ON_HOLD -> EXPIRED
  • New Booking -> ON_HOLD -> CONFIRMED
  • New Booking -> ON_HOLD -> PENDING -> REJECTED
  • New Booking -> ON_HOLD -> PENDING -> CONFIRMED

The PENDING status MAY appear only for products with the instantConfirmation property set to false. Poll the /bookings endpoint for status changes.

Following are the only valid Cancellation flow status transitions:

  • CONFIRMED -> CANCELLED
  • ON_HOLD -> EXPIRED

Enum: ON_HOLD,EXPIRED,PENDING,REJECTED,CONFIRMED,CANCELLED

refundstring

This value indicates the expected refund from the Supplier.

  • FULL indicates that the Supplier has fully refunded the booking and will not be paid by the Reseller for this booking. This is the expected state when a valid cancellation request is made before any cancellation cutoff policy or when a Supplier approves a cancellation request that was made after the cutoff.
  • PARTIAL indicates that the Supplier has agreed to partially refund the customer. This may be due to a cancellation policy that grants a partial refund or because the Supplier has agreed to partially refund the customer when the cancellation policy would otherwise have not allowed any refund.
  • NONE indicates that no refund will be given by the Supplier. The customer may still be refunded by the Reseller but the Supplier MUST still be paid for this booking.

Enum: FULL,PARTIAL,NONE

utcRequestedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation request was originally started. This timestamp MUST be used for any validation against a cancellation policy. This is important because there may be some delay in confirming this cancellation request during the 2-phase workflow which could finish just after the cancellation policy cutoff has elapsed.

utcConfirmedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation request was confirmed by the Reseller.

utcResolvedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the cancellation was confirmed. This will typically be the same as utcConfirmedAt however if the cancellation request required manual approval from the Supplier, it may be different.

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.

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

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.

objectobject

A breakdown of prices by Option, date and Unit.

OptionID ||--[maps]--|< Date ||--[maps]--|< UnitID ||--[lists]--|< Pricing

(crow's foot notation; one ||--|< one or many)

  • All OptionID in the PriceSchedule belong to the same Product.
  • Each Date within an OptionID MUST be local to the Product's timezone.
  • Each Pricing within a UnitID MUST have a distinct currency value.
*object

The keys in this map represent each date a price schedule is available on for the parent OptionID. Each value represents a UnitID with a price on the key's date.

*object

The keys in this map represent each UnitID with a price available on the parent's date. Each value represents a valid price for the UnitID on the given date. Note that each price for a given UnitID and date MUST have a unique currency code.

*array[object]

A list of available prices for this unit. Each price MUST have a distinct currency.

startTimesarray[string]

A list of RFC3339 date-times representing the specific start times when this price can be used.

The date component of each timestamp in the startTimes array MUST match the Unit ID's parent key.

If startTimes is empty, this price is valid for the entire (local) date represented in the Unit ID's parent key.

If startTimes is NOT empty, bookings made against this price MUST include an availability with a localDateTimeStart property present in, or equivalent to a date-time in, the startTimes array.

originalint64

Original cost of the unit to the buyer, before applied discounts, in the lowest denomination of the specified currency. For example, in USD 100 is 100 cents or 1 dollar.

netint64

Cost of the unit to the operator, in the lowest denomination of the specified currency. For example, in USD 100 is 100 cents or 1 dollar.

retailint64

Cost of the unit to the buyer, after applying discounts, in the lowest denomination of the specified currency. For example, in USD 100 is 100 cents or 1 dollar.

currencystring

ISO 4217 currency code, e.g.: USD, EUR, CHF

includedTaxesarray[object]
namestring

A short name or description of the tax being applied.

retailint64

The amount of the retail price increased by a local government or authority.

netint64

The amount of the net price increased by a local government or authority.

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