Expedia Group Rate Plan API

The rate plan resource

OpenAPI Specification

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