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.

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

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.

Auth
GET /suppliers
Copy
Responses
200

List of suppliers with details.

arrayarray[object]
idstring

This MUST be unique within the scope of the Booking Platform (1024 character limit).

maxLength: 1024

namestring

Common name for the supplier that may be displayed to the customer.

endpointstring

This is the base URL that will be prepended to ALL other paths. The value SHOULD NOT contain a trailing /.

contactobject

Contact details for the supplier.

websitestring

This SHOULD be the website of the Supplier that is separate from the Booking Platform but MAY be a unique destination within the Booking Platform about the Supplier.

emailstring

This SHOULD be the email support contact for the Supplier. This information MAY be provided to the customer.

telephonestring

This SHOULD be the phone support contact for the Supplier. This information MAY be provided to the customer.

addressstring

This SHOULD be the mail address support contact for the Supplier. This information MAY be provided to the customer.

firstNamestring

First name of the supplier contact.

lastNamestring

Last name of the supplier contact.

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.

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

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.

Auth
Headers
X-Capabilitiesstring

Comman-delimited list of capabilities the client wishes from the server.

Path Params
supplierIdstring

A valid supplier ID that matches the id returned from GET /suppliers.

GET /suppliers/{supplierId}/products
Copy
Responses
200

List of products with details.

arrayarray[object]
idstring

This MUST be unique within the scope of the Supplier (1024 character limit).

maxLength: 1024

internalNamestring

This SHOULD be a friendly name for the Product to facilitate easier identification. It MUST NOT be shown to the customer.

referencestring

This is an internal reference identifier that the Supplier wishes to use. It MAY be non-unique.

localestring

This MUST be a valid BCP 47 RFC 5646 RFC 4647 language tag.

timeZonestring

This MUST be a valid database name from the ICANN tz database. Any calculation of UTC offset or UTC DTC offset MUST use the correct offset from this database.

instantConfirmationboolean

This indicates whether the Reseller can expect an immediate confirmation of whether the Supplier has accepted the booking. If false then the Reseller MUST be able to delay confirmation to the customer while waiting for the Supplier to accept or reject the Booking.

When instantConfirmation is set to false one should expect created bookings to first get into a PENDING state.

instantDeliveryboolean

This indicates whether the Reseller can expect immediate delivery of the customer's tickets. If false then the Reseller MUST be able to delay delivery of the tickets to the customer.

availabilityTypestring

This indicates whether the Product's availabilites have limited capacity (START_TIME), or may be sold freesale at the specified times (OPENING_HOURS).

Products with an availabilityType of START_TIME MUST NOT have availabilities with a status of FREESALE. Products with an availabilityType of OPENING_HOURS MUST have status FREESALE on all availabilities.

Enum: START_TIME,OPENING_HOURS

deliveryFormatsarray[string]

This MAY contain more than one value if some Options or Units under this Product will use different delivery formats. The Reseller MUST be able to support all of the specified formats in order to sell this Product. Valid values are ["QR_CODE", "EAN13", "CODE128", "UPCA", "TEXT", "CODE39"]

Enum: QR_CODE,EAN13,CODE128,UPCA,TEXT,CODE39

deliveryMethodsarray[string]

A product MAY support both types of delivery methods. Valid values are ["TICKET", "VOUCHER"]

Enum: TICKET,VOUCHER

redemptionMethodstring

This indicates the redemption requirements for the customer. A value of MANIFEST indicates that the customer MUST provide a form of identification to redeem and as such a printed or digital copy of the ticket is OPTIONAL. A value of DIGITAL indicates that the customer MUST provide a copy of the ticket but MAY be digital or printed. A value of PRINT indicates that the customer MUST provide a printed copy of the ticket (this is typically only used when the Supplier must retain the printed copy for their records).

Enum: MANIFEST,DIGITAL,PRINT

capabilitiesarray[object]
idstring

This MUST be a unique identifier within the scope of the OBS specification. Officially adopted capabilities will be identified only by the name of the capability but any capabilities that are specific to a particular partner MUST be prefixed with that partner's identifier and separated from the capability name with a /.

revisioninteger

This represents which revision of the capability is supported. This is not a version numbers and therefore there is no implied version compatibility like you would have with a semantic version, therefore if multiple revisions are supported, then one Capability object should be returned for each revision that is supported.

requiredboolean

This indicates whether the capability is merely supported or strictly required. Resellers that don't support the capability or specific revision will use this flag to filter out products they are unable to support.

optionsarray[object]
idstring

This MUST be a unique identifier within the scope of the Product (1024 character limit).

maxLength: 1024

internalNamestring

This SHOULD be a friendly name for the Option to facilitate easier identification. It MUST NOT be shown to the customer.

referencestring

This is an internal reference identifier that the Supplier wishes to use. It MAY be non-unique.

unitsarray[object]
idstring

This MUST be a unique identifier within the scope of the Option (1024 character limit).

maxLength: 1024

internalNamestring

This SHOULD be a friendly name for the Unit to facilitate easier identification. It MUST NOT be shown to the customer.

referencestring

This is an internal reference identifier that the Supplier wishes to use. It MAY be non-unique.

typestring

This is the base unit type for this unit definition.

Enum: ADULT,CHILD,INFANT,YOUTH,STUDENT,SENIOR,TRAVELLER

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

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.

Auth
Path Params
supplierIdstring

A valid supplier ID that matches the id returned from GET /suppliers.

Query String
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.

localDateStartstring

This MUST be an RFC 3339 compliant date-time. The start of the date-time range MUST be treated as inclusive of this date-time when generating the response.

localDateEndstring

This MUST be an RFC 3339 compliant date-time. The end of the date-time range MUST be treated as exclusive of this date-time when generating the response.

GET /suppliers/{supplierId}/availability
Copy
Responses
200

List of availability objects with status.

arrayarray
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.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

statusstring

This represents whether the availability in this configuration is currently bookable. The values have the following meanings:

  • FREESALE: Always available.
  • AVAILABLE: Currently available for sale, but has a fixed capacity.
  • LIMITED: Currently available for sale, but has a fixed capacity and may be sold out soon.
  • SOLD_OUT: Currently sold out, but additional availability may free up.
  • CLOSED: Currently not available for sale, but not sold out (e.g. temporarily on stop-sell) and may be available for sale soon.

Enum: FREESALE,AVAILABLE,LIMITED,SOLD_OUT,CLOSED

vacanciesinteger

This SHOULD NOT be returned when status is FREESALE. This SHOULD be a shared pool for all Unit types in the Option. If availability is tracked per-Unit then this value MUST be equal to the available quantity for the Unit that has the most remaining.

minimum: 0

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

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

Auth
Path Params
supplierIdstring

A valid supplier ID that matches the id returned from GET /suppliers.

Request Body

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.

objectobject
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.

availabilityIdsarray[string]
unitsarray[object]
unitIdstring

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

quantityinteger

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

POST /suppliers/{supplierId}/availability
Copy
Responses
200

List of availability objects with status.

arrayarray
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.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

statusstring

This represents whether the availability in this configuration is currently bookable. The values have the following meanings:

  • FREESALE: Always available.
  • AVAILABLE: Currently available for sale, but has a fixed capacity.
  • LIMITED: Currently available for sale, but has a fixed capacity and may be sold out soon.
  • SOLD_OUT: Currently sold out, but additional availability may free up.
  • CLOSED: Currently not available for sale, but not sold out (e.g. temporarily on stop-sell) and may be available for sale soon.

Enum: FREESALE,AVAILABLE,LIMITED,SOLD_OUT,CLOSED

vacanciesinteger

This SHOULD NOT be returned when status is FREESALE. This SHOULD be a shared pool for all Unit types in the Option. If availability is tracked per-Unit then this value MUST be equal to the available quantity for the Unit that has the most remaining.

minimum: 0

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

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.

Auth
Path Params
supplierIdstring

A valid supplier ID that matches the id returned from GET /suppliers.

Request Body

This MUST include all unitItems that the customer wants to book.

objectobject
uuiduuid

This UUID is generated for the initial createBooking request and MUST never change. This value 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.

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.

availabilityIdstring

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

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.

holdExpirationMinutesinteger

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

POST /suppliers/{supplierId}/bookings
Copy
Responses
200

A complete representation of the current booking booking status.

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.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

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.

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

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.

Auth
Path Params
supplierIdstring

A valid supplier ID that matches the id returned from GET /suppliers.

uuidstring

A valid booking UUID that matches the uuid sent during the initial POST /suppliers/{supplierId}/bookings

GET /suppliers/{supplierId}/bookings/{uuid}
Copy
Responses
200

A complete representation of the current booking booking status.

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.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

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.

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

Auth
Path Params
supplierIdstring

A valid supplier ID that matches the id returned from GET /suppliers.

uuidstring

A valid booking UUID that matches the uuid sent during the initial POST /suppliers/{supplierId}/bookings

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.

POST /suppliers/{supplierId}/bookings/{uuid}/extend
Copy
Responses
200

A complete representation of the current booking booking status.

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.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

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.

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

Auth
Path Params
supplierIdstring

A valid supplier ID that matches the id returned from GET /suppliers.

uuidstring

A valid booking UUID that matches the uuid sent during the initial POST /suppliers/{supplierId}/bookings

Request Body

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

objectobject
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.

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.

guestDetailsarray[object]
firstNamestring

Given name of the guest.

lastNamestring

Family or surname of the guest.

emailstring

A valid contact email address for the guest.

phonestring

A valid contact phone number for the guest.

typestring

This is the base unit type for this unit definition.

Enum: ADULT,CHILD,INFANT,YOUTH,STUDENT,SENIOR,TRAVELLER

ageinteger

Age of the guest, in years.

minimum: 0

genderstring

Gender of the guest.

heightstring

Guest height with unit measure.

weightstring

Guest weight with unit measure.

countryOfOriginstring

The guest's home country.

primaryLanguagestring

Spoken language of the guest.

identificationsarray[object]

A list of official travel documents issued by a government that identifies the guest.

typestring

Indicates the type of identifying document.

valuestring

Unique identifier assigned by authorities to this document.

POST /suppliers/{supplierId}/bookings/{uuid}/confirm
Copy
Responses
200

A complete representation of the current booking booking status.

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.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

deliveryMethodstring

A value of TICKET indicates that there will be one deliveryValue for each ticket in the Booking

Enum: TICKET,VOUCHER,TICKET

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.

supplierReferencestring

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

ticketobject
deliveryOptionsarray[object]

This MUST contain a list of one or more deliveryOptions. Any one of the listed deliveryOptions MAY be used to redeem this Ticket.

deliveryFormatstring

This indicates the format for the deliveryValue so that it can be parsed or encoded correctly.

Enum: QR_CODE,EAN13,CODE128,UPCA,TEXT,CODE39

deliveryValuestring

Represents the value for the voucher or ticket that should be used. This value MUST be encoded according to the deliveryFormat value.

redemptionMethodstring

This indicates the redemption requirements for the customer. A value of MANIFEST indicates that the customer MUST provide a form of identification to redeem and as such a printed or digital copy of the ticket is OPTIONAL. A value of DIGITAL indicates that the customer MUST provide a copy of the ticket but MAY be digital or printed. A value of PRINT indicates that the customer MUST provide a printed copy of the ticket (this is typically only used when the Supplier must retain the printed copy for their records).

Enum: MANIFEST,DIGITAL,PRINT

utcDeliveredAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the voucher was made available to the customer by the Supplier. This will typically be the same as utcConfirmedAt.

utcRedeemedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the customer redeemed this voucher.

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.

utcConfirmedAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at which the booking was confirmed (either automatically by the Booking Platform or manually by the Supplier).

utcDeliveredAtdate-time

This MUST be an RFC 3339 compliant date and time. The value represents the time at whcih the VOUCHER was delivered.

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

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

Auth
Path Params
supplierIdstring

A valid supplier ID that matches the id returned from GET /suppliers.

uuidstring

A valid booking UUID that matches the uuid sent during the initial POST /suppliers/{supplierId}/bookings

Request 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.

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

POST /suppliers/{supplierId}/bookings/{uuid}/cancel
Copy
Responses
200

A complete representation of the current booking booking status.

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.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

localDateTimeEnddate-time

This MUST be an RFC 3339 compliant date and time.

Fractions of a second will be removed when retrieved by Redeam. For example, Redeam will interpret the date-time 2023-01-05T14:35:45.754Z as 2023-01-05T14:35:45Z.

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.

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