openapi: 3.0.1
info:
title: Expedia Group EPS Deposit Bookings Rate Plan API
description: 'The EPS Deposit API manages the deposit policy for a property, offering operations to create/update, read and delete it. <br/><br/>To start experimenting, please use your existing EQC credentials and properties. We''ve also made the following test credentials available: EQCtest12933870 / ew67nk33 assigned to test property ID 12933870.'
contact:
name: Expedia Partner Services
url: https://expediaconnectivity.com/developer
email: eqcss@expedia.com
version: '1.0'
servers:
- url: https://services.expediapartnercentral.com/
security:
- Basic: []
tags:
- name: Rate Plan
description: The rate plan resource
paths:
/properties/{propertyId}/roomTypes/{roomTypeId}/ratePlans:
get:
tags:
- Rate Plan
summary: Expedia Group Obtain a list of rate plans
operationId: getRatePlans
parameters:
- name: propertyId
in: path
description: Expedia Property ID
required: true
schema:
type: string
- name: roomTypeId
in: path
description: Room type resource ID
required: true
schema:
type: string
- name: status
in: query
description: Status filter. String. Only supported value is "all".
schema:
type: string
responses:
'200':
description: OK
content:
application/vnd.expedia.eps.product-v2+json:
schema:
$ref: '#/components/schemas/ResponseWrapperDTO«List«RatePlanDTO»»'
security:
- Basic: []
post:
tags:
- Rate Plan
summary: Expedia Group Creates a new rate plan
operationId: createRatePlan
parameters:
- name: propertyId
in: path
description: Expedia Property ID
required: true
schema:
type: string
- name: roomTypeId
in: path
description: Room type resource ID
required: true
schema:
type: string
requestBody:
description: JSON message describing the new rate plan
content:
application/vnd.expedia.eps.product-v2+json:
schema:
$ref: '#/components/schemas/RatePlanDTO'
required: true
responses:
'201':
description: Created
content:
application/vnd.expedia.eps.product-v2+json:
schema:
$ref: '#/components/schemas/ResponseWrapperDTO«RatePlanDTO»'
security:
- Basic: []
x-codegen-request-body-name: ratePlanDTO
/properties/{propertyId}/roomTypes/{roomTypeId}/ratePlans/{ratePlanId}:
get:
tags:
- Rate Plan
summary: Expedia Group Read a single rate plan
operationId: getRatePlan
parameters:
- name: propertyId
in: path
description: Expedia Property ID
required: true
schema:
type: string
- name: roomTypeId
in: path
description: Room type resource ID
required: true
schema:
type: string
- name: ratePlanId
in: path
description: Rate plan resource ID
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/vnd.expedia.eps.product-v2+json:
schema:
$ref: '#/components/schemas/ResponseWrapperDTO«RatePlanDTO»'
security:
- Basic: []
put:
tags:
- Rate Plan
summary: Expedia Group Modify an existing rate plan
operationId: updateRatePlan
parameters:
- name: propertyId
in: path
description: Expedia Property ID
required: true
schema:
type: string
- name: roomTypeId
in: path
description: Room type resource ID
required: true
schema:
type: string
- name: ratePlanId
in: path
description: Rate plan resource ID
required: true
schema:
type: string
requestBody:
description: JSON message of modified rate plan
content:
application/vnd.expedia.eps.product-v2+json:
schema:
$ref: '#/components/schemas/RatePlanDTO'
required: true
responses:
'200':
description: OK
content:
application/vnd.expedia.eps.product-v2+json:
schema:
$ref: '#/components/schemas/ResponseWrapperDTO«RatePlanDTO»'
security:
- Basic: []
x-codegen-request-body-name: ratePlan
delete:
tags:
- Rate Plan
summary: Expedia Group Delete an existing rate plan
operationId: deleteRatePlan
parameters:
- name: propertyId
in: path
description: Expedia Property ID
required: true
schema:
type: string
- name: roomTypeId
in: path
description: Room type resource ID
required: true
schema:
type: string
- name: ratePlanId
in: path
description: Rate plan resource ID
required: true
schema:
type: string
responses:
'204':
description: No Content
content: {}
security:
- Basic: []
patch:
tags:
- Rate Plan
summary: Expedia Group Patch an existing rate plan
operationId: patchRatePlan
parameters:
- name: propertyId
in: path
description: Expedia Property ID
required: true
schema:
type: string
- name: roomTypeId
in: path
description: Room type resource ID
required: true
schema:
type: string
- name: ratePlanId
in: path
description: Rate plan resource ID
required: true
schema:
type: string
requestBody:
description: JSON message of partially updated rate plan
content:
application/vnd.expedia.eps.product-v2+json:
schema:
type: string
required: true
responses:
'200':
description: OK
content:
application/vnd.expedia.eps.product-v2+json:
schema:
$ref: '#/components/schemas/ResponseWrapperDTO«RatePlanDTO»'
security:
- Basic: []
x-codegen-request-body-name: ratePlan
components:
schemas:
RateDerivationRuleDTO:
required:
- adjustmentType
- adjustmentValue
- dateEnd
- dateStart
- exclusionDates
type: object
properties:
adjustmentType:
type: string
description: Defines the type of adjustment made on the rate. Possible values are Percentage and Amount.
enum:
- Percentage
- Amount
adjustmentValue:
type: number
description: Defines the actual adjustment being applied to the rate. Can take a positive or negative value, depending on the type of adjustment applied.
format: double
dateEnd:
type: string
description: Ending date of the rate derivation rule. Format is YYYY-MM-DD.
format: date
dateStart:
type: string
description: Starting date of the rate derivation rule. Format is YYYY-MM-DD.
format: date
exclusionDates:
type: array
description: Periods of time during which the rate derivation rule does not apply.
items:
$ref: '#/components/schemas/PeriodDTO'
PeriodDTO:
required:
- dateEnd
- dateStart
type: object
properties:
dateEnd:
type: string
description: Ending date of the period. Format is YYYY-MM-DD.
format: date
dateStart:
type: string
description: Starting date of the period. Format is YYYY-MM-DD.
format: date
RatePlanDTOLinks:
type: object
properties:
depositPolicy:
$ref: '#/components/schemas/LinkDTO'
derivedRatePlans:
type: array
description: List of URLs that point to the derived Rate Plans. These Rate Plans have their rates and availability derived from this Rate Plan.
items:
$ref: '#/components/schemas/LinkDTO'
parentRatePlan:
$ref: '#/components/schemas/LinkDTO'
self:
$ref: '#/components/schemas/LinkDTO'
AdditionalGuestAmountDTO:
required:
- ageCategory
type: object
properties:
ageCategory:
type: string
description: The age category for the additional guests
enum:
- Adult
- ChildAgeA
- ChildAgeB
- ChildAgeC
- ChildAgeD
- Infant
amount:
type: number
description: Min value 0.000, accepts up to 3 decimal points
format: double
dateEnd:
type: string
description: Date at which this amount will not be effective anymore. If no end date defined, will be returned as 2079-06-06.
format: date
dateStart:
type: string
description: Date at which this amount started being applicable, can be in the past
format: date
percent:
type: number
description: Min value 0.0, Max value 1.0
format: double
ServiceFeesPerStayDTO:
required:
- isTaxable
type: object
properties:
amountPerNight:
type: number
description: Per night service charge. Min value 0.000, accepts up to 3 decimal points
format: double
amountPerStay:
type: number
description: Per stay service charge. Min value 0.000, accepts up to 3 decimal points
format: double
isTaxable:
type: boolean
description: 'If the service fee is taxable. Values: true/false'
example: false
percent:
type: number
description: Percentage of the base rate. Value between 0 and 1, accepts up to 4 decimal points
format: double
DistributionRuleDTO:
required:
- distributionModel
type: object
properties:
compensation:
$ref: '#/components/schemas/CompensationRuleDTO'
distributionModel:
type: string
description: 'Distribution model adopted by the rate plan, matching property configuration. ExpediaCollect: indicates that when customers book this rate plan, they will pay Expedia. HotelCollect: indicates that when customers book this rate plan, they will pay the property. Note: if a product can be sold as both ExpediaCollect and HotelCollect, there will be 2 distribution rules under the rate plan to indicate this'
enum:
- HotelCollect
- ExpediaCollect
expediaId:
type: string
description: String, min 1, max 50 characters. Expedia rate plan ID that will be specified in booking messages and that should be used to manage avail/rates if this set of distribution rules is marked as manageable.
manageable:
type: boolean
description: Cannot be provided in a create request. Default to yes for HotelCollect-only or ExpediaCollect-only rate plans. For ExpediaTravelerPreference rate plans, if rate acquisition type is net, ExpediaCollect will default to true; if rate acquisition type is Sell/LAR, HotelCollect will default to true.
readOnly: true
example: false
partnerCode:
type: string
description: Unique partner identifier for the rate plan. For a given room type, this code has to be unique per distribution model (e.g. for all ExpediaCollect rate plan distribution rules under this room, this code has to be unique). Uniqueness will be validated by Expedia during create or update operations. Accepted characters are a-z, A-Z, 0-9, '.', '_' and '-'
CancelPolicyDTO:
type: object
properties:
defaultPenalties:
type: array
description: Default penalties' definition. Min 1, Max 3 penalties defined
items:
$ref: '#/components/schemas/PenaltyDTO'
exceptions:
type: array
description: List of exceptional cancel penalties defined for the Rate Plan
items:
$ref: '#/components/schemas/CancelPolicyExceptionDTO'
CompensationExceptionRuleDTO:
type: object
properties:
dateEnd:
type: string
description: 'End date of the exception rule. Accepted format: YYYY-MM-DD'
format: date
dateStart:
type: string
description: 'Starting date of the exception rule. Accepted format: YYYY-MM-DD'
format: date
fri:
type: boolean
description: For any exception, all 7 days of week are returned with a true/false indicator.
example: false
minAmount:
type: number
description: Accepts up to 3 decimal points
format: double
mon:
type: boolean
description: For any exception, all 7 days of week are returned with a true/false indicator.
example: false
percent:
type: number
description: Between 0 and 1, accepts up to 3 decimal points
format: double
sat:
type: boolean
description: For any exception, all 7 days of week are returned with a true/false indicator.
example: false
sun:
type: boolean
description: For any exception, all 7 days of week are returned with a true/false indicator.
example: false
thu:
type: boolean
description: For any exception, all 7 days of week are returned with a true/false indicator.
example: false
tue:
type: boolean
description: For any exception, all 7 days of week are returned with a true/false indicator.
example: false
wed:
type: boolean
description: For any exception, all 7 days of week are returned with a true/false indicator.
example: false
RatePlanDTO:
required:
- distributionRules
- name
- occupantsForBaseRate
type: object
properties:
_links:
$ref: '#/components/schemas/RatePlanDTOLinks'
additionalGuestAmounts:
type: array
description: Array of additional guest amounts. Up to 6 can be specified, 1 per category. Only 1 amount can be given per category, for all dates
items:
$ref: '#/components/schemas/AdditionalGuestAmountDTO'
bookDateEnd:
type: string
description: Date at which this rate plan stops being available for searching on any Expedia POS. Format YYYY-MM-DD. If not restricted, will be returned as 2079-06-06. If in 2079, indicates this rate plan book end date is unrestricted
format: date
bookDateStart:
type: string
description: 'Date at which this rate plan starts being available for searching on any Expedia POS. If in the past, indicates rate plan book date start is not restricted. Accepted format: YYYY-MM-DD. If not restricted, will be returned as 1900-01-01'
format: date
cancelPolicy:
$ref: '#/components/schemas/CancelPolicyDTO'
creationDateTime:
type: string
description: Date at which the rate plan has been created. The date is formatted in the ISO 8601 format.
format: date-time
readOnly: true
depositRequired:
type: boolean
description: Indicates if a deposit is required upon booking. This flag is only available for Rate Plan with business models HotelCollect or ExpediaTravelerPreference.
example: false
distributionRules:
type: array
description: Used to provide information about how this rate plan can be sold (ExpediaCollect, HotelCollect or both).
items:
$ref: '#/components/schemas/DistributionRuleDTO'
lastUpdateDateTime:
type: string
description: Date of the last modifications to this rate plan. The date is formatted in the ISO 8601 format.
format: date-time
readOnly: true
maxAdvBookDays:
type: integer
description: The maximum days before a stay date that the rate plan can be sold. Min 1, Max 500
format: int32
maxLOSDefault:
type: integer
description: Default maximum LengthOfStay restriction. Min 1, Max 28. Set to 28 by default if not provided in a create request. Will always be considered along the value defined for each stay date, and the most restrictive of this default and the daily restriction will prevail
format: int32
minAdvBookDays:
type: integer
description: The minimum days before a stay date that the rate plan can be sold. Min 1, Max 500
format: int32
minLOSDefault:
type: integer
description: Default minimum LengthOfStay restriction. Min 1, Max 28. Set to 1 by default if not provided in a create request. Will always be considered along the value defined for each stay date, and the most restrictive of this default and the daily restriction will prevail
format: int32
mobileOnly:
type: boolean
description: Indicates this rate plan is only available through shopping done on mobile devices
example: false
name:
type: string
description: Name of the rate plan, for information/identification purposes. Min 1, Max 40 characters. If not provided, defaults to the manageable rate plan partner code.
occupantsForBaseRate:
type: integer
description: Max occupants allowed for the base rate. Min 1, Max 20. This is only applicable for per day pricing properties, and required in create requests. It indicates how many occupants the per day price applies to
format: int32
pricingModel:
type: string
description: Rate Plan pricing model. Will default to property’s pricing model, and if provided, it has to match the property’s pricing model
enum:
- PerDayPricing
- PerDayPricingByDayOfArrival
- OccupancyBasedPricing
- OccupancyBasedPricingByDayOfArrival
rateAcquisitionType:
type: string
description: Rate acquisition type, inherited from the Property
readOnly: true
enum:
- NetRate
- SellLAR
ratePlanLinkage:
$ref: '#/components/schemas/RatePlanLinkageDTO'
resourceId:
type: integer
description: Expedia ID for this resource. Generated when created. Generated on POST, required on PUT
format: int32
serviceFeesPerPerson:
type: array
description: Array of services fees per person. Up to 12 can be specified, 1 taxable and 1 non taxable for each of the 6 age categories, for all dates
items:
$ref: '#/components/schemas/ServiceFeesPerPersonDTO'
serviceFeesPerStay:
type: array
description: Array of service fees per stay. Up to 2 can be specified, 1 taxable and 1 non taxable.
items:
$ref: '#/components/schemas/ServiceFeesPerStayDTO'
status:
type: string
description: Defaults to active if not provided during creation
enum:
- Active
- Inactive
taxInclusive:
type: boolean
description: Returned to indicate whether the rate being exchanged over other APIs (availability/rates or booking) is inclusive of taxes or not. During creation, for properties managing net rates, the default value is false. For sell rates, it is based on the property's configuration
example: false
travelDateEnd:
type: string
description: Latest date at which customers can checkout for a stay including this rate plan. Format YYYY-MM-DD. If not restricted, will be returned as 2079-06-06. If in 2079, indicates rate plan travel end date is not restricted
format: date
travelDateStart:
type: string
description: Date at which customers can start checking in for a stay including this rate plan. Format YYYY-MM-DD. If not restricted, will be returned at 1900-01-01.If in the past, indicates rate plan travel start date is not restricted
format: date
type:
type: string
description: Rate Plan type. Only Standalone, Package and Corporate Rate Plans can be created and managed through the Product API. Wholesale Rate Plan is only available during Rate Plan GET. Defaults to Standalone if not provided during creation
enum:
- Standalone
- Package
- Corporate
- Wholesale
valueAddInclusions:
type: array
description: Array of value add inclusions. Value add inclusions are special features included with this rate. Breakfast, Internet, or parking inclusions are the most frequently used ones
items:
type: string
ErrorDTO:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
ResponseWrapperDTO«RatePlanDTO»:
type: object
properties:
entity:
$ref: '#/components/schemas/RatePlanDTO'
errors:
type: array
items:
$ref: '#/components/schemas/ErrorDTO'
ServiceFeesPerPersonDTO:
required:
- ageCategory
- dateEnd
- dateStart
- isTaxable
type: object
properties:
ageCategory:
type: string
description: The age category for the service fees
enum:
- Adult
- ChildAgeA
- ChildAgeB
- ChildAgeC
- ChildAgeD
- Infant
amountPerNight:
type: number
description: Per night service charge. Min value 0.000, accepts up to 3 decimal points
format: double
amountPerStay:
type: number
description: Per stay service charge. Min value 0.000, accepts up to 3 decimal points
format: double
dateEnd:
type: string
description: Date at which this amount will be not effective anymore.
format: date
dateStart:
type: string
description: Date at which this fee started being applicable, can be in the past
format: date
isTaxable:
type: boolean
description: 'If the service fee is taxable. Values: true/false'
example: false
RatePlanLinkageDTO:
required:
- deriveAvailabilityStatus
- deriveClosedToArrival
- deriveClosedToDeparture
- deriveLengthOfStayRestriction
- rateDerivationRules
type: object
properties:
deriveAvailabilityStatus:
type: boolean
description: Indicates if the rate plan availability status (open/close) is linked to parent or not.
example: false
deriveClosedToArrival:
type: boolean
description: Indicates if the restriction on close to arrival is derived from the parent Rate Plan or not.
example: false
deriveClosedToDeparture:
type: boolean
description: Indicates if the restriction on close to departure is derived from the parent Rate Plan or not.
example: false
deriveLengthOfStayRestriction:
type: boolean
description: Indicates if the restriction on minimum and maximum length of stay are derived from the parent Rate Plan or not.
example: false
rateDerivationRules:
type: array
description: Rules that describe how the rate and availability are derived from the parent Rate Plan.
items:
$ref: '#/components/schemas/RateDerivationRuleDTO'
PenaltyDTO:
type: object
properties:
amount:
type: number
description: Min value 0.000 (3 decimal points). The amount provided here should be based on the property rate acquisition type. If the property rate acquisition type is Net, the rate provided here should be net of Expedia compensation. If it is SellLAR, the rate should be what the customer will be charged (inclusive of Expedia compensation). Used to define a flat amount that would be charged as a cancel or change penalty. This would normally replace a per-stay fee, but it can also be added on top of a per-stay fee if that is what the partner requires
format: double
deadline:
type: integer
description: Number of hours prior to the arrival of the guest. When set to 0, it means up until end of the day of arrival. Min 0, Max 32767
format: int32
perStayFee:
type: string
description: Fee that will be charged if the customer cancels within the specified deadline.
enum:
- None
- 1stNightRoomAndTax
- 2NightsRoomAndTax
- 10PercentCostOfStay
- 20PercentCostOfStay
- 30PercentCostOfStay
- 40PercentCostOfStay
- 50PercentCostOfStay
- 60PercentCostOfStay
- 70PercentCostOfStay
- 80PercentCostOfStay
- 90PercentCostOfStay
- FullCostOfStay
CancelPolicyExceptionDTO:
required:
- endDate
- startDate
type: object
properties:
endDate:
type: string
description: 'Format: YYYY-MM-DD. Cancel penalty exception''s end date'
format: date
penalties:
type: array
description: Definition of the exception penalties applied
items:
$ref: '#/components/schemas/PenaltyDTO'
startDate:
type: string
description: 'Format: YYYY-MM-DD. Cancel penalty exception''s starting date'
format: date
ResponseWrapperDTO«List«RatePlanDTO»»:
type: object
properties:
entity:
type: array
items:
$ref: '#/components/schemas/RatePlanDTO'
errors:
type: array
items:
$ref: '#/components/schemas/ErrorDTO'
CompensationRuleDTO:
required:
- minAmount
- percent
type: object
properties:
exceptions:
type: array
description: Depending on the contractual agreement between Expedia and the partner, compensation can vary based on different criteria. This array of exceptions will reflect this
items:
$ref: '#/components/schemas/CompensationExceptionRuleDTO'
minAmount:
type: number
description: Minimum amount. Accepts up to 3 decimal points. Only applicable to ExpediaCollect distribution rules
format: double
percent:
type: number
description: Compensation percentage applied by default. Expressed as a value. Between 0 and 1, accepts up to 4 decimal points
format: double
LinkDTO:
type: object
properties:
href:
type: string
description: The link's URL.
securitySchemes:
Basic:
type: http
scheme: basic