> ## Documentation Index
> Fetch the complete documentation index at: https://docs.d-edge.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> This site documents the D-EDGE APIs for technology partners (web agencies, OTAs, PMS and RMS vendors, booking and CRM tools). It is written for developers integrating with hotels that use the D-EDGE platform.
> Seven APIs, grouped by domain. Connectivity: Channel Manager API (distribute a hotel's inventory to your channel and send bookings back). Pricing & Availability: Best Price API (best offers to highlight), Quotation API (all bookable offers for a stay), Daily Rates API (daily availability between two dates). Booking: Booking Engine API (a hotel's full direct booking funnel), Gift Shop API (gift vouchers from catalogue to payment). Guest Management: CRM API (guest profiles).
> Pick the API by the need: to display prices, use the Best Price API or the Daily Rates API; to quote a specific stay, use the Quotation API; to book, use the Booking Engine API; to sell gift vouchers, use the Gift Shop API; to manage guest profiles, use the CRM API; to receive hotel inventory and send bookings back as a distribution channel, use the Channel Manager API.
> Base URLs, hotel identifiers, and credentials are delivered by the D-EDGE partnership team during onboarding. Do not invent base URLs, endpoints, parameters, or example credentials that do not appear on these pages.
> Authentication differs per API: OAuth 1.0 for Best Price, Quotation, Daily Rates, and Booking Engine; an X-API-KEY header for Gift Shop; OAuth 2.0 client credentials for CRM; partner-defined credentials carried in the XML message for the Channel Manager API. Read each API's Authentication page before writing code.
> A mock environment returns realistic but fictitious data without credentials. The Postman and Insomnia collections on the API collections page target it by default. Use it for exploration and tests, never for production traffic.
> Use the official names exactly: D-EDGE, D-EDGE platform, Channel Manager API, partnership team. Do not use Back Office or Extranet.
> Each API has a Changelog page. Check it for the current behaviour before relying on an older answer. For questions these pages do not answer, direct the reader to the Contact us page.

# Per day

> Daily availabilities, prices, and restrictions for one hotel



## OpenAPI

````yaml daily-rates-api/open-api/daily-rates-api.json POST /Planning/2018A/DailyRates/PerDay
openapi: 3.0.1
info:
  title: Daily Rates Service
  version: 2018A
servers:
  - url: https://{apiBaseUrl}
    variables:
      apiBaseUrl:
        default: api.example.com
        description: Base URL delivered by D-EDGE during partnership setup
security: []
paths:
  /Planning/2018A/DailyRates/PerDay:
    post:
      tags:
        - DailyRates
      summary: >-
        Retrieve availabilities, prices and restrictions, for a given guest
        configuration, day by day.
      description: >-
        Retrieve availabilities, prices and restrictions, for a given guest
        configuration, day by day.
      requestBody:
        description: >-
          The period to return (begin and end dates, both included), the guests,
          the rate plans, rooms and rates to look at, and the layout listing the
          properties to compute and return.
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/DailyRatesRequest'
              description: >-
                Request for daily prices within a specified date range, for a
                given number of guests
      responses:
        '200':
          description: >-
            One entity per room and rate combination, grouped by rate plan and
            hotel, each property returned as a daily breakdown over the
            requested period.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DailyRatesEntityResponsePlanningResponse'
        '400':
          description: >-
            The request is malformed, or a required field is missing or out of
            range. The response body lists the fields in error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpValidationProblemDetails'
        '401':
          description: The authentication token is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: >-
            The impersonation is not consistent with the scope of the
            authentication token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    DailyRatesRequest:
      required:
        - beginDate
        - endDate
        - filter
        - layout
      type: object
      properties:
        filter:
          allOf:
            - $ref: '#/components/schemas/QuotationFilter'
        layout:
          allOf:
            - $ref: '#/components/schemas/PlanningLayout'
          description: List of fields sent back
        impersonation:
          allOf:
            - $ref: '#/components/schemas/Impersonation'
          description: Impersonation information to restrict the scope of the request
          nullable: true
        guests:
          type: array
          items:
            $ref: '#/components/schemas/Guests'
          description: "Number of guests the price is requested for. One item per \"party\". At least one item mandatory.\r\nThis field is mandatory for all hotels using price with supplements"
          nullable: true
        beginDate:
          type: string
          description: First date to be returned
          format: date
          example: '2027-08-31'
        endDate:
          type: string
          description: End of the requested period. This date is included.
          format: date
          example: '2027-08-31'
      additionalProperties: false
      description: >-
        Request for daily prices within a specified date range, for a given
        number of guests
    DailyRatesEntityResponsePlanningResponse:
      type: object
      properties:
        defaultCurrency:
          type: string
          description: "The most used currency among the entities in the response, as an ISO 4217 code.\r\nIf there is no entity returned, EUR is returned."
          nullable: true
          example: EUR
        ratePlans:
          type: array
          items:
            $ref: '#/components/schemas/DailyRatesEntityResponseRatePlanResponse'
          nullable: true
      additionalProperties: false
    HttpValidationProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          nullable: true
      additionalProperties: {}
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    QuotationFilter:
      required:
        - ratePlans
      type: object
      properties:
        ratePlans:
          type: array
          items:
            $ref: '#/components/schemas/RatePlanFilter'
          description: List of rate plans to request
        rooms:
          allOf:
            - $ref: '#/components/schemas/RoomIdEntityFilter'
          description: List of rooms to request
          nullable: true
        occupancies:
          allOf:
            - $ref: '#/components/schemas/OccupancyIdEntityFilter'
          description: List of occupancies to request
          nullable: true
        rates:
          allOf:
            - $ref: '#/components/schemas/RateIdEntityFilter'
          description: List of rates to request
          nullable: true
        currencies:
          allOf:
            - $ref: '#/components/schemas/StringEntityFilter'
          description: List of currencies to request
          nullable: true
        status:
          type: array
          items:
            enum:
              - Available
              - OnRequest
              - NotAvailable
            type: string
            description: "Whether the entity can be booked\r\n- Available: Room is available for booking\r\n- OnRequest: Hotel must confirm availability before booking\r\n- NotAvailable: Room is not available for booking"
          description: List of statuses to request
          nullable: true
        planningQualifiers:
          type: array
          items:
            $ref: '#/components/schemas/PlanningQualifierSet'
          description: "Named sets of qualifiers used to tag the returned entities.\r\nEach entity matching a set is returned with that set name in its QualifierSets field."
          nullable: true
        options:
          type: array
          items:
            enum:
              - SalesAgentAccess
              - PrivateRatesIncluded
              - TestHotelsIncluded
              - MobileOffersIncluded
            type: string
            description: "Options affecting the results\r\n- SalesAgentAccess: Add SalesAgentAccess value in the Options field in order to indicate that the client is a sales agent and that the entities should be returned only if the hotel accepts bookings coming from sales agents.\r\n- PrivateRatesIncluded: Private rates are excluded by default. Add this option to include private rates in the response.\r\n- TestHotelsIncluded: Test hotels are excluded by default.\n            To be returned the test hotels need to be explicitly requested by using the filter / rateplan / hotels / exceptions or by adding the TestHotelsIncluded value in the Options field.\r\n- MobileOffersIncluded: Mobile offers are excluded by default. Add this option to include eligible mobile offers (public or private) in the response."
          description: Options affecting the rates that can be returned
          nullable: true
        customerLocation:
          allOf:
            - $ref: '#/components/schemas/CustomerLocation'
          description: Geographical location of the client trying to access the pricing
          nullable: true
        loyaltyProgram:
          allOf:
            - $ref: '#/components/schemas/LoyaltyProgram'
          description: >-
            Loyalty program information of the client trying to access the
            pricing
          nullable: true
      additionalProperties: false
    PlanningLayout:
      required:
        - levels
      type: object
      properties:
        levels:
          type: array
          items:
            $ref: '#/components/schemas/PlanningLayoutLevel'
      additionalProperties: false
      description: List of fields sent back
    Impersonation:
      type: object
      properties:
        hotelId:
          allOf:
            - $ref: '#/components/schemas/HotelId'
          description: "Restrict the scope of the request to this hotel.\r\nMandatory with a Hotel token, optional otherwise; when set with a HotelView token, GroupId must be set as well."
          nullable: true
          example: 1234
        groupId:
          allOf:
            - $ref: '#/components/schemas/GroupId'
          description: "Restrict the scope of the request to this distribution group.\r\nMandatory with a System token, optional otherwise; when set with a HotelView token, HotelId must be set as well."
          nullable: true
          example: 9876
        userId:
          allOf:
            - $ref: '#/components/schemas/UserId'
          nullable: true
          deprecated: true
        bookingEngineId:
          allOf:
            - $ref: '#/components/schemas/BookingEngineId'
          description: Restrict the scope of the request to this booking engine.
          nullable: true
          example: 1XXA
      additionalProperties: false
      description: "Narrows the scope of the request to a single group, hotel or booking engine.\r\nImpersonation does not grant access: it selects, inside the scope your authentication token\r\nalready allows, the context the call must run in.\r\n            \r\nEach token carries a scope, and impersonation must be consistent with it:\r\n            \r\n- System token (internal applications only): GroupId is mandatory, HotelId optional.\r\n- Group token: GroupId is optional but must match the token group; HotelId is optional; BookingEngineId must be empty.\r\n- Hotel token: HotelId is mandatory and must match the token hotel; GroupId is optional and can be the group rate plan; BookingEngineId must be empty.\r\n- HotelView token: GroupId and HotelId are both optional, but if one is set the other must be set too, and both must match the token; BookingEngineId must be empty.\r\n- BookingEngine token: impersonation is ignored. The scope is entirely defined by the booking engine of the token, whatever is sent in this object.\r\n            \r\nIf your application has access to multiple tokens with different scopes, always set your\r\nimpersonation with the group and hotel of that scope. This avoids issues with token reuse and\r\nimproves performance.\r\n            \r\nAn impersonation inconsistent with the token scope is rejected with a 403 Forbidden. For\r\nexample, with a HotelView token on hotel 2 of group 1, setting GroupId without HotelId (or\r\nHotelId without GroupId) is forbidden."
    Guests:
      required:
        - adults
      type: object
      properties:
        adults:
          maximum: 2147483647
          minimum: 1
          type: integer
          description: Number of adults in the room, minimum 1
          format: int32
          example: 2
        children:
          type: array
          items:
            $ref: '#/components/schemas/Child'
          description: List of children in the room
          nullable: true
        infants:
          maximum: 2147483647
          minimum: 0
          type: integer
          description: Number of babies in the room, minimum 0
          format: int32
          example: 0
      additionalProperties: false
    DailyRatesEntityResponseRatePlanResponse:
      type: object
      properties:
        groupId:
          allOf:
            - $ref: '#/components/schemas/GroupId'
          description: The group identifier.
          example: 9876
        referenceRateCode:
          type: string
          description: The rate code or promo code used for the request.
          nullable: true
        hotels:
          type: array
          items:
            $ref: '#/components/schemas/DailyRatesEntityResponseHotelResponse'
          nullable: true
      additionalProperties: false
    RatePlanFilter:
      type: object
      properties:
        hotels:
          allOf:
            - $ref: '#/components/schemas/HotelIdEntityFilter'
          description: List of hotels to request
          nullable: true
        groupId:
          allOf:
            - $ref: '#/components/schemas/GroupId'
          description: Group identifier of the rate plan
          example: 9876
        referenceRateCode:
          type: string
          description: Either a Rate Code or a Private Offer Code Rate
          nullable: true
          example: RACKPRI
      additionalProperties: false
    RoomIdEntityFilter:
      type: object
      properties:
        exceptions:
          type: array
          items:
            $ref: '#/components/schemas/RoomId'
          description: "List of identifiers to include or exclude.\r\nMust be combined with the Default field, which decides how this list is read."
          nullable: true
        default:
          enum:
            - Included
            - Excluded
          type: string
          description: "How the Exceptions list is applied\r\n- Included: Items are returned if they are not mentioned in the Exceptions list. An empty list means all items\r\n- Excluded: Items are returned only if they are mentioned in the Exceptions list"
      additionalProperties: false
    OccupancyIdEntityFilter:
      type: object
      properties:
        exceptions:
          type: array
          items:
            $ref: '#/components/schemas/OccupancyId'
          description: "List of identifiers to include or exclude.\r\nMust be combined with the Default field, which decides how this list is read."
          nullable: true
        default:
          enum:
            - Included
            - Excluded
          type: string
          description: "How the Exceptions list is applied\r\n- Included: Items are returned if they are not mentioned in the Exceptions list. An empty list means all items\r\n- Excluded: Items are returned only if they are mentioned in the Exceptions list"
      additionalProperties: false
    RateIdEntityFilter:
      type: object
      properties:
        exceptions:
          type: array
          items:
            $ref: '#/components/schemas/RateId'
          description: "List of identifiers to include or exclude.\r\nMust be combined with the Default field, which decides how this list is read."
          nullable: true
        default:
          enum:
            - Included
            - Excluded
          type: string
          description: "How the Exceptions list is applied\r\n- Included: Items are returned if they are not mentioned in the Exceptions list. An empty list means all items\r\n- Excluded: Items are returned only if they are mentioned in the Exceptions list"
      additionalProperties: false
    StringEntityFilter:
      type: object
      properties:
        exceptions:
          type: array
          items:
            type: string
          description: "List of identifiers to include or exclude.\r\nMust be combined with the Default field, which decides how this list is read."
          nullable: true
        default:
          enum:
            - Included
            - Excluded
          type: string
          description: "How the Exceptions list is applied\r\n- Included: Items are returned if they are not mentioned in the Exceptions list. An empty list means all items\r\n- Excluded: Items are returned only if they are mentioned in the Exceptions list"
      additionalProperties: false
    PlanningQualifierSet:
      type: object
      properties:
        name:
          type: string
          description: "Name of the set, reported in the QualifierSets field of the matching entities.\r\nMandatory as soon as the set contains at least one qualifier."
          nullable: true
          example: cheapest
        qualifiers:
          type: array
          items:
            $ref: '#/components/schemas/PlanningQualifier'
          description: >-
            Qualifiers an entity must all match to belong to this set. An empty
            list matches every entity
          nullable: true
      additionalProperties: false
      description: >-
        A named set of qualifiers. Entities matching every qualifier of the set
        carry its name in the response.
    CustomerLocation:
      type: object
      properties:
        geonameId:
          allOf:
            - $ref: '#/components/schemas/ToponymId'
          description: "Customer Country Identifier\r\nIf missing, Geo Pricing restrictions are not enforced."
      additionalProperties: false
      description: Geographical location of the client trying to access the pricing
    LoyaltyProgram:
      type: object
      properties:
        membershipLevel:
          type: integer
          description: Customer Membership level (default is 0)
          format: int32
          example: 0
      additionalProperties: false
      description: Loyalty program information of the client trying to access the pricing
    PlanningLayoutLevel:
      required:
        - properties
      type: object
      properties:
        name:
          enum:
            - Hotel
            - Article
            - ArticleRate
          type: string
          description: The level of entity the properties apply to. Use ArticleRate
        properties:
          type: array
          items:
            enum:
              - Status
              - Availability
              - TotalPrice
              - MinimumPrice
              - MaximumPrice
              - DiscountPrice
              - DiscountNightCount
              - CrossedOutPrice
              - Price
              - MixedRates
              - ClosedOnArrival
              - ClosedOnDeparture
              - MinimumStayOnArrival
              - MinimumStayThrough
              - MinimumStayOnDeparture
              - MaximumStayOnArrival
              - MaximumStayThrough
              - MaximumStayOnDeparture
              - Occupancies
              - Taxes
              - PublicOffer
              - OriginalPrice
              - IncludedArticles
              - DiscountNightPrice
              - DailyOriginalPrice
              - DailyTotalPrice
              - DailyCrossedOutPrice
              - DailyRoomPrice
              - DailyIncludedArticlesPrice
              - Promotions
              - AlternativeAvailableGuests
              - CancellationCondition
              - TaxesAndFees
              - DailyTaxesAndFeesPrice
            type: string
            description: "A property to compute and return. Requesting a property drives both the computation performed\r\nby the service and the fields present in the response.\r\n- Status: Return availability status and unavailability reasons\r\n- Availability: Return number of available units\r\n- TotalPrice: Return price for the stay\r\n- MinimumPrice: Return cheapest night of the stay\r\n- MaximumPrice: Return most expensive night of the stay\r\n- DiscountPrice: [Obsolete] Use Promotions instead.\r\n- DiscountNightCount: Return number of free nights applied to the stay\r\n- CrossedOutPrice: Compute and return price for linked crossed out rate\r\n- Price: [Obsolete] Use TotalPrice instead\r\n- MixedRates: Compute and return mixed rates.\r\n- ClosedOnArrival: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- ClosedOnDeparture: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MinimumStayOnArrival: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MinimumStayThrough: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MinimumStayOnDeparture: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MaximumStayOnArrival: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MaximumStayThrough: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MaximumStayOnDeparture: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- Occupancies: Check alternate occupancies for availability\r\n- Taxes: [Obsolete] Use TaxesAndFees layout if the hotel has migrated to the Tax Center.\r\n- PublicOffer: Compute and return applicable public campaigns and promotions\r\n- OriginalPrice: Return original prices for promotions\r\n- IncludedArticles: Return meal plans and other mandatory services.\n            WARN: If omitted, prices returned will not include meals\r\n- DiscountNightPrice: Return discount caused by free nights\r\n- DailyOriginalPrice: Daily breakdown of original price\r\n- DailyTotalPrice: Daily breakdown of total price\r\n- DailyCrossedOutPrice: Daily breakdown of crossed out price\r\n- DailyRoomPrice: Daily breakdown of room price\r\n- DailyIncludedArticlesPrice: Daily breakdown of included articles price\r\n- Promotions: Compute and return applicable private promotions\r\n- AlternativeAvailableGuests: Return other lodging possibilities for that room/rate.\n            WARN: This has a strong impact on performance and should only be used for a secondary quotation after failing to accommodate guests.\r\n- CancellationCondition: Return cancellation condition applicable to the stay.\n            Note: This is only applicable for hotels that support Cancellation Conditions by letter\r\n- TaxesAndFees: Compute and return applicable taxes and fees.\n            Note: This is only applicable for hotels that have migrated to the Tax Center.\r\n- DailyTaxesAndFeesPrice: Daily breakdown of Taxes and Fees prices"
          description: List of entity properties to compute and return
      additionalProperties: false
      description: The properties to return for one level of entity
    HotelId:
      type: integer
      description: Hotel identifier.
      example: 1234
    GroupId:
      type: integer
      description: Distribution group identifier.
      example: 9876
    UserId:
      type: integer
      description: Obsolete. User identifier.
      example: 1357
    BookingEngineId:
      type: string
      description: Booking engine reference.
      example: 1XXA
    Child:
      type: object
      properties:
        age:
          maximum: 2147483647
          minimum: 0
          type: integer
          description: "Age of the child. \r\nIf missing, the service will assume the maximum age for a child on the given hotel"
          format: int32
          nullable: true
          example: 10
        count:
          maximum: 2147483647
          minimum: 0
          type: integer
          description: Number of children with that age in the room, minimum 0
          format: int32
          example: 1
      additionalProperties: false
    DailyRatesEntityResponseHotelResponse:
      type: object
      properties:
        hotelId:
          allOf:
            - $ref: '#/components/schemas/HotelId'
          description: The hotel identifier.
          example: 1234
        entities:
          type: array
          items:
            $ref: '#/components/schemas/DailyRatesEntityResponse'
          nullable: true
      additionalProperties: false
    HotelIdEntityFilter:
      type: object
      properties:
        exceptions:
          type: array
          items:
            $ref: '#/components/schemas/HotelId'
          description: "List of identifiers to include or exclude.\r\nMust be combined with the Default field, which decides how this list is read."
          nullable: true
        default:
          enum:
            - Included
            - Excluded
          type: string
          description: "How the Exceptions list is applied\r\n- Included: Items are returned if they are not mentioned in the Exceptions list. An empty list means all items\r\n- Excluded: Items are returned only if they are mentioned in the Exceptions list"
      additionalProperties: false
    RoomId:
      type: integer
      description: Room identifier.
      example: 3456
    OccupancyId:
      type: integer
      description: Occupancy identifier.
      example: 7890
    RateId:
      type: integer
      description: Rate identifier.
      example: 5678
    PlanningQualifier:
      type: object
      properties:
        propertyName:
          enum:
            - Status
            - Availability
            - TotalPrice
            - MinimumPrice
            - MaximumPrice
            - DiscountPrice
            - DiscountNightCount
            - CrossedOutPrice
            - Price
            - MixedRates
            - ClosedOnArrival
            - ClosedOnDeparture
            - MinimumStayOnArrival
            - MinimumStayThrough
            - MinimumStayOnDeparture
            - MaximumStayOnArrival
            - MaximumStayThrough
            - MaximumStayOnDeparture
            - Occupancies
            - Taxes
            - PublicOffer
            - OriginalPrice
            - IncludedArticles
            - DiscountNightPrice
            - DailyOriginalPrice
            - DailyTotalPrice
            - DailyCrossedOutPrice
            - DailyRoomPrice
            - DailyIncludedArticlesPrice
            - Promotions
            - AlternativeAvailableGuests
            - CancellationCondition
            - TaxesAndFees
            - DailyTaxesAndFeesPrice
          type: string
          description: "The property the qualifier is evaluated on\r\n- Status: Return availability status and unavailability reasons\r\n- Availability: Return number of available units\r\n- TotalPrice: Return price for the stay\r\n- MinimumPrice: Return cheapest night of the stay\r\n- MaximumPrice: Return most expensive night of the stay\r\n- DiscountPrice: [Obsolete] Use Promotions instead.\r\n- DiscountNightCount: Return number of free nights applied to the stay\r\n- CrossedOutPrice: Compute and return price for linked crossed out rate\r\n- Price: [Obsolete] Use TotalPrice instead\r\n- MixedRates: Compute and return mixed rates.\r\n- ClosedOnArrival: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- ClosedOnDeparture: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MinimumStayOnArrival: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MinimumStayThrough: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MinimumStayOnDeparture: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MaximumStayOnArrival: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MaximumStayThrough: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- MaximumStayOnDeparture: Compute and return restrictions for the stay. Restrictions are computed if any of the items is requested\r\n- Occupancies: Check alternate occupancies for availability\r\n- Taxes: [Obsolete] Use TaxesAndFees layout if the hotel has migrated to the Tax Center.\r\n- PublicOffer: Compute and return applicable public campaigns and promotions\r\n- OriginalPrice: Return original prices for promotions\r\n- IncludedArticles: Return meal plans and other mandatory services.\n            WARN: If omitted, prices returned will not include meals\r\n- DiscountNightPrice: Return discount caused by free nights\r\n- DailyOriginalPrice: Daily breakdown of original price\r\n- DailyTotalPrice: Daily breakdown of total price\r\n- DailyCrossedOutPrice: Daily breakdown of crossed out price\r\n- DailyRoomPrice: Daily breakdown of room price\r\n- DailyIncludedArticlesPrice: Daily breakdown of included articles price\r\n- Promotions: Compute and return applicable private promotions\r\n- AlternativeAvailableGuests: Return other lodging possibilities for that room/rate.\n            WARN: This has a strong impact on performance and should only be used for a secondary quotation after failing to accommodate guests.\r\n- CancellationCondition: Return cancellation condition applicable to the stay.\n            Note: This is only applicable for hotels that support Cancellation Conditions by letter\r\n- TaxesAndFees: Compute and return applicable taxes and fees.\n            Note: This is only applicable for hotels that have migrated to the Tax Center.\r\n- DailyTaxesAndFeesPrice: Daily breakdown of Taxes and Fees prices"
        qualifier:
          enum:
            - Lowest
            - Highest
          type: string
          description: "Whether the lowest or the highest value of that property qualifies\r\n- Lowest: The lowest value of the property qualifies\r\n- Highest: The highest value of the property qualifies"
      additionalProperties: false
      description: >-
        Selects the entities holding the lowest or the highest value of a given
        property
    ToponymId:
      type: integer
      description: GeoNames identifier of the customer country.
      example: 3017382
    DailyRatesEntityResponse:
      type: object
      properties:
        level:
          enum:
            - Hotel
            - Article
            - ArticleRate
          type: string
          description: >-
            Level of the entity. Only entities of level ArticleRate are
            returned.
        roomId:
          allOf:
            - $ref: '#/components/schemas/RoomId'
          description: The room identifier.
          example: 3456
        rateId:
          allOf:
            - $ref: '#/components/schemas/RateId'
          description: The rate identifier.
          example: 5678
        occupancyId:
          type: string
          description: "The optional occupancy identifier.\r\nOnly set when the entity is about an advanced occupancy and the hotel uses Occupancy Based Pricing.\r\nNot set when the entity is about a default occupancy or if the hotel uses Price Per Person.\r\nReturned as a string, for backward compatibility with the previous version of the service."
          nullable: true
          example: '7890'
        currency:
          type: string
          description: The currency code using ISO 4217.
          nullable: true
          example: EUR
        qualifierSets:
          type: string
          description: "Names of the qualifier sets this entity matched, separated by a vertical bar.\r\nA name comes from Filter.PlanningQualifiers[].Name in the request; the field is not returned when the entity matched no qualifier set."
          nullable: true
          example: cheapest
        status:
          allOf:
            - $ref: '#/components/schemas/AvailabilityStatusITemporal'
          nullable: true
        availability:
          allOf:
            - $ref: '#/components/schemas/Int32ITemporal'
          description: The count of available rooms as temporal.
          nullable: true
        totalPrice:
          allOf:
            - $ref: '#/components/schemas/DecimalITemporal'
          description: The total price for this rate as temporal.
          nullable: true
        crossedOutPrice:
          allOf:
            - $ref: '#/components/schemas/DecimalITemporal'
          description: The price to be displayed strike-through as temporal.
          nullable: true
        roomPrice:
          allOf:
            - $ref: '#/components/schemas/DecimalITemporal'
          description: The room price w/o included articles.
          nullable: true
        crossedOutRoomPrice:
          allOf:
            - $ref: '#/components/schemas/DecimalITemporal'
          description: >-
            The optional room price w/o included articles to be displayed
            strike-through as temporal.
          nullable: true
        closedOnArrival:
          allOf:
            - $ref: '#/components/schemas/BooleanITemporal'
          nullable: true
        closedOnDeparture:
          allOf:
            - $ref: '#/components/schemas/BooleanITemporal'
          nullable: true
        minimumStayOnArrival:
          allOf:
            - $ref: '#/components/schemas/StringITemporal'
          nullable: true
        maximumStayOnArrival:
          allOf:
            - $ref: '#/components/schemas/StringITemporal'
          nullable: true
        minimumStayThrough:
          allOf:
            - $ref: '#/components/schemas/StringITemporal'
          nullable: true
        maximumStayThrough:
          allOf:
            - $ref: '#/components/schemas/StringITemporal'
          nullable: true
        minimumStayOnDeparture:
          allOf:
            - $ref: '#/components/schemas/StringITemporal'
          nullable: true
        maximumStayOnDeparture:
          allOf:
            - $ref: '#/components/schemas/StringITemporal'
          nullable: true
        membershipLevel:
          type: integer
          description: "Membership level number of the loyalty program the rate belongs to.\r\nDefault value is 0 if there is no loyalty program for this rate."
          format: int32
          example: 0
        isLoyalty:
          type: boolean
          description: True when the rate belongs to a loyalty program.
        canUseRedemption:
          type: boolean
          description: >-
            True when the rate belongs to a loyalty program where the customer
            can spend reward points.
        cancellationCondition:
          allOf:
            - $ref: '#/components/schemas/CancelConditionResponseITemporal'
          description: The cancel conditions by letter as temporal.
          nullable: true
        guests:
          allOf:
            - $ref: '#/components/schemas/Guests'
          description: "If the room is available,\r\nTotalPrice, RoomPrice, DiscountPrice, OriginalPrice, CrossedOutPrice, CrossedOutRoomPrice are valid for this number of guests."
          nullable: true
        unavailabilityReasons:
          allOf:
            - $ref: '#/components/schemas/UnavailabilityReasonITemporal'
          description: Reason for unavailability
          nullable: true
        articles:
          allOf:
            - $ref: '#/components/schemas/DailyRatesArticleResponseArticlesResponse'
          description: >-
            Set only if IncludedArticles property is requested and if the entity
            contains included articles.
          nullable: true
        promotions:
          allOf:
            - $ref: '#/components/schemas/DailyRatesPromotionsResponses'
          description: "Promotions that are applicable to the entity.\r\nSet only if the Promotions property is requested and if the entity has an applicable promotion."
          nullable: true
        originalTotalPrice:
          allOf:
            - $ref: '#/components/schemas/DecimalITemporal'
          description: >-
            Total price of the entity, with included articles, for the number of
            guests requested without discounts
          nullable: true
        originalRoomPrice:
          allOf:
            - $ref: '#/components/schemas/DecimalITemporal'
          description: "Price of the entity for the night without the including articles and discounts for the number of guests requested\r\nSet only if OriginalPrice is requested and if it is different from RoomPrice.\r\nOriginalRoomPrice can be used to compute the discount on the room only(without any included article): OriginalRoomPrice - RoomPrice"
          nullable: true
      additionalProperties: false
    AvailabilityStatusITemporal:
      type: array
      items:
        type: object
        properties:
          value:
            enum:
              - Available
              - OnRequest
              - NotAvailable
            type: string
            description: "Whether the entity can be booked\r\n- Available: Room is available for booking\r\n- OnRequest: Hotel must confirm availability before booking\r\n- NotAvailable: Room is not available for booking"
          start:
            type: string
            format: date
            example: '2027-08-31'
          end:
            type: string
            format: date
            example: '2027-08-31'
    Int32ITemporal:
      type: array
      items:
        type: object
        properties:
          value:
            type: integer
            format: int32
          start:
            type: string
            format: date
            example: '2027-08-31'
          end:
            type: string
            format: date
            example: '2027-08-31'
    DecimalITemporal:
      type: array
      items:
        type: object
        properties:
          value:
            type: number
            format: double
          start:
            type: string
            format: date
            example: '2027-08-31'
          end:
            type: string
            format: date
            example: '2027-08-31'
    BooleanITemporal:
      type: array
      items:
        type: object
        properties:
          value:
            type: boolean
          start:
            type: string
            format: date
            example: '2027-08-31'
          end:
            type: string
            format: date
            example: '2027-08-31'
    StringITemporal:
      type: array
      items:
        type: object
        properties:
          value:
            type: string
          start:
            type: string
            format: date
            example: '2027-08-31'
          end:
            type: string
            format: date
            example: '2027-08-31'
    CancelConditionResponseITemporal:
      type: array
      items:
        type: object
        properties:
          value:
            $ref: '#/components/schemas/CancelConditionResponse'
          start:
            type: string
            format: date
            example: '2027-08-31'
          end:
            type: string
            format: date
            example: '2027-08-31'
    UnavailabilityReasonITemporal:
      type: array
      items:
        type: object
        properties:
          value:
            enum:
              - None
              - MinStay
              - MaxStay
              - Other
              - GuestsDoNotFitInRoom
            type: string
            description: "Why the entity is not available. Returned together with the availability status.\r\n- None: No unavailability reason applies, the entity is available\r\n- MinStay: Minimum stay constraint is not met\r\n- MaxStay: Maximum stay constraint is not met\r\n- Other: Entity is not available for another reason\r\n- GuestsDoNotFitInRoom: Entity is not available for this number of guests"
          start:
            type: string
            format: date
            example: '2027-08-31'
          end:
            type: string
            format: date
            example: '2027-08-31'
    DailyRatesArticleResponseArticlesResponse:
      type: object
      properties:
        includedArticles:
          type: array
          items:
            $ref: '#/components/schemas/DailyRatesArticleResponse'
          nullable: true
      additionalProperties: false
    DailyRatesPromotionsResponses:
      type: object
      properties:
        excluded:
          type: array
          items:
            $ref: '#/components/schemas/DailyRatesPromotionsResponse'
          description: Promotions that were not applied and must be applied to a stay
          nullable: true
        included:
          type: array
          items:
            $ref: '#/components/schemas/DailyRatesPromotionsResponse'
          description: Promotions that were applied to the entity
          nullable: true
      additionalProperties: false
    CancelConditionResponse:
      type: object
      properties:
        code:
          allOf:
            - $ref: '#/components/schemas/CancelConditionId'
          description: "Code of the cancellation condition that applies to the stay according to the planning.\r\nThis is only applicable to hotels that use “Legacy” cancellation conditions. Most hotels use a cancellation condition that is defined at the rate level. In that case, the code is null\r\nNote: The cancellation condition may be overriden by the selling condition of the group"
      additionalProperties: false
    DailyRatesArticleResponse:
      type: object
      properties:
        articleId:
          allOf:
            - $ref: '#/components/schemas/ArticleId'
          description: Article identifier
        type:
          enum:
            - None
            - PerAdultPerStay
            - PerAdultPerNight
            - PerChildPerStay
            - PerChildPerNight
            - PerInfantPerStay
            - PerInfantPerNight
            - PerAllPersonsPerStay
            - PerAllPersonsPerNight
          type: string
          description: "Article price model\r\nFor example, If price model is PerChildPerStay then it will be only applicable to children.\r\n- None: No price model is defined for the article\r\n- PerAdultPerStay: The price is charged once per adult for the whole stay\r\n- PerAdultPerNight: The price is charged per adult and per night of the stay\r\n- PerChildPerStay: The price is charged once per child for the whole stay\r\n- PerChildPerNight: The price is charged per child and per night of the stay\r\n- PerInfantPerStay: The price is charged once per infant for the whole stay\r\n- PerInfantPerNight: The price is charged per infant and per night of the stay\r\n- PerAllPersonsPerStay: The price is charged once per guest for the whole stay, whatever the age category\r\n- PerAllPersonsPerNight: The price is charged per guest and per night of the stay, whatever the age category"
        originalPrice:
          allOf:
            - $ref: '#/components/schemas/DecimalITemporal'
          description: >-
            Price for one unit of the article for all the night, as set in the
            planning, before any discount/computation/article is added.
          nullable: true
        totalPrice:
          allOf:
            - $ref: '#/components/schemas/DecimalITemporal'
          description: "Total price for one unit of the article for the night.\r\nIf PublicOffer property is requested and if the DiscountNightCount or the DiscountPrice property is requested then the public offer code discounts will be applied.\r\nIf ReferenceRateCode is set and if the DiscountNightCount property or the DiscountPrice property is requested then the private offer code discount will be applied.\r\nIf an offer code discount is applicable (percentage including extra) then it will be applied."
          nullable: true
        crossedOutPrice:
          allOf:
            - $ref: '#/components/schemas/DecimalITemporal'
          description: >-
            If the rate has a crossed out rate defined, price for one unit of
            the article, in the crossed out rate.
          nullable: true
      additionalProperties: false
    DailyRatesPromotionsResponse:
      type: object
      properties:
        offerCodeId:
          type: string
          description: Offer code identifier
          format: uuid
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        totalPrice:
          allOf:
            - $ref: '#/components/schemas/DecimalITemporal'
          description: The amount to be deducted from the booking
          nullable: true
        currency:
          type: string
          description: Iso Currency code for the amount
          nullable: true
          example: EUR
        scope:
          enum:
            - PerBooking
            - PerRoom
          type: string
          description: "Which part of the booking the promotion applies to, and its recurrence (PerBooking, PerRoom)\r\n- PerBooking: The promotion is deducted once from the whole booking, whatever the number of entities booked\r\n- PerRoom: The promotion is deducted for each entity booked"
        minStay:
          type: integer
          description: >-
            Minimum stay length in nights for this promotion to apply (null = no
            restriction)
          format: int32
          nullable: true
          example: 2
        maxStay:
          type: integer
          description: >-
            Maximum stay length in nights for this promotion to apply (null = no
            restriction)
          format: int32
          nullable: true
          example: 15
      additionalProperties: false
      description: A promotion applicable to the entity
    CancelConditionId:
      type: string
    ArticleId:
      type: integer
      description: Article identifier, for a meal plan or another mandatory service.
      example: 2468

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.