> ## 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.

# Provides extra availabilities

> Provides extra availabilities matching the session context



## OpenAPI

````yaml booking-engine-api/open-api/booking-engine-api.json GET /v2/{sessionId}/search/extras
openapi: 3.0.1
info:
  title: Booking Engine API
  version: v2
servers:
  - url: https://{apiBaseUrl}
    variables:
      apiBaseUrl:
        default: api.example.com
        description: Base URL delivered by D-EDGE during partnership setup
security: []
tags:
  - name: Basket
  - name: Booking
  - name: Configuration
  - name: Description
  - name: Loyalty
  - name: Promotion
  - name: Resources
  - name: Search
  - name: Session
paths:
  /v2/{sessionId}/search/extras:
    get:
      tags:
        - Search
      summary: Provides extra availabilities matching the session context.
      description: "Extra availabilities could be searched only if at least a room has been added in the basket.\r\n            \r\nThe **X-AVP-Properties** header attribute  can contain some or all the following values, separated with | character:\r\n* `Description`.\r\n            \r\nThe **X-AVP-DescriptionType** header attribute can contain one of the following values:\r\n* `text/html` (default)\r\n* `text/plain`\r\n* `text/x-markdown`\r\n            \r\nThe **X-AVP-PictureTemplates** should contains the list of picture templates requested, separated with | character."
      operationId: Search_GetExtras
      parameters:
        - name: X-AVP-Properties
          in: header
          description: The properties required in the response.
          required: false
          schema:
            type: string
        - name: X-AVP-DescriptionType
          in: header
          description: Mime type of the descriptions.
          required: false
          schema:
            type: string
        - name: X-AVP-PictureTemplates
          in: header
          description: The picture templates.
          required: false
          schema:
            type: string
        - name: X-AVP-Impersonation
          in: header
          description: ''
          required: false
          schema:
            type: string
        - name: sessionId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Search.Extra.HubSearchExtraResult'
              examples:
                response:
                  value:
                    roomExtras:
                      - roomId: 1234
                        extraId: 0
                        rateId: 0
                        isMandatory: false
                        isPreselected: false
                        description:
                          summary:
                            - text: >-
                                A continental breakfast can be served in your
                                room between 7am and 10.30am.
                              value: PlainText
                          pictures: []
                          counting:
                            text: per person per day
                            value: PersonDay
                          type:
                            value: Undefined
                        gratuitousnessType:
                          value: None
                        price:
                          unitPrice:
                            converted:
                              value:
                                amount: 0
                                currency: EUR
                            original:
                              value:
                                amount: 0
                                currency: EUR
                          unitCrossedOutPrice:
                            converted:
                              value:
                                amount: 0
                                currency: EUR
                            original:
                              value:
                                amount: 0
                                currency: EUR
                          totalPrice:
                            converted:
                              value:
                                amount: 0
                                currency: EUR
                            original:
                              value:
                                amount: 0
                                currency: EUR
                          crossedOutPrice:
                            converted:
                              value:
                                amount: 0
                                currency: EUR
                            original:
                              value:
                                amount: 0
                                currency: EUR
                          discountType: None
                        taxes:
                          included:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                          excluded:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                          onSite:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                        items: []
                        sortOrder: 0
                        guestPosition: 0
                    hotelExtras:
                      - roomId: 0
                        extraId: 1
                        rateId: 0
                        name: Breakfast
                        isMandatory: false
                        isPreselected: false
                        description:
                          summary:
                            - text: >-
                                A continental breakfast can be served in your
                                room between 7am and 10.30am.
                              value: PlainText
                          pictures: []
                          counting:
                            text: per person per day
                            value: PersonDay
                          type:
                            value: Undefined
                        gratuitousnessType:
                          value: None
                        price:
                          unitPrice:
                            converted:
                              text: 5 €
                              value:
                                amount: 5
                                currency: EUR
                            original:
                              text: USD 6
                              value:
                                amount: 6
                                currency: USD
                          unitCrossedOutPrice:
                            converted:
                              value:
                                amount: 0
                                currency: EUR
                            original:
                              value:
                                amount: 0
                                currency: EUR
                          totalPrice:
                            converted:
                              text: 10 €
                              value:
                                amount: 10
                                currency: EUR
                            original:
                              text: USD 12
                              value:
                                amount: 12
                                currency: USD
                          crossedOutPrice:
                            converted:
                              text: 15 €
                              value:
                                amount: 15
                                currency: EUR
                            original:
                              text: USD 18
                              value:
                                amount: 18
                                currency: USD
                          discountType: CrossedOut
                        taxes:
                          included:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                          excluded:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                          onSite:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                        items:
                          - isDefault: false
                            quantity:
                              text: Breakfast for 1 person
                              value: 1
                            price:
                              totalPrice:
                                converted:
                                  text: 10 €
                                  value:
                                    amount: 10
                                    currency: EUR
                                original:
                                  text: USD 12
                                  value:
                                    amount: 12
                                    currency: USD
                              crossedOutPrice:
                                converted:
                                  text: 15 €
                                  value:
                                    amount: 15
                                    currency: EUR
                                original:
                                  text: USD 18
                                  value:
                                    amount: 18
                                    currency: USD
                              discountType: CrossedOut
                          - isDefault: true
                            quantity:
                              text: Breakfast for 2 persons
                              value: 2
                            price:
                              totalPrice:
                                converted:
                                  text: 20 €
                                  value:
                                    amount: 20
                                    currency: EUR
                                original:
                                  text: USD 24
                                  value:
                                    amount: 24
                                    currency: USD
                              crossedOutPrice:
                                converted:
                                  text: 30 €
                                  value:
                                    amount: 30
                                    currency: EUR
                                original:
                                  text: USD 36
                                  value:
                                    amount: 36
                                    currency: USD
                              discountType: CrossedOut
                        sortOrder: 0
                        guestPosition: 0
            text/json:
              schema:
                $ref: '#/components/schemas/Search.Extra.HubSearchExtraResult'
              examples:
                response:
                  value:
                    roomExtras:
                      - roomId: 1234
                        extraId: 0
                        rateId: 0
                        isMandatory: false
                        isPreselected: false
                        description:
                          summary:
                            - text: >-
                                A continental breakfast can be served in your
                                room between 7am and 10.30am.
                              value: PlainText
                          pictures: []
                          counting:
                            text: per person per day
                            value: PersonDay
                          type:
                            value: Undefined
                        gratuitousnessType:
                          value: None
                        price:
                          unitPrice:
                            converted:
                              value:
                                amount: 0
                                currency: EUR
                            original:
                              value:
                                amount: 0
                                currency: EUR
                          unitCrossedOutPrice:
                            converted:
                              value:
                                amount: 0
                                currency: EUR
                            original:
                              value:
                                amount: 0
                                currency: EUR
                          totalPrice:
                            converted:
                              value:
                                amount: 0
                                currency: EUR
                            original:
                              value:
                                amount: 0
                                currency: EUR
                          crossedOutPrice:
                            converted:
                              value:
                                amount: 0
                                currency: EUR
                            original:
                              value:
                                amount: 0
                                currency: EUR
                          discountType: None
                        taxes:
                          included:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                          excluded:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                          onSite:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                        items: []
                        sortOrder: 0
                        guestPosition: 0
                    hotelExtras:
                      - roomId: 0
                        extraId: 1
                        rateId: 0
                        name: Breakfast
                        isMandatory: false
                        isPreselected: false
                        description:
                          summary:
                            - text: >-
                                A continental breakfast can be served in your
                                room between 7am and 10.30am.
                              value: PlainText
                          pictures: []
                          counting:
                            text: per person per day
                            value: PersonDay
                          type:
                            value: Undefined
                        gratuitousnessType:
                          value: None
                        price:
                          unitPrice:
                            converted:
                              text: 5 €
                              value:
                                amount: 5
                                currency: EUR
                            original:
                              text: USD 6
                              value:
                                amount: 6
                                currency: USD
                          unitCrossedOutPrice:
                            converted:
                              value:
                                amount: 0
                                currency: EUR
                            original:
                              value:
                                amount: 0
                                currency: EUR
                          totalPrice:
                            converted:
                              text: 10 €
                              value:
                                amount: 10
                                currency: EUR
                            original:
                              text: USD 12
                              value:
                                amount: 12
                                currency: USD
                          crossedOutPrice:
                            converted:
                              text: 15 €
                              value:
                                amount: 15
                                currency: EUR
                            original:
                              text: USD 18
                              value:
                                amount: 18
                                currency: USD
                          discountType: CrossedOut
                        taxes:
                          included:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                          excluded:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                          onSite:
                            amount:
                              value:
                                amount: 0
                                currency: EUR
                            details: []
                        items:
                          - isDefault: false
                            quantity:
                              text: Breakfast for 1 person
                              value: 1
                            price:
                              totalPrice:
                                converted:
                                  text: 10 €
                                  value:
                                    amount: 10
                                    currency: EUR
                                original:
                                  text: USD 12
                                  value:
                                    amount: 12
                                    currency: USD
                              crossedOutPrice:
                                converted:
                                  text: 15 €
                                  value:
                                    amount: 15
                                    currency: EUR
                                original:
                                  text: USD 18
                                  value:
                                    amount: 18
                                    currency: USD
                              discountType: CrossedOut
                          - isDefault: true
                            quantity:
                              text: Breakfast for 2 persons
                              value: 2
                            price:
                              totalPrice:
                                converted:
                                  text: 20 €
                                  value:
                                    amount: 20
                                    currency: EUR
                                original:
                                  text: USD 24
                                  value:
                                    amount: 24
                                    currency: USD
                              crossedOutPrice:
                                converted:
                                  text: 30 €
                                  value:
                                    amount: 30
                                    currency: EUR
                                original:
                                  text: USD 36
                                  value:
                                    amount: 36
                                    currency: USD
                              discountType: CrossedOut
                        sortOrder: 0
                        guestPosition: 0
        '400':
          description: The session code is invalid
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/BookingEngine.Hub.Service.Examples.Session.InvalidSessionErrorResponse
              examples:
                response:
                  value:
                    code: InvalidHotelId
            text/json:
              schema:
                $ref: >-
                  #/components/schemas/BookingEngine.Hub.Service.Examples.Session.InvalidSessionErrorResponse
              examples:
                response:
                  value:
                    code: InvalidHotelId
        '401':
          description: >-
            Authentication header is invalid or does not give access to the
            operation
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/BookingEngine.Hub.Service.Controllers.ErrorResponse_BookingEngine.Hub.Service.Config.SecurityErrorType_
            text/json:
              schema:
                $ref: >-
                  #/components/schemas/BookingEngine.Hub.Service.Controllers.ErrorResponse_BookingEngine.Hub.Service.Config.SecurityErrorType_
components:
  schemas:
    Search.Extra.HubSearchExtraResult:
      required:
        - roomExtras
        - hotelExtras
      type: object
      properties:
        roomExtras:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Search.Extra.HubSearchExtraAvailabity'
        hotelExtras:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Search.Extra.HubSearchExtraAvailabity'
    BookingEngine.Hub.Service.Examples.Session.InvalidSessionErrorResponse:
      required:
        - code
      type: object
      properties:
        code:
          default: InvalidSessionId
          type: string
        message:
          type: string
    BookingEngine.Hub.Service.Controllers.ErrorResponse_BookingEngine.Hub.Service.Config.SecurityErrorType_:
      allOf:
        - $ref: >-
            #/components/schemas/BookingEngine.Hub.Service.Controllers.ErrorResponse
        - required:
            - code
          type: object
          properties:
            code:
              $ref: >-
                #/components/schemas/BookingEngine.Hub.Service.Config.SecurityErrorType
    Search.Extra.HubSearchExtraAvailabity:
      required:
        - description
        - gratuitousnessType
        - price
        - taxes
        - items
        - roomId
        - extraId
        - rateId
        - isMandatory
        - isPreselected
        - sortOrder
        - guestPosition
      type: object
      properties:
        roomId:
          $ref: '#/components/schemas/HotelBusiness.RoomId'
        extraId:
          $ref: '#/components/schemas/HotelBusiness.ExtraId'
        rateId:
          $ref: '#/components/schemas/HotelBusiness.RateId'
        productId:
          type: string
        offerId:
          type: string
        name:
          type: string
        isMandatory:
          type: boolean
        isPreselected:
          type: boolean
        description:
          default:
            summary: []
            pictures: []
            counting:
              value: Booking
            type:
              value: Undefined
          allOf:
            - $ref: >-
                #/components/schemas/Search.Extra.HubSearchExtraResultDescription
        gratuitousnessType:
          default:
            value: None
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Description.Extra.HubExtraGratuitousnessType_
        price:
          default:
            unitPrice:
              converted:
                value:
                  amount: 0
              original:
                value:
                  amount: 0
            unitCrossedOutPrice:
              converted:
                value:
                  amount: 0
              original:
                value:
                  amount: 0
            totalPrice:
              converted:
                value:
                  amount: 0
              original:
                value:
                  amount: 0
            crossedOutPrice:
              converted:
                value:
                  amount: 0
              original:
                value:
                  amount: 0
            discountType: None
          allOf:
            - $ref: '#/components/schemas/Search.HubExtraAvailabilityPrice'
        taxes:
          default:
            included:
              amount:
                value:
                  amount: 0
              details: []
            excluded:
              amount:
                value:
                  amount: 0
              details: []
            onSite:
              amount:
                value:
                  amount: 0
              details: []
          allOf:
            - $ref: '#/components/schemas/Common.HubSearchTaxes'
        items:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Search.Extra.HubSearchExtraResultItem'
        sortOrder:
          format: int32
          type: integer
        guestPosition:
          $ref: '#/components/schemas/Common.HubGuestPosition'
    BookingEngine.Hub.Service.Controllers.ErrorResponse:
      type: object
      properties:
        message:
          type: string
    BookingEngine.Hub.Service.Config.SecurityErrorType:
      description: >-
        Category of security failure returned when authentication or
        authorization is rejected.
      enum:
        - InvalidUserAuthentication
        - InvalidUserRoles
        - InvalidPermissions
      type: string
    HotelBusiness.RoomId:
      format: int32
      type: integer
    HotelBusiness.ExtraId:
      format: int32
      type: integer
    HotelBusiness.RateId:
      format: int32
      type: integer
    Search.Extra.HubSearchExtraResultDescription:
      required:
        - summary
        - pictures
        - counting
        - type
      type: object
      properties:
        summary:
          default: []
          type: array
          items:
            $ref: >-
              #/components/schemas/Common.HubValueText_Common.HubDescriptionType_
        pictures:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Common.HubPicture'
        counting:
          default:
            value: Booking
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Description.Extra.HubExtraCountingType_
        type:
          default:
            value: Undefined
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Description.Extra.HubExtraType_
    Common.HubValueText_Description.Extra.HubExtraGratuitousnessType_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: >-
                #/components/schemas/Description.Extra.HubExtraGratuitousnessType
    Search.HubExtraAvailabilityPrice:
      allOf:
        - $ref: '#/components/schemas/Search.HubAvailabilityPrice'
        - type: object
          properties:
            unitPrice:
              $ref: '#/components/schemas/Common.ConvertedMoney'
            unitCrossedOutPrice:
              $ref: '#/components/schemas/Common.ConvertedMoney'
    Common.HubSearchTaxes:
      required:
        - included
        - excluded
        - onSite
      type: object
      properties:
        included:
          default:
            amount:
              value:
                amount: 0
            details: []
          allOf:
            - $ref: '#/components/schemas/Common.HubTax'
        excluded:
          default:
            amount:
              value:
                amount: 0
            details: []
          allOf:
            - $ref: '#/components/schemas/Common.HubTax'
        onSite:
          default:
            amount:
              value:
                amount: 0
            details: []
          allOf:
            - $ref: '#/components/schemas/Common.HubTax'
    Search.Extra.HubSearchExtraResultItem:
      required:
        - quantity
        - price
        - isDefault
      type: object
      properties:
        isDefault:
          type: boolean
        quantity:
          default:
            value: 0
          allOf:
            - $ref: '#/components/schemas/Common.HubValueText_System.Int32_'
        price:
          default:
            totalPrice:
              converted:
                value:
                  amount: 0
              original:
                value:
                  amount: 0
            crossedOutPrice:
              converted:
                value:
                  amount: 0
              original:
                value:
                  amount: 0
            discountType: None
          allOf:
            - $ref: '#/components/schemas/Search.HubAvailabilityPrice'
    Common.HubGuestPosition:
      format: int32
      type: integer
    Common.HubValueText_Common.HubDescriptionType_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Common.HubDescriptionType'
    Common.HubPicture:
      required:
        - templates
        - sortOrder
      type: object
      properties:
        templates:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Common.HubPictureTemplate'
        sortOrder:
          format: int32
          type: integer
    Common.HubValueText_Description.Extra.HubExtraCountingType_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Description.Extra.HubExtraCountingType'
    Common.HubValueText_Description.Extra.HubExtraType_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Description.Extra.HubExtraType'
    Common.HubValueText:
      type: object
      properties:
        text:
          type: string
    Description.Extra.HubExtraGratuitousnessType:
      description: |-
        Whether an extra is charged, included in the rate, or offered for free.

        - **None** — Extra is charged normally.
        - **Included** — Extra is included in the rate at no additional cost.
        - **Free** — Extra is available free of charge.
        - **Offered** — Extra is offered as a gift by the hotel.
      enum:
        - None
        - Included
        - Free
        - Offered
      type: string
    Search.HubAvailabilityPrice:
      required:
        - totalPrice
        - crossedOutPrice
        - discountType
      type: object
      properties:
        totalPrice:
          default:
            converted:
              value:
                amount: 0
            original:
              value:
                amount: 0
          allOf:
            - $ref: '#/components/schemas/Common.ConvertedMoney'
        crossedOutPrice:
          default:
            converted:
              value:
                amount: 0
            original:
              value:
                amount: 0
          allOf:
            - $ref: '#/components/schemas/Common.ConvertedMoney'
        discountType:
          $ref: '#/components/schemas/Search.HubSearchResultRoomRateDiscountType'
        promoCode:
          $ref: '#/components/schemas/Search.HubAvailabilityPriceOfferCode'
    Common.ConvertedMoney:
      required:
        - converted
        - original
      type: object
      properties:
        converted:
          default:
            value:
              amount: 0
          allOf:
            - $ref: '#/components/schemas/Common.HubValueText_Library.Money_'
        original:
          default:
            value:
              amount: 0
          allOf:
            - $ref: '#/components/schemas/Common.HubValueText_Library.Money_'
    Common.HubTax:
      required:
        - amount
        - details
      type: object
      properties:
        amount:
          default:
            value:
              amount: 0
          allOf:
            - $ref: '#/components/schemas/Common.HubValueText_Library.Money_'
        details:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Common.HubTaxDetail'
    Common.HubValueText_System.Int32_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              format: int32
              type: integer
    Common.HubDescriptionType:
      description: Markup format used for rich-text description fields returned by the API.
      enum:
        - Html
        - Markdown
        - PlainText
      type: string
    Common.HubPictureTemplate:
      type: object
      properties:
        name:
          type: string
        url:
          type: string
    Description.Extra.HubExtraCountingType:
      description: |-
        How an extra's quantity is counted for pricing purposes.

        - **Booking** — Counted once per booking regardless of guests or nights.
        - **Day** — Counted per night of the stay.
        - **Person** — Counted per guest for the whole stay.
        - **PersonDay** — Counted per guest and per night.
        - **AdultDay** — Counted per adult and per night.
        - **ChildDay** — Counted per child and per night.
        - **InfantDay** — Counted per infant and per night.
      enum:
        - Booking
        - Day
        - Person
        - PersonDay
        - AdultDay
        - ChildDay
        - InfantDay
      type: string
    Description.Extra.HubExtraType:
      description: >-
        Category of an extra offered alongside the room booking.


        - **Undefined** — Extra type is not classified.

        - **StayTax** — Stay tax collected as a booking extra.

        - **OtherTax** — Other tax collected as a booking extra.

        - **Breakfast** — Breakfast service.

        - **AdditionalInfant** — Additional infant beyond the room's base
        occupancy.

        - **AdditionalChild** — Additional child beyond the room's base
        occupancy.

        - **AdditionalAdult** — Additional adult beyond the room's base
        occupancy.

        - **Coffin** — Legacy label historically used for a baby cot; kept for
        backward compatibility with the CRS extra catalogue.

        - **AdditionalBed** — Additional bed added to the room.

        - **Pet** — Pet-related fee.

        - **Parking** — Parking service.

        - **Excursion** — Excursion or activity booked alongside the stay.

        - **Entertainment** — Entertainment service offered by the hotel.

        - **InternetAccess** — Internet access service.

        - **Transfer** — Transfer service (airport shuttle, taxi, etc.).

        - **Cleaning** — Cleaning or housekeeping service.
      enum:
        - Undefined
        - StayTax
        - OtherTax
        - Breakfast
        - AdditionalInfant
        - AdditionalChild
        - AdditionalAdult
        - Coffin
        - AdditionalBed
        - Pet
        - Parking
        - Excursion
        - Entertainment
        - InternetAccess
        - Transfer
        - Cleaning
      type: string
    Search.HubSearchResultRoomRateDiscountType:
      description: >-
        Type of discount displayed on a room rate in the search result.


        - **None** — No discount is displayed.

        - **DiscountCode** — Discount granted by a promotional code entered by
        the end user.

        - **CrossedOut** — Original price.

        - **FreeNight** — Discount is expressed as one or more free nights.
      enum:
        - None
        - DiscountCode
        - CrossedOut
        - FreeNight
      type: string
    Search.HubAvailabilityPriceOfferCode:
      required:
        - offerCodeId
        - calculationMode
        - isPublic
        - isApplied
        - isMobile
        - isFlashSales
        - displayCountdown
        - endDate
      type: object
      properties:
        offerCodeId:
          $ref: '#/components/schemas/HotelBusiness.OfferCode.Common.OfferCodeId'
        code:
          type: string
        description:
          type: string
        nominal:
          $ref: '#/components/schemas/Common.ConvertedMoney'
        percent:
          $ref: '#/components/schemas/Common.HubValueText_HotelBusiness.Percent_'
        calculationMode:
          $ref: '#/components/schemas/Common.HubDiscountCalculationMode'
        isPublic:
          type: boolean
        isApplied:
          type: boolean
        isMobile:
          type: boolean
        isFlashSales:
          type: boolean
        displayCountdown:
          type: boolean
        endDate:
          format: date-time
          type: string
    Common.HubValueText_Library.Money_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - type: object
          properties:
            value:
              $ref: '#/components/schemas/Library.Money'
    Common.HubTaxDetail:
      required:
        - type
        - applyToEntity
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/Common.HubTaxType'
        description:
          type: string
        amount:
          $ref: '#/components/schemas/Common.ConvertedMoney'
        dailyTotalAmounts:
          type: array
          items:
            $ref: >-
              #/components/schemas/Search.Room.TemporalValue_Common.ConvertedMoney_
        applyToEntity:
          type: boolean
    HotelBusiness.OfferCode.Common.OfferCodeId:
      format: uuid
      type: string
    Common.HubValueText_HotelBusiness.Percent_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/HotelBusiness.Percent'
    Common.HubDiscountCalculationMode:
      description: >-
        How a discount amount is computed against the base price.


        - **None** — No discount computation applies.

        - **PercentageWithoutExtras** — Percentage discount applied to the rate
        excluding extras.

        - **Percentage** — Percentage discount applied to the whole basket
        including extras.

        - **Nominal** — Flat monetary amount subtracted from the price.
      enum:
        - None
        - PercentageWithoutExtras
        - Percentage
        - Nominal
      type: string
    Library.Money:
      required:
        - amount
        - currency
      type: object
      properties:
        amount:
          format: decimal
          type: number
        currency:
          type: string
    Common.HubTaxType:
      description: >-
        Category of tax or fee applied to a booking. Values map 1:1 to the
        underlying CRS tax classification.


        - **RateTax** — Tax computed on the room rate amount.

        - **ExtraTax** — Tax computed on a booking extra.

        - **OtherTax** — Fallback bucket for taxes that do not map to a more
        specific type.

        - **TouristTax** — Tourist tax collected on behalf of a tourism
        authority.

        - **CityTax** — Tax levied by the city hosting the hotel.

        - **StateTax** — Tax levied at the state or regional level.

        - **StayTax** — Tax computed on the stay (typically per person per
        night).

        - **VAT** — Value-added tax.

        - **LocalTax** — Locally-defined tax collected by the hotel.

        - **GeneralServiceTax** — General service tax as defined by local tax
        regulation.

        - **GovernmentTax** — Tax levied by the national or federal government.

        - **ServiceCharge** — Service charge added by the hotel (distinct from a
        general service tax).

        - **AccommodationTax** — Tax computed on the accommodation portion of
        the booking.

        - **ConsumptionTax** — Consumption tax as defined by local tax
        regulation.

        - **Custom** — Custom tax freely defined by the hotel.

        - **ResortFee** — Mandatory resort fee (common in US properties).

        - **ServiceFee** — Fixed service fee applied to the booking.

        - **CleaningFee** — Housekeeping or cleaning fee.

        - **CustomFee** — Custom fee freely defined by the hotel.
      enum:
        - RateTax
        - ExtraTax
        - OtherTax
        - TouristTax
        - CityTax
        - StateTax
        - StayTax
        - VAT
        - LocalTax
        - GeneralServiceTax
        - GovernmentTax
        - ServiceCharge
        - AccommodationTax
        - ConsumptionTax
        - Custom
        - ResortFee
        - ServiceFee
        - CleaningFee
        - CustomFee
      type: string
    Search.Room.TemporalValue_Common.ConvertedMoney_:
      allOf:
        - $ref: '#/components/schemas/Search.Room.TemporalValue'
        - type: object
          properties:
            value:
              $ref: '#/components/schemas/Common.ConvertedMoney'
    HotelBusiness.Percent:
      format: decimal
      type: number
    Search.Room.TemporalValue:
      type: object
      properties:
        start:
          type: string
          readOnly: true
        end:
          type: string
          readOnly: true

````

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