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.
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
.
xxxxxxxxxx
curl --get \
--url 'https://redeam.io/v1/suppliers/{supplierId}/orders/{orderId}' \
--header 'Authorization: Basic {token}'
Contains a single order and all associated bookings.
object | object | An order aggregates one or more bookings. | |
id | string | The order's identifier, unique to the Supplier. | |
status | string | After a successful After a successful After a successful Following are the only valid Order flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
utcExpiresAt | date-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. | |
utcConfirmedAt | date-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. | ||
object | object | ||
uuid | uuid | This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record. | |
resellerReference | string | 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. | |
channelName | string | The originating channel's human-readable name. A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET This is provided in the Pending Booking request, and should be mirrored back in every Booking response. | |
channelId | uuid | The unique identifier of the originating channel. A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET This is provided in the Pending Booking request, and should be mirrored back in every Booking response. | |
supplierReference | string | An OPTIONAL tracking reference for the Supplier that SHOULD be tracked by the Reseller. | |
status | string | After a successful After a successful After a successful Following are the only valid Booking flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
cancellable | boolean | Indicates whether the booking is cancellable right now | |
utcHoldExpiration | date-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 | |
refreshFrequency | string | 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
Enum: | |
productId | string | A valid product ID that matches the | |
optionId | string | A valid option ID that matches the | |
availability | object | ||
id | string | This MUST be a unique identifier within the scope of the Option. | |
optionId | string | This MUST be a valid option ID that matches the | |
localDateTimeStart | date-time | This MUST be an RFC 3339 compliant date and time. | |
localDateTimeEnd | date-time | This MUST be an RFC 3339 compliant date and time. | |
deliveryMethod | string | A value of Enum: | |
unitItems | array[object] | ||
uuid | string | This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record. | |
unitId | string | A valid unit ID that matches the | |
resellerReference | string | 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. | |
quantity | integer | The total number of this unit that the customer wants to purchase. | |
cancellationRequest | object | ||
reason | string | This value indicates the reason that the cancellation request was sent.
Enum: | |
reasonDetails | string | 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). | |
status | string | After a successful After a successful After a successful Following are the only valid Booking flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
refund | string | This value indicates the expected refund from the Supplier.
Enum: | |
utcRequestedAt | date-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. | |
utcConfirmedAt | date-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. | |
utcResolvedAt | date-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 | |
contact | object | ||
fullName | string | The full name of the lead traveller. | |
emailAddress | string | The contact email of the lead traveller. | |
phoneNumber | string | The contact phone number of the lead traveller. | |
locales | array[string] | ||
country | string | This MUST be a valid ISO 3166-1 alpha-2 country code. |
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
xxxxxxxxxx
{
"id": "5e19185a-f46f-45f0-9ff4-1f5e8aa6ddcf",
"status": "ON_HOLD",
"utcExpiresAt": "2019-10-31T08:30:00Z",
"bookings": [
{
"uuid": "f149068e-300e-452a-a856-3f091239f1d7",
"resellerReference": "001-002",
"supplierReference": "ABC-123",
"status": "ON_HOLD",
"cancellable": true,
"utcHoldExpiration": "2019-10-31T08:30:00Z",
"refreshFrequency": "HOURLY",
"productId": "adult",
"optionId": "LR1-01",
"availability": {
"id": "28271273-a317-40fc-8f42-79725a7072a3",
"optionId": "LR1-01",
"localDateTimeStart": "2019-10-31T08:30:00.000Z",
"localDateTimeEnd": "2019-10-31T10:00:00.000Z"
},
"deliveryMethod": "VOUCHER",
"unitItems": [
{
"uuid": "6be0409f-181e-4520-acc1-cc6791896859",
"unitId": "adult",
"resellerReference": "001-002",
"quantity": 2
}
]
}
]
}
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.
The client's cancellation request MUST include a reason.
object | object | ||
reason | string | This value indicates the reason that the cancellation request was sent.
Enum: | |
reasonDetails | string | 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). |
xxxxxxxxxx
curl --request DELETE \
--url 'https://redeam.io/v1/suppliers/{supplierId}/orders/{orderId}' \
--header 'Authorization: Basic {token}' \
--data '{
"reason": "CUSTOMER",
"reasonDetails": "Child came down with the flu the day before the activity."
}'
Contains a single order and all associated bookings.
object | object | An order aggregates one or more bookings. | |
id | string | The order's identifier, unique to the Supplier. | |
status | string | After a successful After a successful After a successful Following are the only valid Order flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
utcExpiresAt | date-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. | |
utcConfirmedAt | date-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. | ||
object | object | ||
uuid | uuid | This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record. | |
resellerReference | string | 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. | |
channelName | string | The originating channel's human-readable name. A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET This is provided in the Pending Booking request, and should be mirrored back in every Booking response. | |
channelId | uuid | The unique identifier of the originating channel. A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET This is provided in the Pending Booking request, and should be mirrored back in every Booking response. | |
supplierReference | string | An OPTIONAL tracking reference for the Supplier that SHOULD be tracked by the Reseller. | |
status | string | After a successful After a successful After a successful Following are the only valid Booking flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
cancellable | boolean | Indicates whether the booking is cancellable right now | |
utcHoldExpiration | date-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 | |
refreshFrequency | string | 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
Enum: | |
productId | string | A valid product ID that matches the | |
optionId | string | A valid option ID that matches the | |
availability | object | ||
id | string | This MUST be a unique identifier within the scope of the Option. | |
optionId | string | This MUST be a valid option ID that matches the | |
localDateTimeStart | date-time | This MUST be an RFC 3339 compliant date and time. | |
localDateTimeEnd | date-time | This MUST be an RFC 3339 compliant date and time. | |
deliveryMethod | string | A value of Enum: | |
unitItems | array[object] | ||
uuid | string | This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record. | |
unitId | string | A valid unit ID that matches the | |
resellerReference | string | 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. | |
quantity | integer | The total number of this unit that the customer wants to purchase. | |
cancellationRequest | object | ||
reason | string | This value indicates the reason that the cancellation request was sent.
Enum: | |
reasonDetails | string | 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). | |
status | string | After a successful After a successful After a successful Following are the only valid Booking flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
refund | string | This value indicates the expected refund from the Supplier.
Enum: | |
utcRequestedAt | date-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. | |
utcConfirmedAt | date-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. | |
utcResolvedAt | date-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 | |
contact | object | ||
fullName | string | The full name of the lead traveller. | |
emailAddress | string | The contact email of the lead traveller. | |
phoneNumber | string | The contact phone number of the lead traveller. | |
locales | array[string] | ||
country | string | This MUST be a valid ISO 3166-1 alpha-2 country code. |
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
xxxxxxxxxx
{
"id": "5e19185a-f46f-45f0-9ff4-1f5e8aa6ddcf",
"status": "ON_HOLD",
"utcExpiresAt": "2019-10-31T08:30:00Z",
"bookings": [
{
"uuid": "f149068e-300e-452a-a856-3f091239f1d7",
"resellerReference": "001-002",
"supplierReference": "ABC-123",
"status": "ON_HOLD",
"cancellable": true,
"utcHoldExpiration": "2019-10-31T08:30:00Z",
"refreshFrequency": "HOURLY",
"productId": "adult",
"optionId": "LR1-01",
"availability": {
"id": "28271273-a317-40fc-8f42-79725a7072a3",
"optionId": "LR1-01",
"localDateTimeStart": "2019-10-31T08:30:00.000Z",
"localDateTimeEnd": "2019-10-31T10:00:00.000Z"
},
"deliveryMethod": "VOUCHER",
"unitItems": [
{
"uuid": "6be0409f-181e-4520-acc1-cc6791896859",
"unitId": "adult",
"resellerReference": "001-002",
"quantity": 2
}
]
}
]
}
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.
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.
object | object | ||
reason | string | This indicates the reason for extending the booking hold.
Enum: | |
reasonDetails | string | This provides additional details behind the reason for requesting the extension and SHOULD be provided in all cases, but especially if the | |
holdExpirationMinutes | integer | 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 |
xxxxxxxxxx
curl --request POST \
--url 'https://redeam.io/v1/suppliers/{supplierId}/orders/{orderId}/extend' \
--header 'Authorization: Basic {token}' \
--data '{
"reason": "FRAUD_CHECK",
"reasonDetails": "Manual fraud review with 2-hour SLA.",
"holdExpirationMinutes": 120
}'
Contains a single order and all associated bookings.
object | object | An order aggregates one or more bookings. | |
id | string | The order's identifier, unique to the Supplier. | |
status | string | After a successful After a successful After a successful Following are the only valid Order flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
utcExpiresAt | date-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. | |
utcConfirmedAt | date-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. | ||
object | object | ||
uuid | uuid | This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record. | |
resellerReference | string | 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. | |
channelName | string | The originating channel's human-readable name. A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET This is provided in the Pending Booking request, and should be mirrored back in every Booking response. | |
channelId | uuid | The unique identifier of the originating channel. A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET This is provided in the Pending Booking request, and should be mirrored back in every Booking response. | |
supplierReference | string | An OPTIONAL tracking reference for the Supplier that SHOULD be tracked by the Reseller. | |
status | string | After a successful After a successful After a successful Following are the only valid Booking flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
cancellable | boolean | Indicates whether the booking is cancellable right now | |
utcHoldExpiration | date-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 | |
refreshFrequency | string | 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
Enum: | |
productId | string | A valid product ID that matches the | |
optionId | string | A valid option ID that matches the | |
availability | object | ||
id | string | This MUST be a unique identifier within the scope of the Option. | |
optionId | string | This MUST be a valid option ID that matches the | |
localDateTimeStart | date-time | This MUST be an RFC 3339 compliant date and time. | |
localDateTimeEnd | date-time | This MUST be an RFC 3339 compliant date and time. | |
deliveryMethod | string | A value of Enum: | |
unitItems | array[object] | ||
uuid | string | This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record. | |
unitId | string | A valid unit ID that matches the | |
resellerReference | string | 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. | |
quantity | integer | The total number of this unit that the customer wants to purchase. | |
cancellationRequest | object | ||
reason | string | This value indicates the reason that the cancellation request was sent.
Enum: | |
reasonDetails | string | 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). | |
status | string | After a successful After a successful After a successful Following are the only valid Booking flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
refund | string | This value indicates the expected refund from the Supplier.
Enum: | |
utcRequestedAt | date-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. | |
utcConfirmedAt | date-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. | |
utcResolvedAt | date-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 | |
contact | object | ||
fullName | string | The full name of the lead traveller. | |
emailAddress | string | The contact email of the lead traveller. | |
phoneNumber | string | The contact phone number of the lead traveller. | |
locales | array[string] | ||
country | string | This MUST be a valid ISO 3166-1 alpha-2 country code. |
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
xxxxxxxxxx
{
"id": "5e19185a-f46f-45f0-9ff4-1f5e8aa6ddcf",
"status": "ON_HOLD",
"utcExpiresAt": "2019-10-31T08:30:00Z",
"bookings": [
{
"uuid": "f149068e-300e-452a-a856-3f091239f1d7",
"resellerReference": "001-002",
"supplierReference": "ABC-123",
"status": "ON_HOLD",
"cancellable": true,
"utcHoldExpiration": "2019-10-31T08:30:00Z",
"refreshFrequency": "HOURLY",
"productId": "adult",
"optionId": "LR1-01",
"availability": {
"id": "28271273-a317-40fc-8f42-79725a7072a3",
"optionId": "LR1-01",
"localDateTimeStart": "2019-10-31T08:30:00.000Z",
"localDateTimeEnd": "2019-10-31T10:00:00.000Z"
},
"deliveryMethod": "VOUCHER",
"unitItems": [
{
"uuid": "6be0409f-181e-4520-acc1-cc6791896859",
"unitId": "adult",
"resellerReference": "001-002",
"quantity": 2
}
]
}
]
}
Confirm an order
This confirms an in-progress order and MUST be sent before the utcHoldExpiration
has elapsed.
object | object | ||
contact | object | ||
fullName | string | The full name of the lead traveller. | |
emailAddress | string | The contact email of the lead traveller. | |
phoneNumber | string | The contact phone number of the lead traveller. | |
locales | array[string] | ||
country | string | This MUST be a valid ISO 3166-1 alpha-2 country code. |
xxxxxxxxxx
curl --request POST \
--url 'https://redeam.io/v1/suppliers/{supplierId}/orders/{orderId}/confirm' \
--header 'Authorization: Basic {token}' \
--data '{
"contact": {
"fullName": "Mr. Traveller",
"emailAddress": "traveller@fake.com",
"phoneNumber": "+1 555-555-1212",
"locales": [
"en-GB",
"en-US",
"en"
],
"country": "GB"
}
}'
Returns the confirmed order and all associated bookings.
object | object | An order aggregates one or more bookings. | |
id | string | The order's identifier, unique to the Supplier. | |
status | string | After a successful After a successful After a successful Following are the only valid Order flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
utcExpiresAt | date-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. | |
utcConfirmedAt | date-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. | ||
object | object | ||
uuid | uuid | This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record. | |
resellerReference | string | 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. | |
channelName | string | The originating channel's human-readable name. A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET This is provided in the Pending Booking request, and should be mirrored back in every Booking response. | |
channelId | uuid | The unique identifier of the originating channel. A list of operator-visible channels can be retrieved via Redeam's Channel Management API (GET This is provided in the Pending Booking request, and should be mirrored back in every Booking response. | |
supplierReference | string | An OPTIONAL tracking reference for the Supplier that SHOULD be tracked by the Reseller. | |
status | string | After a successful After a successful After a successful Following are the only valid Booking flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
cancellable | boolean | Indicates whether the booking is cancellable right now | |
utcHoldExpiration | date-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 | |
refreshFrequency | string | 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
Enum: | |
productId | string | A valid product ID that matches the | |
optionId | string | A valid option ID that matches the | |
availability | object | ||
id | string | This MUST be a unique identifier within the scope of the Option. | |
optionId | string | This MUST be a valid option ID that matches the | |
localDateTimeStart | date-time | This MUST be an RFC 3339 compliant date and time. | |
localDateTimeEnd | date-time | This MUST be an RFC 3339 compliant date and time. | |
deliveryMethod | string | A value of Enum: | |
unitItems | array[object] | ||
uuid | string | This is a randomly-generated UUID that MUST be tracked by both the Reseller and Booking Platform for locating this record. | |
unitId | string | A valid unit ID that matches the | |
resellerReference | string | 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. | |
quantity | integer | The total number of this unit that the customer wants to purchase. | |
cancellationRequest | object | ||
reason | string | This value indicates the reason that the cancellation request was sent.
Enum: | |
reasonDetails | string | 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). | |
status | string | After a successful After a successful After a successful Following are the only valid Booking flow status transitions:
The Following are the only valid Cancellation flow status transitions:
Enum: | |
refund | string | This value indicates the expected refund from the Supplier.
Enum: | |
utcRequestedAt | date-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. | |
utcConfirmedAt | date-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. | |
utcResolvedAt | date-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 | |
contact | object | ||
fullName | string | The full name of the lead traveller. | |
emailAddress | string | The contact email of the lead traveller. | |
phoneNumber | string | The contact phone number of the lead traveller. | |
locales | array[string] | ||
country | string | This MUST be a valid ISO 3166-1 alpha-2 country code. |
An error has occurred. See the definition of the ErrorObject for more details.
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
xxxxxxxxxx
{
"id": "5e19185a-f46f-45f0-9ff4-1f5e8aa6ddcf",
"status": "CONFIRMED",
"utcExpiresAt": "2019-01-05T08:30:00Z",
"utcConfirmedAt": "2019-01-05T08:25:00Z",
"bookings": [
{
"uuid": "f149068e-300e-452a-a856-3f091239f1d7",
"resellerReference": "001-002",
"supplierReference": "ABC-123",
"status": "CONFIRMED",
"cancellable": true,
"utcHoldExpiration": "2019-10-31T08:30:00Z",
"refreshFrequency": "HOURLY",
"productId": "adult",
"optionId": "LR1-01",
"availability": {
"id": "28271273-a317-40fc-8f42-79725a7072a3",
"optionId": "LR1-01",
"localDateTimeStart": "2019-10-31T08:30:00.000Z",
"localDateTimeEnd": "2019-10-31T10:00:00.000Z"
},
"deliveryMethod": "TICKET",
"unitItems": [
{
"uuid": "6be0409f-181e-4520-acc1-cc6791896859",
"unitId": "adult",
"resellerReference": "001-002",
"quantity": 2,
"supplierReference": "ABC-123",
"ticket": {
"deliveryOptions": [
{
"deliveryFormat": "QR_CODE",
"deliveryValue": "01234567890"
}
],
"redemptionMethod": "DIGITAL",
"utcDeliveredAt": "2019-10-31T08:30:00Z",
"utcRedeemedAt": "2019-10-31T08:30:00Z"
}
}
],
"utcConfirmedAt": "2019-01-05T08:25:00Z",
"utcDeliveredAt": "2019-10-31T08:30:00Z",
"contact": {
"fullName": "Mr. Traveller",
"emailAddress": "traveller@fake.com",
"phoneNumber": "+1 555-555-1212",
"locales": [
"en-GB",
"en-US",
"en"
],
"country": "GB"
}
}
],
"contact": {
"fullName": "Mr. Traveller",
"emailAddress": "traveller@fake.com",
"phoneNumber": "+1 555-555-1212",
"locales": [
"en-GB",
"en-US",
"en"
],
"country": "GB"
}
}
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.
supplierId | string | Identifier of the Supplier, unique to the Operator's Booking System. | |
productId | string | Identifier of the Product, unique within the Supplier. |
startDate | string | Optional RFC3339-compliant starting full-date ( | |
endDate | string | Optional RFC3339-compliant ending full-date ( |
xxxxxxxxxx
curl --get \
--url 'https://redeam.io/v1/suppliers/Colorado%20Center%20for%20Cycling%20%26%20Canoes/products/Raft%20%26%20Relax%20Rental/pricing/schedule' \
--header 'Authorization: Basic {token}' \
--data startDate=2021-06-04 \
--data endDate=2021-06-14
Returns the requested product's price schedule.
object | object | A breakdown of prices by Option, date and Unit.
(crow's foot notation; one ||--|< one or many)
| |
* | 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. | |
startTimes | array[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 If 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. | |
original | int64 | 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. | |
net | int64 | 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. | |
retail | int64 | 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. | |
currency | string | ISO 4217 currency code, e.g.: USD, EUR, CHF | |
includedTaxes | array[object] | ||
name | string | A short name or description of the tax being applied. | |
retail | int64 | The amount of the retail price increased by a local government or authority. | |
net | int64 | The amount of the net price increased by a local government or authority. |
Missing Authorization
header or key could not be validated.
The Authorization
header was validated but the requestor does not have the correct permissions to access the requested resource or perform the requested operation.
Invalid URI path requested.
An unknown error occurred and the server cannot respond in a sensible way. The response may not include a valid error object if one could not be generated.
The server is temporarily unavailable, either because the server is under maintenance, or overloaded (accepted too many requests in too short a time).
xxxxxxxxxx
{
"Option1": {
"2077-04-01": {
"Unit1": [
{
"startTimes": [
"2077-04-01T14:30:00-06:00",
"2077-04-01T16:30:00-06:00"
],
"original": 2000,
"net": 1000,
"retail": 1500,
"currency": "USD",
"includedTaxes": [
{
"name": "15% Sales Tax",
"retail": 225,
"net": 150
}
]
},
{
"startTimes": [
"2077-04-01T14:30:00-06:00",
"2077-04-01T16:30:00-06:00"
],
"original": 2000,
"net": 1000,
"retail": 1500,
"currency": "GBP",
"includedTaxes": [
{
"name": "15% Sales Tax",
"retail": 225,
"net": 150
}
]
}
]
},
"2077-04-02": {
"Unit1": [
{
"startTimes": [
"2077-04-02T20:30:00.000Z",
"2077-04-02T22:30:00.000Z"
],
"original": 2000,
"net": 1000,
"retail": 1500,
"currency": "USD",
"includedTaxes": [
{
"name": "15% Sales Tax",
"retail": 225,
"net": 150
}
]
},
{
"startTimes": [
"2077-04-02T20:30:00.000Z",
"2077-04-02T22:30:00.000Z"
],
"original": 2000,
"net": 1000,
"retail": 1500,
"currency": "GBP",
"includedTaxes": [
{
"name": "15% Sales Tax",
"retail": 225,
"net": 150
}
]
}
]
}
}
}