openapi: 3.0.1 info: title: Expedia Group Product API description: | The Product API will enable Expedia lodging partners to read, create and edit room types and rate plans via APIs, without having to use Partner Central or contact their market manager.

To start experimenting, please use your existing EQC credentials and properties. contact: name: Lodging Connectivity url: https://expediaconnectivity.com/developer email: eqcss@expedia.com version: "2.0" servers: - url: https://services.expediapartnercentral.com/ tags: - name: Property description: The property resource - name: Rate Plan description: The rate plan resource - name: Rate Verification Thresholds description: Manage room types Rate Verification Thresholds - name: Room Type description: Manage room types - name: Room Type Amenities description: Manage room type amenities paths: /products/properties: get: tags: - Property summary: Expedia Group Obtain a list of properties operationId: getProperties parameters: - name: status in: query description: Status filter. String. Only supported value is "all". schema: type: string - name: offset in: query description: Pagination offset. Integer starting at 0 schema: type: string default: "0" - name: limit in: query description: Pagination limit. Integer between 1 and 200. schema: type: string default: "20" responses: "200": description: OK content: application/vnd.expedia.eps.product-v2+json: schema: $ref: '#/components/schemas/ResponseWrapperDTO«List«PropertyDTO»»' security: - Basic: [] /products/properties/{propertyId}: get: tags: - Property summary: Expedia Group Read a single property operationId: getProperty parameters: - name: propertyId in: path description: Expedia Property ID required: true schema: type: string responses: "200": description: OK content: application/vnd.expedia.eps.product-v2+json: schema: $ref: '#/components/schemas/ResponseWrapperDTO«PropertyDTO»' security: - Basic: [] /properties/{propertyId}/roomTypes: get: tags: - Room Type summary: Expedia Group Obtain a list of room types for a given property operationId: getRoomTypes parameters: - name: propertyId in: path description: Expedia Property ID required: true schema: type: string responses: "200": description: OK content: application/vnd.expedia.eps.product-v3+json: schema: type: array items: $ref: '#/components/schemas/RoomType' default: description: Error content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/Errors' security: - Basic: [] post: tags: - Room Type summary: Expedia Group Creates a new room type operationId: createRoomType parameters: - name: propertyId in: path description: Expedia Property ID required: true schema: type: string requestBody: description: roomType content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/RoomType' required: true responses: "201": description: Created content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/RoomType' default: description: Error content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/Errors' security: - Basic: [] x-codegen-request-body-name: roomType /properties/{propertyId}/roomTypes/{roomTypeId}: get: tags: - Room Type summary: Expedia Group Read a single room type from a given property operationId: getRoomType 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 responses: "200": description: OK content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/RoomType' default: description: Error content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/Errors' security: - Basic: [] put: tags: - Room Type summary: Expedia Group Modify an existing room type operationId: updateRoomType 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: roomType content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/RoomType' required: true responses: "200": description: OK content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/RoomType' default: description: Error content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/Errors' security: - Basic: [] x-codegen-request-body-name: roomType patch: tags: - Room Type summary: Expedia Group Patch an existing room type operationId: patchRoomType 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 of partially updated room type content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/RoomType' required: true responses: "200": description: OK content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/RoomType' default: description: Error content: application/vnd.expedia.eps.product-v3+json: schema: $ref: '#/components/schemas/Errors' security: - Basic: [] x-codegen-request-body-name: roomTypeBody /properties/{propertyId}/roomTypes/{roomTypeId}/amenities: get: tags: - Room Type Amenities summary: Expedia Group Read a single room type's amenities operationId: getRoomTypeAmenities parameters: - name: propertyId in: path description: Expedia Property ID required: true schema: type: string - name: roomTypeId in: path description: Room type resource ID. Integer required: true schema: type: string responses: "200": description: OK content: application/vnd.expedia.eps.product-v2+json: schema: $ref: '#/components/schemas/ResponseWrapperDTO«List«RoomTypeAmenityDTO»»' security: - Basic: [] put: tags: - Room Type Amenities summary: Expedia Group Set room type amenities to an existing room type operationId: setRoomTypeAmenities 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 with the room type amenities content: application/vnd.expedia.eps.product-v2+json: schema: type: array items: $ref: '#/components/schemas/RoomTypeAmenityDTO' required: true responses: "200": description: OK content: application/vnd.expedia.eps.product-v2+json: schema: $ref: '#/components/schemas/ResponseWrapperDTO«List«RoomTypeAmenityDTO»»' security: - Basic: [] x-codegen-request-body-name: roomTypeAmenityDTOs /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 /properties/{propertyId}/roomTypes/{roomTypeId}/rateThresholds: get: tags: - Rate Verification Thresholds summary: Expedia Group Read a single room type's rate verification thresholds operationId: getRateVerificationThresholds parameters: - name: propertyId in: path description: Expedia Property ID required: true schema: type: string - name: roomTypeId in: path description: Room type resource ID. Integer required: true schema: type: string responses: "200": description: OK content: application/vnd.expedia.eps.product-v2+json: schema: $ref: '#/components/schemas/ResponseWrapperDTO«RateVerificationThresholdsDTO»' security: - Basic: [] components: schemas: 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 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 '-'" RateVerificationThresholdsDTOLinks: type: object properties: self: $ref: '#/components/schemas/LinkDTO' ErrorDTO: type: object properties: code: type: integer format: int32 message: type: string ApiError: type: object properties: code: type: integer format: int32 message: type: string 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 PropertyAddressDTO: type: object properties: city: type: string description: City in which the property is located countryCode: type: string description: "ISO 3166-1 Alpha 3 country code, for the country where the property is located" line1: type: string description: First line of address line2: type: string description: "Second line of address, not always available" postalCode: type: string description: "Postal or State Code, might not be available" state: type: string description: "State/Province, which is optional and thus might not be available" 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 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 RateVerificationThresholdsDTO: type: object properties: _links: $ref: '#/components/schemas/RateVerificationThresholdsDTOLinks' maxAmount: type: number description: "Defines maximum acceptable rates. If the rate is higher than this maximum value, the AR rate update will be ignored and a warning will be returned." format: double minAmount: type: number description: "Defines minimum acceptable rates. If the rate is lower than this minimum value, the AR rate update will be ignored and a warning will be returned." format: double source: type: string description: "Defines how the minimum and maximum amounts were calculated. It is either RecentBookings (thresholds calculated using last 10 reservations, and applying multiplication and division factor to find maximum and minimum values) or Manual (manually defined by Expedia). RecentReservation is Expedia's default method." enum: - RecentBookings - ManualOverride type: type: string description: "Type of the rate verification thresholds. The only possible value is: SellLAR" enum: - NetRate - SellLAR 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 RoomTypeAmenityDTO: required: - code type: object properties: code: type: string description: Uniquely identifies an amenity detailCode: type: string description: "Adds precision or qualifies the amenity. Mandatory for some amenity, optional for other and prohibited by the rest of the amenities." value: type: number description: "Number. Adds precision to the amenity. Mandatory for some amenity, optional for other and prohibited by the rest of the amenities." 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 ResponseWrapperDTO«List«RatePlanDTO»»: type: object properties: entity: type: array items: $ref: '#/components/schemas/RatePlanDTO' errors: type: array items: $ref: '#/components/schemas/ErrorDTO' ResponseWrapperDTO«List«PropertyDTO»»: type: object properties: entity: type: array items: $ref: '#/components/schemas/PropertyDTO' errors: type: array items: $ref: '#/components/schemas/ErrorDTO' RnsAttributesDTO: type: object properties: accessibility: type: boolean description: Attribute that determines if room is considered wheelchair accessible example: false area: type: string description: Attributed used to highlight the location of the room bedroomDetails: type: string description: Attribute that describes details of the bedroom used to compose the name of the room customLabel: type: string description: Free text that can be appended to the name generated by the attributes. Use of this attribute is discouraged (see full spec). Max 37 characters featuredAmenity: type: string description: Attribute used to highlight a feature of the room on its name includeBedType: type: boolean description: Attribute that determines whether or not to include bed type on the room name example: false includeSmokingPref: type: boolean description: Attribute that determines if room has smoking preference example: false roomClass: type: string description: "Attribute that described the class of room, which is used to compose the name" typeOfRoom: type: string description: "Attribute that determines the type of room, which is used to compose the name" view: type: string description: Attribute that gives additional information about the view of the room 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 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 LinkDTO: type: object properties: href: type: string description: The link's URL. BedDTO: required: - type type: object properties: quantity: type: integer format: int64 size: type: string type: type: string enum: - Bunk Bed - Full Bed - Futon - King Bed - Murphy Bed - Queen Bed - Sofa Bed - Trundle Bed - Twin Bed - Twin XL Bed - Water Bed 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' Errors: type: object properties: errors: type: array items: $ref: '#/components/schemas/ApiError' ResponseWrapperDTO«RatePlanDTO»: type: object properties: entity: $ref: '#/components/schemas/RatePlanDTO' errors: type: array items: $ref: '#/components/schemas/ErrorDTO' 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 CutOffDTO: type: object properties: day: type: string description: Can be of same day or next day. Complements the time attribute enum: - sameDay - nextDay time: type: string description: Indicates at which time we’ll stop making inventory available for same day reservations ResponseWrapperDTO«PropertyDTO»: type: object properties: entity: $ref: '#/components/schemas/PropertyDTO' errors: type: array items: $ref: '#/components/schemas/ErrorDTO' ResponseWrapperDTO«RateVerificationThresholdsDTO»: type: object properties: entity: $ref: '#/components/schemas/RateVerificationThresholdsDTO' errors: type: array items: $ref: '#/components/schemas/ErrorDTO' SurchargeDTO: required: - type type: object properties: type: type: string description: The type of surcharge applied to the extra bed. example: Per Day enum: - Free - Per Day - Per Night - Per Week - Per Stay amount: type: number description: "If the surcharge type is different than 'Free', must be greater than 0. Otherwise, must not be defined." format: double example: 10.0 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' 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' ResponseWrapperDTO«List«RoomTypeAmenityDTO»»: type: object properties: entity: type: array items: $ref: '#/components/schemas/RoomTypeAmenityDTO' errors: type: array items: $ref: '#/components/schemas/ErrorDTO' PropertyDTO: type: object properties: address: $ref: '#/components/schemas/PropertyAddressDTO' allowedAgeCategories: type: array items: type: string enum: - Adult - ChildAgeA - ChildAgeB - ChildAgeC - ChildAgeD - Infant baseAllocationEnabled: type: boolean description: Boolean to indicate whether this property has a base allocation contract with Expedia. example: false cancellationTime: type: string description: "Cancellation deadline reference time. When cancel policies are defined and exchanged via the rate plan resource, a deadline in hours is provided. The deadline in hours is always relative to this property cancellation deadline reference time configuration" currency: type: string description: "Format: ISO 4217 Alpha 3. This currency code is applicable to all amounts found in any resources available as part of the EPS Product API." distributionModels: type: array description: Distribution model(s) under which the property is configured to work with Expedia items: type: string enum: - ExpediaCollect - HotelCollect name: type: string description: Name describing the property. Max. 255 characters partnerCode: type: string description: Partner property code/identifier. Max 64 characters. Optional field returned for connected properties. This code allows partner to uniquely identify the property in its system. pricingModel: type: string description: Configuration of the property when it comes to pricing rooms and rates. enum: - PerDayPricing - OccupancyBasedPricing rateAcquisitionType: type: string description: "Describes which type of rate will be provided via this API, but also which type of rate should be used when managing availability and rates in ExpediaPartnerCentral or using EC or EQC APIs." enum: - NetRate - SellLAR ratePlanLinkageEnabled: type: boolean description: Descriptive information on if the property is enabled for linkage or not. example: false reservationCutOff: $ref: '#/components/schemas/CutOffDTO' resourceId: type: integer description: "Expedia ID for this resource. Generated when created. Generated on POST, required on PUT" format: int32 status: type: string description: "Status in which the property can be in; Allowed values are: Active, Inactive, Onboarding, UnderConversion" enum: - Active - Inactive - Onboarding - UnderConversion 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. example: false timezone: type: string description: "Descriptive information about property timezone configuration in Expedia system. Description will start by a GMT offset, followed by a friendly name." AgeCategory: title: AgeCategory type: object properties: category: type: string description: The age category whose occupancy is being defined enum: - Adult - ChildAgeA - ChildAgeB - ChildAgeC - ChildAgeD - Infant minAge: type: integer description: "Minimum age allowed for the category. Min 0, max 99" format: int32 BedGroup: title: BedGroup type: object properties: option: type: array description: List of bedding option items: $ref: '#/components/schemas/BedOption' BedOption: title: BedOption type: object properties: quantity: type: integer format: int32 size: type: string enum: - Crib - Full - King - Queen - Twin - Twin Xl type: type: string enum: - Bunk Bed - Full Bed - Futon - King Bed - Murphy Bed - Queen Bed - Sofa Bed - Trundle Bed - Twin Bed - Twin Xl Bed - Water Bed Bedroom: title: Bedroom required: - bedding - count type: object properties: bedding: type: array items: $ref: '#/components/schemas/BedGroup' count: type: integer format: int32 ExtraBed: title: ExtraBed type: object properties: quantity: type: integer format: int32 size: type: string enum: - Crib - Full - King - Queen - Twin - Twin Xl surcharge: $ref: '#/components/schemas/Surcharge' type: type: string enum: - Crib - Day Bed - Rollaway Bed - Sofa Bed Link: title: Link type: object properties: href: type: string description: The link's URL. Links: title: Links type: object properties: self: $ref: '#/components/schemas/Link' LivingRoom: title: LivingRoom type: object properties: bedding: type: array items: $ref: '#/components/schemas/BedGroup' count: type: integer format: int32 NameAttributes: title: NameAttributes required: - typeOfRoom type: object properties: accessibility: type: boolean description: Attribute that determines if room is considered wheelchair accessible area: type: string description: Attributed used to highlight the location of the room bedroomDetails: type: string description: Attribute that describes details of the bedroom used to compose the name of the room customLabel: type: string description: Free text that can be appended to the name generated by the attributes. Use of this attribute is discouraged (see full spec). Max 37 characters featuredAmenity: type: string description: Attribute used to highlight a feature of the room on its name includeBedType: type: boolean description: Attribute that determines whether or not to include bed type on the room name includeSmokingPref: type: boolean description: Attribute that determines if room has smoking preference roomClass: type: string description: "Attribute that described the class of room, which is used to compose the name" typeOfRoom: type: string description: "Attribute that determines the type of room, which is used to compose the name" view: type: string description: Attribute that gives additional information about the view of the room Occupancy: title: Occupancy type: object properties: adults: type: integer format: int32 children: type: integer format: int32 total: type: integer format: int32 RegistrationRecord: title: RegistrationRecord required: - registrationNumber type: object properties: expiry: type: string description: Registration Number Expiry. Format is YYYY-MM-DD. registrationNumber: type: string description: Registration Number registrationNumberType: type: string description: Registration Number Type enum: - BUSINESS_LICENSE_NUMBER - BUSINESS_TAX_ID - HOTEL_LICENSE - LICENSE_ID - LICENSE_NUMBER - OPERATOR_LICENSE_ID - PARTIAL_TAX_ID - PERMIT_NUMBER - PLANNING_NUMBER - REGISTRATION_NUMBER - RESORT_TAX_ID - SHORT_TERM_RENTAL_LICENSE - TOURIST_DEVELOPMENT_TAX_ACCOUNT_NUMBER RegulatoryRecords: title: RegulatoryRecords type: object properties: category: type: string description: Regulatory Category enum: - BED_AND_BREAKFAST - EVENT - HOTEL - HOTEL_OR_BNB - HOTEL_RYOKAN - LONG_TERM_ONLY - MINPAKU - NO_LICENSE - PRIMARY_HOME - PRIMARY_HOME_WITH_EXCEPTION - PRIMARY_OR_SECONDARY - RYOKAN - SECONDARY_HOME - SHORT_TERM_RENTAL - SIMPLE_LODGING - SPECIAL - VACATION_RENTAL records: type: array description: Registration Records items: $ref: '#/components/schemas/RegistrationRecord' RoomType: title: RoomType required: - ageCategories - bedrooms - floorSize - maxOccupancy - name - partnerCode - smokingPreferences type: object properties: resourceId: type: integer description: "Expedia ID for this resource. Generated when created. Generated on POST, required on PUT" format: int64 partnerCode: type: string description: Partner room type code/identifier. Max. 40 characters status: type: string description: "Room type status is derived from the rate plans under the room type: if at least 1 rate plan is active, the room type status will be active. If all rate plans are inactive, then the room type becomes inactive as well." enum: - Active - Inactive name: $ref: '#/components/schemas/RoomTypeName' ageCategories: type: array description: "Defines the different age categories supported by the room type. At the very least, the 'Adult' category must be defined." items: $ref: '#/components/schemas/AgeCategory' bedrooms: type: array description: Defines list of bedrooms the room type have items: $ref: '#/components/schemas/Bedroom' extraBedding: type: array description: "Defines the configuration (type, size and quality) of any extra beds the room type may have." items: $ref: '#/components/schemas/ExtraBed' floorSize: $ref: '#/components/schemas/Size' livingRooms: type: array description: Defines list of living rooms the room type have items: $ref: '#/components/schemas/LivingRoom' maxOccupancy: $ref: '#/components/schemas/Occupancy' regulatoryRecords: $ref: '#/components/schemas/RegulatoryRecords' smokingPreferences: type: array description: "Used to define whether the room type is smoking, nonsmoking, or if both options are available on request. If a single smoking option is provided, then the room is, by default, only available in this configuration. If both options are provided, then a choice will be offered to the customer at the time he makes a reservation, and the customer preference will be sent in electronic booking messages to the partner" items: type: string enum: - Smoking - Non-Smoking views: type: array description: Used to indicate the views available from this room. items: type: string enum: - Bay View - Beach View - Canal View - City View - Courtyard View - Desert View - Garden View - Golf View - Harbor View - Hill View - Lagoon View - Lake View - Partial Lake View - Marina View - Mountain View - Ocean View - Partial Ocean View - Park View - Pool View - Resort View - River View - Sea View - Partial Sea View - Valley View - Vineyard View - Water View wheelchairAccessibility: type: boolean description: Used to indicate whether the room is configured to be wheelchair accessible or not. _links: $ref: '#/components/schemas/Links' RoomTypeName: title: RoomTypeName required: - attributes - value type: object properties: attributes: $ref: '#/components/schemas/NameAttributes' value: type: string description: The custom name provided for the room. Max. 255 characters. Not to be used in conjunction with the attributes Size: title: Size required: - squareFeet - squareMeters type: object properties: squareFeet: type: integer description: Room size in square feet. No decimals. format: int32 squareMeters: type: integer description: Room size in square meters. No decimals. format: int32 Surcharge: title: Surcharge required: - type type: object properties: amount: type: number description: "If the surcharge type is different than 'Free', must be greater than 0. Otherwise, must not be defined." format: double type: type: string description: The type of surcharge applied to the extra bed. enum: - Free - Per Day - Per Night - Per Week - Per Stay - Unknown securitySchemes: Basic: type: http scheme: basic