Rental regulations
Certain local governments have laws that apply to short-term rentals. Many of these laws require that a property be registered or obtain a permit or license and provide this information on applicable bookable listings. You can review these regulations here.
By jurisdiction, to ensure compliance with legal and contractual requirements, we have made changes to the type of regulatory information and how we collect it for the properties and products that you distribute to Expedia Group. These changes impact both Product API and Property API. We require that you update your integration to support these fields by April 20, 2020, after which any new units or existing rooms that are missing the required regulatory information will not be created or updatable.
Note: Properties that are unable to provide the regulatory requirements, per their jurisdiction, may be made non-bookable or removed from Expedia Group websites. In addition, these properties may be fined or face other enforcement actions from local authorities.
We appreciate your prompt attention to this important matter and encourage you to work with your properties in order to collect this information.
For more information, please contact your Expedia Group Technical Relationship Manager.
Business models
Properties or chains can use one of three different business models with Expedia Group, and this will be specified in their contract. Providers need to know which business model their properties use in order to develop their interface accordingly.
For example, if a developer codes to and tests Expedia Collect (EC) bookings only, their properties using Expedia Traveler Preference (ETP) or Hotel Collect (HC) business models will not be able to use that interface.
For details about which elements or entities are impacted by business model, consult the detailed element descriptions in the Reference section.
Expedia Collect
In this business model, Expedia Group collects payment from travelers at the time of booking. This model is sometimes called "Pay Now" and is sometimes referred to as "EC" or "Merchant," depending on context.
The reservation is paid for and funds are sent to Expedia Group. After the traveler's stay, the property sends an invoice to Expedia Group or charges an Expedia Virtual Card to collect monies owed for the provided services. The net rate reflected in bookings that integrate into the property's system should not be disclosed to guests.
Hotel Collect
In this business model, the property collects payment from the traveler. This method is also known as "Pay Later" and is sometimes referred to as "HC," "Agency," or "Property Collect" depending on the context. This business model may allow travelers to book same-day and next-day reservations on Expedia.com and Hotels.com without a credit card.
The reservation is confirmed, but the payment is not collected until the traveler checks out after their stay. Expedia Group subsequently collects commission from the property.
Expedia Traveler Preference
This business model allows travelers to choose whether to pay online during booking with the Pay Now (EC) feature or pay the property directly during their stay with the Pay Later (HC) feature. This enables properties to accept reservations from more travelers.
Expedia Traveler Preference (ETP) is the business model preferred by both Expedia Group and travelers. Partners using the Expedia Traveler Preference model receive both Hotel Collect and Expedia Collect reservations. Depending on context, Expedia Traveler Preference (ETP) is also referred to as "Dual" or "Flex."
Accounting should be completed for each reservation based on the payment type, which will be either Hotel Collect or Expedia Collect.
For more information or to switch to Expedia Traveler Preference, contact us.
Pricing models
Expedia currently supports three main pricing models:
Occupancy-based pricing
The occupancy-based pricing (OBP) model is a property-level pricing model that is based on the number of travelers staying in the room. Expedia Group recommends that properties define a rate for each applicable occupancy. If a rate is not defined for a given occupancy, the rate for the next higher occupancy will be charged (see below for exceptions related to children).
For example, when a rate is specified for an occupancy of two, but not for an occupancy of one, the rate for double-occupancy will be applied automatically when a traveler wants to book a stay just for one person.
Any number of guests over the highest specified occupancy rate (up to, but not exceeding, the maximum occupancy allowed for the room), will be charged extra-person fees. Extra-person fees can be configured in Partner Central, using the Product API, or using the createFeeSet
mutation.
By default, children are always charged an extra child fee and do not factor in to the occupancy being charged, with one exception: the extra child fee is waived if there is a gap in the defined occupancy rates and it costs less to treat the child as an adult.
For example, if one adult and one child are booking a room on dates where a double occupancy rate is defined, but single occupancy rates are not, rather than charge a double occupancy plus the extra child fee, the extra child fee is waived for that first child.
Note: A property setting is available for properties that wish to charge children as regular occupants until the number of allowed guests exceeds the highest defined occupancy. See Property API for more details.
Per-day pricing
The per-day pricing (PDP) modelis a property-level pricing model; a room is assigned a rate each day for a base number of occupants. Though commonly configured for two occupants, the base number can be customized by rate plan in Partner Central, using the Product API, or using the createRatePlan
and updateRatePlan
mutations. A single traveler will always be quoted the rate for the base number of occupants, whereas travelers above that base occupancy number are charged extra-person fees if configured.
For example, a room has a price assigned each day for a base occupancy of two guests. In this case, a single traveler would be quoted a base double rate for each day at the property, while four guests would be quoted the base rate plus extra-person fees for two of the occupants.
Room rates are based on the number of adults in a booking, while children are charged an extra-person fee. Children are only charged an adult guest rate if there are not enough adults to fill the base occupancy for a booking.
For example, a booking for one adult and two children at a property with per-day pricing and a base occupancy of two will only charge an extra person fee for one child.
Day-of-arrival pricing
Day-of-arrival (DOA) pricing is an optional pricing attribute on a rate plan that can be enabled by Expedia upon request by the property, through the Product API, or using the createRatePlan
and updateRatePlan
mutations. With this pricing attribute, whatever day guests arrive, they are charged the price for that day on all the days that they stay at the property. To make an exception, the property can set a "rate change flag" that forces a particular rate starting on a particular day and continuing through the rest of the stay. Day-of-arrival pricing can be enabled for rate plans using any of the above pricing models (PDP or OBP) and can be enabled without the length-of-stay (LOS) model, but this is not common.
Per-day length-of-stay pricing
The per-day length-of-stay pricing (LOS) model is currently only available in conjunction with Per-Day pricing (PDP) and is also a set on the rate plan. Length-of-stay pricing allows properties to define rates for lengths of stay from 1 to 28 days, per arrival date. For each date of a year, properties can send up to 28 rates. The price guests will pay depends on the number of days they will stay at the property. Each date has a price for a 3-day stay, a 7-day stay, etc. If LOS pricing is enabled, day-of-arrival (DOA) pricing must be enabled because length-of-stay pricing is based on the traveler’s day of arrival.
minLOSDefault
and maxLOSDefault
can be configured using the Product API. See the RatePlan resource definition under Product API, or refer to the createRatePlan
and updateRatePlan
mutations. Also, note that minimum and maximum lengths of stay can be defined for each day or period with the Availability and Rates API. More specifically, the rate to be sent for each length of stay is the rate for one night. If a rate of $100 is sent for LOS=7, the base rate total for 7 nights will be 7x$100.
Expedia Group recommends that the first time a property sends rates for a specific day, they send rates for all supported lengths of stay per day. For example, for arrival on September 1st, Expedia Group should receive up to 28 different rates, for lengths of stay from 1 to 28 days, assuming the property supports 28-day stays.
Subsequent updates should only be made when the length-of-stay rates change. Example: If rates for LOS=7 and above are changing, the update message should only contain the rates for LOS=7 and above. Rates for shorter stays should be excluded since those rates will remain the same.
If a rate is not defined for a length of stay, it will not be available for sale on Expedia Group points of sale. This is true for both gaps between two defined lengths of stay or any lengths of stay after the maximum defined. For example, if, for arrival on September 1, rates for LOS 1, 3, and 5 are defined, it will not be possible for travelers to book for 2, 4, and 6 or more nights when arriving on that date.
Note: After a LOS rate is defined in the Expedia Group system, it is not possible to remove it. If necessary, properties can make use of restrictions to make previously loaded rates unavailable. Minimum and maximum LOS can be used to restrict specific length of stays or closure at room and rate levels can also be used. Restrictions are applied first when travelers attempt to book a room. Example: Even if a rate for LOS=5 is defined, it would not be possible to book it if one of the subsequent days is closed for departure, or if it is completely closed at the room or rate level.
Expedia Group recommendations
Expedia Group recommends that partners use occupancy-based pricing (OBP) because this pricing model offers the most flexible pricing solution.
Properties currently using the per-day pricing model can convert to occupancy-based pricing by requesting a migration from their Market Manager.
Note: Migration from occupancy-based pricing to per-day pricing involves a manual transfer of information which needs to be scheduled with the property’s Market Manager. In this scenario, new rate plans must be created because the Pricing Model attribute cannot be changed.
Pricing model information can be confirmed in Partner Central from the overview page, with the Product API, or using the property query
.
Note: Make sure the pricing model specified when sending rate updates is the same as the one pre-configured for your property on Partner Central.
You should contact your Expedia Group Technical Relationship Manager with any questions about pricing models or potential discrepancies with your properties’ pricing models.
Pricing model comparison
The following example compares the different pricing models for a room with different numbers of guests in the reservation.
Per-day pricing | Occupancy-based pricing | |
---|---|---|
Data received from partner through the Availability and Rates API | Rate amount = $200 | Rate amounts: Occupancy 1 = $150 Occupancy 2 = $200 Occupancy 3 = undefined Occupancy 4 = $375 Occupancy 5 = undefined |
Data received from partner through Product API or Partner Central | People included in base rate = 2 Extra person fee for adults = $50 | Extra person fee for adults = $50 |
1 Adult | $200 | $150 |
2 Adults | $200 | $200 |
3 Adults | $200 + $50 = $250 | $375 |
4 Adults | $200 + 2 x $50 = $300 | $375 |
5 Adults | $200 + 3 x $50 = $350 | $375 + $50 = $425 |
This table illustrates how children and infants are charged in a reservation based on pricing model and number of guests, both adults and children, in the booking reservation.
Pricing model | How are children charged? | Examples |
---|---|---|
Per-day pricing | Children are charged an adult guest rate ONLY if there are not enough adults to fill the base occupancy (also referred to as people included in base rate) for a booking. Otherwise, they will be charged whatever extra person fees are loaded for the child and infant age categories. For example, a booking with 1 adult and 2 children on a rate plan with a base occupancy of 2, will result in 1 child being counted as the second adult and 1 child being charged the extra person fee for children. | Partner data: Base occupancy of 2 = $200 Extra child fee = $25 1 Adult + 1 Child = $200 1 Adult + 2 Children = $200 + $25 = $225 2 Adults + 1 Child = $200 + $25 = $225 2 Adults + 2 Children = $200 + 2 x $25 = $250 1 Adult + 3 Children = $200 + 2 x $25 = $250 |
Occupancy-based pricing | For OBP properties, a property-level setting determines how children and infants are charged. The setting is named OBP Pricing Logic and the property can pick one of two options, as below. | Partner data: Occupancy 1 = $150 Occupancy 2 = $200 Occupancy 3 = undefined Occupancy 4 = $350 Extra child fee = $25 |
Occupancy-based pricing Option 1 (from data above) | Children always charged extra child fees. When this is selected, any children included in the booking will be charged an extra child fee. | 1 Adult + 1 Child = $150 + $25 = $175 1 Adult + 2 Children = $150 + 2 x $25 = $200 2 Adults + 1 Child = $200 + $25 = $225 2 Adults + 2 Children = $200 + 2 x $25 = $250 1 Adult + 3 Children = $150 + 3 x $25 = $225 |
Occupancy-based pricing Option 2 (from data above) | Children charged as regular occupants; extra child fees only apply when occupancy level is undefined. When this is selected, the property will only charge extra child fees for undefined occupancy levels and the property will charge them as adults until the number of allowed guests exceeds the highest defined occupancy. | 1 Adult + 1 Child = $200 1 Adult + 2 Children = $200 + $25 = $225 2 Adults + 1 Child = $200 + $25 = $225 2 Adults + 2 Children = $350 1 Adult + 3 Children = $350 |
Rate acquisitions
Net rates received from the partner are the amounts displayed on Expedia Collect booking notifications. This is the cost of the room rates, which means this is the total amount you get after taxes and Expedia Group commissions are paid. (Lowest available rates and net rates mean that the Expedia Collect path of a dual rate plan needs to be mapped so that rate updates can come through.)
Sell rates received from the partner are the amounts displayed on Hotel Collect booking notifications. It is the room rate including Expedia Group commission; taxes may or may not be included. This is the total cost to travelers. (Sell rates means that the Hotel Collect path of a dual rate plan needs to be mapped.)
Note: Net rates are not available for properties that only use the Hotel Collect business model.
Product type | Distribution type | Rate acquisition type |
---|---|---|
ETP business model, net rate based | Hotel Collect and Expedia Collect | Net rate |
ETP business model, sell rate based | Hotel Collect and Expedia Collect | Sell rate |
Expedia Collect-only product | Expedia Collect | Net rate or sell rate (as known as lowest available rate, LAR) |
Hotel Collect-only product | Hotel Collect | Sell rate |
Note that each ETP product consists of a primary product and a derived product. Partners should send rate updates for primary products only; a derived product will have the same availability as the primary product and the derived rate is calculated by Expedia.
Product type | Base product - Rate update by partner | Derived product - Calculated by Expedia |
---|---|---|
ETP business model, net rate based | Expedia Collect rate plan, Net rate | Hotel Collect rate plan |
ETP business model, sell rate based | Hotel Collect rate plan, Sell rate | Expedia Collect rate plan |
It is critical that you define the right type of rate to upload because no validation is done to confirm the rate and type. If you send the wrong rate, the Expedia rate will be much lower than the desired rate (when sending a net rate for a sell rate or LAR-based product) or much higher (when sending a sell rate or LAR for a net rate).
You can use the Product API or ratePlan
query to determine which rate plan to send with availability and rates data. Using the Product API, the rates plans will be included in the response messages for active rate plans that indicate ("manageable": true
). For more information, refer to the distributonRule resource definition.
Linking rate plans
Linking rate plans creates a relationship between two rate plans. When the main rate plan is updated, all linked rates will be automatically updated based on the set of rules, resulting in fewer individual rates to manage. (Note that you cannot link LOS rate plans.)
Rate plan linkage rules can apply to both per-day pricing and occupancy-based pricing models; however, rates for occupancy-based pricing will automatically refresh only for occupancy that is defined in both linked rate plans.
For example, if the rate for triple occupancy is only defined for one of the linked rate plans, it will not adjust automatically when the parent rate plan updates. In such cases, you will need to manually update the rate for that occupancy.
Lodging data model
In the Expedia Group lodging data model, properties, room types, and rate plans are stored according to the following hierarchy:
- Each property has one or more room types
- Each room type has one or more rate plans
- Each rate plan belongs to a single room type
- Each rate plan is associated with a single cancellation policy and a single set of additional guest amounts.
Product API enables partners to first create a room type, and subsequently create rate plans for that room type. The partner is expected to add rate plans for every room type created, even if the system will not enforce this rule automatically.
Most partners are required to offer a package rate plan for each standalone rate plan made available to Expedia Group.
The following example illustrates the model and gives an overview of the type of data that needs to be set at various levels: