Product API
ReferenceProduct API

Rate plan resources

The Product API enables you to read, create, and edit rate plans. The API response is transmitted through a synchronous connection to update the property’s system with the status of the Product API request. If a connectivity problem or another issue occurs, an error code will be returned that indicates what issue occurred.

Product API is RESTful and all requests and responses must be sent over a secure connection. All request and response bodies, including errors are encoded in JSON.

To facilitate integrating with Product API, Expedia Group offers a Swagger JSON file file documenting Product API’s model and operations.

Obtain a list of rate plans

  • Method: GET
  • URL: https://services.expediapartnercentral.com/properties/{propertyId}/roomTypes/{roomTypeId}/ratePlans
  • Consumes: HTTP Request (GET)
  • Produces: application/vnd.expedia.eps.product-v2+json

Request parameters

ParameterParameter TypeDescriptionRequiredData TypeDefault Value

Authorization

header

Authorization token in HTTP header. Format: Authorization: Basic [username:password encoded by Base64]

Yes

Base64 encoded auth token

propertyId

path

Expedia Property ID

Yes

string

roomTypeId

path

Room type resource ID

Yes

string

status

query

Status filter. String. Only supported value is "all".

false

string

active

Success responses

Status CodeDescriptionResponse Model

200

OK

RatePlan

Create a new rate plan

In a rate plan create request, most fields are optional. If an optional field is not provided, it will be defaulted per specific rules. See the example below for more details.

There are some fields that you cannot set; these will default to values defined by Expedia Group. If fields that are documented as being not accepted in requests, like Compensation, are provided in the request, Product API validates that the data provided matches what Expedia Group defaults to. Otherwise, the API rejects the rate plan creation with an error message indicating why it was rejected.

For example, you do not need to specify the Compensation in the product create request. If you include the compensation elements in a request, the API checks if it matches the property contract, and rejects the message if it does not.

The create response will contain all the fields originally provided in the request. The response will also include the default values of the fields that were not provided in the request. If an error occurred, the response will contain one or more errors.

Note: Some optional fields may not have any values defined in the Expedia Group system. In this case the fields are omitted completely in the response.
  • Method: POST
  • URL: https://services.expediapartnercentral.com/properties/{propertyId}/roomTypes/{roomTypeId}/ratePlans
  • Consumes: application/vnd.expedia.eps.product-v2+json
  • Produces: application/vnd.expedia.eps.product-v2+json

Request parameters

ParameterParameter TypeDescriptionRequiredData TypeDefault Value

Authorization

header

Authorization token in HTTP header. Format: Authorization: Basic [username:password encoded by Base64]

Yes

Base64 encoded auth token

propertyId

path

Expedia Property ID

Yes

string

roomTypeId

path

Room type resource ID

Yes

string

body

body

JSON message describing the new rate plan

Yes

RatePlan

Example syntax

1{
2 "name": "My Rate Plan Name",
3 "rateAcquisitionType": "NetRate",
4 "distributionRules": [
5 {
6 "partnerCode": "ECCode",
7 "distributionModel": "ExpediaCollect"
8 },
9 {
10 "partnerCode": "HCCode",
11 "distributionModel": "HotelCollect"
12 }
13 ],
14 "status": "Active",
15 "type": "Standalone",
16 "pricingModel": "PerDayPricing",
17 "occupantsForBaseRate": 2,
18 "taxInclusive": false,
19 "cancelPolicy": {
20 "defaultPenalties": [
21 {
22 "deadline": 0,
23 "perStayFee": "1stNightRoomAndTax",
24 "amount": 0
25 },
26 {
27 "deadline": 24,
28 "perStayFee": "None",
29 "amount": 0
30 }
31 ],
32 "exceptions": [
33 {
34 "endDate": "2019-04-01",
35 "startDate": "2019-03-01",
36 "penalties": [
37 {
38 "amount": 1.0,
39 "deadline": 0,
40 "perStayFee": "1stNightRoomAndTax"
41 },
42 {
43 "amount": 1.0,
44 "deadline": 24,
45 "perStayFee": "FullCostOfStay"
46 }
47 ]
48 }
49 ]
50 },
51 "additionalGuestAmounts": [
52 {
53 "ageCategory": "Adult",
54 "amount": 8.73
55 },
56 {
57 "ageCategory": "ChildAgeA",
58 "amount": 5
59 }
60 ],
61 "serviceFeesPerStay": [
62 {
63 "isTaxable": false,
64 "percent": 0.2
65 },
66 {
67 "isTaxable": true,
68 "amountPerNight": 5.0,
69 "amountPerStay": 20.0
70 }
71 ],
72 "serviceFeesPerPerson": [
73 {
74 "dateStart": "2018-09-20",
75 "dateEnd": "2079-06-06",
76 "ageCategory": "Adult",
77 "isTaxable": true,
78 "amountPerStay": 20
79 },
80 {
81 "dateStart": "2018-07-27",
82 "dateEnd": "2018-09-19",
83 "ageCategory": "Adult",
84 "isTaxable": true,
85 "amountPerNight": 12
86 }
87 ],
88 "valueAddInclusions": ["Free Parking", "Free Breakfast", "Free Internet"],
89 "minLOSDefault": 1,
90 "maxLOSDefault": 28,
91 "minAdvBookDays": 0,
92 "maxAdvBookDays": 500,
93 "bookDateStart": "1900-01-01",
94 "bookDateEnd": "2079-06-06",
95 "travelDateStart": "1901-01-01",
96 "travelDateEnd": "2079-06-06",
97 "mobileOnly": false
98}

Alternatively, you can send a minimal payload to add a new rate plan on an existing room type, and Expedia Group will default everything. Doing a POST on https://services.expediapartnercentral.com/properties/12933873/roomTypes/201357991/ratePlans with this payload to create an Expedia Traveler Preference-enabled rate plan. See the Creating Expedia Traveler Preference Rate Plans section for additional details.

Success responses

Status CodeDescriptionResponse Model

201

Created

RatePlan

Read a single rate plan

  • Method: GET
  • URL: https://services.expediapartnercentral.com/properties/{propertyId}/roomTypes/{roomTypeId}/ratePlans/{ratePlanId}
  • Consumes: HTTP Request (GET)
  • Produces: application/vnd.expedia.eps.product-v2+json

Request parameters

ParameterParameter TypeDescriptionRequiredData Type

Authorization

header

Authorization token in HTTP header. Format: Authorization: Basic [username:password encoded by Base64]

Yes

Base64 encoded auth token

propertyId

path

Expedia Property ID

Yes

string

roomTypeId

path

Room type resource ID

Yes

string

ratePlanId

path

Rate plan resource ID

Yes

string

Success responses

Status CodeDescriptionResponse Model

200

OK

RatePlan

Modify an existing rate plan

Expedia offers two ways to modify a rate plan.

  • Using the PUT verb, you can perform a full overlay change of the rate plan resource. It means that all elements of a rate plan need to be provided, and any optional element not provided will be erased/removed.

  • Using the PATCH verb, you can perform a partial update of a rate plan. Expedia Group implemented the Merge-Patch RFC.

Full overlay (PUT)

  • Method: PUT
  • URL: https://services.expediapartnercentral.com/properties/{propertyId}/roomTypes/{roomTypeId}/ratePlans/{ratePlanId}
  • Consumes: application/vnd.expedia.eps.product-v2+json
  • Produces: application/vnd.expedia.eps.product-v2+json
Request parameters
ParameterParameter TypeDescriptionRequiredData Type

Authorization

header

Authorization token in HTTP header. Format: Authorization: Basic [username:password encoded by Base64]

Yes

Base64 encoded auth token

propertyId

path

Expedia Property ID

Yes

string

roomTypeId

path

Room type resource ID

Yes

string

ratePlanId

path

Rate plan resource ID

Yes

string

body

body

JSON message of modified rate plan

Yes

RatePlan resource definition

Example syntax
1{
2 "resourceId": 205020307,
3 "name": "My Rate Plan Name",
4 "rateAcquisitionType": "NetRate",
5 "distributionRules": [
6 {
7 "expediaId": "205020307",
8 "partnerCode": "ECCode",
9 "distributionModel": "ExpediaCollect",
10 "manageable": true,
11 "compensation": {
12 "percent": 0.15,
13 "minAmount": 0
14 }
15 },
16 {
17 "expediaId": "205020307A",
18 "partnerCode": "HCCode",
19 "distributionModel": "HotelCollect",
20 "manageable": false,
21 "compensation": {
22 "percent": 0.15
23 }
24 }
25 ],
26 "status": "Active",
27 "type": "Standalone",
28 "pricingModel": "PerDayPricing",
29 "occupantsForBaseRate": 2,
30 "taxInclusive": false,
31 "depositRequired": false,
32 "creationDateTime": "2016-10-20T21:05:12Z",
33 "lastUpdateDateTime": "2016-10-21T18:37:27Z",
34 "cancelPolicy": {
35 "defaultPenalties": [
36 {
37 "deadline": 0,
38 "perStayFee": "1stNightRoomAndTax",
39 "amount": 0
40 },
41 {
42 "deadline": 24,
43 "perStayFee": "None",
44 "amount": 0
45 }
46 ],
47 "exceptions": [
48 {
49 "endDate": "2019-04-01",
50 "startDate": "2019-03-01",
51 "penalties": [
52 {
53 "amount": 1.0,
54 "deadline": 0,
55 "perStayFee": "1stNightRoomAndTax"
56 },
57 {
58 "amount": 1.0,
59 "deadline": 24,
60 "perStayFee": "FullCostOfStay"
61 }
62 ]
63 }
64 ]
65 },
66 "additionalGuestAmounts": [
67 {
68 "dateStart": "2015-11-27",
69 "dateEnd": "2079-06-06",
70 "ageCategory": "Adult",
71 "amount": 8.73
72 },
73 {
74 "dateStart": "2015-11-27",
75 "dateEnd": "2079-06-06",
76 "ageCategory": "ChildAgeA",
77 "amount": 5
78 }
79 ],
80 "serviceFeesPerStay": [
81 {
82 "isTaxable": false,
83 "percent": 0.2
84 },
85 {
86 "isTaxable": true,
87 "amountPerNight": 5.0,
88 "amountPerStay": 20.0
89 }
90 ],
91 "serviceFeesPerPerson": [
92 {
93 "dateStart": "2018-09-20",
94 "dateEnd": "2079-06-06",
95 "ageCategory": "Adult",
96 "isTaxable": true,
97 "amountPerStay": 20
98 },
99 {
100 "dateStart": "2018-07-27",
101 "dateEnd": "2018-09-19",
102 "ageCategory": "Adult",
103 "isTaxable": true,
104 "amountPerNight": 12
105 }
106 ],
107 "valueAddInclusions": ["Free Parking", "Free Breakfast", "Free Internet"],
108 "minLOSDefault": 1,
110 "maxLOSDefault": 28,
112 "minAdvBookDays": 0,
114 "maxAdvBookDays": 500,
116 "bookDateStart": "1900-01-01",
118 "bookDateEnd": "2079-06-06",
120 "travelDateStart": "1901-01-01",
122 "travelDateEnd": "2079-06-06",
124 "mobileOnly": false,
126 "_links": {
127 "self": {
128 "href": "https://services.expediapartnercentral.com/properties/12933870/roomTypes/201706782/ratePlans/205020307"
129 }
130 }
131}
Success responses
Status CodeDescriptionResponse Model

200

OK

RatePlan

Partial update (PATCH)

Expedia Group chose the merge-patch method for partial update, as described in IETF RFC. This method allows you to update a rate plan by providing only the fields/values that need to be changed. This saves you from having to first read the rate plan before updating it. If you provide the complete rate plan data, this method essentially behaves just like the update method.

The response will always be the complete image of the rate plan after changes have been applied.

Important: The PATCH logic only applies to first (top) level elements/objects of the rate plan. You can decide to include any number of these top level elements/objects, and any elements/objects not included will be ignored/untouched. If you include any array or complex object (such as cancel policy, additional guest amounts or distribution rules), these objects must be fully specified with all the desired elements/attributes/object changes, as they are treated as full overlay. First-level elements/objects not provided in the input will remain unchanged. Some top-level elements can be removed, but to do so, you have to explicitly specify it in the JSON message as null. For array types, you need to provide a "null" or empty array value. Finally, all validation rules are applied on the complete updated rate plan data. For instance, only providing a travelDateStart that is after the current travelDateEnd will yield the appropriate error response.
  • Method: PATCH
  • URL: https://services.expediapartnercentral.com/properties/{propertyId}/roomTypes/{roomTypeId}/ratePlans/{ratePlanId}
  • Consumes: application/vnd.expedia.eps.product-v2+json
  • Produces: application/vnd.expedia.eps.product-v2+json
Request parameters
ParameterParameter TypeDescriptionRequiredData Type

Authorization

header

Authorization token in HTTP header. Format: Authorization: Basic [username:password encoded by Base64]

Yes

Base64 encoded auth token

propertyId

path

Expedia Property ID

Yes

string

roomTypeId

path

Room type resource ID

Yes

string

ratePlanId

path

Rate plan resource ID

Yes

string

body

body

JSON message of partially updated rate plan

Yes

RatePlan

Examples

This updates the name and the status:

1{
2 "name": "My New Rate Plan Name",
3 "status": "Inactive"
4}

This updates only the cancel policy:

1 "cancelPolicy": {
2 "defaultPenalties": [
3 {
4 "deadline": 0,
5 "perStayFee": "1stNightRoomAndTax",
6 "amount": 0
7 },
8 {
9 "deadline": 24,
10 "perStayFee": "None",
11 "amount": 0
12 }
13 ],
14 "exceptions": [
15 {
16 "endDate": "2019-04-01",
17 "startDate": "2019-03-01",
18 "penalties": [
19 {
20 "amount": 1.0,
21 "deadline": 0,
22 "perStayFee": "1stNightRoomAndTax"
23 },
24 {
25 "amount": 1.0,
26 "deadline": 24,
27 "perStayFee": "FullCostOfStay"
28 }
29 ]
30 }
31 ]
32 }
33}
Success responses
Status CodeDescriptionResponse Model

200

OK

RatePlan resource definition

Delete an existing rate plan

  • Method: DELETE
  • URL: https://services.expediapartnercentral.com/properties/{propertyId}/roomTypes/{roomTypeId}/ratePlans/{ratePlanId}
  • Consumes: HTTP Request (DELETE)
  • Produces: application/vnd.expedia.eps.product-v2+json

Request parameters

ParameterParameter TypeDescriptionRequiredData Type

Authorization

header

Authorization token in HTTP header. Format: Authorization: Basic [username:password encoded by Base64]

Yes

Base64 encoded auth token

propertyId

path

Expedia Property ID

Yes

string

roomTypeId

path

Room type resource ID

Yes

string

ratePlanId

path

Rate plan resource ID

Yes

string

Success responses

Status CodeDescription

204

No Content

Definitions

RatePlan resource definition

Property NameTypeDescription

resourceId

integer

Uniquely describes the rate plan resource. Cannot be provided in a create request, will be assigned by Expedia Group after successful rate plan creation.

name

string

Name of the rate plan, for information/identification purposes. Minimum 1, maximum 40 characters. If not provided, defaults to the manageable rate plan partner code.

rateAcquisitionType

enum

Rate acquisition type, inherited from the Property. Possible values:

  • NetRate (rate without compensation)
  • SellLAR (rate inclusive of compensation)

distributionRules

Array [DistributionRule]

Used to provide information about how this rate plan can be sold (Expedia Collect, Hotel Collect or both). Also contain the IDs and Codes that need to be mapped to push avail/rates and identify the right rate plans in booking messages.

When a rate plan has a single Distribution Rule with the Distribution Model set as Hotel Collect, the rate plan will only be sold as Hotel Collect and the property is expected to collect the payment at the time customers check in.

When a rate plan has a single Distribution Rule with Distribution Model set to Expedia Collect, it indicates that this rate plan will be sold as Expedia Collect and the property will collect payment from Expedia.

If two distinct Distribution Rules are set, one for Expedia Collect, one for Hotel Collect, it indicates that the rate plan can be sold as either Expedia Collect or Hotel Collect. In this case, only one of them can be used to manage availability and rates but both can be used in booking messages, to indicate which option (Expedia Collect or Hotel Collect) the customer selected. Any other combination of Distribution Rules cannot exist.

For properties that participate in the Expedia Traveler Preference (ETP) program, it is required for all their standalone rate plans to support both Expedia Collect and Hotel Collect.

status

enum

Defaults to Active if not provided during creation. Possible values:

  • Active
  • Inactive

type

enum

Rate Plan type. Defaults to Standalone if not provided during creation. Possible values:

  • Standalone
  • Package
  • Corporate
  • Wholesale (supported only in GET)
  • WholesalePackage (supported only in GET)

pricingModel

enum

Rate plan pricing model. Will default to the property's pricing model, and if provided, it has to match the property's pricing model (except in the case of Length of Stay-based pricing models which are only at the Rate plan level - PerDayPricingByLengthOfStay, OccupancyBasedPricingByDayOfArrival) . Possible values are:

  • PerDayPricing
  • PerDayPricingByDayOfArrival
  • PerDayPricingByLengthOfStay
  • OccupancyBasedPricing
  • OccupancyBasedPricingByDayOfArrival
  • OccupancyBasedPricingByLengthOfStay

occupantsForBaseRate

integer

Maximum occupants allowed for the base rate. Minimum 1, Maximum 20. This is only applicable for per-day pricing properties, and is required in create requests. It indicates how many occupants the per-day price applies to.

taxInclusive

Boolean

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.

depositRequired

Boolean

Indicates if a deposit is required upon booking. This flag is only available for rate plans with the Hotel Collect or Expedia Traveler Preference business models.

creationDateTime

date

Date at which the rate plan has been created. The date is formatted in the ISO 8601 format. Set by Expedia Group at the time of create, cannot be provided in create request. Cannot be changed.

Example: 2016-10-20T21:05:12Z.

lastUpdateDateTime

date

Date of the last modifications to this rate plan. The date is formatted in the ISO 8601 format. Read-only. Set by Expedia Group at the time of Create or Update. Cannot be provided in create or changed by you in update messages.

Example: 2016-10-21T18:37:27Z.

cancelPolicy

CancelPolicy

Default cancel policy. If not provided in a create request, Product API will select a refundable cancellation policy that is currently used by the most recently created standalone rate plan under the same property. If Expedia Group cannot identify a recently created rate plan, the policy will be defaulted to a standard cancellation policy, where the cancellation deadline is set to 24 hours from guest arrival, the penalty for cancelling inside this deadline is one night room and tax, and there is no penalty for cancelling outside of this deadline.

additionalGuestAmounts

Array [AdditionalGuestAmount]

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.

serviceFeesPerStay

Array [serviceFeesPerStay]

Array of Per Stay Service Fees that are collected at the time of Booking.

serviceFeesPerPerson

Array [serviceFeesPerPerson]

Array of Per Person Service Fees that are collected at the time of Booking.

valueAddInclusions

Array [valueAddInclusionsEnum]

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

minLOSDefault

integer

Default minimum LengthOfStay restriction. Minimum 1, maximum 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

maxLOSDefault

integer

Default maximum LengthOfStay restriction. Minimum 1, maximum 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

minAdvBookDays

integer

The minimum days before a stay date that the rate plan can be sold. Minimum 0, maximum 500

maxAdvBookDays

integer

The maximum days before a stay date that the rate plan can be sold. Minimum 0, maximum 500

bookDateStart

date

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

bookDateEnd

date

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

travelDateStart

date

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

travelDateEnd

date

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

mobileOnly

Boolean

Indicates this rate plan is only available through shopping done on mobile devices

ratePlanLinkage

RatePlanLinkage

Describes how the Rate Plan rates and availability are going to be derived from its parent Rate Plan. Optional, only returned on rate plans being derived from a parent rate plan via a rate linkage rule. Cannot be provided in create requests. Cannot be changed via partial (PATCH) or full overlay (PUT) updates.

_links

RatePlanLinks

Collection of URLs that point to various resources related to the current resource. Cannot be provided in create requests. Cannot be changed via partial (PATCH) or full overlay (PUT) updates.

additionalGuestAmount resource definition

Property NameTypeDescription

dateStart

date

Date at which this amount started being applicable, can be in the past

dateEnd

date

Date until which this amount will be applied. If no end date is defined, will be returned as 2079-06-06.

ageCategory

enum

The age category for the additional guests. Possible values:

  • Adult
  • ChildAgeA
  • ChildAgeB
  • ChildAgeC
  • ChildAgeD
  • Infant

amount

number

Minimum value 0.000, accepts up to 3 decimal points

percent

number

Percentage value (of the base rate). Values should be between 0 and 1, will return up to 4 decimal points

serviceFeesPerStay resource definition

Property NameTypeDescription

isTaxable

Boolean

Indicates if the Service Fees loaded is to be taxed or not.

amountPerNight

Number

Defines the amount charged per night. Maximum possible value is 12000000

amountPerStay

Number

Defines the amount charged for the entire stay period. Maximum possible value is 12000000

percent

number

Percentage value (of the base rate). Values should be between 0 and 1, will return up to 4 decimal points

serviceFeesPerPerson resource definition

Property NameTypeDescription

dateStart

date

Date at which this amount started being applicable, can be in the past

dateEnd

date

Date until which this amount will be applied. If no end date defined, will be returned as 2079-06-06.

ageCategory

enum

The age category for the additional guests. Possible values:

  • Adult
  • ChildAgeA
  • ChildAgeB
  • ChildAgeC
  • ChildAgeD
  • Infant

isTaxable

Boolean

Indicates if the Service Fees loaded is to be taxed or not.

amountPerNight

Number

Defines the amount charged per night. Maximum possible value is 12000000

amountPerStay

Number

Defines the amount charged for the entire stay period. Maximum possible value is 12000000

cancelPolicy resource definition

Property NameTypeDescription

defaultPenalties

Array [Penalty]

Array of penalties. There can be up to three penalties provided. A penalty with a deadline of 0 is always required. A second and third deadline can optionally be provided.

exceptions

Array [CancelPolicyException]

Array of exceptions. Exceptions can be provided for specific date ranges. An exception will contain a startDate, endDate, and an array of penalties that follow the same structure and rules as the penalties provided as default. Maximum 500 exceptions.

CancelPolicyException resource definition

Property NameTypeRequiredDescription

startDate

date

Yes

Start date of an exception. Has to be in format: YYYY-MM-DD

endDate

date

Yes

End date of an exception. Cannot be in the past. Has to be in format: YYYY-MM-DD.

penalties

Array [Penalty]

Yes

Array of penalties applicable to the start and end dates provided. There can be up to three penalties provided. A penalty with a deadline of 0 is always required. A second and third deadline can optionally be provided.

Penalty resource definition

Property NameTypeDescription

deadline

integer

Penalty window defined in hours. Hours are relative to check-in date and the property's cancellation time (property level configuration that is available in read-only mode under the property resource). Minimum 0, maximum 32767 hours.

perStayFee

perStayFeeEnum

Fee that will be charged if the customer cancels within the specified deadline.

amount

number

Minimum 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 Group compensation). Used to define a flat amount that would be charged as a cancel or change penalty. This replaces a per-stay fee. A cancel penalty can either be a per-stay fee or a flat amount, but it cannot be both.

DistributionRule resource definition

Property NameTypeDescription

expediaId

string

String, minimum 1, maximum 50 characters. Expedia Group 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.

partnerCode

string

Unique partner identifier for the rate plan. Minimum 1, maximum 10 characters. For a given room type, this code has to be unique per distribution model (e.g. for all Expedia Collect rate plan distribution rules under this room, this code has to be unique). Uniqueness will be validated by Expedia Group during create or update operations. Accepted characters are a-z, A-Z, 0-9, '.', '_' and '-'.

distributionModel

string

Distribution model adopted by the rate plan, matching property configuration.

manageable

Boolean

Cannot be provided in a create request. Default to yes for Hotel Collect-only or Expedia Collect-only rate plans. For Expedia Traveler Preference rate plans, if rate acquisition type is net, Expedia Collect will default to true; if rate acquisition type is Sell/LAR, Hotel Collect will default to true.

compensation

CompensationRule

Applicable compensation rules for this distribution model. Defaults to the value defined on your contract. Cannot be provided in a create request, and cannot be modified in update operation.

CompensationRule resource definition

Property NameTypeDescription

percent

number

Compensation percentage applied by default. Expressed as a value. Between 0 and 1, will return up to 4 decimal points

minAmount

number

Minimum amount. Accepts up to 3 decimal points. Only applicable to Expedia Collect distribution rules

exceptions

Array [CompensationExceptionRule]

Depending on the contractual agreement between Expedia Group and the partner, compensation can vary based on different criteria. This array of exceptions will reflect this.

CompensationExceptionRule resource definition

Property NameTypeDescription

dateStart

date

Starting date of the exception rule. Accepted format: YYYY-MM-DD

dateEnd

date

End date of the exception rule. Accepted format: YYYY-MM-DD

minAmount

number

Accepts up to 3 decimal points

percent

number

Between 0 and 1, accepts up to 3 decimal points

mon

Boolean

For any exception, all 7 days of the week are returned with a true/false indicator.

tue

Boolean

For any exception, all 7 days of the week are returned with a true/false indicator.

wed

Boolean

For any exception, all 7 days of the week are returned with a true/false indicator.

thu

Boolean

For any exception, all 7 days of the week are returned with a true/false indicator.

fri

Boolean

For any exception, all 7 days of the week are returned with a true/false indicator.

sat

Boolean

For any exception, all 7 days of the week are returned with a true/false indicator.

sun

Boolean

For any exception, all 7 days of the week are returned with a true/false indicator.

RatePlanLinkage resource definition

Property NameTypeDescription

deriveAvailabilityStatus

Boolean

Indicates if the rate plan daily availability status (open/close) is linked to parent or not.

deriveLengthOfStayRestriction

Boolean

Indicates if the daily restrictions on minimum and maximum length of stay are derived from the parent Rate Plan or not.

deriveClosedToArrival

Boolean

Indicates if the daily restriction on close to arrival is derived from the parent Rate Plan or not.

deriveClosedToDeparture

Boolean

Indicates if the daily restriction on close to departure is derived from the parent Rate Plan or not.

rateDerivationRules

Array [RateDerivationRule]

Rules that describe how the daily rates are derived from the parent Rate Plan.

RateDerivationRule resource definition

Property NameTypeDescription

dateStart

date

Starting date of the rate derivation rule. Format is YYYY-MM-DD.

dateEnd

date

Ending date of the rate derivation rule. Format is YYYY-MM-DD.

adjustmentType

adjustmentTypeEnum

Defines the type of adjustment made on the rate. Possible values are Percentage and Amount.

adjustmentValue

number

Defines the actual adjustment being applied to the rate. Can take a positive or negative value, depending on the type of adjustment applied. Percentage values are expressed as decimal numbers between 0.00 and 100.00, where 10.0 means 10%.

exclusionDates

Array [Period]

Periods of time during which the rate plan derivation rule does not apply. When exclusion dates are specified, they apply to rate and restriction linkage. In other words, for these exclusion dates, nothing at all is linked.

Period resource definition

Property NameTypeDescription

dateStart

date

Starting date of the period. Format is YYYY-MM-DD.

dateEnd

date

Ending date of the period. Format is YYYY-MM-DD.

Property NameTypeDescription

self

Link

URL of the current resource. Cannot be provided in create requests. Cannot be changed via partial (PATCH) or full overlay (PUT) updates.

parentRatePlan

Link

URL of the parent Rate Plan, from which this Rate Plan derives its rate and availability. Optional, only returned if a rate plan is derived from a parent via a rate plan linkage rule. Cannot be provided in create requests. Cannot be changed via partial (PATCH) or full overlay (PUT) updates.

derivedRatePlans

Array [Link]

List of URLs that point to the derived Rate Plans. These Rate Plans have their rates and availability derived from the parent Rate Plan. Optional, only returned if a rate plan is being derived by children rate plans via rate plan linkage rules. Cannot be provided in create requests. Cannot be changed via partial (PATCH) or full overlay (PUT) updates.

depositPolicy

Link

URL of the property deposit policy. Cannot be provided in create requests. Cannot be changed via partial (PATCH) or full overlay (PUT) updates.

Property NameTypeDescription

href

string

The link's URL.

Response

The Product API response message is returned synchronously and allows Expedia Group to update the property’s system with the status of the Product API request.

All responses provided by the API will either contain an entity attribute, which may represent a single object or an array of objects, or an errors attribute that includes an array of errors. Entity and errors are in the same wrapper because most frameworks will deserialize responses automatically but require a target type to which the response will be deserialized.

Both successful and unsuccessful responses are returned by the same DTO, but can have either entity or errors, never both.

A Java implementation to handle this, using Spring’s RestTemplate, could look like this:

1ResponseEntity <ResponseWrapperDTO <RoomTypeDTO>> response =
2restTemplate.exchange(
3 "url",
4 HttpMethod.POST,
5 entity,
6 new ParameterizedTypeReference<ResponseWrapperDTO <RoomTypeDTO>>() {}
7);

Entity attribute

The entities supported by Product API are rate plans, room types, and properties. The Entity approach allows you to use the same wrapper for all resources exposed by Expedia Group’s Product API and Image API services.

Consider the following code in Java:

1public class ResponseWrapperDTO <T> implements Serializable {
2 private T entity;
3 private List <ErrorDTO> errors;
4}

Entities can be Product/RatePlan/RoomType/Property etc. Simple entity response:

1{
2 "entity": {
3 "resourceId": 123,
4 ...
5 }
6}

There are two different read operations available against Product API’s resources:

  • To get a specific resource, the resource ID needs to be specified on the URL. Example: /products/properties/{propertyId}

  • To get all the active resources in the system, omit the resource ID on the URL. Example: /products/properties/

When requesting a single property, Product API will return the property resource information as part of an Entity object:

1{
2 "entity": {
3 "resourceId": 1,
4 ...
5 }
6}

When requesting all properties assigned to a user account, an array of properties is returned:

1{
2 "entity": [
3 {
4 "resourceId": 1,
5
6 },
7 {
8 "resourceId": 2,
9
10 }
11 ]
12}

Errors attribute

If a response doesn’t contain an Entity, it will contain Errors:

1{
2 "errors": [
3 {
4 "code": 1000,
5 "message": "Access denied: your account is not authorized to manage this property."
6 }
7 ]
8}
Property NameTypeDescription

code

integer

Full list of error codes .

message

string

Examples

The rate plan resource defines the configuration of a rate that you want to make available to Expedia Group customers. It contains the more static information about the rate, for example its name, code, cancellation and change policy, base compensation, fees for additional guests, etc. More dynamic information like availability and rate information per stay date is exchanged with the Availability and Rates API.

All active rate plans read

This example shows how to retrieve all active rate plans under a given room type.

Request:

1GET https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans
4Request-ID : 307af24f-f59a-11e4-822e-005056b1298f

Response:

1{
2 "entity": [
3 {
4 "resourceId": 205020299,
5 "name": "RoomOnly22",
6 "rateAcquisitionType": "SellLAR",
7 "distributionRules": [
8 {
9 "expediaId": "205020299A",
10 "partnerCode": "RoomOnly22",
11 "distributionModel": "HotelCollect",
12 "manageable": true,
13 "compensation": {
14 "percent": 0.1
15 }
16 }
17 ],
18 "status": "Active",
19 "type": "Standalone",
20 "pricingModel": "PerDayPricing",
21 "occupantsForBaseRate": 2,
22 "taxInclusive": false,
23 "depositRequired": false,
24 "creationDateTime": "2016-10-20T21:05:12Z",
25 "lastUpdateDateTime": "2016-10-21T18:37:27Z",
26 "cancelPolicy": {
27 "defaultPenalties": [
28 {
29 "deadline": 0,
30 "perStayFee": "1stNightRoomAndTax",
31 "amount": 0
32 },
33 {
34 "deadline": 24,
35 "perStayFee": "None",
36 "amount": 0
37 },
38 {
39 "deadline": 72,
40 "perStayFee": "20PercentCostOfStay",
41 "amount": 0
42 }
43 ]
44 },
45 "additionalGuestAmounts": [
46 {
47 "dateStart": "2015-07-10",
48 "dateEnd": "2079-06-06",
49 "ageCategory": "Adult",
50 "amount": 0
51 }
52 ],
53 "serviceFeesPerStay": [
54 {
55 "isTaxable": false,
56 "amountPerStay": 10
57 },
58 {
59 "isTaxable": true,
60 "amountPerNight": 12
61 }
62 ],
63 "serviceFeesPerPerson": [
64 {
65 "dateStart": "2018-09-20",
66 "dateEnd": "2079-06-06",
67 "ageCategory": "Adult",
68 "isTaxable": true,
69 "amountPerStay": 20
70 },
71 {
72 "dateStart": "2018-07-27",
73 "dateEnd": "2018-09-19",
74 "ageCategory": "Adult",
75 "isTaxable": true,
76 "amountPerNight": 12
77 }
78 ],
79 "minLOSDefault": 1,
80 "maxLOSDefault": 28,
81 "minAdvBookDays": 0,
82 "maxAdvBookDays": 500,
83 "bookDateStart": "1900-01-01",
84 "bookDateEnd": "2079-06-06",
85 "travelDateStart": "1901-01-01",
86 "travelDateEnd": "2079-06-06",
87 "mobileOnly": false,
88 "_links": {
89 "self": {
90 "href": "https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/205020299"
91 }
92 }
93 },
94 {
95 "resourceId": 205020302,
96 "name": "RoomOnly11",
97 "rateAcquisitionType": "SellLAR",
98 "distributionRules": [
99 {
100 "expediaId": "205020302A",
101 "partnerCode": "RoomOnly",
102 "distributionModel": "HotelCollect",
103 "manageable": true,
104 "compensation": {
105 "percent": 0.1
106 }
107 }
108 ],
109 "status": "Active",
110 "type": "Standalone",
111 "pricingModel": "PerDayPricing",
112 "occupantsForBaseRate": 2,
113 "taxInclusive": false,
114 "depositRequired": true,
115 "creationDateTime": "2015-01-17T09:11:11Z",
116 "lastUpdateDateTime": "2016-04-30T20:20:09Z",
117 "cancelPolicy": {
118 "defaultPenalties": [
119 {
120 "deadline": 0,
121 "perStayFee": "1stNightRoomAndTax",
122 "amount": 0
123 },
124 {
125 "deadline": 24,
126 "perStayFee": "None",
127 "amount": 0
128 }
129 ]
130 },
131 "additionalGuestAmounts": [
132 {
133 "dateStart": "2015-07-10",
134 "dateEnd": "2079-06-06",
135 "ageCategory": "Adult",
136 "amount": 0
137 }
138 ],
139 "serviceFeesPerStay": [
140 {
141 "isTaxable": false,
142 "percent": 0.2
143 },
144 {
145 "isTaxable": true,
146 "amountPerNight": 10.0
147 }
148 ],
149 "minLOSDefault": 1,
150 "maxLOSDefault": 28,
151 "minAdvBookDays": 0,
152 "maxAdvBookDays": 500,
153 "bookDateStart": "1900-01-01",
154 "bookDateEnd": "2079-06-06",
155 "travelDateStart": "1901-01-01",
156 "travelDateEnd": "2079-06-06",
157 "mobileOnly": false,
158 "_links": {
159 "self": {
160 "href": "https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/205020302"
161 },
162 "depositPolicy": {
163 "href": "https://services.expediapartnercentral.com/products/properties/1780044/depositPolicy"
164 }
165 }
166 },
167 {
168 "resourceId": 205833985,
169 "name": "BB",
170 "rateAcquisitionType": "SellLAR",
171 "distributionRules": [
172 {
173 "expediaId": "205833985",
174 "partnerCode": "RoomOnly",
175 "distributionModel": "ExpediaCollect",
176 "manageable": false,
177 "compensation": {
178 "percent": 0.23,
179 "minAmount": 0
180 }
181 },
182 {
183 "expediaId": "205833985A",
184 "partnerCode": "RoomOnly",
185 "distributionModel": "HotelCollect",
186 "manageable": true,
187 "compensation": {
188 "percent": 0.23
189 }
190 }
191 ],
192 "status": "Active",
193 "type": "Standalone",
194 "pricingModel": "PerDayPricing",
195 "occupantsForBaseRate": 2,
196 "taxInclusive": false,
197 "creationDateTime": "2015-06-20T21:05:12Z",
198 "lastUpdateDateTime": "2016-10-21T18:37:27Z",
199 "cancelPolicy": {
200 "defaultPenalties": [
201 {
202 "deadline": 0,
203 "perStayFee": "1stNightRoomAndTax",
204 "amount": 0
205 },
206 {
207 "deadline": 24,
208 "perStayFee": "None",
209 "amount": 0
210 }
211 ]
212 },
213 "additionalGuestAmounts": [
214 {
215 "dateStart": "2015-04-08",
216 "dateEnd": "2079-06-06",
217 "ageCategory": "Adult",
218 "amount": 0
219 }
220 ],
221 "serviceFeesPerStay": [
222 {
223 "isTaxable": false,
224 "amountPerStay": 10
225 },
226 {
227 "isTaxable": true,
228 "amountPerNight": 12
229 }
230 ],
231 "serviceFeesPerPerson": [
232 {
233 "dateStart": "2018-09-20",
234 "dateEnd": "2079-06-06",
235 "ageCategory": "Adult",
236 "isTaxable": true,
237 "amountPerStay": 20
238 },
239 {
240 "dateStart": "2018-07-27",
241 "dateEnd": "2018-09-19",
242 "ageCategory": "Adult",
243 "isTaxable": true,
244 "amountPerNight": 12
245 }
246 ],
247 "minLOSDefault": 1,
248 "maxLOSDefault": 28,
249 "minAdvBookDays": 0,
250 "maxAdvBookDays": 500,
251 "bookDateStart": "1900-01-01",
252 "bookDateEnd": "2079-06-06",
253 "travelDateStart": "1901-01-01",
254 "travelDateEnd": "2079-06-06",
255 "mobileOnly": false,
256 "_links": {
257 "self": {
258 "href": "https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/205833985"
259 }
260 }
261 }
262 ]
263}

Single rate plan read (PerDay pricing, Expedia Collect, Net Rate acquisition type)

This example is for a Expedia Collect rate plan with per-day pricing model and NET rate acquisition type.

Request:

1GET https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/204297188
4Request-ID : 307af24f-f59a-11e4-822e-005056b1298f

Response:

1{
2 "entity": {
3 "resourceId": 204309700,
4 "name": "Room Only",
5 "distributionRules": [
6 {
7 "expediaId": "204309700",
8 "partnerCode": "NK2",
9 "distributionModel": "ExpediaCollect",
10 "manageable": true,
11 "compensation": {
12 "percent": 0.26,
13 "minAmount": 10.0,
14 "exceptions": [
15 {
16 "dateStart": "2015-11-01",
17 "dateEnd": "2015-11-02",
18 "minAmount": 0,
19 "percent": 0.24,
20 "mon": true,
21 "tue": true,
22 "wed": true,
23 "thu": true,
24 "fri": true,
25 "sat": true,
26 "sun": true
27 }
28 ]
29 }
30 }
31 ],
32 "status": "Active",
33 "type": "Standalone",
34 "rateAcquisitionType": "NetRate",
35 "pricingModel": "PerDayPricing",
36 "occupantsForBaseRate": 1,
37 "taxInclusive": false,
38 "creationDateTime": "2016-10-20T21:05:12Z",
39 "lastUpdateDateTime": "2016-10-21T18:37:27Z",
40 "cancelPolicy": {
41 "defaultPenalties": [
42 {
43 "deadline": 0,
44 "perStayFee": "None",
45 "amount": 0.0
46 }
47 ]
48 },
49 "additionalGuestAmounts": [
50 {
51 "dateStart": "2014-12-04",
52 "dateEnd": "2079-06-06",
53 "ageCategory": "Adult",
54 "amount": 36
55 },
56 {
57 "dateStart": "2014-12-04",
58 "dateEnd": "2079-06-06",
59 "ageCategory": "ChildAgeA",
60 "amount": 29.7
61 },
62 {
63 "dateStart": "2014-12-04",
64 "dateEnd": "2079-06-06",
65 "ageCategory": "ChildAgeB",
66 "amount": 29.7
67 }
68 ],
69 "serviceFeesPerStay": [
70 {
71 "isTaxable": false,
72 "amountPerStay": 10
73 },
74 {
75 "isTaxable": true,
76 "amountPerNight": 12
77 }
78 ],
79 "serviceFeesPerPerson": [
80 {
81 "dateStart": "2018-09-20",
82 "dateEnd": "2079-06-06",
83 "ageCategory": "Adult",
84 "isTaxable": true,
85 "amountPerStay": 20
86 },
87 {
88 "dateStart": "2018-07-27",
89 "dateEnd": "2018-09-19",
90 "ageCategory": "Adult",
91 "isTaxable": true,
92 "amountPerNight": 12
93 }
94 ],
95 "valueAddInclusions": [
96 "Free Parking",
97 "Free Breakfast",
98 "Free Internet"
99 ],
100 "minLOSDefault": 1,
101 "maxLOSDefault": 28,
102 "minAdvBookDays": 0,
103 "maxAdvBookDays": 500,
104 "bookDateStart": "1900-01-01",
105 "bookDateEnd": "2079-06-06",
106 "travelDateStart": "1900-01-30",
107 "travelDateEnd": "2079-06-06",
108 "mobileOnly": false,
109 "_links": {
110 "self": {
111 "href": "https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/204309700"
112 }
113 }
114 }
115}

Single rate plan read (Occupancy-based pricing, Expedia Collect, Sell Rate)

Request:

1GET https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/204126855
4Request-ID : 307af24f-f59a-11e4-822e-005056b1298f

Response:

1{
2 "entity": {
3 "resourceId": 204126855,
4 "name": "Standard",
5 "distributionRules": [
6 {
7 "expediaId": "204126855",
8 "partnerCode": "Room Only",
9 "distributionModel": "ExpediaCollect",
10 "manageable": true,
11 "compensation": {
12 "percent": 0.25,
13 "minAmount": 10.0
14 }
15 }
16 ],
17 "status": "Active",
18 "type": "Standalone",
19 "rateAcquisitionType": "SellLAR",
20 "pricingModel": "OccupancyBasedPricing",
21 "taxInclusive": false,
22 "creationDateTime": "2016-10-20T21:05:12Z",
23 "lastUpdateDateTime": "2016-10-21T18:37:27Z",
24 "cancelPolicy": {
25 "defaultPenalties": [
26 {
27 "deadline": 0,
28 "perStayFee": "50PercentCostOfStay",
29 "amount": 0.0
31 },
32 {
33 "deadline": 72,
34 "perStayFee": "None",
35 "amount": 0.0
37 }
38 ]
39 },
40 "additionalGuestAmounts": [
41 {
42 "dateStart": "2014-10-23",
43 "dateEnd": "2079-06-06",
44 "ageCategory": "Adult",
45 "amount": 30
46 },
47 {
48 "dateStart": "2014-10-23",
49 "dateEnd": "2079-06-06",
50 "ageCategory": "ChildAgeA",
51 "amount": 30
52 }
53 ],
54 "serviceFeesPerStay": [
55 {
56 "isTaxable": false,
57 "amountPerStay": 10
58 },
59 {
60 "isTaxable": true,
61 "amountPerNight": 12
62 }
63 ],
64 "serviceFeesPerPerson": [
65 {
66 "dateStart": "2018-09-20",
67 "dateEnd": "2079-06-06",
68 "ageCategory": "Adult",
69 "isTaxable": true,
70 "amountPerStay": 20
71 },
72 {
73 "dateStart": "2018-07-27",
74 "dateEnd": "2018-09-19",
75 "ageCategory": "Adult",
76 "isTaxable": true,
77 "amountPerNight": 12
78 }
79 ],
80 "valueAddInclusions": [
81 "Free Breakfast"
82 ],
83 "minLOSDefault": 2,
84 "maxLOSDefault": 28,
85 "minAdvBookDays": 23,
86 "maxAdvBookDays": 290,
87 "bookDateStart": "1900-01-01",
88 "bookDateEnd": "2079-06-06",
89 "travelDateStart": "1900-01-30",
90 "travelDateEnd": "2079-06-06",
91 "mobileOnly": false,
92 "_links": {
93 "self": {
94 "href": "https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/204126855"
95 }
96 }
97 }
98}

Single rate plan read (Occupancy-based pricing, Hotel Collect)

Request:

1GET https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/204321248
4Request-ID : 307af24f-f59a-11e4-822e-005056b1298f

Response:

1{
2 "entity": {
3 "resourceId": 204321248,
4 "name": "Vikings",
5 "rateAcquisitionType": "SellLAR",
6 "distributionRules": [
7 {
8 "expediaId": "204321248A",
9 "partnerCode": "RoomOnly-1",
10 "distributionModel": "HotelCollect",
11 "manageable": true,
12 "compensation": {
13 "percent": 0.20,
14 "exceptions": [
15 {
16 "dateStart": "2015-04-08",
17 "dateEnd": "2015-12-31",
18 "percent": 0.15,
19 "mon": true,
20 "tue": true,
21 "wed": true,
22 "thu": true,
23 "fri": false,
24 "sat": false,
25 "sun": false
26 },
27 {
28 "dateStart": "2015-04-08",
29 "dateEnd": "2015-12-31",
30 "percent": 0.18,
31 "mon": false,
32 "tue": false,
33 "wed": false,
34 "thu": false,
35 "fri": true,
36 "sat": true,
37 "sun": true
38 }
39 ]
40 }
41 }
42 ],
43 "status": "Active",
44 "type": "Standalone",
45 "pricingModel": "OccupancyBasedPricing",
46 "taxInclusive": true,
47 "depositRequired": false,
48 "creationDateTime": "2016-10-20T21:05:12Z",
49 "lastUpdateDateTime": "2016-10-21T18:37:27Z",
50 "cancelPolicy": {
51 "defaultPenalties": [
52 {
53 "deadline": 0,
54 "perStayFee": "50PercentCostOfStay",
55 "amount": 0.0
57 }
58 ]
59 },
60 "serviceFeesPerStay": [
61 {
62 "isTaxable": false,
63 "amountPerStay": 10
64 },
65 {
66 "isTaxable": true,
67 "amountPerNight": 12
68 }
69 ],
70 "serviceFeesPerPerson": [
71 {
72 "dateStart": "2018-09-20",
73 "dateEnd": "2079-06-06",
74 "ageCategory": "Adult",
75 "isTaxable": true,
76 "amountPerStay": 20
77 },
78 {
79 "dateStart": "2018-07-27",
80 "dateEnd": "2018-09-19",
81 "ageCategory": "Adult",
82 "isTaxable": true,
83 "amountPerNight": 12
84 }
85 ],
86 "valueAddInclusions": [
87 "Free Parking",
88 "Free Wireless Internet",
89 "Breakfast Buffet"
90 ],
91 "minLOSDefault": 7,
92 "maxLOSDefault": 14,
93 "minAdvBookDays": 0,
94 "maxAdvBookDays": 30,
95 "bookDateStart": "2015-01-01",
96 "bookDateEnd": "2016-06-06",
97 "travelDateStart": "2015-01-02",
98 "travelDateEnd": "2016-12-31",
99 "mobileOnly": true,
100 "_links": {
101 "self": {
102 "href": "https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/204321248"
103 }
104 }
105 }
106}

Single rate plan read (Expedia Traveler Preference)

Request:

1GET https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/204309700
4Request-ID : 307af24f-f59a-11e4-822e-005056b1298f

Response:

1{
2 "entity": {
3 "resourceId": 204309700,
4 "name": "Room Only",
5 "rateAcquisitionType": "NetRate",
6 "distributionRules": [
7 {
8 "expediaId": "204309700",
9 "partnerCode": "NK2",
10 "distributionModel": "ExpediaCollect",
11 "manageable": true,
12 "compensation": {
13 "percent": 0.26,
14 "minAmount": 10.0
15 }
16 },
17 {
18 "expediaId": "204309700A",
19 "partnerCode": "ANK2",
20 "distributionModel": "HotelCollect",
21 "manageable": false,
22 "compensation": {
23 "percent": 0.26,
24 "minAmount": 10.0
25 }
26 }
27 ],
28 "status": "Active",
29 "type": "Standalone",
30 "pricingModel": "PerDayPricing",
31 "occupantsForBaseRate": 1,
32 "taxInclusive": false,
33 "depositRequired": false,
34 "creationDateTime": "2016-10-20T21:05:12Z",
35 "lastUpdateDateTime": "2016-10-21T18:37:27Z",
36 "cancelPolicy": {
37 "defaultPenalties": [
38 {
39 "deadline": 0,
40 "perStayFee": "None",
41 "amount": 0.0
43 }
44 ]
45 },
46 "additionalGuestAmounts": [
47 {
48 "dateStart": "2014-12-04",
49 "dateEnd": "2079-06-06",
50 "ageCategory": "Adult",
51 "amount": 36
52 },
53 {
54 "dateStart": "2014-12-04",
55 "dateEnd": "2079-06-06",
56 "ageCategory": "ChildAgeA",
57 "amount": 29.7
58 }
59 ],
60 "serviceFeesPerStay": [
61 {
62 "isTaxable": false,
63 "amountPerStay": 10
64 },
65 {
66 "isTaxable": true,
67 "amountPerNight": 12
68 }
69 ],
70 "serviceFeesPerPerson": [
71 {
72 "dateStart": "2018-09-20",
73 "dateEnd": "2079-06-06",
74 "ageCategory": "Adult",
75 "isTaxable": true,
76 "amountPerStay": 20
77 },
78 {
79 "dateStart": "2018-07-27",
80 "dateEnd": "2018-09-19",
81 "ageCategory": "Adult",
82 "isTaxable": true,
83 "amountPerNight": 12
84 }
85 ],
86 "valueAddInclusions": [
87 "Free Breakfast"
88 ],
89 "minLOSDefault": 1,
90 "maxLOSDefault": 28,
91 "minAdvBookDays": 0,
92 "maxAdvBookDays": 500,
93 "bookDateStart": "1900-01-01",
94 "bookDateEnd": "2079-06-06",
95 "travelDateStart": "1900-01-30",
96 "travelDateEnd": "2079-06-06",
97 "mobileOnly": false,
98 "_links": {
99 "self": {
100 "href": "https://services.expediapartnercentral.com/properties/1780044/roomTypes/200828484/ratePlans/204309700"
101 }
102 }
103 }
104}

Single rate plan read (with RatePlanLinkage)

The rate plan being requested (resourceId: 208504016) derives its rate and availability from a parent rate plan (resourceId: 208503977). Note that another rate plan (resourceId: 208616685) derives its own rate and availability from this rate plan (resourceId: 208504016).

Request:

1GET https://services.expediapartnercentral.com/properties/12933870/roomTypes/201706782/ratePlans/208504016
4Request-ID : 307af24f-f59a-11e4-822e-005056b1298f

Response:

1{
2 "entity": {
3 "resourceId": 208504016,
4 "name": "EQ1",
5 "rateAcquisitionType": "SellLAR",
6 "distributionRules": [
7 {
8 "expediaId": "208504016",
9 "partnerCode": "EQ1",
10 "distributionModel": "ExpediaCollect",
11 "manageable": false,
12 "compensation": {
13 "percent": 0.1,
14 "minAmount": 0
15 }
16 },
17 {
18 "expediaId": "208504016A",
19 "partnerCode": "EQ1HC",
20 "distributionModel": "HotelCollect",
21 "manageable": true,
22 "compensation": {
23 "percent": 0.1
24 }
25 }
26 ],
27 "status": "Active",
28 "type": "Standalone",
29 "pricingModel": "OccupancyBasedPricing",
30 "taxInclusive": false,
31 "depositRequired": false,
32 "creationDateTime": "2016-10-20T21:05:12Z",
33 "lastUpdateDateTime": "2016-10-21T18:37:27Z",
34 "cancelPolicy": {
35 "defaultPenalties": [
36 {
37 "deadline": 0,
38 "perStayFee": "None",
39 "amount": 0
40 }
41 ]
42 },
43 "additionalGuestAmounts": [
44 {
45 "dateStart": "2016-07-08",
46 "dateEnd": "2079-06-06",
47 "ageCategory": "Adult",
48 "amount": 40
49 },
50 {
51 "dateStart": "2016-07-08",
52 "dateEnd": "2079-06-06",
53 "ageCategory": "ChildAgeA",
54 "amount": 20
55 }
56 ],
57 "serviceFeesPerStay": [
58 {
59 "isTaxable": false,
60 "amountPerStay": 10
61 },
62 {
63 "isTaxable": true,
64 "amountPerNight": 12
65 }
66 ],
67 "serviceFeesPerPerson": [
68 {
69 "dateStart": "2018-09-20",
70 "dateEnd": "2079-06-06",
71 "ageCategory": "Adult",
72 "isTaxable": true,
73 "amountPerStay": 20
74 },
75 {
76 "dateStart": "2018-07-27",
77 "dateEnd": "2018-09-19",
78 "ageCategory": "Adult",
79 "isTaxable": true,
80 "amountPerNight": 12
81 }
82 ],
83 "minLOSDefault": 1,
84 "maxLOSDefault": 28,
85 "minAdvBookDays": 0,
86 "maxAdvBookDays": 0,
87 "bookDateStart": "2000-01-01",
88 "bookDateEnd": "2025-05-04",
89 "travelDateStart": "2015-05-04",
90 "travelDateEnd": "2025-05-04",
91 "mobileOnly": false,
92 "ratePlanLinkage": {
93 "deriveAvailabilityStatus": false,
94 "deriveLengthOfStayRestriction": false,
95 "deriveClosedToArrival": false,
96 "deriveClosedToDeparture": false,
97 "rateDerivationRules": [
98 {
99 "dateStart": "2016-10-11",
100 "dateEnd": "2079-06-06",
101 "adjustmentType": "Amount",
102 "adjustmentValue": 5
103 }
104 ]
105 },
106 "_links": {
107 "self": {
108 "href": "https://services.expediapartnercentral.com/properties/12933870/roomTypes/201706782/ratePlans/208504016"
109 },
110 "parentRatePlan": {
111 "href": "https://services.expediapartnercentral.com/properties/12933870/roomTypes/201706774/ratePlans/208503977"
112 },
113 "derivedRatePlans": [
114 {
115 "href": "https://services.expediapartnercentral.com/properties/12933870/roomTypes/201706782/ratePlans/208616685"
116 }
117 ]
118 }
119 }
120}

Single rate plan read (with deposit policy)

The rate plan being requested (resourceId: 205020302) has a deposit policy (its depositRequired flag is set to true). Therefore, it has a link to its deposit policy in the _links section.

Request:

1GET https://services.expediapartnercentral.com/products/properties/1780044/roomTypes/200828484/ratePlans/205020302
4Request-ID : 7804d78d-b8bb-4f9d-b4b9-7d7914cf1e73

Response:

1{
2 "entity": {
3 "resourceId": 205020302,
4 "name": "RoomOnly11",
5 "rateAcquisitionType": "SellLAR",
6 "distributionRules": [
7 {
8 "expediaId": "205020302A",
9 "partnerCode": "RoomOnly",
10 "distributionModel": "HotelCollect",
11 "manageable": true,
12 "compensation": {
13 "percent": 0.1
14 }
15 }
16 ],
17 "status": "Active",
18 "type": "Standalone",
19 "pricingModel": "PerDayPricing",
20 "occupantsForBaseRate": 2,
21 "taxInclusive": false,
22 "depositRequired": true,
23 "creationDateTime": "2015-01-17T09:11:11Z",
24 "lastUpdateDateTime": "2016-04-30T20:20:09Z",
25 "cancelPolicy": {
26 "defaultPenalties": [
27 {
28 "deadline": 0,
29 "perStayFee": "1stNightRoomAndTax",
30 "amount": 0
31 },
32 {
33 "deadline": 24,
34 "perStayFee": "None",
35 "amount": 0
36 }
37 ]
38 },
39 "additionalGuestAmounts": [
40 {
41 "dateStart": "2015-07-10",
42 "dateEnd": "2079-06-06",
43 "ageCategory": "Adult",
44 "amount": 0
45 }
46 ],
47 "serviceFeesPerStay": [
48 {
49 "isTaxable": false,
50 "amountPerStay": 10
51 },
52 {
53 "isTaxable": true,
54 "amountPerNight": 12
55 }
56 ],
57 "serviceFeesPerPerson": [
58 {
59 "dateStart": "2018-09-20",
60 "dateEnd": "2079-06-06",
61 "ageCategory": "Adult",
62 "isTaxable": true,
63 "amountPerStay": 20
64 },
65 {
66 "dateStart": "2018-07-27",
67 "dateEnd": "2018-09-19",
68 "ageCategory": "Adult",
69 "isTaxable": true,
70 "amountPerNight": 12
71 }
72 ],
73 "minLOSDefault": 1,
74 "maxLOSDefault": 28,
75 "minAdvBookDays": 0,
76 "maxAdvBookDays": 500,
77 "bookDateStart": "1900-01-01",
78 "bookDateEnd": "2079-06-06",
79 "travelDateStart": "1901-01-01",
80 "travelDateEnd": "2079-06-06",
81 "mobileOnly": false,
82 "_links": {
83 "self": {
84 "href": "https://services.expediapartnercentral.com/products/properties/1780044/roomTypes/200828484/ratePlans/205020302"
85 },
86 "depositPolicy": {
87 "href": "https://services.expediapartnercentral.com/products/properties/1780044/depositPolicy"
88 }
89 }
90 }
91}

Create rate plan (Per-day pricing, Expedia Collect)

Request:

1POST https://services.expediapartnercentral.com/properties/1780044/roomTypes/200835/ratePlans/
4Content-Length: 984
5Request-ID : 307af24f-f59a-11e4-822e-005056b1298f
1{
2 "name": "My first test rate plan",
3 "distributionRules": [
4 {
5 "partnerCode": "TEST1",
6 "distributionModel": "ExpediaCollect"
7 }
8 ],
9 "status": "Active",
10 "type": "Standalone",
11 "occupantsForBaseRate": 2,
12 "taxInclusive": false,
13 "cancelPolicy": {
14 "defaultPenalties": [
15 {
16 "deadline": 0,
17 "perStayFee": "None",
18 "amount": 0.0
20 }
21 ]
22 },
23 "additionalGuestAmounts": [
24 {
25 "ageCategory": "Adult",
26 "amount": 40
27 },
28 {
29 "ageCategory": "ChildAgeA",
30 "amount": 20
31 },
32 {
33 "ageCategory": "ChildAgeB",
34 "amount": 10
35 }
36 ],
37 "serviceFeesPerStay": [
38 {
39 "isTaxable": false,
40 "amountPerStay": 10
41 },
42 {
43 "isTaxable": true,
44 "amountPerNight": 12
45 }
46 ],
47 "serviceFeesPerPerson": [
48 {
49 "dateStart": "2018-09-20",
50 "dateEnd": "2079-06-06",
51 "ageCategory": "Adult",
52 "isTaxable": true,
53 "amountPerStay": 20
54 },
55 {
56 "dateStart": "2018-07-27",
57 "dateEnd": "2018-09-19",
58 "ageCategory": "Adult",
59 "isTaxable": true,
60 "amountPerNight": 12
61 }
62 ],
63 "valueAddInclusions": [
64 "Free Parking",
65 "Free Breakfast",
66 "Free Internet"
67 ]
68}

Response:

1{
2 "entity": {
3 "resourceId": 204886798,
4 "name": "My first test rate plan",
5 "distributionRules": [
6 {
7 "expediaId": "204886798",
8 "partnerCode": "TEST1",
9 "distributionModel": "ExpediaCollect",
10 "manageable": true,
11 "compensation": {
12 "percent": 0.26,
13 "minAmount": 0.26,
14 "exceptions": [
15 {
16 "from": "2015-11-01",
17 "to": "2015-11-02",
18 "minAmount": 0,
19 "percent": 0.24,
20 "mon": true,
21 "tue": true,
22 "wed": true,
23 "thu": true,
24 "fri": true,
25 "sat": true,
26 "sun": true
27 }
28 ]
29 }
30 }
31 ],
32 "status": "Active",
33 "type": "Standalone",
34 "rateAcquisitionType": "NetRate",
35 "pricingModel": "PerDayPricing",
36 "occupantsForBaseRate": 2,
37 "taxInclusive": false,
38 "creationDateTime": "2016-11-09T12:00:00Z",
39 "lastUpdateDateTime": "2016-11-09T12:00:00Z",
40 "cancelPolicy": {
41 "defaultPenalties": [
42 {
43 "deadline": 0,
44 "perStayFee": "None",
45 "amount": 0.0
47 }
48 ]
49 },
50 "additionalGuestAmounts": [
51 {
52 "dateStart": "2015-03-17",
53 "dateEnd": "2079-06-06",
54 "ageCategory": "ChildAgeB",
55 "amount": 10
56 },
57 {
58 "dateStart": "2015-03-17",
59 "dateEnd": "2079-06-06",
60 "ageCategory": "ChildAgeA",
61 "amount": 20
62 },
63 {
64 "dateStart": "2015-03-17",
65 "dateEnd": "2079-06-06",
66 "ageCategory": "Adult",
67 "amount": 40
68 }
69 ],
70 "serviceFeesPerStay": [
71 {
72 "isTaxable": false,
73 "amountPerStay": 10
74 },
75 {
76 "isTaxable": true,
77 "amountPerNight": 12
78 }
79 ],
80 "serviceFeesPerPerson": [
81 {
82 "dateStart": "2018-09-20",
83 "dateEnd": "2079-06-06",
84 "ageCategory": "Adult",
85 "isTaxable": true,
86 "amountPerStay": 20
87 },
88 {
89 "dateStart": "2018-07-27",
90 "dateEnd": "2018-09-19",
91 "ageCategory": "Adult",
92 "isTaxable": true,
93 "amountPerNight": 12
94 }
95 ],
96 "valueAddInclusions": [
97 "Free Parking",
98 "Free Breakfast",
99 "Free Internet"
100 ],
101 "minLOSDefault": 1,
102 "maxLOSDefault": 28,
103 "minAdvBookDays": 0,
104 "maxAdvBookDays": 500,
105 "bookDateStart": "2015-03-17",
106 "bookDateEnd": "2079-06-06",
107 "travelDateStart": "2015-03-17",
108 "travelDateEnd": "2079-06-06",
109 "mobileOnly": false,
110 "_links": {
111 "self": {
112 "href": "https://services.expediapartnercentral.com/properties/1780044/roomTypes/200835/ratePlans/204886798"
113 }
114 }
115 }
116}

Create rate plan (Expedia Traveler Preference)

Request:

1POST https://services.expediapartnercentral.com/properties/1780044/roomTypes/200835/ratePlans/ HTTP/1.1
4Content-Length: 984
5Request-ID : 307af24f-f59a-11e4-822e-005056b1298f
1{
2 "name": "Room Only",
3 "distributionRules": [
4 {
5 "partnerCode": "NK2",
6 "distributionModel": "ExpediaCollect"
7 },
8 {
9 "partnerCode": "ANK2",
10 "distributionModel": "HotelCollect"
11 }
12 ],
13 "occupantsForBaseRate": 1,
14 "taxInclusive": false,
15 "cancelPolicy": {
16 "defaultPenalties": [
17 {
18 "deadline": 0,
19 "perStayFee": "None",
20 "amount": 0.0
22 }
23 ]
24 },
25 "additionalGuestAmounts": [
26 {
27 "dateStart": "2014-12-04",
28 "dateEnd": "2079-06-06",
29 "ageCategory": "Adult",
30 "amount": 36
31 },
32 {
33 "dateStart": "2014-12-04",
34 "dateEnd": "2079-06-06",
35 "ageCategory": "ChildAgeA",
36 "amount": 29.7
37 }
38 ],
39 "serviceFeesPerStay": [
40 {
41 "isTaxable": false,
42 "amountPerStay": 10
43 },
44 {
45 "isTaxable": true,
46 "amountPerNight": 12
47 }
48 ],
49 "serviceFeesPerPerson": [
50 {
51 "dateStart": "2018-09-20",
52 "dateEnd": "2079-06-06",
53 "ageCategory": "Adult",
54 "isTaxable": true,
55 "amountPerStay": 20
56 },
57 {
58 "dateStart": "2018-07-27",
59 "dateEnd": "2018-09-19",
60 "ageCategory": "Adult",
61 "isTaxable": true,
62 "amountPerNight": 12
63 }
64 ],
65 "valueAddInclusions": [
66 "Free Breakfast"
67 ]
68}

Response:

1{
2 "entity": {
3 "resourceId": 204309700,
4 "name": "Room Only",
5 "rateAcquisitionType": "NetRate",
6 "distributionRules": [
7 {
8 "expediaId": "204309700",
9 "partnerCode": "NK2",
10 "distributionModel": "ExpediaCollect",
11 "manageable": true,
12 "compensation": {
13 "percent": 0.26,
14 "minAmount": 10.0
15 }
16 },
17 {
18 "expediaId": "204309700A",
19 "partnerCode": "ANK2",
20 "distributionModel": "HotelCollect",
21 "manageable": false,
22 "compensation": {
23 "percent": 0.26,
24 "minAmount": 10.0
25 }
26 }
27 ],
28 "status": "Active",
29 "type": "Standalone",
30 "pricingModel": "PerDayPricing",
31 "occupantsForBaseRate": 1,
32 "taxInclusive": false,
33 "depositRequired": false,
34 "creationDateTime": "2016-11-09T21:00:00Z",
35 "lastUpdateDateTime": "2016-11-09T21:00:00Z",
36 "cancelPolicy": {
37 "defaultPenalties": [
38 {
39 "deadline": 0,
40 "perStayFee": "None",
41 "amount": 0.0
43 }
44 ]
45 },
46 "additionalGuestAmounts": [
47 {
48 "dateStart": "2014-12-04",
49 "dateEnd": "2079-06-06",
50 "ageCategory": "Adult",
51 "amount": 36
52 },
53 {
54 "dateStart": "2014-12-04",
55 "dateEnd": "2079-06-06",
56 "ageCategory": "ChildAgeA",
57 "amount": 29.7
58 }
59 ],
60 "serviceFeesPerStay": [
61 {
62 "isTaxable": false,
63 "amountPerStay": 10
64 },
65 {
66 "isTaxable": true,
67 "amountPerNight": 12
68 }
69 ],
70 "serviceFeesPerPerson": [
71 {
72 "dateStart": "2018-09-20",
73 "dateEnd": "2079-06-06",
74 "ageCategory": "Adult",
75 "isTaxable": true,
76 "amountPerStay": 20
77 },
78 {
79 "dateStart": "2018-07-27",
80 "dateEnd": "2018-09-19",
81 "ageCategory": "Adult",
82 "isTaxable": true,
83 "amountPerNight": 12
84 }
85 ],
86 "valueAddInclusions": [
87 "Free Breakfast"
88 ],
89 "minLOSDefault": 1,
90 "maxLOSDefault": 28,
91 "minAdvBookDays": 0,
92 "maxAdvBookDays": 500,
93 "bookDateStart": "1900-01-01",
94 "bookDateEnd": "2079-06-06",
95 "travelDateStart": "1900-01-30",
96 "travelDateEnd": "2079-06-06",
97 "mobileOnly": false,
98 "_links": {
99 "self": {
100 "href": "https://services.expediapartnercentral.com/properties/1780044/roomTypes/200835/ratePlans/204309700"
101 }
102 }
103 }
104}

Modify rate plan (name, additional guest amount, value adds) - full overlay (PUT)

In this example, the rate plan created in a previous example is modified to have a more meaningful name, lower additional guest amounts and free Internet.

Request:

1PUT https://services.expediapartnercentral.com/properties/1780044/roomTypes/200835/ratePlans/204309700
4Request-ID : 307af24f-f59a-11e4-822e-005056b1298f
1{
2 "resourceId": 204309700,
3 "name": "More Meaningful Name",
4 "rateAcquisitionType": "NetRate",
5 "distributionRules": [
6 {
7 "expediaId": "204309700",
8 "partnerCode": "NK2",
9 "distributionModel": "ExpediaCollect",
10 "manageable": true,
11 "compensation": {
12 "percent": 0.26,
13 "minAmount": 10.0
14 }
15 },
16 {
17 "expediaId": "204309700A",
18 "partnerCode": "ANK2",
19 "distributionModel": "HotelCollect",
20 "manageable": false,
21 "compensation": {
22 "percent": 0.26,
23 "minAmount": 10.0
24 }
25 }
26 ],
27 "status": "Active",
28 "type": "Standalone",
29 "pricingModel": "PerDayPricing",
30 "occupantsForBaseRate": 2,
31 "taxInclusive": false,
32 "depositRequired": false,
33 "creationDateTime": "2016-10-20T21:05:12Z",
34 "lastUpdateDateTime": "2016-10-21T18:37:27Z",
35 "cancelPolicy": {
36 "defaultPenalties": [
37 {
38 "deadline": 0,
39 "perStayFee": "None",
40 "amount": 0.0
42 }
43 ]
44 },
45 "additionalGuestAmounts": [
46 {
47 "dateStart": "2014-12-04",
48 "dateEnd": "2079-06-06",
49 "ageCategory": "Adult",
50 "amount": 30
51 },
52 {
53 "dateStart": "2014-12-04",
54 "dateEnd": "2079-06-06",
55 "ageCategory": "ChildAgeA",
56 "amount": 20
57 }
58 ],
59 "serviceFeesPerStay": [
60 {
61 "isTaxable": false,
62 "amountPerStay": 10
63 },
64 {
65 "isTaxable": true,
66 "amountPerNight": 12
67 }
68 ],
69 "serviceFeesPerPerson": [
70 {
71 "dateStart": "2018-09-20",
72 "dateEnd": "2079-06-06",
73 "ageCategory": "Adult",
74 "isTaxable": true,
75 "amountPerStay": 20
76 },
77 {
78 "dateStart": "2018-07-27",
79 "dateEnd": "2018-09-19",
80 "ageCategory": "Adult",
81 "isTaxable": true,
82 "amountPerNight": 12
83 }
84 ],
85 "valueAddInclusions": [
86 "Free Breakfast",
87 "Free Internet"
88 ],
89 "minLOSDefault": 1,
90 "maxLOSDefault": 28,
91 "minAdvBookDays": 0,
92 "maxAdvBookDays": 500,
93 "bookDateStart": "1900-01-01",
94 "bookDateEnd": "2079-06-06",
95 "travelDateStart": "1900-01-30",
96 "travelDateEnd": "2079-06-06",
97 "mobileOnly": false
98}

Response:

1{
2 "entity": {
3 "resourceId": 204309700,
4 "name": "More Meaningful Name",
5 "rateAcquisitionType": "NetRate",
6 "distributionRules": [
7 {
8 "expediaId": "204309700",
9 "partnerCode": "NK2",
10 "distributionModel": "ExpediaCollect",
11 "manageable": true,
12 "compensation": {
13 "percent": 0.26,
14 "minAmount": 10.0
15 }
16 },
17 {
18 "expediaId": "204309700A",
19 "partnerCode": "ANK2",
20 "distributionModel": "HotelCollect",
21 "manageable": false,
22 "compensation": {
23 "percent": 0.26,
24 "minAmount": 10.0
25 }
26 }
27 ],
28 "status": "Active",
29 "type": "Standalone",
30 "pricingModel": "PerDayPricing",
31 "occupantsForBaseRate": 2,
32 "taxInclusive": false,
33 "depositRequired": false,
34 "creationDateTime": "2016-10-20T21:05:12Z",
35 "lastUpdateDateTime": "2016-10-21T18:37:27Z",
36 "cancelPolicy": {
37 "defaultPenalties": [
38 {
39 "deadline": 0,
40 "perStayFee": "None",
41 "amount": 0.0
43 }
44 ]
45 },
46 "additionalGuestAmounts": [
47 {
48 "dateStart": "2014-12-04",
49 "dateEnd": "2079-06-06",
50 "ageCategory": "Adult",
51 "amount": 30
52 },
53 {
54 "dateStart": "2014-12-04",
55 "dateEnd": "2079-06-06",
56 "ageCategory": "ChildAgeA",
57 "amount": 20
58 }
59 ],
60 "serviceFeesPerStay": [
61 {
62 "isTaxable": false,
63 "amountPerStay": 10
64 },
65 {
66 "isTaxable": true,
67 "amountPerNight": 12
68 }
69 ],
70 "serviceFeesPerPerson": [
71 {
72 "dateStart": "2018-09-20",
73 "dateEnd": "2079-06-06",
74 "ageCategory": "Adult",
75 "isTaxable": true,
76 "amountPerStay": 20
77 },
78 {
79 "dateStart": "2018-07-27",
80 "dateEnd": "2018-09-19",
81 "ageCategory": "Adult",
82 "isTaxable": true,
83 "amountPerNight": 12
84 }
85 ],
86 "valueAddInclusions": [
87 "Free Breakfast",
88 "Free Internet"
89 ],
90 "minLOSDefault": 1,
91 "maxLOSDefault": 28,
92 "minAdvBookDays": 0,
93 "maxAdvBookDays": 500,
94 "bookDateStart": "1900-01-01",
95 "bookDateEnd": "2079-06-06",
96 "travelDateStart": "1900-01-30",
97 "travelDateEnd": "2079-06-06",
98 "mobileOnly": false,
99 "_links": {
100 "self": {
101 "href": "https://services.expediapartnercentral.com/properties/1780044/roomTypes/200835/ratePlans/204309700"
102 }
103 }
104 }
105}

Rate plan partial update (PATCH)

Here are a few examples of potential PATCH requests. Response examples are not included, but they would be the full rate plan resource definition with all its fields, in its final state after the partial update.

Updating only the name
1{
2 "name": "My New Rate Plan Name"
3}
Updating both the name and the status
1{
2 "name": "My New Rate Plan Name",
3 "status": "Inactive"
4}
Overriding the current list of value add inclusions to only include "Free Internet"
1{
2 "valueAddInclusions": ["Free Internet"]
3}
Removing all value add inclusions and additional guest amounts
1{
2 "valueAddInclusions": [],
3 "additionalGuestAmounts": null
4}
Updating only the cancel policy
1{
2 "cancelPolicy": {
3 "defaultPenalties": [
4 {
5 "deadline": 0,
6 "perStayFee": "1stNightRoomAndTax",
7 "amount": 0
8 },
9 {
10 "deadline": 24,
11 "perStayFee": "None",
12 "amount": 0
13 }
14 ],
15 "exceptions": [
16 {
17 "endDate": "2019-04-01",
18 "startDate": "2019-03-01",
19 "penalties": [
20 {
21 "amount": 1.0,
22 "deadline": 0,
23 "perStayFee": "1stNightRoomAndTax"
24 },
25 {
26 "amount": 1.0,
27 "deadline": 24,
28 "perStayFee": "FullCostOfStay"
29 }
30 ]
31 }
32 ]
33 }
34}
Updating only the cancel policy (this would remove any exceptions since they are not specified)
1{
2 "cancelPolicy": {
3 "defaultPenalties": [
4 {
5 "deadline": 0,
6 "perStayFee": "1stNightRoomAndTax",
7 "amount": 0
8 },
10 {
11 "deadline": 24,
12 "perStayFee": "None",
13 "amount": 0
14 }
15 ]
16 }
17}

Delete rate plan

In this example, the rate plan created in a previous example is deleted.

Request:

1DELETE https://services.expediapartnercentral.com/properties/1780044/roomTypes/200835/ratePlans/204309700
4Request-ID : 307af24f-f59a-11e4-822e-005056b1298f