Price Schedule **
The Price Schedule capability adds an endpoint to the OBS Capabilities API that allows operators to set prices for available Units on a daily basis and for different times in that day.
Many of Redeam's Resellers are actively moving to Price Schedule supported functionality. Additional pricing features and functionality will be added to this capability vs the standard Pricing capability. We highly recommend the use of Price Schedule to future proof your implementation with Redeam.
We do not recommend using both Price Schedule and Pricing per Product. Pricing is intended for static pricing that is constant regardless of date/time. Price Schedule is intended for pricing that may vary by date. If you have ANY variation in pricing by date please use Price Schedule and set a price for every date that you have availability. This will ensure that the Resellers get the price you intended for that date.
This capability does not modify the Product object in the base OBS specification, so no X-Capabilities
header is required for Price Schedule. Reference can be found here
Products which utilize the price schedule MUST be booked using price-schedule prices, if a price-schedule price is available on the selected travel date.
Products with valid availability for a date with no price-schedule prices are bookable. This means the system will not deny the booking. If a price-schedule-enabled product is successfully booked on a date with no price-schedule prices, the price specified in the redeam/pricing capability will be used - or a default value of $0 will be assigned. Please make sure product price-schedules are in alignment with product availability!
GET
/suppliers/:supplierId/products/:productId/pricing/schedule
Requests to the Price Schedule API endpoint contain two required path parameters and two optional query parameters:
Parameter Name | Description | In | Format | Example | Required |
---|---|---|---|---|---|
supplierId | Id of the Supplier, unique within the OBS | path | string | Widget World | Yes |
productId | Id of the Product, unique within the Supplier | path | string | Widget World Tour | Yes |
startDate | Start of the date range to return, inclusive | query | RFC3339 | 2021-04-15 | No |
endDate | End of the date range to return, inclusive | query | RFC3339 | 2021-05-15 | No |
These parameters accept dates only, and not times. For example, 2021-04-15
is valid, but 2021-04-15T00:00:00Z
is not.
All dates MUST be local to the Product.
If the startDate
is not provided, it defaults to the current date (localized to the Product).
If the endDate
is not provided, it defaults to the startDate
+ 30 days.
The response contains a single Price Schedule object, which contains three nested dictionaries or maps.
- The top-level map uses
OptionID
s as keys. - Each
OptionID
key contains a map using one or moreDate
s as the key. - Each
Date
key contains a map using one or moreUnitID
s as the key. - Finally, each
UnitID
points to an array. Each array contains, for thatUnit
andDate
:- An optional array of
startTimes
containing the times of the day. IfstartTimes
is empty, this price is valid for the entire date. - All valid prices (
original
,net
,retail
) and theircurrency
- An optional array of
includedTaxes
if any taxes or additional fees are included in the prices
- An optional array of
Examples
{
"Widget Tour w/ Audio": {
"2021-04-01": {
"Adult": [
{
"startTimes": [
"2021-04-01T12:30:00-06:00",
"2021-04-01T14:30:00-06:00"
],
"original": 3195,
"retail": 2995,
"net": 2545,
"currency": "USD"
},
{
"startTimes": [
"2021-04-01T16:30:00-06:00"
],
"original": 2525,
"retail": 2151,
"net": 2043,
"currency": "GBP",
"includedTaxes": {
"Name": "VAT",
"Retail": 230,
"Net": 215
}
}
],
"Child": [
{
"original": 1525,
"retail": 1151,
"net": 1043,
"currency": "GBP",
"includedTaxes": {
"Name": "VAT",
"Retail": 190,
"Net": 175
}
}
]
}
}
}