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 NameDescriptionInFormatExample
supplierIdID of the Supplier, unique within the OBSpathstringWidget World
productIdID of the Product, unique within the SupplierpathstringWidget World Tour
start_dateStart of the date range to return, inclusivequeryRFC3339 Date2021-04-15
end_dateEnd of the date range to return, inclusivequeryRFC3339 Date2021-05-15

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 start_date is not provided, the value MUST default to the current date (localized to the Product).

If the end_date is not provided, the value MUST default to the value of the start_date parameter, plus 30 days.

The response contains a single Price Schedule object, which contains three nested dictionaries or maps.

  • The top-level map uses OptionIDs as keys.
  • Each OptionID key contains a map using one or more Dates as the key.
  • Each Date key contains a map using one or more UnitIDs as the key.
  • Finally, each UnitID points to an array. Each array contains, for that Unit and Date:
    • An optional array of startTimes containing the times of the day. If startTimes is empty, this price is valid for the entire date.
    • All valid prices (original, net, retail) and their currency
    • An optional array of includedTaxes if any taxes or additional fees are included in the prices

Included Taxes

The includedTaxes array lists any taxes or fees that are already included in the retail or net price.

Note: Either original, net or retail must be included, all of them may be provided if applicable.

Each includedTaxes object must contain the following fields:

Field NameFormatRequiredDescription
idstringNoA unique identifier for the tax or fee. Typically used for internal reference or integration purposes.
namestringYesA short name or description of the tax being applied (e.g., "VAT", "City Tax").
currencystringYesThe currency code (ISO 4217 format) in which the tax amount is expressed (e.g., "USD", "EUR"). The currency must match the currency used for the unit item's price (original, net or retails).
originalint64Optional - conditionally required

The amount of tax or fee applied to the original price.

At least one of original, net or retail price fields must be present.

netint64Optional - conditionally required

The amount of tax or fee applied to the net price.

At least one of original, net or retail price fields must be present.

retailint64Optional - conditionally required

The amount of tax or fee applied to the retail price.

At least one of original, net or retail price fields must be present.

Examples

Example Price Schedule
Copy
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard