openapi: 3.0.1
info:
  title: Cloudbeds API
  description: |-
    <p>
        Welcome to the documentation for <strong>Cloudbeds API Version v1.2</strong>!
        If you are looking to learn how to use the Cloudbeds API to access guest information, reservations, or similar data
        for your Cloudbeds customers, then you've come to the right place.
    </p>

    <p>
        In this document you will find all the API methods we provide along with explanations for parameters and response
        examples.
    </p>

    <p>
        If you have questions about different implementation steps (e.g. how to implement OAuth 2.0), please refer to our
        <a href="https://integrations.cloudbeds.com/hc/en-us">Integrations Portal</a>.
    </p>

    <p>
        Be sure to <a href="https://go.pardot.com/l/308041/2018-07-24/qb2lg">subscribe</a> to the monthly
        Cloudbeds API announcement mailing list to receive information on new additions and improvements to the
        Cloudbeds API and related developer tools.
    </p>

    <p>
        <strong>Endpoint:</strong> https://api.cloudbeds.com/api/v1.2/{method}
    </p>

    <p>
        <strong>HTTPS:</strong> Our API requires HTTPS. We'll respond with an appropriate error if you're not using it.
    </p>

    <p>
        <strong>Request Format:</strong> HTTP GET, POST and PUT (Content-Type: application/x-www-form-urlencoded)
    </p>

    <p>
        <strong>Response Format:</strong> JSON
    </p>

    <p>
        <strong>Response Header:</strong> X-Request-ID is added to response headers in all calls to help accelerate support
        and troubleshooting.
    </p>

    <p>
        <strong>
            <a href="https://integrations.cloudbeds.com/hc/en-us/articles/14104678058267-API-Documentation#postman-collection">
                <img src="https://run.pstmn.io/button.svg" alt="Run in Postman">
            </a>
        </strong> use this link to access our Public collection in Postman.
    </p>
  version: v1.2
servers:
  - url: https://api.cloudbeds.com/api/v1.2/
components:
  securitySchemes:
    api_key:
      type: apiKey
      name: x-api-key
      in: header
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: ''
          tokenUrl: ''
          scopes:
            delete:adjustment: delete:adjustment
            delete:appPropertySettings: delete:appPropertySettings
            delete:roomblock: delete:roomblock
            read:adjustment: read:adjustment
            read:allotmentBlock: read:allotmentBlock
            read:appPropertySettings: read:appPropertySettings
            read:communication: read:communication
            read:currency: read:currency
            read:customFields: read:customFields
            read:dashboard: read:dashboard
            read:group: read:group
            read:guest: read:guest
            read:hotel: read:hotel
            read:houseAccount: read:houseAccount
            read:housekeeping: read:housekeeping
            read:item: read:item
            read:package: read:package
            read:payment: read:payment
            read:rate: read:rate
            read:reservation: read:reservation
            read:room: read:room
            read:roomblock: read:roomblock
            read:taxesAndFees: read:taxesAndFees
            read:user: read:user
            write:adjustment: write:adjustment
            write:allotmentBlock: write:allotmentBlock
            write:appError: write:appError
            write:appPropertySettings: write:appPropertySettings
            write:communication: write:communication
            write:customFields: write:customFields
            write:group: write:group
            write:guest: write:guest
            write:hotel: write:hotel
            write:houseAccount: write:houseAccount
            write:housekeeping: write:housekeeping
            write:item: write:item
            write:payment: write:payment
            write:rate: write:rate
            write:reservation: write:reservation
            write:room: write:room
            write:roomblock: write:roomblock
  schemas:
    GetMetadataResponse:
      type: object
      properties:
        success:
          description: True if property can be found
          type: string
        data:
          description: ''
          type: object
          properties:
            api:
              description: The api details
              type: object
              properties:
                url:
                  description: The API URL for the given property
                  type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostAccessTokenRequest:
      type: object
      properties:
        grant_type:
          description: The OAuth2 grant type.
          type: string
          enum:
            - authorization_code
            - refresh_token
            - urn:ietf:params:oauth:grant-type:api-key
          nullable: true
        client_id:
          description: >-
            The client identifier. Each client must be provisioned an
            identifier.
          type: string
          nullable: true
        client_secret:
          description: The client secret. Each client must be provisioned a secret.
          type: string
          nullable: true
        redirect_uri:
          description: >-
            The client pre-configured redirect URI. (Required for grant type
            'authorization_code' and
            'urn:ietf:params:oauth:grant-type:api-key').
          type: string
          nullable: true
        code:
          description: >-
            An authorization code provisioned by /oauth (Required for grant type
            'authorization_code' and
            'urn:ietf:params:oauth:grant-type:api-key').
          type: string
          nullable: true
        refresh_token:
          description: >-
            A refresh token to renew an access_token (Required for grant type
            'refresh_token' only).
          type: string
          nullable: true
    PostAccessTokenResponse:
      type: object
      properties:
        access_token:
          description: Authenticated access token.
          type: string
        token_type:
          description: The type of the access token authenticated.
          type: string
        expires_in:
          description: The expiration time of the access token in seconds.
          type: integer
        refresh_token:
          description: >-
            A token to refresh your access token without performing the full
            auth flow.
          type: string
        resources:
          description: List of resources associated with the token during consent
          type: array
          items:
            type: object
            properties:
              type:
                description: A type of associated resource
                type: string
                enum:
                  - property
                  - association
              id:
                description: Unique ID of associated resource
                type: string
    GetUserinfoResponse:
      type: object
      properties:
        user_id:
          description: ID of user
          type: string
        first_name:
          description: Authorized users' first name.
          type: string
        last_name:
          description: Authorized users' last name.
          type: string
        email:
          description: Authorized users' email.
          type: string
        acl:
          description: Authorized users' access control list.
          type: array
          items:
            type: string
          nullable: true
        roles:
          description: Authorized users' role information.
          type: array
          items:
            type: object
            properties:
              id:
                description: ID of the role.
                type: string
                nullable: true
              name:
                description: Name of the role.
                type: string
                nullable: true
              description:
                description: Description of the role.
                type: string
                nullable: true
          nullable: true
    GetAdjustmentResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Adjustment
          type: object
          properties:
            adjustmentID:
              description: Adjustment unique identifier
              type: string
            propertyID:
              description: unique hotel identifier
              type: string
            created:
              description: Adjustment created time
              type: string
              format: date-time
            roomID:
              description: Adjustment room id
              type: string
            roomName:
              description: Room name of Adjustment
              type: string
            reservationIdentifier:
              description: Reservation Unique Identifier
              type: string
            description:
              description: Adjustment description
              type: string
            notes:
              description: Adjustment notes
              type: string
            amount:
              description: Adjustment amount
              type: number
            currency:
              description: Adjustment currency
              type: number
            posted:
              description: Adjustment posted transaction
              type: number
            type:
              description: Adjustment type
              type: string
            voidID:
              description: >-
                Voided adjustment transaction unique identifier.  Null if
                adjustment not voided
              type: string
    GetAdjustmentsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Adjustments
          type: object
          properties:
            adjustmentID:
              description: Adjustment unique identifier
              type: string
            created:
              description: Adjustment created time
              type: string
              format: date-time
            roomID:
              description: Adjustment room id
              type: string
            roomName:
              description: Room name of Adjustment
              type: string
            description:
              description: Adjustment description
              type: string
            notes:
              description: Adjustment notes
              type: string
            amount:
              description: Adjustment amount
              type: number
            type:
              description: Adjustment type
              type: string
    DeleteAdjustmentResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostAdjustmentRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation identifier
          type: string
        type:
          description: Apply Adjustment to
          type: string
          enum:
            - rate
            - product
            - fee
            - tax
        amount:
          description: Adjustment amount
          type: number
        notes:
          description: Adjustment notes
          type: string
          nullable: true
        itemID:
          description: 'Apply Adjustment to. Identifier for: product, tax, fee. Not for rate'
          type: string
          nullable: true
    PostAdjustmentResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: post Adjustment details
          type: object
          properties:
            adjustmentID:
              description: Adjustment transaction identifier
              type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostCreateAllotmentBlockRequest:
      type: object
      properties:
        groupCode:
          description: >-
            The unique identifier of the group profile the allotment block
            should be created
          type: string
        allotmentBlockName:
          description: The name for the allotment block
          type: string
        rateType:
          description: The rate type for the associated intervals
          type: string
          enum:
            - base_rate
            - rate_plan
            - custom
        allotmentType:
          description: The allotment type
          type: string
          enum:
            - allotment
            - based_on_availability
        allotmentBlockStatus:
          description: The status for the allotment block under
          type: string
          enum:
            - definite
            - tentative
            - lead
        autoRelease:
          description: Optional auto-release configuration
          type: object
          properties:
            releaseType:
              description: The type of auto-release
              type: string
              enum:
                - all_dates
                - by_day
                - by_interval
              nullable: true
            days:
              description: >-
                The number of days prior to the end of the allotment block to
                begin releasing dates from the allotment block
              type: integer
              nullable: true
            releaseTime:
              description: >-
                The hour to being the auto-release in HH:00 format, e.g.
                '00:00', '01:00'...
              type: string
              nullable: true
          nullable: true
        allotmentIntervals:
          description: The day-based data for the allotment block.
          type: array
          items:
            type: object
            properties:
              availability:
                description: ''
                type: array
                items:
                  type: object
                  properties:
                    date:
                      description: the day within the interval (YYYY-MM-DD)
                      type: string
                      format: date
                    blockAllotted:
                      description: Total number of units available for the
                      type: integer
                    rate:
                      description: the price if applicable
                      type: string
                      nullable: true
                    guestPricing:
                      description: >-
                        Guest pricing data if applicable. Note: the number of
                        applicable keys varies here based on the occupancy
                        settings for the room type.
                      type: object
                      properties:
                        adult1:
                          description: Price for adult 1
                          type: string
                          nullable: true
                        adult2:
                          description: Price for adult 2
                          type: string
                          nullable: true
                        adult3:
                          description: Price for adult 3
                          type: string
                          nullable: true
                        child1:
                          description: Price for child 1
                          type: string
                          nullable: true
                        child2:
                          description: Price for child 2
                          type: string
                          nullable: true
                        child3:
                          description: Price for child 3
                          type: string
                          nullable: true
                      nullable: true
                    restrictions:
                      description: Interval restrictions if applicable
                      type: object
                      properties:
                        minLos:
                          description: Minimum length of stay requirement
                          type: integer
                          nullable: true
                        maxLos:
                          description: Maximum length of stay requirement
                          type: integer
                          nullable: true
                        cutOffDays:
                          description: >-
                            How many days before arrival should guests be
                            required to book
                          type: integer
                          nullable: true
                        lastMinuteBookingDays:
                          description: >-
                            How many days before the arrival guests are allowed
                            to book
                          type: integer
                          nullable: true
                        closedToArrival:
                          description: If the interval dates are closed for arrival
                          type: integer
                          nullable: true
                        closedToDeparture:
                          description: If the interval dates are closed for departure
                          type: integer
                          nullable: true
                      nullable: true
          nullable: true
    PostCreateAllotmentBlockResponse:
      type: object
      properties:
        startDate:
          description: Date on or after which each returned allotmentBlock applies
          type: string
          format: date
        endDate:
          description: Date on or before which each returned allotmentBlock applies
          type: string
          format: date
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Allotment Blocks
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Property ID associated to the allotment block
                type: string
              allotmentBlockCode:
                description: Allotment block code
                type: string
              allotmentBlockStatus:
                description: Allotment block status
                type: string
              allotmentBlockName:
                description: Allotment block name
                type: string
              allotmentBlockId:
                description: Allotment block ID
                type: string
              rateType:
                description: Rate type for the allotment block
                type: string
              ratePlanId:
                description: Rate plan ID if applicable
                type: string
              allotmentType:
                description: the type of allotment block
                type: string
              groupId:
                description: Group profile ID associated to the allotment block
                type: string
              groupCode:
                description: Group profile code associated to the allotment block
                type: string
              isAutoRelease:
                description: If the allotment block is configured for auto-release
                type: boolean
              autoRelease:
                description: auto-release data if applicable
                type: object
                properties:
                  releaseType:
                    description: The type of auto-release
                    type: string
                    enum:
                      - all_dates
                      - by_day
                      - by_interval
                  days:
                    description: >-
                      The number of days prior to the end of the allotment block
                      to begin releasing dates from the allotment block
                    type: integer
                  releaseTime:
                    description: >-
                      The hour to being the auto-release in HH:00 format, e.g.
                      '00:00', '01:00'...
                    type: string
              allotmentIntervals:
                description: array of interval data by room type
                type: array
                items:
                  type: object
                  properties:
                    roomTypeId:
                      description: Room type ID
                      type: string
                    startDate:
                      description: Interval start date
                      type: string
                      format: date
                    endDate:
                      description: Interval end date
                      type: string
                      format: date
                    availability:
                      description: Interval availability data by day in interval
                      type: object
                      properties:
                        date:
                          description: Day within interval
                          type: string
                          format: date
                        blockRemaining:
                          description: >-
                            Number of units remaining for the room type for this
                            day
                          type: integer
                        blockAllotted:
                          description: >-
                            Total number of units available for the room type
                            for this day
                          type: integer
                        blockConfirmed:
                          description: >-
                            Number of units booked for the room type for this
                            day
                          type: integer
                        rate:
                          description: the price
                          type: string
                        guestPricing:
                          description: >-
                            Guest pricing data if applicable. Note: the number
                            of results varies here based on the occupancy
                            settings and custom guest pricing for the room type.
                          type: object
                          properties:
                            adult1:
                              description: Price for adult 1
                              type: string
                            adult2:
                              description: Price for adult 2
                              type: string
                            adult3:
                              description: Price for adult 3
                              type: string
                            child1:
                              description: Price for child 1
                              type: string
                            child2:
                              description: Price for child 2
                              type: string
                            child3:
                              description: Price for child 3
                              type: string
                    restrictions:
                      description: Interval restrictions if applicable
                      type: object
                      properties:
                        minLos:
                          description: Minimum length of stay requirement
                          type: integer
                        maxLos:
                          description: Maximum length of stay requirement
                          type: integer
                        cutOffDays:
                          description: >-
                            How many days before arrival should the guests be
                            required to book
                          type: integer
                        lastMinuteBookingDays:
                          description: >-
                            Hoe many days before the arrival guests are allowed
                            to book
                          type: integer
                        closedToArrival:
                          description: If the interval dates are closed for arrival
                          type: integer
                        closedToDeparture:
                          description: If the interval dates are closed for departure
                          type: integer
    PostDeleteAllotmentBlockRequest:
      type: object
      properties:
        allotmentBlockCode:
          description: The unique code of the allotment Block
          type: string
    PostDeleteAllotmentBlockResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
    GetAllotmentBlocksResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        count:
          description: Number of allotment blocks returned
          type: integer
        total:
          description: Total number of allotment blocks
          type: integer
        data:
          description: Allotment Blocks
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Property ID associated to the allotment block
                type: string
              allotmentBlockCode:
                description: Allotment block code
                type: string
              allotmentBlockStatus:
                description: Allotment block status
                type: string
              allotmentBlockName:
                description: Allotment block name
                type: string
              allotmentBlockId:
                description: Allotment block ID
                type: string
              rateType:
                description: Rate type for the allotment block
                type: string
              ratePlanId:
                description: Rate plan ID if applicable
                type: string
              allotmentType:
                description: the type of allotment block
                type: string
              groupId:
                description: Group profile ID associated to the allotment block
                type: string
              groupCode:
                description: Group profile code associated to the allotment block
                type: string
              isAutoRelease:
                description: If the allotment block is configured for auto-release
                type: boolean
              autoRelease:
                description: auto-release data if applicable
                type: array
                items:
                  type: object
                  properties:
                    releaseType:
                      description: The type of auto-release
                      type: string
                      enum:
                        - all_dates
                        - by_day
                        - by_interval
                    days:
                      description: >-
                        The number of days prior to the end of the allotment
                        block to begin releasing dates from the allotment block
                      type: integer
                    releaseTime:
                      description: >-
                        The hour to being the auto-release in HH:00 format, e.g.
                        '00:00', '01:00'...
                      type: string
              allotmentIntervals:
                description: array of interval data by room type
                type: array
                items:
                  type: object
                  properties:
                    roomTypeId:
                      description: Room type ID
                      type: string
                    startDate:
                      description: Interval start date
                      type: string
                      format: date
                    endDate:
                      description: Interval end date
                      type: string
                      format: date
                    availability:
                      description: Interval availability data by day in interval
                      type: array
                      items:
                        type: object
                        properties:
                          date:
                            description: Day within interval
                            type: string
                            format: date
                          blockRemaining:
                            description: >-
                              Number of units remaining for the room type for
                              this day
                            type: integer
                          blockAllotted:
                            description: >-
                              Total number of units available for the room type
                              for this day
                            type: integer
                          blockConfirmed:
                            description: >-
                              Number of units booked for the room type for this
                              day
                            type: integer
                          rate:
                            description: the price
                            type: string
                          guestPricing:
                            description: >-
                              Guest pricing data if applicable. Note: the number
                              of results varies here based on the occupancy
                              settings and custom guest pricing for the room
                              type.
                            type: object
                            properties:
                              adult1:
                                description: Price for adult 1
                                type: string
                              adult2:
                                description: Price for adult 2
                                type: string
                              adult3:
                                description: Price for adult 3
                                type: string
                              child1:
                                description: Price for child 1
                                type: string
                              child2:
                                description: Price for child 2
                                type: string
                              child3:
                                description: Price for child 3
                                type: string
                          splitBlockAllotted:
                            description: >-
                              Number of split units available for the room type
                              this day
                            type: integer
                          splitBlockConfirmed:
                            description: >-
                              Number of split units blocked for the room type
                              this day
                            type: integer
                    restrictions:
                      description: Interval restrictions if applicable
                      type: object
                      properties:
                        minLos:
                          description: Minimum length of stay requirement
                          type: integer
                        maxLos:
                          description: Maximum length of stay requirement
                          type: integer
                        cutOffDays:
                          description: >-
                            How many days before arrival should guests be
                            required to book
                          type: integer
                        lastMinuteBookingDays:
                          description: >-
                            How many days before the arrival guests are allowed
                            to book
                          type: integer
                        closedToArrival:
                          description: If the interval dates are closed for arrival
                          type: integer
                        closedToDeparture:
                          description: If the interval dates are closed for departure
                          type: integer
    PostUpdateAllotmentBlockRequest:
      type: object
      properties:
        allotmentBlockCode:
          description: The allotment block code identifying the allotment block to update
          type: string
        allotmentBlockName:
          description: The name for the allotment block
          type: string
          nullable: true
        allotmentType:
          description: The allotment type
          type: string
          enum:
            - allotment
            - based_on_availability
          nullable: true
        allotmentBlockStatus:
          description: The status for the allotment block under
          type: string
          enum:
            - definite
            - tentative
            - lead
            - cancelled
          nullable: true
        autoRelease:
          description: >-
            Optional auto-release configuration NOTE: pass empty object to
            remove auto-release configuration
          type: object
          properties:
            releaseType:
              description: The type of auto-release
              type: string
              enum:
                - all_dates
                - by_day
                - by_interval
              nullable: true
            days:
              description: >-
                The number of days prior to the end of the allotment block to
                begin releasing dates from the allotment block
              type: integer
              nullable: true
            releaseTime:
              description: >-
                The hour to being the auto-release in HH:00 format, e.g.
                '00:00', '01:00'...
              type: string
              nullable: true
          nullable: true
        allotmentIntervals:
          description: The day-based data for the allotment block.
          type: array
          items:
            type: object
            properties:
              roomTypeId:
                description: Room type id
                type: string
                nullable: true
              availability:
                description: Interval availability data by day in interval
                type: array
                items:
                  type: object
                  properties:
                    blockAllotted:
                      description: >-
                        Total number of units available for the room type for
                        this day
                      type: integer
                      nullable: true
                    date:
                      description: the day within the interval (YYYY-MM-DD)
                      type: string
                      format: date
                      nullable: true
                    rate:
                      description: the price if applicable
                      type: string
                      nullable: true
                    guestPricing:
                      description: 'Guest pricing data if applicable. Note:'
                      type: object
                      properties:
                        adult1:
                          description: Price for adult 1
                          type: string
                          nullable: true
                        adult2:
                          description: Price for adult 2
                          type: string
                          nullable: true
                        adult3:
                          description: Price for adult 3
                          type: string
                          nullable: true
                        child1:
                          description: Price for child 1
                          type: string
                          nullable: true
                        child2:
                          description: Price for child 2
                          type: string
                          nullable: true
                        child3:
                          description: Price for child 3
                          type: string
                          nullable: true
                      nullable: true
                    restrictions:
                      description: Interval restrictions if applicable
                      type: object
                      properties:
                        minLos:
                          description: Minimum length of stay requirement
                          type: integer
                          nullable: true
                        maxLos:
                          description: Maximum length of stay requirement
                          type: integer
                          nullable: true
                        cutOffDays:
                          description: >-
                            How many days before arrival should guests be
                            required to book
                          type: integer
                          nullable: true
                        lastMinuteBookingDays:
                          description: >-
                            How many days before the arrival guests are allowed
                            to book
                          type: integer
                          nullable: true
                        closedToArrival:
                          description: If the interval dates are closed for arrival
                          type: integer
                          nullable: true
                        closedToDeparture:
                          description: >-
                            If the interval dates are closed for departure the
                            number of applicable keys varies here based on the
                            occupancy settings for the room type.
                          type: integer
                          nullable: true
                      nullable: true
                nullable: true
          nullable: true
    PostUpdateAllotmentBlockResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Allotment Blocks
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Property ID associated to the allotment block
                type: string
              allotmentBlockCode:
                description: Allotment block code
                type: string
              allotmentBlockStatus:
                description: Allotment block status
                type: string
              allotmentBlockName:
                description: Allotment block name
                type: string
              allotmentBlockId:
                description: Allotment block ID
                type: string
              rateType:
                description: Rate type for the allotment block
                type: string
              ratePlanId:
                description: Rate plan ID if applicable
                type: string
              allotmentType:
                description: the type of allotment block
                type: string
              groupId:
                description: Group profile ID associated to the allotment block
                type: string
              groupCode:
                description: Group profile code associated to the allotment block
                type: string
              isAutoRelease:
                description: If the allotment block is configured for auto-release
                type: boolean
              autoRelease:
                description: auto-release data if applicable
                type: object
                properties:
                  releaseType:
                    description: The type of auto-release
                    type: string
                    enum:
                      - all_dates
                      - by_day
                      - by_interval
                  days:
                    description: >-
                      The number of days prior to the end of the allotment block
                      to begin releasing dates from the allotment block
                    type: integer
                  releaseTime:
                    description: >-
                      The hour to being the auto-release in HH:00 format, e.g.
                      '00:00', '01:00'...
                    type: string
              allotmentIntervals:
                description: array of interval data by room type
                type: array
                items:
                  type: object
                  properties:
                    roomTypeId:
                      description: Room type ID
                      type: string
                    availability:
                      description: Interval availability data by day in interval
                      type: object
                      properties:
                        date:
                          description: Day within interval
                          type: string
                          format: date
                        blockRemaining:
                          description: >-
                            Number of units remaining for the room type for this
                            day
                          type: integer
                        blockAllotted:
                          description: >-
                            Total number of units available for the room type
                            for this day
                          type: integer
                        blockConfirmed:
                          description: >-
                            Number of units booked for the room type for this
                            day
                          type: integer
                        rate:
                          description: the price
                          type: string
                        guestPricing:
                          description: >-
                            Guest pricing data if applicable. Note: the number
                            of results varies here based on the occupancy
                            settings and custom guest pricing for the room type.
                          type: object
                          properties:
                            adult1:
                              description: Price for adult 1
                              type: string
                            adult2:
                              description: Price for adult 2
                              type: string
                            adult3:
                              description: Price for adult 3
                              type: string
                            child1:
                              description: Price for child 1
                              type: string
                            child2:
                              description: Price for child 2
                              type: string
                            child3:
                              description: Price for child 3
                              type: string
                    restrictions:
                      description: Interval restrictions if applicable
                      type: object
                      properties:
                        minLos:
                          description: Minimum length of stay requirement
                          type: integer
                        maxLos:
                          description: Maximum length of stay requirement
                          type: integer
                        cutOffDays:
                          description: >-
                            How many days before arrival should guests be
                            required to book
                          type: integer
                        lastMinuteBookingDays:
                          description: >-
                            Hoe many days before the arrival guests are allowed
                            to book
                          type: integer
                        closedToArrival:
                          description: If the interval dates are closed for arrival
                          type: integer
                        closedToDeparture:
                          description: If the interval dates are closed for departure
                          type: integer
    PostCreateAllotmentBlockNotesRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
        allotmentBlockCode:
          description: Allotment Block Code
          type: string
        text:
          description: Note's text
          type: string
    PostCreateAllotmentBlockNotesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: The created note
          type: object
          properties:
            id:
              description: Note ID
              type: string
            text:
              description: Note contents
              type: string
            createdBy:
              description: User Name
              type: string
            createdAt:
              description: 'Creation datetime (format: Y-m-d H:i:s)'
              type: string
              format: date-time
            updatedAt:
              description: 'Last modification datetime  (format: Y-m-d H:i:s)'
              type: string
              format: date-time
            archivedAt:
              description: 'Archival datetime (format: Y-m-d H:i:s)'
              type: string
              format: date-time
              nullable: true
            status:
              description: Note status
              type: string
    GetListAllotmentBlockNotesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: List of notes
          type: array
          items:
            type: object
            properties:
              id:
                description: Note ID
                type: string
              message:
                description: Note contents
                type: string
              createdBy:
                description: User Name
                type: string
              createdAt:
                description: 'Creation datetime (format: Y-m-d H:i:s)'
                type: string
                format: date-time
              updatedAt:
                description: 'Last modification datetime (format: Y-m-d H:i:s)'
                type: string
                format: date-time
              archivedAt:
                description: 'Archival datetime (format: Y-m-d H:i:s)'
                type: string
                format: date-time
                nullable: true
              status:
                description: Note status
                type: string
        pageSize:
          description: Number of Notes per Page
          type: integer
        pageNumber:
          description: Current page
          type: integer
        total:
          description: Total number of Notes
          type: integer
    PostUpdateAllotmentBlockNotesRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
        allotmentBlockCode:
          description: Allotment Block Code
          type: string
        noteID:
          description: Note's ID
          type: string
        text:
          description: Note's text (null for no change)
          type: string
          nullable: true
        status:
          description: Note status
          type: string
          enum:
            - active
            - archived
          nullable: true
    PostUpdateAllotmentBlockNotesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: The created note
          type: object
          properties:
            id:
              description: Note ID
              type: string
            text:
              description: Note contents
              type: string
            createdBy:
              description: User Name
              type: string
            createdAt:
              description: 'Creation datetime (format: Y-m-d H:i:s)'
              type: string
              format: date-time
            updatedAt:
              description: 'Last modification datetime (format: Y-m-d H:i:s)'
              type: string
              format: date-time
            archivedAt:
              description: 'Archival datetime (format: Y-m-d H:i:s)'
              type: string
              format: date-time
              nullable: true
            status:
              description: Note status
              type: boolean
    PostDeleteAppPropertySettingsRequest:
      type: object
      properties:
        propertyID:
          description: Key
          type: string
        key:
          description: Key
          type: string
    PostDeleteAppPropertySettingsResponse:
      type: object
      properties:
        success:
          description: Success
          type: boolean
        message:
          description: Response message
          type: string
    GetAppPropertySettingsResponse:
      type: object
      properties:
        success:
          description: Success
          type: boolean
        data:
          description: Data
          type: array
          items:
            type: object
            properties:
              id:
                description: ID
                type: string
              key:
                description: Key
                type: string
              value:
                description: Value
                type: string
    PostAppPropertySettingRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
        appClientID:
          description: Application Client ID
          type: string
        key:
          description: Key
          type: string
        value:
          description: Value
          type: string
    PostAppPropertySettingResponse:
      type: object
      properties:
        success:
          description: Success
          type: boolean
        data:
          description: Data
          type: object
          properties:
            id:
              description: ID
              type: string
            key:
              description: Key
              type: string
            value:
              description: Value
              type: string
    PostPutAppPropertySettingsRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
        key:
          description: Key
          type: string
        value:
          description: Value
          type: string
    PostPutAppPropertySettingsResponse:
      type: object
      properties:
        success:
          description: Success
          type: boolean
        data:
          description: Data
          type: object
          properties:
            id:
              description: ID
              type: string
            key:
              description: Key
              type: string
            value:
              description: Value
              type: string
    GetCurrencySettingsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Currency Settings
          type: object
          properties:
            default:
              description: Default Currency ISO CODE
              type: string
            acceptable:
              description: Acceptable Currency ISO CODEs
              type: array
              items:
                type: string
            format:
              description: Currency Format
              type: object
              properties:
                decimal:
                  description: Decimal separator
                  type: string
                thousand:
                  description: Thousand separator
                  type: string
            rates:
              description: Currency rates
              type: object
              properties:
                fixed:
                  description: Fixed currency rates (configured by the property)
                  type: array
                  items:
                    type: object
                    properties:
                      currency:
                        description: Currency ISO CODE
                        type: string
                        nullable: true
                      rate:
                        description: Currency rate
                        type: number
                        nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetCustomFieldsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Field details
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Unique hotel identifier
                type: string
              name:
                description: Field name
                type: string
              shortcode:
                description: >-
                  Internal reference and is used for integration purposes such
                  as custom links and the API
                type: string
              applyTo:
                description: >-
                  Where put this field in reservation or guest section of the
                  booking.
                type: string
                enum:
                  - reservation
                  - guest
              required:
                description: Specify whether this field is required to be filled out.
                type: boolean
              isPersonal:
                description: >-
                  Specifies if the contents of this field may contain personal
                  information (GDPR).
                type: boolean
              maxCharacters:
                description: >-
                  Maximum number of characters allowed to be entered in this
                  field.
                type: integer
              type:
                description: The field's input type.
                type: string
                enum:
                  - input
                  - text
              displayed:
                description: ¹ Specify where this custom field to show up.
                type: array
                items:
                  type: string
                enum:
                  - reservation
                  - booking
                  - card
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostCustomFieldRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        name:
          description: Field name
          type: string
        shortcode:
          description: >-
            Internal reference and is used for integration purposes such as
            custom links and the API
          type: string
        applyTo:
          description: >-
            Where put this field in reservation or guest section of the booking.
            reservation - applies the custom field to reservations in
            myfrontdesk guest - applies the custom field to guest interface in
            myfrontdesk
          type: string
          enum:
            - reservation
            - guest
          nullable: true
          default: reservation
        required:
          description: Specify whether this field is required to be filled out.
          type: boolean
          nullable: true
          default: false
        maxCharacters:
          description: Maximum number of characters allowed to be entered in this field.
          type: integer
          nullable: true
          default: 40
        type:
          description: The field's input type.
          type: string
          enum:
            - input
            - text
          nullable: true
          default: input
        displayed:
          description: >-
            ¹ Specify where this custom field to show up. reservation - applies
            the custom field to reservation interface in myfrontdesk booking -
            applies the custom field to the booking engine card - applies the
            custom field to Registration cards
          type: array
          items:
            type: string
          enum:
            - reservation
            - booking
            - card
          nullable: true
        isPersonal:
          description: >-
            Specifies if the contents of this field may contain personal
            information. User's personal information may be removed upon request
            according to GDPR rules.
          type: boolean
    PostCustomFieldResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Field details
          type: object
          properties:
            fieldID:
              description: Field name
              type: string
            name:
              description: Field name
              type: string
            shortcode:
              description: >-
                Internal reference and is used for integration purposes such as
                custom links and the API
              type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetDashboardResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
          default: true
        data:
          description: Data to be displayed on dashboard
          type: object
          properties:
            roomsOccupied:
              description: Number of rooms occupied at the moment
              type: integer
            percentageOccupied:
              description: >-
                Percentage of rooms occupied (rooms occupied/rooms total) for
                the current day
              type: integer
            arrivals:
              description: Number of arrivals (check-ins) expected for the current day
              type: integer
            departures:
              description: Number of departures (check-outs) expected for the current day
              type: integer
            inHouse:
              description: >-
                Number of rooms occupied, and not expected to have a check-out
                for the current day
              type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetEmailTemplatesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: List of existing email templates
          type: array
          items:
            type: object
            properties:
              emailTemplateID:
                description: ID of the email template
                type: string
              name:
                description: Name
                type: string
              subject:
                description: Subject
                type: string
              isActive:
                description: True if email template is active; false if not
                type: boolean
    PostEmailTemplateRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        emailType:
          description: >-
            Type of the email template: Marketing or Non-Marketing. Only
            applicable to GDPR-compliant properties.
          type: string
          enum:
            - nonMarketing
            - marketing
          default: nonMarketing
        name:
          description: Template name
          type: string
        from:
          description: Email address from which the email message may be sent
          type: string
        fromName:
          description: >-
            from which the email message may be sent. If empty email will be
            used
          type: string
          nullable: true
        subject:
          description: >-
            Email message subject. The subject key should be a language code
            (IETF). A few examples are listed below.
          type: object
          properties:
            en:
              description: Email message subject in English
              type: string
              nullable: true
            es:
              description: Email message subject in Spanish
              type: string
              nullable: true
            ru:
              description: Email message subject in Russian
              type: string
              nullable: true
            pt-br:
              description: Email message subject in Portuguese
              type: string
              nullable: true
        body:
          description: >-
            Email message body. The body key should be a language code (IETF). A
            few examples are listed below.
          type: object
          properties:
            en:
              description: Email message body in English
              type: string
              nullable: true
            es:
              description: Email message body in Spanish
              type: string
              nullable: true
            ru:
              description: Email message body in Russian
              type: string
              nullable: true
            pt-br:
              description: Email message body in Portuguese
              type: string
              nullable: true
        replyTo:
          description: >-
            Email address to which the email message may be replied. If empty,
            the value on from parameter will be used.
          type: string
          nullable: true
        replyToName:
          description: >-
            Name to which the email message may be replied. If empty, email will
            be used.
          type: string
          nullable: true
        autofillAllLanguages:
          description: >-
            If set, all languages will be set with the value for the property
            language. If not informed and only one language is sent, it's
            considered true, if more than one language is sent, it'll be
            considered false.
          type: boolean
          nullable: true
        cc:
          description: >-
            Email address to which the email message may be sent as a Carbon
            Copy
          type: string
          nullable: true
        bcc:
          description: >-
            Email address to which the email message may be sent as a Blind
            Carbon Copy
          type: string
          nullable: true
    PostEmailTemplateResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        emailTemplateID:
          description: The ID of the created email template. Only present if success = true
          type: string
          nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetEmailScheduleResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: List of existing email schedules
          type: array
          items:
            type: object
            properties:
              emailScheduleID:
                description: ID of the email schedule
                type: string
              name:
                description: Name of the email schedule
                type: string
              emailTemplateID:
                description: ID of the email template used in this schedule
                type: string
              templateName:
                description: Name of the email template used in this schedule
                type: string
              isActive:
                description: True if email template is active; false if not
                type: boolean
    PostEmailScheduleRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        emailTemplateID:
          description: ID of the email template that will be used when sending an email.
          type: string
        scheduleName:
          description: >-
            User friendly schedule name that appears in the list. Should contain
            app name.
          type: string
        schedule:
          description: ''
          type: object
          properties:
            reservationStatusChange:
              description: ''
              type: object
              properties:
                status:
                  description: >-
                    Specify which reservation status change triggers sending the
                    email
                  type: string
                  enum:
                    - confirmed
                    - not_confirmed
                    - canceled
                    - checked_in
                    - checked_out
                    - no_show
            reservationEvent:
              description: ''
              type: object
              properties:
                event:
                  description: Specify event that triggers email sending
                  type: string
                  enum:
                    - after_booking
                    - after_check_out
                    - after_check_in
                    - before_check_out
                    - before_check_in
                days:
                  description: Number of days prior to or after the event
                  type: integer
                time:
                  description: Time of the day
                  type: string
                  format: time
    PostEmailScheduleResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        emailScheduleID:
          description: The ID of the created email schedule. Only present if success = true
          type: string
          nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetGroupNotesResponse:
      type: object
      properties:
        success:
          description: Success
          type: boolean
        code:
          description: HTTP status code
          type: integer
        data:
          description: Data
          type: object
          properties:
            id:
              description: ID for the note
              type: string
            group_profile_id:
              description: Group profile ID
              type: string
            text:
              description: Note text
              type: string
            created_by:
              description: Created by
              type: string
            created_at:
              description: Created at
              type: string
            updated_at:
              description: Updated at
              type: string
            archived:
              description: Note archived
              type: boolean
            archived_at:
              description: Note archived at
              type: string
    GetGroupsResponse:
      type: object
      properties:
        success:
          description: Success
          type: boolean
        data:
          description: Data
          type: array
          items:
            type: object
            properties:
              groupCode:
                description: Unique ID for a group
                type: string
              name:
                description: The name of the group
                type: string
              type:
                description: The type of the group
                type: string
                enum:
                  - group
                  - company
                  - travel_agent
                  - wholesaler
              status:
                description: Group status
                type: string
                enum:
                  - open
                  - closed
              created:
                description: Group created time
                type: string
                format: date-time
              sourceID:
                description: The third-party source ID for this group, can be null
                type: string
              address1:
                description: Address
                type: string
              address2:
                description: Address2
                type: string
              city:
                description: City
                type: string
              zip:
                description: Zip
                type: string
              state:
                description: State
                type: string
              commissionType:
                description: Commission type
                type: string
                enum:
                  - fixed
                  - percent
    PostPatchGroupRequest:
      type: object
      properties:
        groupCode:
          description: code for a group
          type: string
        propertyID:
          description: Property ID
          type: string
        name:
          description: Name for a group
          type: string
        type:
          description: The type of group
          type: string
          enum:
            - group
            - company
            - travel_agent
            - wholesaler
        status:
          description: Group status
          type: string
          enum:
            - open
            - closed
        sourceID:
          description: Source ID for a group
          type: string
        address1:
          description: Address line 1 for a group
          type: string
        address2:
          description: Address line 2 for a group
          type: string
        city:
          description: City for a group
          type: string
        zip:
          description: Zip for a group
          type: string
        state:
          description: State for a group
          type: string
    PostPatchGroupResponse:
      type: object
      properties:
        success:
          description: Success
          type: boolean
        data:
          description: Data
          type: array
          items:
            type: object
            properties:
              groupCode:
                description: Unique ID for a group
                type: string
              name:
                description: The name of the group
                type: string
              type:
                description: The type of the group
                type: string
                enum:
                  - group
                  - company
                  - travel_agent
                  - wholesaler
              status:
                description: Group status
                type: string
                enum:
                  - open
                  - closed
              created:
                description: Group created time
                type: string
                format: date-time
              sourceID:
                description: The third-party source ID for this group, can be null
                type: string
              address1:
                description: Address
                type: string
              address2:
                description: Address2
                type: string
              city:
                description: City
                type: string
              zip:
                description: Zip
                type: string
              state:
                description: State
                type: string
              id:
                description: ID
                type: string
              property_id:
                description: Property Id
                type: string
    PostGroupNoteRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
        groupCode:
          description: Group code
          type: string
        groupNote:
          description: Group note
          type: string
    PostGroupNoteResponse:
      type: object
      properties:
        success:
          description: Success
          type: boolean
        code:
          description: code HTTP status code
          type: integer
        data:
          description: Data
          type: array
          items:
            type: object
            properties:
              id:
                description: ID for the note
                type: string
              group_profile_id:
                description: Group profile ID
                type: string
              text:
                description: Note text
                type: string
              created_by:
                description: Created by
                type: string
              created_at:
                description: Created at
                type: string
              updated_at:
                description: Updated at
                type: string
              archived:
                description: Note archived
                type: string
              archived_at:
                description: Note archived at
                type: string
    PostPutGroupRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
        name:
          description: Name for a group
          type: string
        type:
          description: The type of group
          type: string
          enum:
            - group
            - company
            - travel_agent
            - wholesaler
        status:
          description: Group status
          type: string
          enum:
            - open
            - closed
        commissionType:
          description: Commission Type
          type: string
          enum:
            - fixed
            - percent
        sourceID:
          description: Source ID for a group
          type: string
        address1:
          description: Address line 1 for a group
          type: string
          nullable: true
        address2:
          description: Address line 2 for a group
          type: string
          nullable: true
        city:
          description: City for a group
          type: string
          nullable: true
        zip:
          description: Zip for a group
          type: string
          nullable: true
        state:
          description: State for a group
          type: string
          nullable: true
    PostPutGroupResponse:
      type: object
      properties:
        success:
          description: Success
          type: boolean
        data:
          description: Data
          type: array
          items:
            type: object
            properties:
              groupCode:
                description: Unique ID for a group
                type: string
              name:
                description: The name of the group
                type: string
              type:
                description: The type of the group
                type: string
                enum:
                  - group
                  - company
                  - travel_agent
                  - wholesaler
              status:
                description: Group status
                type: string
                enum:
                  - open
                  - closed
              created:
                description: Group created time
                type: string
                format: date-time
              sourceID:
                description: The third-party source ID for this group, can be null
                type: string
              address1:
                description: Address
                type: string
              address2:
                description: Address2
                type: string
              city:
                description: City
                type: string
              zip:
                description: Zip
                type: string
              state:
                description: State
                type: string
              id:
                description: ID
                type: string
              property_id:
                description: Property Id
                type: string
    GetGuestResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the guest queried
          type: object
          properties:
            firstName:
              description: First Name
              type: string
            lastName:
              description: Last Name
              type: string
            gender:
              description: Gender
              type: string
              enum:
                - M
                - F
                - N/A
            email:
              description: Email
              type: string
            phone:
              description: Phone number
              type: string
            cellPhone:
              description: Cell phone number
              type: string
            country:
              description: Country (2 digit code)
              type: string
            address:
              description: Address
              type: string
            address2:
              description: Address 2
              type: string
            city:
              description: City
              type: string
            zip:
              description: Zip
              type: string
            state:
              description: State
              type: string
            birthDate:
              description: Birth date
              type: string
              format: date
            documentType:
              description: Document Type
              type: string
            documentNumber:
              description: Document number
              type: string
            documentIssueDate:
              description: Document Issue Date, can be null
              type: string
              format: date
            documentIssuingCountry:
              description: Document Issuing Country (2-digits code)
              type: string
            documentExpirationDate:
              description: Document Expiration Date, can be null
              type: string
              format: date
            customFields:
              description: ''
              type: array
              items:
                type: object
                properties:
                  customFieldName:
                    description: ''
                    type: string
                    nullable: true
                  customFieldValue:
                    description: ''
                    type: string
                    nullable: true
            specialRequests:
              description: Special requests made by the guest at the time of the booking
              type: string
            taxID:
              description: Tax ID
              type: string
              nullable: true
            companyTaxID:
              description: Company tax ID
              type: string
              nullable: true
            companyName:
              description: Company name
              type: string
              nullable: true
            isAnonymized:
              description: Flag indicating the guest data was removed upon request
              type: boolean
            guestOptIn:
              description: If guest has opted-in to marketing communication or not
              type: boolean
            isMerged:
              description: Flag indicating that guest was merged
              type: boolean
            newGuestID:
              description: Merged guest ID
              type: string
    GetGuestListResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the guest linked to the property (key is the Guest ID)
          type: object
          additionalProperties:
            type: object
            properties:
              reservationID:
                description: Reservation's unique identifier
                type: string
              guestName:
                description: Guest Name
                type: string
              guestEmail:
                description: Guest Email
                type: string
              guestID:
                description: Guest ID
                type: string
              dateCreated:
                description: Reservation creation date
                type: string
                format: date-time
              dateModified:
                description: Reservation modification date
                type: string
                format: date-time
              isMainGuest:
                description: If the guest is the main guest of its reservation
                type: boolean
              isAnonymized:
                description: Flag indicating the guest data was removed upon request
                type: boolean
              guestFirstName:
                description: Guest First Name
                type: string
                nullable: true
              guestLastName:
                description: Guest Last Name
                type: string
                nullable: true
              guestGender:
                description: Guest Gender
                type: string
                enum:
                  - M
                  - F
                  - N/A
                nullable: true
              guestPhone:
                description: Guest Phone
                type: string
                nullable: true
              guestCellPhone:
                description: Guest Cell Phone
                type: string
                nullable: true
              guestAddress1:
                description: Guest Address (line 1)
                type: string
                nullable: true
              guestAddress2:
                description: Guest Address (line 2)
                type: string
                nullable: true
              guestCity:
                description: Guest City
                type: string
                nullable: true
              guestState:
                description: Guest State
                type: string
                nullable: true
              guestCountry:
                description: Guest Country
                type: string
                nullable: true
              guestZip:
                description: Guest Zip code
                type: string
                nullable: true
              guestBirthDate:
                description: Guest Birth Date
                type: string
                format: date
                nullable: true
              guestDocumentType:
                description: Guest Document Type
                type: string
                nullable: true
              guestDocumentNumber:
                description: Guest Document Number
                type: string
                nullable: true
              guestDocumentIssueDate:
                description: Guest Document Issue Date
                type: string
                format: date
                nullable: true
              guestDocumentIssuingCountry:
                description: Guest Document Issuing Country
                type: string
                nullable: true
              guestDocumentExpirationDate:
                description: Guest Document Expiration Date
                type: string
                format: date
                nullable: true
              taxID:
                description: Tax ID
                type: string
                nullable: true
              companyTaxID:
                description: Company tax ID
                type: string
                nullable: true
              companyName:
                description: Company name
                type: string
                nullable: true
              guestOptIn:
                description: If guest has opted-in to marketing communication or not
                type: boolean
                nullable: true
              guestNotes:
                description: Guest Notes
                type: array
                items:
                  type: object
                  properties:
                    ID:
                      description: Guest Notes ID
                      type: string
                      nullable: true
                    note:
                      description: Guest Notes "note"
                      type: string
                      nullable: true
                nullable: true
              status:
                description: >-
                  Reservation status<br /> in_progress - Reservation is pending
                  confirmation<br /> confirmed - Reservation is confirmed<br />
                  not_confirmed - Reservation not passed confirmation<br />
                  canceled - Reservation is canceled<br /> checked_in - Guest is
                  in hotel<br /> checked_out - Guest already left hotel<br />
                  no_show - Guest didn't showed up on check-in date
                type: string
                enum:
                  - in_progress
                  - confirmed
                  - not_confirmed
                  - canceled
                  - checked_in
                  - checked_out
                  - no_show
                nullable: true
              isMerged:
                description: Flag indicating that guest was merged
                type: boolean
              newGuestID:
                description: Merged guest ID
                type: string
        count:
          description: Number of results returned
          type: integer
        total:
          description: Total number of results
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetGuestsModifiedResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the guest linked to the property
          type: array
          items:
            type: object
            properties:
              guestID:
                description: Guest ID
                type: string
              reservationID:
                description: Reservation's unique identifier
                type: string
              roomTypeID:
                description: Room Type ID that the guest is assigned
                type: string
              roomID:
                description: Room ID that the guest is assigned
                type: string
              roomName:
                description: Name of the room where guest is assigned
                type: string
              guestFirstName:
                description: First Name
                type: string
              guestLastName:
                description: Last Name
                type: string
              guestGender:
                description: ''
                type: string
                enum:
                  - M
                  - F
                  - N/A
              guestEmail:
                description: Email Address
                type: string
              guestPhone:
                description: Phone Number
                type: string
              guestCellPhone:
                description: Cell Phone Number
                type: string
              guestAddress1:
                description: Address
                type: string
              guestAddress2:
                description: Address line 2
                type: string
              guestCity:
                description: Address city
                type: string
              guestState:
                description: Address state
                type: string
              guestCountry:
                description: Address country
                type: string
              guestZip:
                description: Address zip code
                type: string
              guestBirthDate:
                description: Guests Date of Birth
                type: string
                format: date
              guestDocumentType:
                description: Document Type
                type: string
              guestDocumentNumber:
                description: Document Number
                type: string
              guestDocumentIssueDate:
                description: Document Issue Date
                type: string
                format: date
              guestDocumentIssuingCountry:
                description: Document Issuing Country
                type: string
              guestDocumentExpirationDate:
                description: Document Expiration Date
                type: string
                format: date
              startDate:
                description: Check-in date
                type: string
                format: date-time
              endDate:
                description: Check-out date
                type: string
                format: date-time
              customFields:
                description: List of custom fields
                type: array
                items:
                  type: object
                  properties:
                    customFieldName:
                      description: Custom Field Name
                      type: string
                      nullable: true
                    customFieldValue:
                      description: Custom Field Value
                      type: string
                      nullable: true
              dateModified:
                description: Guest modification date
                type: string
                format: date-time
              taxID:
                description: Tax ID
                type: string
                nullable: true
              companyTaxID:
                description: Company tax ID
                type: string
                nullable: true
              companyName:
                description: Company name
                type: string
                nullable: true
              isAnonymized:
                description: Flag indicating the guest data was removed upon request
                type: boolean
              guestOptIn:
                description: If guest has opted-in to marketing communication or not
                type: boolean
              isMerged:
                description: Flag indicating that guest was merged
                type: boolean
              newGuestID:
                description: Merged guest ID
                type: string
        count:
          description: Number of results returned
          type: integer
        total:
          description: Total number of results
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetGuestsByStatusResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the guest
          type: array
          items:
            type: object
            properties:
              guestID:
                description: Guest ID
                type: string
              reservationID:
                description: Reservation's unique identifier
                type: string
              subReservationID:
                description: ''
                type: string
              reservationCreatedDateTime:
                description: Reservation creation datetime
                type: string
                format: date-time
              roomTypeID:
                description: Room Type ID that the guest is assigned
                type: string
              roomID:
                description: Room ID that the guest is assigned
                type: string
              roomName:
                description: Name of the room where guest is assigned
                type: string
              guestFirstName:
                description: First Name
                type: string
              guestLastName:
                description: Last Name
                type: string
              guestGender:
                description: Gender
                type: string
                enum:
                  - M
                  - F
                  - N/A
              guestEmail:
                description: Email Address
                type: string
              guestPhone:
                description: Phone Number
                type: string
              guestCellPhone:
                description: Cell Phone Number
                type: string
              guestAddress1:
                description: Address
                type: string
              guestAddress2:
                description: Address line 2
                type: string
              guestCity:
                description: Address city
                type: string
              guestState:
                description: Address state
                type: string
              guestCountry:
                description: Address country
                type: string
              guestZip:
                description: Address zip code
                type: string
              guestBirthDate:
                description: Guests Date of Birth
                type: string
                format: date
              guestDocumentType:
                description: Document Type
                type: string
              guestDocumentNumber:
                description: Document Number
                type: string
              guestDocumentIssueDate:
                description: Document Issue Date
                type: string
                format: date
              guestDocumentIssuingCountry:
                description: Document Issuing Country
                type: string
              guestDocumentExpirationDate:
                description: Document Expiration Date
                type: string
                format: date
              startDate:
                description: Check-in date
                type: string
                format: date-time
              endDate:
                description: Check-out date
                type: string
                format: date-time
              customFields:
                description: List of custom fields
                type: array
                items:
                  type: object
                  properties:
                    customFieldName:
                      description: Custom Field Name
                      type: string
                      nullable: true
                    customFieldValue:
                      description: Custom Field Value
                      type: string
                      nullable: true
              dateModified:
                description: Guest modification date
                type: string
                format: date-time
              currentStatus:
                description: >-
                  Current Status of the guest. Does not need to be equal to the
                  status looked for (it may have had a status change outside of
                  the filtered date range).
                type: string
                enum:
                  - canceled
                  - checked_out
                  - in_house
                  - not_checked_in
              statusDate:
                description: DateTime when the last status modification occurred.
                type: string
                format: date-time
              taxID:
                description: Tax ID
                type: string
                nullable: true
              companyTaxID:
                description: Company tax ID
                type: string
                nullable: true
              companyName:
                description: Company name
                type: string
                nullable: true
              isAnonymized:
                description: Flag indicating the guest data was removed upon request
                type: boolean
              isDeleted:
                description: Flag indicating the guest's reservation was removed
                type: boolean
              guestOptIn:
                description: If guest has opted-in to marketing communication or not
                type: boolean
              isMerged:
                description: Flag indicating that guest was merged
                type: boolean
              newGuestID:
                description: Merged guest ID
                type: string
        count:
          description: Number of results returned
          type: integer
        total:
          description: Total number of results
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetGuestsByFilterResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the guest
          type: array
          items:
            type: object
            properties:
              reservationID:
                description: Reservation's unique identifier
                type: string
              guestName:
                description: ''
                type: string
              guestID:
                description: Guest ID
                type: string
              roomID:
                description: Room ID that the guest is assigned
                type: string
              roomName:
                description: Name of the room where guest is assigned
                type: string
              isMainGuest:
                description: True if the main guest of the reservation
                type: boolean
              isAnonymized:
                description: Flag indicating the guest data was removed upon request
                type: boolean
              guestOptIn:
                description: If guest has opted-in to marketing communication or not
                type: boolean
              isMerged:
                description: Flag indicating that guest was merged
                type: boolean
              newGuestID:
                description: Merged guest ID
                type: string
        count:
          description: Number of results returned
          type: integer
        total:
          description: Total number of results
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostGuestNoteRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        guestID:
          description: Guest ID
          type: string
        guestNote:
          description: >-
            Note to be added to guest profile. It's strictly forbidden to send
            unencrypted payment data through the API. Numeric values longer than
            12 characters and considered valid by Luhn's algorithm will be
            rejected.
          type: string
        userID:
          description: User ID Identify the actual user that is posting the note
          type: string
          nullable: true
    PostGuestNoteResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        guestNoteID:
          description: Guest note ID
          type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetGuestNotesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the notes on that reservation
          type: array
          items:
            type: object
            properties:
              guestNoteID:
                description: Guest note ID
                type: string
              userName:
                description: User Name
                type: string
              dateCreated:
                description: Creation datetime
                type: string
                format: date-time
              dateModified:
                description: Last modification datetime
                type: string
                format: date-time
              guestNote:
                description: Note content
                type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PutGuestNoteRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        guestID:
          description: Guest ID
          type: string
        noteID:
          description: Note ID
          type: string
        guestNote:
          description: >-
            Note to be added to guest profile. It's strictly forbidden to send
            unencrypted payment data through the API. Numeric values longer than
            12 characters and considered valid by Luhn's algorithm will be
            rejected.
          type: string
    PutGuestNoteResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    DeleteGuestNoteResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PutGuestRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        guestID:
          description: Valid Guest ID
          type: string
        guestFirstName:
          description: ''
          type: string
          nullable: true
        guestLastName:
          description: ''
          type: string
          nullable: true
        guestGender:
          description: ''
          type: string
          enum:
            - M
            - F
            - N/A
          nullable: true
        guestEmail:
          description: ''
          type: string
          nullable: true
        guestPhone:
          description: ''
          type: string
          nullable: true
        guestCellPhone:
          description: ''
          type: string
          nullable: true
        guestAddress1:
          description: ''
          type: string
          nullable: true
        guestAddress2:
          description: ''
          type: string
          nullable: true
        guestCity:
          description: ''
          type: string
          nullable: true
        guestCountry:
          description: ISO-Code for Country (2 characters)
          type: string
          nullable: true
        guestState:
          description: ''
          type: string
          nullable: true
        guestZip:
          description: ''
          type: string
          nullable: true
        guestBirthDate:
          description: ''
          type: string
          format: date
          nullable: true
        guestDocumentType:
          description: >-
            It is mandatory to send all document information<br /> na - non
            selection<br /> dni - Identity card<br /> nie - Residence permit<br
            />
          type: string
          enum:
            - na
            - driver_licence
            - student_id
            - passport
            - dni
            - nie
            - social_security_card
          nullable: true
        guestDocumentNumber:
          description: (mandatory when guestDocumentType is sent)
          type: string
          nullable: true
        guestDocumentIssueDate:
          description: (mandatory when guestDocumentType is sent)
          type: string
          format: date
          nullable: true
        guestDocumentIssuingCountry:
          description: >-
            ISO-Code for Country (2 characters) (mandatory when
            guestDocumentType is sent)
          type: string
          nullable: true
        guestDocumentExpirationDate:
          description: (mandatory when guestDocumentType is sent)
          type: string
          format: date
          nullable: true
        guestCustomFields:
          description: ''
          type: array
          items:
            type: object
            properties:
              customFieldName:
                description: ''
                type: string
                nullable: true
              customFieldValue:
                description: >-
                  Custom field value. It's strictly forbidden to send
                  unencrypted payment data through the API. Numeric values
                  longer than 12 characters and considered valid by Luhn's
                  algorithm will be rejected.
                type: string
                nullable: true
          nullable: true
        guestCompanyName:
          description: Guest company name
          type: string
          nullable: true
        guestCompanyTaxId:
          description: Guest company tax ID
          type: string
          nullable: true
        guestTaxId:
          description: >-
            Guest tax ID unencrypted payment data through the API. Numeric
            values longer than 12 characters and considered valid by Luhn's
            algorithm will be rejected.
          type: string
          nullable: true
    PutGuestResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false), or in case
            any warning message is needed. If success = true, it usually does
            not exist.
          type: string
          nullable: true
    PostGuestDocumentRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        guestID:
          description: Guest Unique Identifier
          type: string
        file:
          description: >-
            Form-based File Upload<br/> Allowed file types: <code>*.pdf, *.rtf,
            *.doc, *.docx, *.txt, *.jpg, *.jpeg, *.png, *.gif, *.csv, *.xls,
            *.xlsx, *.xml</code><br/> Allowed max file size: 100MB
          type: string
          format: binary
    PostGuestDocumentResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
        data:
          description: Details for the uploaded file
          type: object
          properties:
            fileID:
              description: uploaded file identifier
              type: string
    PostGuestRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation ID
          type: string
        guestFirstName:
          description: ''
          type: string
        guestLastName:
          description: ''
          type: string
        guestGender:
          description: ''
          type: string
          enum:
            - M
            - F
            - N/A
          nullable: true
        guestEmail:
          description: ''
          type: string
        guestPhone:
          description: ''
          type: string
          nullable: true
        guestCellPhone:
          description: ''
          type: string
          nullable: true
        guestAddress1:
          description: ''
          type: string
          nullable: true
        guestAddress2:
          description: ''
          type: string
          nullable: true
        guestCity:
          description: ''
          type: string
          nullable: true
        guestCountry:
          description: ISO-Code for Country (2 characters)
          type: string
        guestState:
          description: ''
          type: string
          nullable: true
        guestZip:
          description: ''
          type: string
          nullable: true
        guestBirthDate:
          description: ''
          type: string
          format: date
          nullable: true
        guestDocumentType:
          description: >-
            Document Type<br /> dni - Identity card<br /> nie - Residence
            permit<br /> na - non selection<br />
          type: string
          enum:
            - dni
            - driver_license
            - na
            - nie
            - passport
            - social_security_card
            - student_id
          nullable: true
        guestDocumentNumber:
          description: (mandatory when guestDocumentType is sent)
          type: string
          nullable: true
        guestDocumentIssueDate:
          description: (mandatory when guestDocumentType is sent)
          type: string
          format: date
          nullable: true
        guestDocumentIssuingCountry:
          description: >-
            Valid ISO-Code for Country (2 characters) (mandatory when
            guestDocumentType is sent)
          type: string
          nullable: true
        guestDocumentExpirationDate:
          description: (mandatory when guestDocumentType is sent)
          type: string
          format: date
          nullable: true
        customFields:
          description: Only guest custom fields are allowed.
          type: array
          items:
            type: object
            properties:
              customFieldName:
                description: Custom Field shortcode.
                type: string
                nullable: true
              customFieldValue:
                description: >-
                  Custom field value. It's strictly forbidden to send
                  unencrypted payment data through the API. Numeric values
                  longer than 12 characters and considered valid by Luhn's
                  algorithm will be rejected.
                type: string
                nullable: true
          nullable: true
        guestNote:
          description: Note to be added to the Guest
          type: string
          nullable: true
        reservationNote:
          description: Note to be added only to the Reservation.
          type: string
          nullable: true
        guestCompanyName:
          description: Guest company name
          type: string
          nullable: true
        guestCompanyTaxId:
          description: Guest company tax ID
          type: string
          nullable: true
        guestTaxId:
          description: Guest tax ID
          type: string
          nullable: true
    PostGuestResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        guestID:
          description: Returns the Guest ID if the request could be completed successfully
          type: string
          nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostGuestsToRoomRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation ID
          type: string
        roomID:
          description: Room ID already assigned to Reservation
          type: integer
        guestIDs:
          description: >-
            Guest ID(s) to be assigned to room. If more than one, send as
            comma-separated, i.e. 37,345,89
          type: string
        removeGuestIDs:
          description: >-
            If sent, will remove guest ID(s) before adding guests sent in
            guestIDs parameter. If more than one, send as comma-separated, i.e.
            37,345,89. Main Guest is never removed.
          type: string
          nullable: true
        removeAll:
          description: >-
            If set true, will remove all guests assigned to roomID before
            assigning guests sent in guestIDs parameter. Main Guest is never
            removed.
          type: boolean
          nullable: true
    PostGuestsToRoomResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostGuestPhotoRequest:
      type: object
      properties:
        guestID:
          description: Guest Unique Identifier
          type: string
        file:
          description: >-
            Form-based File Upload<br/> Allowed file types: <code>*.jpg, *.jpeg,
            *.png, *.gif</code><br/> Allowed max file size: 15MB
          type: string
          format: binary
    PostGuestPhotoResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
        data:
          description: Details for the uploaded file
          type: object
          properties:
            fileID:
              description: uploaded file identifier
              type: string
    GetHotelsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Information about the hotels
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Property ID
                type: string
              organizationID:
                description: Organization ID
                type: string
              propertyName:
                description: Property name
                type: string
              propertyImage:
                description: Property image URL
                type: string
              propertyDescription:
                description: Property description
                type: string
              propertyTimezone:
                description: Property Timezone
                type: string
              propertyCurrency:
                description: Currency used by the property
                type: array
                items:
                  type: object
                  properties:
                    currencyCode:
                      description: Currency code
                      type: string
                    currencySymbol:
                      description: Currency symbol
                      type: string
                    currencyPosition:
                      description: Currency position
                      type: string
        count:
          description: Number of results in this page
          type: integer
        total:
          description: Total number of results
          type: integer
    GetHotelDetailsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Information about the hotel
          type: object
          properties:
            propertyID:
              description: Property ID
              type: string
            organizationID:
              description: Organization ID
              type: string
            propertyName:
              description: Property name
              type: string
            propertyType:
              description: The type of property
              type: string
            propertyImage:
              description: Property images details
              type: array
              items:
                type: object
                properties:
                  thumb:
                    description: Thumbnail URL
                    type: string
                  image:
                    description: Full Image URL
                    type: string
            propertyDescription:
              description: Property description
              type: string
            propertyCurrency:
              description: Currency used by the property
              type: object
              properties:
                currencyCode:
                  description: Currency code
                  type: string
                currencySymbol:
                  description: Currency symbol
                  type: string
                currencyPosition:
                  description: Currency position
                  type: string
                  enum:
                    - before
                    - after
            propertyPrimaryLanguage:
              description: Property primary language
              type: string
            propertyAdditionalPhotos:
              description: Property additional photos
              type: array
              items:
                type: object
                properties:
                  thumb:
                    description: Thumbnail URL
                    type: string
                  image:
                    description: Full Image URL
                    type: string
            propertyPhone:
              description: Property phone number
              type: string
            propertyEmail:
              description: Property main email address
              type: string
            propertyAddress:
              description: ''
              type: object
              properties:
                propertyAddress1:
                  description: ''
                  type: string
                propertyAddress2:
                  description: ''
                  type: string
                propertyCity:
                  description: ''
                  type: string
                propertyState:
                  description: ''
                  type: string
                propertyZip:
                  description: ''
                  type: string
                propertyCountry:
                  description: ''
                  type: string
                propertyLatitude:
                  description: ''
                  type: string
                propertyLongitude:
                  description: ''
                  type: string
            propertyPolicy:
              description: ''
              type: object
              properties:
                propertyCheckInTime:
                  description: ''
                  type: string
                  format: time
                propertyCheckOutTime:
                  description: ''
                  type: string
                  format: time
                propertyLateCheckOutAllowed:
                  description: ''
                  type: boolean
                propertyLateCheckOutType:
                  description: >-
                    If the property accepts late check-out, defines if the value
                    is fixed, or a percentage of the daily rate
                  type: string
                  enum:
                    - value
                    - percent
                propertyLateCheckOutValue:
                  description: >-
                    The fixed value, or percentage of the daily rate, to be
                    charged on a late check-out
                  type: string
                propertyTermsAndConditions:
                  description: >-
                    Text describing the terms and conditions to be displayed to
                    guest
                  type: string
                propertyFullPaymentBeforeCheckin:
                  description: >-
                    If the property requires the full payment amount of the
                    reservation to be collected prior to check-in
                  type: boolean
            propertyAmenities:
              description: List of property amenities
              type: array
              items:
                type: string
            taxID:
              description: Tax ID number
              type: string
            taxID2:
              description: Second Tax ID number
              type: string
            companyLegalName:
              description: Legal company name
              type: string
    PostFileRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        file:
          description: >-
            Form-based File Upload<br/> Allowed file types: <code>*.pdf, *.rtf,
            *.doc, *.docx, *.txt, *.jpg, *.jpeg, *.png, *.gif, *.csv, *.xls,
            *.xlsx, *.xml</code><br/> Allowed max file size: 100MB
          type: string
          format: binary
    PostFileResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
        data:
          description: Details for the uploaded file
          type: object
          properties:
            fileID:
              description: uploaded file identifier
              type: string
    GetFilesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Files linked to the property
          type: array
          items:
            type: object
            properties:
              fileID:
                description: File's unique identifier
                type: string
              name:
                description: File Name
                type: string
              type:
                description: File Type
                type: string
              source:
                description: File Source
                type: string
              dateCreated:
                description: File creation date
                type: string
                format: date-time
              url:
                description: File's URL to download
                type: string
        count:
          description: Number of results returned
          type: integer
        total:
          description: Total number of results for supplied parameters
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetHouseAccountListResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the house accounts
          type: array
          items:
            type: object
            properties:
              accountID:
                description: House Account ID
                type: string
              propertyID:
                description: Property ID
                type: string
              accountName:
                description: House Account name
                type: string
              accountStatus:
                description: House Account status
                type: string
                enum:
                  - open
                  - closed
              isPrivate:
                description: >-
                  Whether House Account is set to private or not (if true
                  "userName" will be specified)
                type: boolean
              userName:
                description: Owner Name of private House Account
                type: string
    GetHouseAccountDetailsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: >-
            Includes records list for House Account and summary info covering
            the date range specified
          type: object
          properties:
            total:
              description: Section with summary records info
              type: array
              items:
                type: object
                properties:
                  count:
                    description: Total number of House Account records
                    type: integer
                  quantity:
                    description: Total items quantity of product type records
                    type: string
                  debit:
                    description: Total debit (formatted)
                    type: string
                  credit:
                    description: Total credit (formatted)
                    type: string
            records:
              description: Section with records list
              type: array
              items:
                type: object
                properties:
                  propertyID:
                    description: Property ID
                    type: string
                  transactionID:
                    description: Transaction ID
                    type: string
                  userName:
                    description: User name
                    type: string
                  description:
                    description: Record description
                    type: string
                  notes:
                    description: Record notes
                    type: string
                  quantity:
                    description: Quantity of items (for product type record)
                    type: string
                  debit:
                    description: Debit amount (non formatted)
                    type: string
                  credit:
                    description: Credit amount (non formatted)
                    type: string
                  debitFormatter:
                    description: Debit amount (formatted)
                    type: string
                  creditFormatted:
                    description: Credit amount (formatted)
                    type: string
                  currency:
                    description: Currency string
                    type: string
                  transactionCode:
                    description: Transaction code
                    type: string
                  parentTransactionID:
                    description: >-
                      Parent transaction identifier. Parent transaction is a
                      transaction to which this current transaction is strongly
                      related to or derived from.<br/> Example: Parent
                      transaction to a room rate tax is a room rate.<br/> This
                      parent transaction ID will mostly be present on
                      transactions that are taxes, fees and voids. It will not
                      be present on room rates, items, payments and refunds.
                    type: string
                  transactionDate:
                    description: Transaction date
                    type: string
                    format: date
                  transactionDateTime:
                    description: Transaction date and time
                    type: string
                    format: date-time
    PostNewHouseAccountRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        accountName:
          description: House Account name
          type: string
        isPrivate:
          description: Whether House Account is available only to user
          type: boolean
          nullable: true
          default: false
    PostNewHouseAccountResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: House Account details
          type: object
          properties:
            houseAccountID:
              description: Unique identifier of created House Account
              type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PutHouseAccountStatusRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        houseAccountID:
          description: House Account ID
          type: string
        status:
          description: House Account status
          type: string
          enum:
            - open
            - closed
    PutHouseAccountStatusResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetHousekeepingStatusResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: ''
          type: array
          items:
            type: object
            properties:
              date:
                description: Date for last date/time that the room condition changed
                type: string
                format: date
              roomTypeID:
                description: ID of the room type
                type: string
              roomTypeName:
                description: Name of the room type
                type: string
              roomID:
                description: ID of room
                type: string
              roomName:
                description: Name of room
                type: string
              roomCondition:
                description: Room cleaning condition
                type: string
                enum:
                  - dirty
                  - clean
              roomOccupied:
                description: Flag if room currently occupied
                type: boolean
              roomBlocked:
                description: Flag if room is blocked
                type: boolean
              frontdeskStatus:
                description: >-
                  The following frontdesk statuses exist:<br /><br /> 'check-in'
                  - There is no guest checking out, but there is a guest
                  checking in.<br /> 'check-out' - Guest checking out today, but
                  no guest checking in.<br /> 'stayover' - Guest is in-house,
                  not checking out today and is staying for another night<br />
                  'turnover' - Guest checking out today and another guest
                  checking in today<br /> 'unused' - Room is not being used.
                  There is no one there now due to check out, and no one
                  arriving.
                type: string
                enum:
                  - check-in
                  - check-out
                  - stayover
                  - turnover
                  - unused
              housekeeperID:
                description: ID of Housekeeper
                type: string
              housekeeper:
                description: Housekeeper name
                type: string
              doNotDisturb:
                description: Flag if room as set as "Do Not Disturb"
                type: boolean
              refusedService:
                description: Flag if room as set as "Refused Service"
                type: boolean
              vacantPickup:
                description: Flag if room as set as "Vacant Pickup"
                type: boolean
              roomComments:
                description: Room comments
                type: string
        count:
          description: Results in current request
          type: integer
        total:
          description: Total number of results for supplied parameters
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostHousekeepingStatusRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        roomID:
          description: Room ID
          type: string
        roomCondition:
          description: >-
            New room condition. If no optional parameters are sent, will switch
            from current room condition
          type: string
          enum:
            - dirty
            - clean
          nullable: true
        doNotDisturb:
          description: New "do not disturb" status
          type: boolean
          nullable: true
        roomComments:
          description: New room comments.
          type: string
          nullable: true
        refusedService:
          description: New "refused service" status
          type: boolean
          nullable: true
        vacantPickup:
          description: New "vacant_pickup" status
          type: boolean
          nullable: true
    PostHousekeepingStatusResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: ''
          type: object
          properties:
            date:
              description: Date for last date/time that the room condition changed
              type: string
              format: date
            roomID:
              description: ID of room
              type: string
            roomCondition:
              description: New room condition
              type: string
              enum:
                - dirty
                - clean
            roomComments:
              description: New room comments.
              type: string
            doNotDisturb:
              description: New "do not disturb" status
              type: boolean
              nullable: true
            refusedService:
              description: New "refused service" status
              type: boolean
              nullable: true
            vacantPickup:
              description: New "vacant_pickup" status
              type: boolean
              nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostHousekeeperRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        name:
          description: Housekeeper name
          type: string
    PostHousekeeperResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        housekeeperID:
          description: Housekeeper ID. Returned if success = true.
          type: string
          nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PutHousekeeperRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        name:
          description: Housekeeper name
          type: string
        housekeeperID:
          description: Housekeeper ID
          type: string
    PutHousekeeperResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetHousekeepersResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: ''
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Property ID
                type: string
              housekeeperID:
                description: Housekeeper ID
                type: string
              name:
                description: Housekeeper Name
                type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostHousekeepingAssignmentRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        roomIDs:
          description: List of room IDs comma-separated, i.e. 37,345,89
          type: string
        housekeeperID:
          description: >-
            Housekeeper ID. To designate a room as unassigned, simply set the
            value to 0.
          type: string
    PostHousekeepingAssignmentResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetAppStateResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Integration state details
          type: object
          properties:
            app_state:
              description: Integration state
              type: string
              enum:
                - enabled
                - disabled
                - installing
                - pending
    PostAppStateRequest:
      type: object
      properties:
        propertyID:
          description: Property identifier to be updated
          type: string
          nullable: true
        app_state:
          description: Current integration state between third-party and property.
          type: string
          enum:
            - enabled
            - disabled
            - installing
            - pending
    PostAppStateResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
    PostGovernmentReceiptRequest:
      type: object
      properties:
        propertyID:
          description: Property identifier to be updated
          type: string
          nullable: true
        reservationID:
          description: Reservation identifier. It, or houseAccountID, is necessary.
          type: string
          nullable: true
        houseAccountID:
          description: House Account identifier. It, or reservationID, is necessary.
          type: string
          nullable: true
        name:
          description: Name of the document. Will be used to describe document in MFD.
          type: string
        url:
          description: URL for user to download document.
          type: string
        amount:
          description: Value of posted document
          type: number
        identifier:
          description: >-
            Receipt Identifier of document. If not sent, a random identifier
            will be generated.
          type: string
          nullable: true
        issueDate:
          description: >-
            Datetime of document emission, if not sent, current datetime will be
            assumed.
          type: string
          format: date-time
          nullable: true
    PostGovernmentReceiptResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetAppSettingsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Application settings details
          type: object
          properties:
            fullRevenueSync:
              description: Full Revenue Sync
              type: boolean
    PostAppErrorRequest:
      type: object
      properties:
        propertyID:
          description: Property identifier to be queried
          type: string
          nullable: true
        timestamp:
          description: Date/time that the error was received by the middleware
          type: string
          format: date-time
        eventType:
          description: Description for the type of event that caused the error
          type: string
          enum:
            - create
            - delete
            - update
            - sync
        statusCode:
          description: HTTP error status code or other error code ID
          type: string
          nullable: true
        description:
          description: Description of the error
          type: string
          nullable: true
        errorMessage:
          description: Detailed message for error
          type: string
          nullable: true
        entityType:
          description: Type of the entity related to the error
          type: string
          enum:
            - invoice
            - transaction
            - reservation
          nullable: true
        entityID:
          description: Unique ID for the entity related to the error
          type: string
          nullable: true
        userID:
          description: User ID for the user that triggered event that caused the error
          type: string
          nullable: true
    PostAppErrorResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Integration state details
          type: object
          properties:
            errorID:
              description: Unique ID of error recorded in Cloudbeds
              type: string
    PostWebhookRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        object:
          description: Event object
          type: string
        action:
          description: Event action
          type: string
        endpointUrl:
          description: Endpoint URL
          type: string
    PostWebhookResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Subscription details
          type: object
          properties:
            subscriptionID:
              description: Subscription ID
              type: string
    DeleteWebhookResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
    GetWebhooksResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: ''
          type: array
          items:
            type: object
            properties:
              id:
                description: Subscription ID
                type: string
                nullable: true
              key:
                description: >-
                  Subscription Key object (User, Property or Association and
                  it's ID)
                type: object
                properties:
                  type:
                    description: Subscription Key type
                    type: string
                    enum:
                      - user
                      - property
                      - association
                    nullable: true
                  id:
                    description: Subscription Key ID
                    type: string
                    nullable: true
                nullable: true
              event:
                description: Event for which the subscription was created
                type: object
                properties:
                  entity:
                    description: Entity which the event belongs to
                    type: string
                    nullable: true
                  action:
                    description: Action which the event represents
                    type: string
                    nullable: true
                nullable: true
              owner:
                description: Subscription Owner object (User, API Client, etc, and it's ID)
                type: object
                properties:
                  type:
                    description: Subscription Owner type
                    type: string
                    nullable: true
                  id:
                    description: Subscription Owner ID
                    type: string
                    nullable: true
                nullable: true
              subscriptionType:
                description: Subscription Type (Webhook)
                type: string
                nullable: true
              subscriptionData:
                description: >-
                  Data used on the subscription. For webhooks, just the endpoint
                  URL.
                type: object
                properties:
                  endpoint:
                    description: The endpoint
                    type: string
                    nullable: true
                nullable: true
    GetInvoiceResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Invoice details
          type: object
          properties:
            invoiceID:
              description: Unique invoice ID
              type: string
            reservationID:
              description: Reservation identifier
              type: string
            prefix:
              description: Invoice ID prefix
              type: string
            number:
              description: Invoice ID number
              type: integer
            suffix:
              description: Invoice ID suffix
              type: string
            documentIssueDate:
              description: Date and time when invoice was issued
              type: string
            status:
              description: Invoice status
              type: string
            billedTo:
              description: Information about who being billed
              type: object
              properties:
                id:
                  description: >-
                    Unique identifier of who being billed Additional information
                    about who being billed could be retrieved via corresponding
                    API e.g.: for a guest it could be
                    [getGuest](#tag/Guest/paths/~1getGuest/get)
                  type: string
                type:
                  description: Type of who being billed
                  type: string
                  enum:
                    - guest
            items:
              description: Invoice items
              type: array
              items:
                type: object
                properties:
                  description:
                    description: ''
                    type: string
                  type:
                    description: ''
                    type: string
                  quantity:
                    description: ''
                    type: integer
                  totalAmount:
                    description: ''
                    type: string
                  netAmount:
                    description: ''
                    type: string
                  currency:
                    description: ''
                    type: string
                  taxes:
                    description: ''
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          description: ''
                          type: string
                        amount:
                          description: ''
                          type: string
                        code:
                          description: ''
                          type: string
                        taxID:
                          description: ''
                          type: string
                  fees:
                    description: ''
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          description: ''
                          type: string
                        amount:
                          description: ''
                          type: string
                        code:
                          description: ''
                          type: string
                        feeID:
                          description: ''
                          type: string
            taxes:
              description: ''
              type: array
              items:
                type: object
                properties:
                  name:
                    description: ''
                    type: string
                  amount:
                    description: ''
                    type: string
                  code:
                    description: ''
                    type: string
                  taxID:
                    description: ''
                    type: string
            fees:
              description: ''
              type: array
              items:
                type: object
                properties:
                  name:
                    description: ''
                    type: string
                  amount:
                    description: ''
                    type: string
                  code:
                    description: ''
                    type: string
                  feeID:
                    description: ''
                    type: string
    PostPatchInvoiceRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        invoiceID:
          description: Invoice unique ID
          type: string
        status:
          description: Desired new invoice status
          type: string
          enum:
            - open
            - paid
            - failed
            - voided
            - rejected
        file:
          description: >-
            Form-based Credit Notes PDF File.<br/> Allowed file types:
            <code>*.pdf, *.rtf, *.doc, *.docx, *.txt, *.jpg, *.jpeg, *.png,
            *.gif, *.csv, *.xls, *.xlsx, *.xml</code><br/> Allowed max file
            size: 10MB<br/> <i>Not required for `failed` status</i>
          type: string
          format: binary
    PostPatchInvoiceResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetItemResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Item details
          type: object
          properties:
            itemID:
              description: Item unique identifier
              type: string
            itemType:
              description: Item type
              type: string
              enum:
                - product
                - service
            sku:
              description: Item SKU
              type: string
            itemCode:
              description: Item code
              type: string
            name:
              description: Item name
              type: string
            categoryID:
              description: Item category identifier. Null if unset
              type: string
            categoryName:
              description: Item category name. Empty if unset
              type: string
            description:
              description: Item description
              type: string
            price:
              description: Item price
              type: number
            stockInventory:
              description: Track stock inventory for this item
              type: boolean
            itemQuantity:
              description: <sup>1</sup> Current amount of item available
              type: integer
              nullable: true
            reorderThreshold:
              description: <sup>1</sup> Quantity at which to reorder item
              type: integer
              nullable: true
            reorderNeeded:
              description: >-
                <sup>1</sup> true - Whether item is at or below value set for
                reorder threshold.
              type: boolean
              nullable: true
            stopSell:
              description: <sup>1</sup> Quantity at which to stop selling product.
              type: integer
              nullable: true
            stopSellMet:
              description: >-
                <sup>1</sup> true - Whether item is at or below value set for
                stop-sell threshold.
              type: boolean
              nullable: true
            taxes:
              description: <sup>2</sup> Details of the taxes applicable
              type: array
              items:
                type: object
                properties:
                  taxName:
                    description: <sup>2</sup> Name of the tax
                    type: string
                    nullable: true
                  taxValue:
                    description: <sup>2</sup> Value of the tax
                    type: number
                    nullable: true
              nullable: true
            totalTaxes:
              description: <sup>2</sup> Total value of the taxes
              type: number
              nullable: true
            fees:
              description: <sup>2</sup> Details of the fees applicable
              type: array
              items:
                type: object
                properties:
                  feeName:
                    description: <sup>2</sup> Name of the fee
                    type: string
                    nullable: true
                  feeValue:
                    description: <sup>2</sup> Value of the fee
                    type: number
                    nullable: true
              nullable: true
            totalFees:
              description: <sup>2</sup> Total value of the fees
              type: number
              nullable: true
            priceWithoutFeesAndTaxes:
              description: <sup>2</sup> item price subtracting the included taxes
              type: number
              nullable: true
            grandTotal:
              description: <sup>2</sup> item price with fees and taxes
              type: number
              nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PutItemToInventoryRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        itemID:
          description: Item identifier
          type: string
        itemName:
          description: Item name
          type: string
          nullable: true
        itemType:
          description: Item type
          type: string
          enum:
            - product
            - service
          nullable: true
        itemSKU:
          description: Item SKU. Will be generated if not set
          type: string
          nullable: true
        itemCode:
          description: Item code
          type: string
          nullable: true
        itemDescription:
          description: Item description
          type: string
          nullable: true
        itemPrice:
          description: Item price
          type: number
          nullable: true
        stockInventory:
          description: Track stock inventory for this item
          type: boolean
          nullable: true
        itemQuantity:
          description: ¹ Current amount of item available
          type: integer
          nullable: true
        reorderThreshold:
          description: ¹ Quantity at which to reorder item
          type: integer
          nullable: true
        stopSellMet:
          description: >-
            ¹ true - Whether item is at or below value set for stop-sell
            threshold.
          type: boolean
          nullable: true
        stopSell:
          description: ¹ Quantity at which to stop selling product.
          type: integer
          nullable: true
    PutItemToInventoryResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetItemsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Item details
          type: array
          items:
            type: object
            properties:
              itemID:
                description: Item unique identifier
                type: string
              itemType:
                description: Item type
                type: string
                enum:
                  - product
                  - service
              sku:
                description: Item SKU
                type: string
              itemCode:
                description: Item code
                type: string
              name:
                description: Item name
                type: string
              categoryID:
                description: Item category identifier. Null if unset
                type: string
              categoryName:
                description: Item category name. Empty if unset
                type: string
              description:
                description: Item description
                type: string
              price:
                description: Item price
                type: number
              stockInventory:
                description: Track stock inventory for this item
                type: boolean
              itemQuantity:
                description: <sup>1</sup> Current amount of item available
                type: integer
                nullable: true
              reorderThreshold:
                description: <sup>1</sup> Quantity at which to reorder item
                type: integer
                nullable: true
              reorderNeeded:
                description: >-
                  <sup>1</sup> true - Whether item is at or below value set for
                  reorder threshold.
                type: boolean
                nullable: true
              stopSell:
                description: <sup>1</sup> Quantity at which to stop selling product.
                type: integer
                nullable: true
              stopSellMet:
                description: >-
                  <sup>1</sup> true - Whether item is at or below value set for
                  stop-sell threshold.
                type: boolean
                nullable: true
              taxes:
                description: <sup>2</sup> Details of the taxes applicable
                type: array
                items:
                  type: object
                  properties:
                    taxName:
                      description: <sup>2</sup> Name of the tax
                      type: string
                      nullable: true
                    taxValue:
                      description: <sup>2</sup> Value of the tax
                      type: number
                      nullable: true
                nullable: true
              totalTaxes:
                description: <sup>2</sup> Total value of the taxes
                type: number
                nullable: true
              fees:
                description: <sup>2</sup> Details of the fees applicable
                type: array
                items:
                  type: object
                  properties:
                    feeName:
                      description: <sup>2</sup> Name of the fee
                      type: string
                      nullable: true
                    feeValue:
                      description: <sup>2</sup> Value of the fee
                      type: number
                      nullable: true
                nullable: true
              totalFees:
                description: <sup>2</sup> Total value of the fees
                type: number
                nullable: true
              priceWithoutFeesAndTaxes:
                description: <sup>2</sup> item price subtracting the included taxes
                type: number
                nullable: true
              grandTotal:
                description: <sup>2</sup> item price with fees and taxes
                type: number
                nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetItemCategoriesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Categories details
          type: array
          items:
            type: object
            properties:
              categoryID:
                description: Category unique identifier
                type: string
              categoryName:
                description: Category name
                type: string
              categoryCode:
                description: Category code
                type: string
              categoryColor:
                description: 'Category color (like #3b7be7)'
                type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostItemCategoryRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        categoryName:
          description: Category name
          type: string
        categoryCode:
          description: Category code
          type: string
          nullable: true
        itemID:
          description: Existing ItemIDs to reassign to new category
          type: array
          items:
            type: integer
          nullable: true
        categoryColor:
          description: 'Category color (like #3b7be7)'
          type: string
          nullable: true
          default: '#ccc'
    PostItemCategoryResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        categoryID:
          description: Category unique identifier (if success = true)
          type: string
          nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostItemsToInventoryRequest:
      type: object
      properties:
        item:
          description: Items
          type: object
          properties:
            propertyID:
              description: Property ID
              type: string
              nullable: true
            itemName:
              description: Item name
              type: string
              nullable: true
            categoryID:
              description: Item category identifier
              type: string
              nullable: true
            itemType:
              description: Item type
              type: string
              enum:
                - product
                - service
              nullable: true
            itemSKU:
              description: Item SKU. Will be generated if not set
              type: string
              nullable: true
            itemCode:
              description: Item code
              type: string
              nullable: true
            itemDescription:
              description: Item description
              type: string
              nullable: true
            itemPrice:
              description: >-
                Item price<br />When ItemPrice is blank the item will be created
                as Free / Complimentaty item without price
              type: number
              nullable: true
            stockInventory:
              description: Track stock inventory for this item
              type: boolean
              nullable: true
              default: false
            itemQuantity:
              description: ¹ Current amount of item available
              type: integer
              nullable: true
            reorderThreshold:
              description: ¹ Quantity at which to reorder item
              type: integer
              nullable: true
            stopSellMet:
              description: >-
                ¹ true - Whether item is at or below value set for stop-sell
                threshold.
              type: boolean
              nullable: true
              default: false
            stopSell:
              description: ¹ Quantity at which to stop selling product.
              type: integer
              nullable: true
    PostItemsToInventoryResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Sold product details
          type: array
          items:
            type: object
            properties:
              itemID:
                description: Item identifier
                type: string
              itemSKU:
                description: ' Item SKU'
                type: string
              itemName:
                description: Item name
                type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostItemRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: >-
            Reservation identifier. Required if no houseAccountID or groupCode
            is provided.
          type: string
          nullable: true
        houseAccountID:
          description: >-
            House account identifier. Required if no reservationID or groupCode
            is provided.
          type: string
          nullable: true
        groupCode:
          description: >-
            Group identifier. Required if no reservationID or houseAccountID is
            provided.
          type: string
          nullable: true
        subReservationID:
          description: Sub Reservation identifier.
          type: string
          nullable: true
        itemID:
          description: Item identifier
          type: string
        itemQuantity:
          description: Items quantity
          type: integer
        itemPrice:
          description: Item price, if not sent, items registered price will be used
          type: string
          nullable: true
        itemNote:
          description: Item note
          type: string
          nullable: true
        itemPaid:
          description: >-
            If the item is already paid. Note: If set to true, a payment in cash
            will be registered for the total value of the item, taxes and fees.
            If this is not the expected behavior, set to false, and register the
            operation manually. If payments is set, itemPaid is ignored.
          type: boolean
          nullable: true
          default: false
        saleDate:
          description: posting date
          type: string
          format: date-time
          nullable: true
          default: current_timestamp
        payments:
          description: list of payments If the item is already paid
          type: array
          items:
            type: object
            properties:
              paymentType:
                description: >-
                  Payment method. Use the call
                  [getPaymentMethods](#api-Payment-getPaymentMethods) to get the
                  properties enabled payment methods.
                type: string
              amount:
                description: payment amount
                type: number
              notes:
                description: payment note
                type: string
                nullable: true
          nullable: true
    PostItemResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Sold product details
          type: object
          properties:
            soldProductID:
              description: Sold product identifier (Usable to void this product in future).
              type: string
            transactionID:
              description: Transaction identifier
              type: string
            transactionStatus:
              description: >-
                Transaction Status is returned "Pending" when sale date is in
                the future.
              type: string
              nullable: true
            remainingItemQuantity:
              description: Remaining number of items in stock (if applicable)
              type: integer
              nullable: true
            reorderNeeded:
              description: >-
                true - Whether item is at or below value set for reorder
                threshold.
              type: boolean
              nullable: true
            stopSellMet:
              description: >-
                true - Whether item is at or below value set for stop-sell
                threshold.
              type: boolean
              nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostCustomItemRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: >-
            Reservation identifier. Required if no houseAccountID or groupCode
            is provided.
          type: string
          nullable: true
        houseAccountID:
          description: >-
            House account identifier. Required if no reservationID or groupCode
            is provided.
          type: string
          nullable: true
        groupCode:
          description: >-
            Group identifier. Required if no reservationID or houseAccountID is
            provided.
          type: string
          nullable: true
        referenceID:
          description: >-
            partner's transaction reference. If exist then Cloudbeds will
            prevent adding of duplicates
          type: string
          nullable: true
        subReservationID:
          description: Sub Reservation identifier
          type: string
          nullable: true
        roomID:
          description: Room identifier (Ignored if subReservationID exist)
          type: string
          nullable: true
        items:
          description: list of items will be posted
          type: array
          items:
            type: object
            properties:
              appItemID:
                description: >-
                  Identifier of item. Future calls using the same ID will use
                  previously sent item name and description. Item
                  name/description sent in new request will be ignored.
                type: string
              itemSKU:
                description: Item SKU identifier
                type: string
                nullable: true
              itemQuantity:
                description: Items quantity
                type: integer
              itemPrice:
                description: Item price
                type: number
              itemName:
                description: Item name
                type: string
              itemCategoryName:
                description: Item category name
                type: string
                nullable: true
              itemNote:
                description: Item note
                type: string
                nullable: true
              itemTaxes:
                description: list of taxes applied to item
                type: array
                items:
                  type: object
                  properties:
                    taxName:
                      description: tax name
                      type: string
                    taxValue:
                      description: tax value
                      type: number
                nullable: true
              itemFees:
                description: list of fees applied to item
                type: array
                items:
                  type: object
                  properties:
                    feeName:
                      description: fee name
                      type: string
                    feeValue:
                      description: fee value
                      type: number
                nullable: true
        saleDate:
          description: posting date
          type: string
          format: date-time
          nullable: true
          default: current_timestamp
        guestID:
          description: Guest identifier
          type: string
          nullable: true
        guestName:
          description: (Ignored if guestID exist)
          type: string
          nullable: true
        payments:
          description: list of payments If the item is already paid
          type: array
          items:
            type: object
            properties:
              paymentType:
                description: >-
                  Payment method. Use the call
                  [getPaymentMethods](#api-Payment-getPaymentMethods) to get the
                  properties enabled payment methods.
                type: string
              cardType:
                description: >-
                  When paymentType is cards or credit, the cardType could be
                  specified (visa, master etc.). The list of types can be found
                  with [getPaymentMethods](#api-Payment-getPaymentMethods)
                  (cardCode inside cardTypes). If omitted, payment is treated as
                  Credit Card Without Details.
                type: string
                nullable: true
              amount:
                description: payment amount
                type: number
              notes:
                description: payment note
                type: string
                nullable: true
          nullable: true
        itemPaid:
          description: >-
            If the item is already paid. Note: If set to true, a payment in cash
            will be registered for the total value of the item, taxes and fees.
            If this is not the expected behavior, set to false, and register the
            operation manually. (Ignored if payments array exist)
          type: boolean
          nullable: true
          default: false
    PostCustomItemResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Sold product details
          type: object
          properties:
            soldProductID:
              description: Sold product identifier (Usable to void this product in future).
              type: string
            transactionID:
              description: Transaction identifier
              type: string
            notice:
              description: >-
                In case that a referenceID was sent, for second time, this field
                will alert that nothing was created or updated.
              type: string
    PostAppendCustomItemRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation identifier. Required if no houseAccountID is provided.
          type: string
        referenceID:
          description: >-
            partner's transaction reference. If exist then Cloudbeds will
            prevent adding of duplicates
          type: string
        subReservationID:
          description: Sub Reservation identifier
          type: string
          nullable: true
        roomID:
          description: Room identifier (Ignored if subReservationID exist)
          type: string
          nullable: true
        items:
          description: list of items will be posted
          type: array
          items:
            type: object
            properties:
              appItemID:
                description: >-
                  Identifier of item. Future calls using the same ID will use
                  previously sent item name and description. Item
                  name/description sent in new request will be ignored.
                type: string
              itemSKU:
                description: Item SKU identifier
                type: string
                nullable: true
              itemQuantity:
                description: Items quantity
                type: integer
              itemPrice:
                description: Item price
                type: number
              itemName:
                description: Item name
                type: string
              itemCategoryName:
                description: Item category name
                type: string
                nullable: true
              itemNote:
                description: Item note
                type: string
                nullable: true
              itemTaxes:
                description: list of taxes applied to item
                type: array
                items:
                  type: object
                  properties:
                    taxName:
                      description: tax name
                      type: string
                    taxValue:
                      description: tax value
                      type: number
                nullable: true
              itemFees:
                description: list of fees applied to item
                type: array
                items:
                  type: object
                  properties:
                    feeName:
                      description: fee name
                      type: string
                    feeValue:
                      description: fee value
                      type: number
                nullable: true
        saleDate:
          description: posting date
          type: string
          format: date-time
          nullable: true
          default: current_timestamp
        guestID:
          description: Guest identifier
          type: string
          nullable: true
        guestName:
          description: (Ignored if guestID exist)
          type: string
          nullable: true
        payments:
          description: list of payments If the item is already paid
          type: array
          items:
            type: object
            properties:
              paymentType:
                description: >-
                  Payment method. Use the call
                  [getPaymentMethods](#api-Payment-getPaymentMethods) to get the
                  properties enabled payment methods.
                type: string
              cardType:
                description: >-
                  When paymentType is cards or credit, the cardType could be
                  specified (visa, master etc.). The list of types can be found
                  with [getPaymentMethods](#api-Payment-getPaymentMethods)
                  (cardCode inside cardTypes). If omitted, payment is treated as
                  Credit Card Without Details.
                type: string
                nullable: true
              amount:
                description: payment amount
                type: number
              notes:
                description: payment note
                type: string
                nullable: true
          nullable: true
        itemPaid:
          description: >-
            If the item is already paid. Note: If set to true, a payment in cash
            will be registered for the total value of the item, taxes and fees.
            If this is not the expected behavior, set to false, and register the
            operation manually. (Ignored if payments array exist)
          type: boolean
          nullable: true
          default: false
    PostAppendCustomItemResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Sold product details
          type: object
          properties:
            soldProductID:
              description: Sold product identifier (Usable to void this product in future).
              type: string
            transactionID:
              description: Transaction identifier
              type: string
    PostVoidItemRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: >-
            Reservation identifier. reservationID or houseAccountID are
            necessary.
          type: string
        houseAccountID:
          description: >-
            House Account identifier. reservationID or houseAccountID are
            necessary.
          type: string
        soldProductID:
          description: Item identifier
          type: string
    PostVoidItemResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetPackagesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: ''
          type: object
          properties:
            packageNames:
              description: Array of package names
              type: array
              items:
                type: string
              nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetPaymentsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Transaction list
          type: array
          items:
            type: object
            properties:
              transactionID:
                description: Transaction identifier
                type: string
              paymentID:
                description: Payment ID
                type: string
              propertyID:
                description: Property ID
                type: string
              transactionDateTime:
                description: Transaction DateTime
                type: string
                format: date-time
              transactionDateTimeUTC:
                description: Transaction DateTime on UTC timezone
                type: string
                format: date-time
              userID:
                description: User ID that generated payment
                type: string
              userName:
                description: User name that generated payment
                type: string
              roomID:
                description: ID of room. Only available when reservationID is sent.
                type: string
                nullable: true
              roomName:
                description: >-
                  Name/Number of room. Only available when reservationID is
                  sent.
                type: string
                nullable: true
              guestID:
                description: >-
                  Guest ID. Only available when reservationID or guestID is
                  sent.
                type: string
                nullable: true
              guestName:
                description: >-
                  Guest Name. Only available when reservationID or guestID is
                  sent.
                type: string
                nullable: true
              guestCheckIn:
                description: >-
                  Guest Check-In date. Only available when reservationID is
                  sent.
                type: string
                format: date
                nullable: true
              guestCheckOut:
                description: >-
                  Guest Check-Out date. Only available when reservationID is
                  sent.
                type: string
                format: date
                nullable: true
              reservationID:
                description: Reservation ID. Only available when reservationID is sent.
                type: string
                nullable: true
              subReservationID:
                description: Sub reservation ID. Only available when reservationID is sent.
                type: string
                nullable: true
              reservationStatus:
                description: >-
                  Current reservation status. Only available when reservationID
                  is sent.
                type: string
                nullable: true
              houseAccountID:
                description: House Account ID, Only available when houseAccountID is sent.
                type: string
                nullable: true
              houseAccountName:
                description: >-
                  House Account Name, Only available when houseAccountID is
                  sent.
                type: string
                nullable: true
              description:
                description: Description of the transaction
                type: string
              paymentMethod:
                description: Payment Method of the transaction
                type: string
              quantity:
                description: ''
                type: integer
              amount:
                description: Consolidated amount on the transaction (Credit - Debit)
                type: number
              currency:
                description: Currency of the transaction
                type: string
              isPosted:
                description: ''
                type: boolean
              isVoided:
                description: ''
                type: boolean
              isDeleted:
                description: ''
                type: boolean
              state:
                description: ''
                type: string
              isAllocated:
                description: only if includePaymentAllocation=true
                type: boolean
                nullable: true
              totalAllocated:
                description: ² Amount of allocated payment
                type: number
                nullable: true
              totalUnallocated:
                description: ² Amount of unallocated payment
                type: number
                nullable: true
              paymentAllocation:
                description: ²
                type: array
                items:
                  type: object
                  properties:
                    type:
                      description: ² Type of item described in allocation
                      type: string
                      nullable: true
                    reference:
                      description: ² Reference of item described in allocation
                      type: string
                      nullable: true
                    name:
                      description: ² Name of item described in allocation
                      type: string
                      nullable: true
                    amount:
                      description: ² Amount of allocated of payment total
                      type: number
                      nullable: true
                    taxes:
                      description: >-
                        ² Taxes of allocated payment. Values are an array
                        numeric of taxes IDs
                      type: array
                      items:
                        type: string
                      nullable: true
                    fees:
                      description: >-
                        ² Fees of allocated payment. Values are an array numeric
                        of fees IDs
                      type: array
                      items:
                        type: string
                      nullable: true
                nullable: true
        count:
          description: Number of results returned, based on pagination
          type: integer
        total:
          description: Total number of results
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetTransactionsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Transaction list covering the date range specified
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Property ID
                type: string
              reservationID:
                description: Reservation ID
                type: string
              subReservationID:
                description: Sub Reservation ID
                type: string
              houseAccountID:
                description: House Account ID
                type: string
                nullable: true
              houseAccountName:
                description: House Account Name
                type: string
                nullable: true
              guestID:
                description: Guest ID
                type: string
              propertyName:
                description: Property Name
                type: string
              transactionDateTime:
                description: DateTime that the transaction was stored
                type: string
                format: date-time
              transactionDateTimeUTC:
                description: DateTime that the transaction was stored, in UTC timezone
                type: string
                format: date-time
              transactionModifiedDateTime:
                description: DateTime that the transaction was last modified
                type: string
                format: date-time
              transactionModifiedDateTimeUTC:
                description: >-
                  DateTime that the transaction was last modified, in UTC
                  timezone
                type: string
                format: date-time
              guestCheckIn:
                description: Reservation Check-in date
                type: string
                format: date
              guestCheckOut:
                description: Reservation Check-out date
                type: string
                format: date
              roomTypeID:
                description: ID of the room type
                type: string
              roomTypeName:
                description: Name of the room type
                type: string
              roomName:
                description: >-
                  Name of the specific room. N/A means not applicable, and it is
                  used if the transaction is not linked to a room.
                type: string
              guestName:
                description: Name of the first guest of the reservation
                type: string
              description:
                description: Description of the transaction
                type: string
              category:
                description: Category of the transaction
                type: string
              transactionCode:
                description: Transaction identifier that can be used, or left blank
                type: string
              notes:
                description: >-
                  If any special information needs to be added to the
                  transaction, it will be in this field
                type: string
              quantity:
                description: ''
                type: integer
              amount:
                description: Consolidated amount on the transaction (Credit - Debit)
                type: number
              currency:
                description: Currency of the transaction
                type: string
              userName:
                description: User responsible for creating the transaction
                type: string
              transactionType:
                description: Consolidated transaction type
                type: string
                enum:
                  - debit
                  - credit
              transactionCategory:
                description: Transaction category
                type: string
                enum:
                  - adjustment
                  - addon
                  - custom_item
                  - fee
                  - payment
                  - product
                  - rate
                  - room_revenue
                  - refund
                  - tax
                  - void
              itemCategoryName:
                description: Item category name
                type: string
              transactionID:
                description: Transaction identifier
                type: string
              parentTransactionID:
                description: >-
                  Parent transaction identifier. Parent transaction is a
                  transaction to which this current transaction is strongly
                  related to or derived from.<br/> Example: Parent transaction
                  to a room rate tax is a room rate.<br/> This parent
                  transaction ID will mostly be present on transactions that are
                  taxes, fees and voids. It will not be present on room rates,
                  items, payments and refunds.
                type: string
              cardType:
                description: Abbreviated name of credit card type
                type: string
              isDeleted:
                description: ''
                type: boolean
        count:
          description: >-
            Number of results returned, based on pagination and filter
            parameters
          type: integer
        total:
          description: Total count of results, based on filter parameters
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostPaymentRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation identifier
          type: string
        houseAccountID:
          description: House Account identifier is necessary if reservationID not sent
          type: string
        subReservationID:
          description: >-
            The Sub Reservation identifier. reservationID is still mandatory if
            subReservationID is sent.
          type: string
          nullable: true
        type:
          description: >-
            Payment type. Use the call
            [getPaymentMethods](#api-Payment-getPaymentMethods) to get the
            properties enabled payment methods.
          type: string
        amount:
          description: Amount paid on this transaction
          type: number
        cardType:
          description: >-
            If type = credit, cardType is necessary. Allowed values are property
            based, but possible strings are:
            "visa","master","amex","aura","diners","hiper","elo","Discover","jcb","maestro","dan","PostCard","Eurocard","union_pay"
          type: string
        description:
          description: Note to be added to payment
          type: string
          nullable: true
        isDeposit:
          description: 'determine if this payment is a deposit (default: false)'
          type: boolean
          nullable: true
    PostPaymentResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        paymentID:
          description: Returns paymentID of transaction
          type: string
        transactionID:
          description: Returns transactionID
          type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostCustomPaymentMethodRequest:
      type: object
      properties:
        propertyID:
          description: >-
            Property ID, if not sent will retrieve property ID from credentials,
            only one property ID call.
          type: string
          nullable: true
        method:
          description: >-
            Payment Method, value used in future calls. Must be unique for each
            property and no whitespaces are allowed (use camel case or underline
            instead). Will be verified against existing Payment Methods, if it
            exists, will try to enable it.
          type: string
        methodName:
          description: >-
            Payment Method Name, value used to represent the Payment Method. Can
            use spaces. If nothing is sent, will use value for method.
          type: string
          nullable: true
    PostCustomPaymentMethodResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetPaymentMethodsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: ''
          type: object
          properties:
            propertyID:
              description: Property ID
              type: string
            methods:
              description: List of active methods enabled
              type: array
              items:
                type: object
                properties:
                  type:
                    description: Payment Type
                    type: string
                  name:
                    description: Payment Name (in given lang)
                    type: string
                  cardTypes:
                    description: >-
                      IF type = 'credit' the enabled card types. Having the
                      array's keys as its type and the value as its name.
                    type: array
                    items:
                      type: object
                      properties:
                        cardCode:
                          description: ''
                          type: string
                          nullable: true
                        cardName:
                          description: ''
                          type: string
                          nullable: true
                    nullable: true
            gateway:
              description: Payment Gateway used by property
              type: array
              items:
                type: object
                properties:
                  name:
                    description: Gateway name
                    type: string
                  currency:
                    description: 3 letters iso code
                    type: string
    GetPaymentsCapabilitiesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: ''
          type: array
          items:
            type: object
            properties:
              cloudbedsPayments:
                description: If Cloudbeds Payments is enabled for this property
                type: boolean
              terminal:
                description: If the property has an active terminal
                type: boolean
              tapToPay:
                description: >-
                  If tap-to-pay is enabled for the property in the backend
                  gateway
                type: boolean
              gateway:
                description: The backend gateway in use for this property
                type: string
              payByLink:
                description: If Pay-by-Link is enabled for the property
                type: boolean
    PostVoidPaymentRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation identifier
          type: string
        houseAccountID:
          description: House Account identifier is necessary if reservationID not sent
          type: string
        paymentID:
          description: paymentID of transaction that should be voided.
          type: string
    PostVoidPaymentResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostChargeRequest:
      type: object
      properties:
        propertyID:
          description: ''
          type: string
        reservationID:
          description: Reservation ID
          type: string
          nullable: true
        houseAccountID:
          description: House Account ID
          type: string
          nullable: true
        groupID:
          description: Group ID
          type: string
          nullable: true
        accountsReceivableLedgerID:
          description: Accounts Receivable Ledger ID
          type: string
          nullable: true
        amount:
          description: Amount to charge
          type: string
        currency:
          description: Currency to charge
          type: string
        description:
          description: Description of the payment to display on folio
          type: string
        paymentMethodId:
          description: Payment method UUID
          type: string
        isDeposit:
          description: 'determine if this payment is a deposit (default: false)'
          type: boolean
          nullable: true
        redirectUrl:
          description: >-
            client will be redirected to this page after he completed 3ds
            challenge. User will be redirected with HTTP get redirect and
            parameter **result** will be added to query string with possible
            values: - **failed** if 3ds challenge is not passed - **successful**
            if 3ds challenge is passed If not provided for card with 3ds the
            request will be rejected
          type: string
          nullable: true
    PostChargeResponse:
      type: object
      properties:
        success:
          description: Returns if the request was completed
          type: boolean
        data:
          description: Payment details
          type: object
          properties:
            paymentID:
              description: Payment ID
              type: string
            transactionID:
              description: Transaction ID
              type: string
            paymentStatus:
              description: >-
                the status of the payment, could be 'pending' if the payment
                requires a next action
              type: string
            paymentType:
              description: 'detected payment type. Ex: ''cards'', ''oxxo'''
              type: string
            nextAction:
              description: not set if no next action is required
              type: object
              properties:
                type:
                  description: 'The type of next action required. Ex: ''redirect'''
                  type: string
                details:
                  description: The details of the next action
                  type: object
                  properties:
                    url:
                      description: The URL to redirect the user to
                      type: string
                    method:
                      description: The HTTP method to use when redirecting the user
                      type: string
    PostCardRequest:
      type: object
      properties:
        propertyID:
          description: ''
          type: string
        reservationID:
          description: ''
          type: string
        cardToken:
          description: >-
            cardToken provided by Stripe JS, not recommended, not required if
            paymentMethodId is provided
          type: string
          nullable: true
        paymentMethodId:
          description: Payment Method ID provided by the payments SDK
          type: string
          nullable: true
        returnUrl:
          description: >-
            client will be redirected to this page after he completed 3ds
            challenge. User will be redirected with HTTP get redirect and
            parameter **result** will be added to query string with possible
            values: - **failed** if 3ds challenge is not passed - **successful**
            if 3ds challenge is passed If not provided for card with 3ds the
            request will be rejected
          type: string
          nullable: true
    PostCardResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Rates details
          type: object
          properties:
            cardID:
              description: Card ID
              type: string
            cardNumber:
              description: Ending digits of the credit card
              type: string
            cardType:
              description: Abbreviated name of credit card type
              type: string
              enum:
                - visa
                - master
                - amex
                - aura
                - diners
                - hiper
                - elo
                - Discover
                - jcb
                - maestro
                - dan
                - PostCard
                - Eurocard
                - сunion
            redirectUrl:
              description: null if no 3ds required
              type: string
    GetRateResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Rates details
          type: object
          properties:
            rateID:
              description: Rate ID
              type: string
            isDerived:
              description: This rate has been derived from another rate
              type: boolean
            roomRate:
              description: Base rate for the room, based on the parameters provided
              type: number
            totalRate:
              description: >-
                Total rate for the room, based on the parameters provided.
                Calculated using base rates and additional costs from extra
                guests.
              type: number
            roomsAvailable:
              description: Number of rooms available, based on the parameters provided
              type: integer
            daysOfWeek:
              description: ''
              type: array
              items:
                type: string
              nullable: true
            roomRateDetailed:
              description: Detailed information on the rates, if requested
              type: array
              items:
                type: object
                properties:
                  date:
                    description: ''
                    type: string
                    format: date
                  rate:
                    description: Base rate for the selected date
                    type: number
                  totalRate:
                    description: Total rate for the selected date
                    type: number
                  roomsAvailable:
                    description: Number of rooms available for the selected date
                    type: integer
                  closedToArrival:
                    description: ''
                    type: boolean
                  closedToDeparture:
                    description: ''
                    type: boolean
                  minLos:
                    description: Minimum Length Of Stay
                    type: integer
                  maxLos:
                    description: Maximum Length Of Stay
                    type: integer
              nullable: true
    GetRateJobsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        hasNextPage:
          description: Returns true if there is another page of results after this one
          type: boolean
        nextPage:
          description: The URL of the next page of results if there is one
          type: string
          nullable: true
        data:
          description: Job details
          type: array
          items:
            type: object
            properties:
              jobReferenceID:
                description: >-
                  Reference ID for the job created for this update.  This can be
                  used to track success of the batch for this rate update. See
                  getRateJobs or the rate:batch_job
                type: string
              dateCreated:
                description: Rate Job creation datetime
                type: string
                format: date
              status:
                description: >-
                  Status of the Rate Job. in_progress - job is processing.
                  completed - job has completed successfully. error - there was
                  an error with 1 or more updates requested in this job. Allowed
                  values: in_progressgu, completed, error
                type: string
              updates:
                description: Array of actions produced from this job
                type: array
                items:
                  type: object
                  properties:
                    rateID:
                      description: Rate ID for which action was taken
                      type: string
                    action:
                      description: >-
                        Action taken for this interval as part of this job.
                        in_progress - interval wait for it turn. updated -
                        interval was updated. created - new interval was created
                        with the new date range. error - there was an error when
                        attempting this update. Allowed values: in_progress,
                        updated, created, error
                      type: string
                    startDate:
                      description: Interval start date
                      type: string
                      format: date
                    endDate:
                      description: Interval end date
                      type: string
                      format: date
                    rate:
                      description: Value of rate which was updated
                      type: number
                    maxLos:
                      description: Maximum length of stay for this rate
                      type: integer
                      nullable: true
                    minLos:
                      description: Minimum length of stay for this rate
                      type: integer
                      nullable: true
                    closedToArrival:
                      description: If this rate is closed to arrival
                      type: boolean
                      nullable: true
                    closedToDeparture:
                      description: If this rate is closed to departure
                      type: boolean
                      nullable: true
                    cutOff:
                      description: Cutoff for this rate
                      type: integer
                      nullable: true
                    lastMinuteBooking:
                      description: Last minute booking for this rate
                      type: integer
                      nullable: true
                    message:
                      description: Error message
                      type: string
                      nullable: true
    GetRatePlansResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Rates details
          type: array
          items:
            type: object
            properties:
              rateID:
                description: Rate ID
                type: string
              isDerived:
                description: True if this rate is derived from another rate
                type: boolean
              roomRate:
                description: Rate for the room, based on the parameters provided
                type: number
              totalRate:
                description: >-
                  Total rate for the room, based on the parameters provided.
                  Calculated using base rates and additional costs from extra
                  guests.
                type: number
              roomsAvailable:
                description: Number of rooms available for the selected date
                type: integer
              roomTypeID:
                description: '] room type ID (if not specified in request)'
                type: string
                nullable: true
              roomTypeName:
                description: '] room type name (if not specified in request)'
                type: integer
                nullable: true
              propertyID:
                description: >-
                  Property ID, used if multiple properties are included in
                  request
                type: string
                nullable: true
              ratePlanID:
                description: ratePlanID (If rate depends on plan)
                type: string
                nullable: true
              ratePlanNamePublic:
                description: ratePlanNamePublic
                type: string
                nullable: true
              ratePlanNamePrivate:
                description: ratePlanNamePrivate
                type: string
                nullable: true
              promoCode:
                description: Promotional code when rate plan has has it
                type: string
                nullable: true
              derivedType:
                description: >-
                  type of deriving (only if current rate was derived from other
                  one).
                type: string
                enum:
                  - fixed
                  - percentage
                nullable: true
              derivedValue:
                description: >-
                  Can be positive or negative (only if current rate was derived
                  from other one).
                type: number
                nullable: true
              baseRate:
                description: Base rate on given period
                type: number
                nullable: true
              daysOfWeek:
                description: >-
                  Returns when there is a difference between range given with
                  startDate/endDate and days of week which rate plan applies.
                type: array
                items:
                  type: string
                enum:
                  - Sun
                  - Mon
                  - Tue
                  - Wed
                  - Thu
                  - Fri
                  - Sat
                nullable: true
              addOns:
                description: addOns information on the rates
                type: array
                items:
                  type: object
                  properties:
                    addOnID:
                      description: addOnID
                      type: string
                    addOnName:
                      description: addOnName
                      type: string
                    itemID:
                      description: itemID
                      type: string
                    itemName:
                      description: itemName
                      type: string
              roomRateDetailed:
                description: Detailed information on the rates, if requested
                type: array
                items:
                  type: object
                  properties:
                    date:
                      description: ''
                      type: string
                      format: date
                    rateBase:
                      description: rate for the selected date
                      type: number
                      nullable: true
                    totalRate:
                      description: Total rate for the selected date
                      type: number
                    roomsAvailable:
                      description: Number of rooms available for the selected date
                      type: integer
                    closedToArrival:
                      description: true if day closed to arrival
                      type: boolean
                    closedToDeparture:
                      description: true if day closed to departure
                      type: boolean
                    minLos:
                      description: Minimum Length Of Stay
                      type: integer
                    maxLos:
                      description: Maximum Length Of Stay
                      type: integer
                    cutOff:
                      description: ''
                      type: integer
                    lastMinuteBooking:
                      description: ''
                      type: integer
                nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostPatchRateRequest:
      type: object
      properties:
        rates:
          description: Array of rates to update
          type: array
          items:
            type: object
            properties:
              rateID:
                description: Rate ID
                type: string
              interval:
                description: Rate update details
                type: object
                properties:
                  startDate:
                    description: 'Interval Start date. Format: YYYY-MM-DD'
                    type: string
                    format: date
                  endDate:
                    description: 'Interval End date. Format: YYYY-MM-DD'
                    type: string
                    format: date
                  rate:
                    description: Base rate for the selected date
                    type: number
                  maxLos:
                    description: Maximum length of stay for the selected date.
                    type: integer
                    nullable: true
                  minLos:
                    description: Minimum length of stay for the selected date.
                    type: integer
                    nullable: true
                  closedToArrival:
                    description: Whether it is closed to arrival.
                    type: boolean
                    nullable: true
                  closedToDeparture:
                    description: Whether it is closed to departure.
                    type: boolean
                    nullable: true
                  cutOff:
                    description: Cut off time for the selected date.
                    type: integer
                    nullable: true
                  lastMinuteBooking:
                    description: Last minute bookings.
                    type: integer
                    nullable: true
    PostPatchRateResponse:
      type: object
      properties:
        success:
          description: Returns true if the request could be completed
          type: boolean
        jobReferenceID:
          description: >-
            ReferenceId ID for the job created for this update.  This can be
            used to track success of the batch for this rate update. See
            getRateJobs or the Rate Batch Job Webhook
          type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostPutRateRequest:
      type: object
      properties:
        rates:
          description: Array of rates to update
          type: array
          items:
            type: object
            properties:
              rateID:
                description: Rate ID
                type: string
              interval:
                description: Rate update details
                type: array
                items:
                  type: object
                  properties:
                    startDate:
                      description: 'Interval Start date. Format: YYYY-MM-DD'
                      type: string
                      format: date
                    endDate:
                      description: 'Interval End date. Format: YYYY-MM-DD'
                      type: string
                      format: date
                    rate:
                      description: Base rate for the selected date
                      type: number
    PostPutRateResponse:
      type: object
      properties:
        success:
          description: Returns true if the request could be completed
          type: boolean
        jobReferenceID:
          description: >-
            ReferenceId ID for the job created for this update.  This can be
            used to track success of the batch for this rate update. See
            getRateJobs or the Rate Batch Job Webhook
          type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetReservationResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the reservation queried
          type: object
          properties:
            propertyID:
              description: Property ID
              type: string
            guestName:
              description: Main Guest Name
              type: string
            guestEmail:
              description: Main Guest Email
              type: string
            isAnonymized:
              description: Flag indicating the main guest data was removed upon request
              type: boolean
            guestList:
              description: >-
                A map of guest IDs to guest objects (key is the Guest ID). It
                contains an entry for each guest included on the reservation.
              type: object
              additionalProperties:
                type: object
                properties:
                  guestID:
                    description: ID of the guest
                    type: string
                  guestFirstName:
                    description: First Name
                    type: string
                  guestLastName:
                    description: Last Name
                    type: string
                  guestGender:
                    description: Gender
                    type: string
                    enum:
                      - M
                      - F
                      - N/A
                  guestEmail:
                    description: Email Address
                    type: string
                  guestPhone:
                    description: Phone Number
                    type: string
                  guestCellPhone:
                    description: Cell Phone Number
                    type: string
                  guestAddress:
                    description: ''
                    type: string
                  guestAddress2:
                    description: ''
                    type: string
                  guestCity:
                    description: ''
                    type: string
                  guestState:
                    description: ''
                    type: string
                  guestCountry:
                    description: ''
                    type: string
                  guestZip:
                    description: ''
                    type: string
                  guestStatus:
                    description: ''
                    type: string
                    enum:
                      - in_progress
                      - call2confirm
                      - confirmed
                      - canceled
                      - checked_in
                      - checked_out
                      - not_confirmed
                      - no_show
                      - paypal_init
                      - pending_payment
                      - not_checked_in
                      - in_house
                  guestBirthdate:
                    description: ''
                    type: string
                    format: date
                  guestDocumentType:
                    description: ''
                    type: string
                  guestDocumentNumber:
                    description: ''
                    type: string
                  guestDocumentIssueDate:
                    description: ''
                    type: string
                    format: date
                  guestDocumentIssuingCountry:
                    description: ''
                    type: string
                  guestDocumentExpirationDate:
                    description: ''
                    type: string
                    format: date
                  taxID:
                    description: ''
                    type: string
                    nullable: true
                  companyTaxID:
                    description: ''
                    type: string
                    nullable: true
                  companyName:
                    description: ''
                    type: string
                    nullable: true
                  assignedRoom:
                    description: Returns true if guest has roomed assigned, false if not
                    type: string
                  isAnonymized:
                    description: Flag indicating the guest data was removed upon request
                    type: boolean
                  roomID:
                    description: Room ID where guest is assigned
                    type: string
                    nullable: true
                  roomName:
                    description: Room Name where guest is assigned
                    type: string
                    nullable: true
                  roomTypeName:
                    description: Room Type Name where guest is assigned
                    type: string
                    nullable: true
                  roomTypeIsVirtual:
                    description: If room is virtual (true) or physical (false)
                    type: boolean
                    nullable: true
                  isMainGuest:
                    description: If the guest is the main guest of the reservation or not
                    type: boolean
                  customFields:
                    description: List of custom fields
                    type: array
                    items:
                      type: object
                      properties:
                        customFieldName:
                          description: Custom Field Name
                          type: string
                        customFieldValue:
                          description: Custom Field Value
                          type: string
                  rooms:
                    description: List of all rooms that guest is assigned to
                    type: array
                    items:
                      type: object
                      properties:
                        roomID:
                          description: Room ID where guest is assigned
                          type: string
                          nullable: true
                        roomName:
                          description: Room Name where guest is assigned
                          type: string
                          nullable: true
                        roomTypeName:
                          description: Room Type Name where guest is assigned
                          type: string
                          nullable: true
                        roomTypeIsVirtual:
                          description: If room is virtual (true) or physical (false)
                          type: boolean
                          nullable: true
                        subReservationID:
                          description: Sub Reservation ID of the specific assigned room
                          type: string
                          nullable: true
                  unassignedRooms:
                    description: List of unassigned rooms
                    type: array
                    items:
                      type: object
                      properties:
                        roomTypeID:
                          description: ID of the assigned room type
                          type: string
                          nullable: true
                        roomTypeName:
                          description: Room Type Name where guest is assigned
                          type: string
                          nullable: true
                        roomTypeIsVirtual:
                          description: If room is virtual (true) or physical (false)
                          type: boolean
                          nullable: true
                        subReservationID:
                          description: Sub Reservation ID of the specific assigned room
                          type: string
                          nullable: true
            reservationID:
              description: Reservation identifier
              type: string
            dateCreated:
              description: ''
              type: string
              format: date-time
            dateModified:
              description: ''
              type: string
              format: date-time
            estimatedArrivalTime:
              description: Estimated arrival time, 24-hour format.
              type: string
              format: time
              nullable: true
            source:
              description: Booking source (e.g. Website, Facebook Widget, Booking.com, etc)
              type: string
            sourceID:
              description: Booking source unique id
              type: string
            thirdPartyIdentifier:
              description: >-
                If it was received from a booking channel, it displays its
                identifier. If not, it will be empty
              type: string
              nullable: true
            status:
              description: >-
                Reservation status<br /> 'not_confirmed' - Reservation is
                pending confirmation<br /> 'confirmed' - Reservation is
                confirmed<br /> 'canceled' - Reservation is canceled<br />
                'checked_in' - Guest is in hotel<br /> 'checked_out' - Guest
                already left hotel<br /> 'no_show' - Guest didn't showed up on
                check-in date
              type: string
              enum:
                - confirmed
                - not_confirmed
                - canceled
                - checked_in
                - checked_out
                - no_show
            total:
              description: Total price of the booking
              type: number
            balance:
              description: Balance currently owed
              type: number
            balanceDetailed:
              description: >-
                Reservation balance detailed with the information available on
                PC app, describing the financial items calculated
              type: array
              items:
                type: object
                properties:
                  suggestedDeposit:
                    description: >-
                      Suggested deposit value, calculated according to the hotel
                      policies. Does not mean that it was effectively paid
                    type: string
                  subTotal:
                    description: Sum of the room prices on the reservation
                    type: number
                  additionalItems:
                    description: Sum of the additional items recorded on the reservation
                    type: number
                  taxesFees:
                    description: Sum of the taxes and fees calculated on the reservation
                    type: number
                  grandTotal:
                    description: Sum of sub.Total + additionalItems + taxesFees
                    type: number
                  paid:
                    description: >-
                      Amount paid (reservation deposit + any other extra
                      payment)
                    type: number
            assigned:
              description: Assigned Rooms information
              type: array
              items:
                type: object
                properties:
                  roomTypeName:
                    description: Name of the assigned room type
                    type: string
                  roomTypeNameShort:
                    description: Short name of the assigned room type
                    type: string
                  roomTypeIsVirtual:
                    description: If room is virtual (true) or physical (false)
                    type: boolean
                  dormRoomName:
                    description: >-
                      Name of the dorm room. Used for the shared dorm beds that
                      are organized into rooms within the same room type
                    type: string
                    nullable: true
                  roomTypeID:
                    description: ID of the assigned room type
                    type: string
                  subReservationID:
                    description: Sub Reservation ID of the specific assigned room
                    type: string
                  roomName:
                    description: Name of the specific assigned room
                    type: string
                  roomID:
                    description: ID of the specific assigned room
                    type: string
                  startDate:
                    description: Check-In date of the room
                    type: string
                    format: date
                  endDate:
                    description: Check-Out date of the room
                    type: string
                    format: date
                  adults:
                    description: Number of adult staying in the room
                    type: string
                  children:
                    description: Number of children staying in the room
                    type: string
                  dailyRates:
                    description: Array with rates detailed by day
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          description: ''
                          type: string
                          format: date
                        rate:
                          description: ''
                          type: number
                  roomTotal:
                    description: Room total rate
                    type: number
            unassigned:
              description: Unassigned Rooms information
              type: array
              items:
                type: object
                properties:
                  roomTypeName:
                    description: Name of the room type to be assigned
                    type: string
                  roomTypeIsVirtual:
                    description: If room is virtual (true) or physical (false)
                    type: boolean
                  roomTypeID:
                    description: ID of the room type to be assigned
                    type: string
                  subReservationID:
                    description: Sub Reservation ID of the specific assigned room
                    type: string
                  startDate:
                    description: Check-In date of the room
                    type: string
                    format: date
                  endDate:
                    description: Check-Out date of the room
                    type: string
                    format: date
                  adults:
                    description: Number of adult staying in the room
                    type: string
                  children:
                    description: Number of children staying in the room
                    type: string
                  dailyRates:
                    description: Array with rates detailed by day
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          description: ''
                          type: string
                          format: date
                        rate:
                          description: ''
                          type: number
                  roomTotal:
                    description: Room total rate
                    type: number
            cardsOnFile:
              description: Credit Cards stored for the reservation
              type: array
              items:
                type: object
                properties:
                  cardID:
                    description: Credit Card ID, used for card operations
                    type: string
                  cardNumber:
                    description: Ending digits of the credit card
                    type: string
                  cardType:
                    description: Abbreviated name of credit card type
                    type: string
                    enum:
                      - visa
                      - master
                      - amex
                      - diners
            customFields:
              description: Custom Fields related to the reservation
              type: array
              items:
                type: object
                properties:
                  customFieldName:
                    description: Custom Field Name
                    type: string
                  customFieldValue:
                    description: Custom Field Value
                    type: string
            startDate:
              description: First reservation check-in date
              type: string
              format: date
            endDate:
              description: Last reservation check-out date
              type: string
              format: date
            allotmentBlockCode:
              description: Allotment block code
              type: string
              nullable: true
            channelProvidedCreditCard:
              description: >-
                Whether a credit card was provided by the channel. Only included
                for reservations originating from OTAs.
              type: boolean
            groupInventory:
              description: Aggregate allotment block information
              type: array
              items:
                type: object
                properties:
                  subReservationID:
                    description: Sub Reservation ID of the specific assigned room
                    type: string
                    nullable: true
                  allotmentBlockCode:
                    description: Allotment block code
                    type: string
                    nullable: true
                  startDate:
                    description: Check-In date of the room
                    type: string
                    format: date
                    nullable: true
                  endDate:
                    description: Check-Out date of the room
                    type: string
                    format: date
                    nullable: true
              nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostReservationRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        sourceID:
          description: The third-party source ID for this reservation.
          type: string
          nullable: true
        thirdPartyIdentifier:
          description: >-
            If it was received from a booking channel, this can be an identifier
            from that channel.
          type: string
          nullable: true
        startDate:
          description: Check-In date.
          type: string
          format: date
        endDate:
          description: Check-Out date.
          type: string
          format: date
        guestFirstName:
          description: First name of the guest
          type: string
        guestLastName:
          description: Last name of the guest
          type: string
        guestGender:
          description: ''
          type: string
          enum:
            - M
            - F
            - N/A
          nullable: true
        guestCountry:
          description: Valid ISO-Code for Country (2 characters)
          type: string
        guestZip:
          description: ZIP Code
          type: string
        guestEmail:
          description: Guest email
          type: string
        guestPhone:
          description: Guest main phone number
          type: string
          nullable: true
        estimatedArrivalTime:
          description: Estimated Arrival Time, 24-hour format.
          type: string
          format: time
          nullable: true
        rooms:
          description: Array with quantity of rooms
          type: array
          items:
            type: object
            properties:
              roomTypeID:
                description: Room Type ID
                type: string
              quantity:
                description: Quantity of rooms for the room type ID
                type: integer
              roomID:
                description: >-
                  ID of the individual room to be booked. This feature must be
                  enabled on "MyBookings" settings, and the room should be
                  available at the time of the booking or else it will result in
                  an unassigned room. It will automatically override "quantity"
                  value to 1 and roomTypeID when used.
                type: string
                nullable: true
              roomRateID:
                description: Specific Rate ID used for the room type ID. Can be ommitted.
                type: string
                nullable: true
        adults:
          description: Array with number of adults
          type: array
          items:
            type: object
            properties:
              roomTypeID:
                description: Room Type ID
                type: string
              quantity:
                description: Quantity of adults for the room type ID
                type: integer
              roomID:
                description: ID of the individual room
                type: string
                nullable: true
        children:
          description: Array with number of children
          type: array
          items:
            type: object
            properties:
              roomTypeID:
                description: Room Type ID
                type: string
              quantity:
                description: Number of children for the room type ID
                type: integer
              roomID:
                description: ID of the individual room
                type: string
                nullable: true
        paymentMethod:
          description: Payment Method of choice.
          type: string
          enum:
            - cash
            - credit
            - ebanking
            - pay_pal
        cardToken:
          description: >-
            Credit Card identifier. Payment Method must be credit. This field
            should be filled with credit card identifier according to gateway.
            Only available for Stripe and should send the Customer ID.
          type: string
          nullable: true
        paymentAuthorizationCode:
          description: >-
            Transaction identifier. Payment Method must be credit. This field
            should be filled with transaction identifier according to gateway.
            Only available for Stripe and it should be filled with Charge ID
            associated to the Payment Intent.
          type: string
          nullable: true
        customFields:
          description: Array with custom fields information
          type: array
          items:
            type: object
            properties:
              fieldName:
                description: >-
                  Internal custom field reference. Must match the registered
                  name (shortcode) in backend. Pay Attention
                type: string
              fieldValue:
                description: >-
                  Custom field value. It's strictly forbidden to send
                  unencrypted payment data through the API. Numeric values
                  longer than 12 characters and considered valid by Luhn's
                  algorithm will be rejected.
                type: string
          nullable: true
        promoCode:
          description: >-
            Promotional code. Required for specials and packages that uses it.
            "rateID" parameter required for using "promoCode".
          type: string
          nullable: true
        allotmentBlockCode:
          description: Allotment block code to add reservation to allotment block.
          type: string
          nullable: true
        groupCode:
          description: >-
            Code from the Aggregate Allotment block the reservation will be
            added to.
          type: string
          nullable: true
        dateCreated:
          description: Date reservation was made. Defaults to current date if omitted.
          type: string
          format: date-time
          nullable: true
        sendEmailConfirmation:
          description: Send confirmation email to guest.
          type: boolean
          nullable: true
          default: true
    PostReservationResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        reservationID:
          description: Reservation identifier
          type: string
        status:
          description: >-
            Reservation status<br /> 'not_confirmed' - Reservation is pending
            confirmation<br /> 'confirmed' - Reservation is confirmed<br />
          type: string
          enum:
            - not_confirmed
            - confirmed
        guestID:
          description: Guest ID
          type: string
        guestFirstName:
          description: Guest First Name
          type: string
        guestLastName:
          description: Guest Last Name
          type: string
        guestGender:
          description: Guest Gender
          type: string
          enum:
            - M
            - F
            - N/A
          nullable: true
        guestEmail:
          description: Guest Email
          type: string
        startDate:
          description: Reservation CheckIn date
          type: string
          format: date
        endDate:
          description: Reservation CheckOut date
          type: string
          format: date
        dateCreated:
          description: Reservation creation datetime
          type: string
          format: date-time
        grandTotal:
          description: Grand Total
          type: number
        unassigned:
          description: unassigned rooms array
          type: array
          items:
            type: object
            properties:
              subReservationID:
                description: ''
                type: string
              roomTypeName:
                description: ''
                type: string
              roomTypeID:
                description: ''
                type: string
              adults:
                description: Adults included in rate
                type: integer
              children:
                description: Children included in rate
                type: integer
              dailyRates:
                description: rates for room
                type: array
                items:
                  type: object
                  properties:
                    date:
                      description: ''
                      type: string
                      format: date
                    rate:
                      description: ''
                      type: number
              roomTotal:
                description: ''
                type: number
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetReservationsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the reservation queried
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Properties identifier
                type: string
              reservationID:
                description: Reservation's unique identifier
                type: string
              dateCreated:
                description: ''
                type: string
                format: date-time
              dateModified:
                description: ''
                type: string
                format: date-time
              status:
                description: ''
                type: string
                enum:
                  - not_confirmed
                  - confirmed
                  - canceled
                  - checked_in
                  - checked_out
                  - no_show
              guestID:
                description: ''
                type: string
              profileID:
                description: ''
                type: string
              guestName:
                description: ''
                type: string
              startDate:
                description: ''
                type: string
                format: date
              endDate:
                description: ''
                type: string
                format: date
              allotmentBlockCode:
                description: Allotment block code
                type: string
                nullable: true
              adults:
                description: ''
                type: integer
              children:
                description: ''
                type: integer
              balance:
                description: ''
                type: number
              sourceName:
                description: Source of reservation
                type: string
              sourceID:
                description: Booking source unique id
                type: string
              thirdPartyIdentifier:
                description: ''
                type: string
              groupInventory:
                description: Aggregate allotment block information
                type: array
                items:
                  type: object
                  properties:
                    subReservationID:
                      description: Sub Reservation ID of the specific assigned room
                      type: string
                      nullable: true
                    allotmentBlockCode:
                      description: Allotment block code
                      type: string
                      nullable: true
                    startDate:
                      description: Check-In date of the room
                      type: string
                      format: date
                      nullable: true
                    endDate:
                      description: Check-Out date of the room
                      type: string
                      format: date
                      nullable: true
                nullable: true
              subReservationID:
                description: >-
                  If roomID or roomName are given, the respective
                  subReservationID (to that room) is informed.
                type: string
                nullable: true
              customFields:
                description: >-
                  List of reservation custom fields. Only returned if
                  "includeCustomFields" is true
                type: array
                items:
                  type: object
                  properties:
                    customFieldName:
                      description: Custom Field Name
                      type: string
                      nullable: true
                    customFieldValue:
                      description: Custom Field Value
                      type: string
                      nullable: true
                nullable: true
              rooms:
                description: >-
                  Array with rooms information. Only returned if
                  "includeAllRooms" is true
                type: array
                items:
                  type: object
                  properties:
                    roomTypeID:
                      description: Room Type ID
                      type: string
                    roomTypeName:
                      description: Room Type Name
                      type: string
                    roomTypeIsVirtual:
                      description: If room is virtual (true) or physical (false)
                      type: boolean
                    subReservationID:
                      description: sub Reservation ID (specific to each room)
                      type: string
                    guestID:
                      description: ID of the main guest assigned to the room
                      type: string
                    guestName:
                      description: Name of the main guest assigned to the room
                      type: string
                    adults:
                      description: Number of adults in the room
                      type: string
                    children:
                      description: Number of children in the room
                      type: string
                    roomID:
                      description: >-
                        Room ID (null if the reservation has not been assigned a
                        specific room yet).
                      type: string
                    roomName:
                      description: Name of the room, if roomID=null it does not exist.
                      type: string
                      nullable: true
                    roomCheckIn:
                      description: Check-in date for the room
                      type: string
                    roomCheckOut:
                      description: Check-out date for the room
                      type: string
                    roomStatus:
                      description: ''
                      type: string
                      enum:
                        - cancelled
                        - in_house
                        - checked_out
                        - not_checked_in
              guestList:
                description: >-
                  A map of guest IDs to guest objects (key is the Guest ID). It
                  contains an entry for each guest included on the reservation.
                  Only returned if "includeGuestsDetails" is true
                type: object
                nullable: true
                additionalProperties:
                  type: object
                  properties:
                    guestID:
                      description: ID of the guest
                      type: string
                      nullable: true
                    guestName:
                      description: ''
                      type: string
                      nullable: true
                    guestFirstName:
                      description: ''
                      type: string
                      nullable: true
                    guestLastName:
                      description: ''
                      type: string
                      nullable: true
                    guestGender:
                      description: ''
                      type: string
                      enum:
                        - M
                        - F
                        - N/A
                      nullable: true
                    guestEmail:
                      description: ''
                      type: string
                      nullable: true
                    guestPhone:
                      description: ''
                      type: string
                      nullable: true
                    guestCellPhone:
                      description: ''
                      type: string
                      nullable: true
                    guestAddress:
                      description: ''
                      type: string
                      nullable: true
                    guestAddress2:
                      description: ''
                      type: string
                      nullable: true
                    guestCity:
                      description: ''
                      type: string
                      nullable: true
                    guestState:
                      description: ''
                      type: string
                      nullable: true
                    guestCountry:
                      description: ''
                      type: string
                      nullable: true
                    guestZip:
                      description: ''
                      type: string
                      nullable: true
                    guestBirthdate:
                      description: ''
                      type: string
                      format: date
                      nullable: true
                    guestDocumentType:
                      description: ''
                      type: string
                      nullable: true
                    guestDocumentNumber:
                      description: ''
                      type: string
                      nullable: true
                    guestDocumentIssueDate:
                      description: ''
                      type: string
                      format: date
                      nullable: true
                    guestDocumentIssuingCountry:
                      description: ''
                      type: string
                      nullable: true
                    guestDocumentExpirationDate:
                      description: ''
                      type: string
                      format: date
                      nullable: true
                    taxID:
                      description: Guest's tax ID
                      type: string
                      nullable: true
                    companyTaxID:
                      description: Guest's company tax ID
                      type: string
                      nullable: true
                    companyName:
                      description: Guest's company name
                      type: string
                      nullable: true
                    subReservationID:
                      description: ''
                      type: string
                      nullable: true
                    startDate:
                      description: ''
                      type: string
                      format: date
                      nullable: true
                    endDate:
                      description: ''
                      type: string
                      format: date
                      nullable: true
                    assignedRoom:
                      description: Returns true if guest has roomed assigned, false if not
                      type: string
                      nullable: true
                    roomID:
                      description: Room ID where guest is assigned
                      type: string
                      nullable: true
                    roomName:
                      description: Room Name where guest is assigned
                      type: string
                      nullable: true
                    roomTypeName:
                      description: Room Name where guest is assigned
                      type: string
                      nullable: true
                    roomTypeIsVirtual:
                      description: If room is virtual (true) or physical (false)
                      type: boolean
                      nullable: true
                    rooms:
                      description: List of all rooms that guest is assigned to
                      type: array
                      items:
                        type: object
                        properties:
                          roomID:
                            description: Room ID where guest is assigned
                            type: string
                            nullable: true
                          roomName:
                            description: Room Name where guest is assigned
                            type: string
                            nullable: true
                          roomTypeName:
                            description: Room Type Name where guest is assigned
                            type: string
                            nullable: true
                          roomTypeIsVirtual:
                            description: If room is virtual (true) or physical (false)
                            type: boolean
                            nullable: true
                          roomTypeID:
                            description: Room Type ID
                            type: string
                            nullable: true
                          roomTypeNameShort:
                            description: Room Type Short Name
                            type: string
                            nullable: true
                          rateID:
                            description: Rate ID
                            type: string
                            nullable: true
                          ratePlanName:
                            description: Rate plan name
                            type: string
                            nullable: true
                          roomStatus:
                            description: ''
                            type: string
                            enum:
                              - in_house
                              - checked_out
                              - not_checked_in
                            nullable: true
                          subReservationID:
                            description: ''
                            type: string
                            nullable: true
                      nullable: true
                    unassignedRooms:
                      description: List of all unassigned rooms
                      type: array
                      items:
                        type: object
                        properties:
                          roomTypeID:
                            description: ID of the assigned room type
                            type: string
                            nullable: true
                          roomTypeName:
                            description: Room Type Name where guest is assigned
                            type: string
                            nullable: true
                          roomTypeIsVirtual:
                            description: If room is virtual (true) or physical (false)
                            type: boolean
                            nullable: true
                          roomTypeNameShort:
                            description: Room Type Short Name
                            type: string
                            nullable: true
                          rateID:
                            description: Rate ID
                            type: string
                            nullable: true
                          ratePlanName:
                            description: Rate plan name
                            type: string
                            nullable: true
                          subReservationID:
                            description: Sub Reservation ID of the specific assigned room
                            type: string
                            nullable: true
                      nullable: true
                    customFields:
                      description: List of guest custom fields
                      type: array
                      items:
                        type: object
                        properties:
                          customFieldName:
                            description: Custom Field Name
                            type: string
                            nullable: true
                          customFieldValue:
                            description: Custom Field Value
                            type: string
                            nullable: true
                      nullable: true
                    isAnonymized:
                      description: Flag indicating the guest data was removed upon request
                      type: boolean
                      nullable: true
                    isMainGuest:
                      description: >-
                        Flag indicating the guest is the main guest on the
                        reservation
                      type: boolean
                      nullable: true
        count:
          description: Number of results returned
          type: integer
        total:
          description: Total number of results
          type: integer
    GetReservationsWithRateDetailsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the reservations returned
          type: array
          items:
            type: object
            properties:
              reservationID:
                description: Reservation's unique identifier
                type: string
              isDeleted:
                description: ''
                type: boolean
              dateCreated:
                description: ''
                type: string
                format: date-time
              dateCreatedUTC:
                description: ''
                type: string
                format: date-time
              dateModified:
                description: ''
                type: string
                format: date-time
              dateModifiedUTC:
                description: ''
                type: string
                format: date-time
              dateCancelled:
                description: Will be displayed only if "status = 'canceled'"
                type: string
                format: date-time
                nullable: true
              dateCancelledUTC:
                description: Will be displayed only if "status = 'canceled'"
                type: string
                format: date-time
                nullable: true
              status:
                description: >-
                  Reservation status<br /> 'not_confirmed' - Reservation is
                  pending confirmation<br /> 'confirmed' - Reservation is
                  confirmed<br /> 'canceled' - Reservation is canceled<br />
                  'checked_in' - Guest is in hotel<br /> 'checked_out' - Guest
                  already left hotel<br /> 'no_show' - Guest didn't showed up on
                  check-in date
                type: string
                enum:
                  - confirmed
                  - not_confirmed
                  - canceled
                  - checked_in
                  - checked_out
                  - no_show
              reservationCheckIn:
                description: ''
                type: string
                format: date-time
              reservationCheckOut:
                description: ''
                type: string
                format: date-time
              guestID:
                description: Main guest ID
                type: string
              profileID:
                description: Main guest profile ID
                type: string
              guestCountry:
                description: Main guest Country
                type: integer
              sourceName:
                description: Reservation source
                type: string
              source:
                description: ''
                type: array
                items:
                  type: object
                  properties:
                    name:
                      description: Reservation source
                      type: string
                    paymentCollect:
                      description: Reservation payment collect source
                      type: string
                      enum:
                        - hotel
                        - collect
                    sourceID:
                      description: Booking source unique id
                      type: string
                    category:
                      description: Reservation source category
                      type: string
              sourceCategory:
                description: Reservation source category
                type: integer
                nullable: true
              sourceReservationID:
                description: Reservation ID on the source
                type: integer
                nullable: true
              propertyCurrency:
                description: Property currency ISO-formatted (3 characters)
                type: integer
                nullable: true
              balanceDetailed:
                description: >-
                  Reservation balance detailed with the information available on
                  MyFrontdesk, describing the financial items calculated
                type: array
                items:
                  type: object
                  properties:
                    suggestedDeposit:
                      description: >-
                        Suggested deposit value, calculated according to the
                        hotel policies. Does not mean that it was effectively
                        paid
                      type: string
                    subTotal:
                      description: Sum of the room prices on the reservation
                      type: number
                    additionalItems:
                      description: Sum of the additional items recorded on the reservation
                      type: number
                    taxesFees:
                      description: Sum of the taxes and fees calculated on the reservation
                      type: number
                    grandTotal:
                      description: Sum of sub.Total + additionalItems + taxesFees
                      type: number
                    paid:
                      description: >-
                        Amount paid (reservation deposit + any other extra
                        payment)
                      type: number
              detailedRates:
                description: >-
                  Associative object, where key is the date, and value is the
                  total rate for that date.
                type: array
                items:
                  type: object
              rooms:
                description: Array with rooms information
                type: array
                items:
                  type: object
                  properties:
                    roomTypeID:
                      description: Room Type ID
                      type: string
                    roomTypeIsVirtual:
                      description: If room is virtual (true) or physical (false)
                      type: boolean
                    roomTypeName:
                      description: Room Type Name
                      type: string
                    subReservationID:
                      description: sub Reservation ID (specific to each room)
                      type: string
                    guestID:
                      description: ID of the main guest assigned to the room
                      type: string
                    guestName:
                      description: Name of the main guest assigned to the room
                      type: string
                    rateID:
                      description: ID of the rate used for the booking room
                      type: string
                    rateName:
                      description: Name of the rate used for the booking room
                      type: string
                    adults:
                      description: Number of adults in the room
                      type: string
                    children:
                      description: Number of children in the room
                      type: string
                    roomID:
                      description: >-
                        Room ID (null if the reservation has not been assigned a
                        specific room yet).
                      type: string
                    roomName:
                      description: Name of the room, if roomID=null it does not exist.
                      type: string
                      nullable: true
                    roomCheckIn:
                      description: Check-in date for the room
                      type: string
                    roomCheckOut:
                      description: Check-out date for the room
                      type: string
                    roomStatus:
                      description: ''
                      type: string
                      enum:
                        - cancelled
                        - in_house
                        - checked_out
                        - not_checked_in
                    detailedRoomRates:
                      description: >-
                        Associative object, with dates as indexes, and rates as
                        values
                      type: array
                      items:
                        type: object
        count:
          description: Number of results returned
          type: integer
        total:
          description: Total number of results
          type: integer
    GetReservationAssignmentsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the rooms assigned on the selected date
          type: array
          items:
            type: object
            properties:
              guestName:
                description: Guest Name
                type: string
              reservationID:
                description: Reservation identifier, used for all query operations
                type: string
              unassigned:
                description: Number of rooms unassigned
                type: integer
              assigned:
                description: >-
                  Assigned Rooms information. May not exist if no room is
                  assigned.
                type: array
                items:
                  type: object
                  properties:
                    roomTypeID:
                      description: ID of the room type assigned
                      type: string
                      nullable: true
                    roomTypeName:
                      description: Name of the room type assigned
                      type: string
                      nullable: true
                    roomTypeNameShort:
                      description: Short name of the room type assigned
                      type: string
                      nullable: true
                    dormRoomName:
                      description: >-
                        Name of the dorm room. Used for the shared dorm beds
                        that are organized into rooms within the same room type
                      type: string
                      nullable: true
                    roomName:
                      description: Name of the specific room assigned
                      type: string
                      nullable: true
                    roomID:
                      description: ID of the specific room assigned
                      type: string
                      nullable: true
                    subReservationID:
                      description: Associated subReservation ID (specific to room)
                      type: string
                      nullable: true
                nullable: true
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetReservationInvoiceInformationResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the rooms assigned on the selected date
          type: array
          items:
            type: object
            properties:
              status:
                description: >-
                  Reservation status<br /> 'not_confirmed' - Reservation is
                  pending confirmation<br /> 'confirmed' - Reservation is
                  confirmed<br /> 'canceled' - Reservation is canceled<br />
                  'checked_in' - Guest is in hotel<br /> 'checked_out' - Guest
                  already left hotel<br /> 'no_show' - Guest didn't showed up on
                  check-in date
                type: string
                enum:
                  - confirmed
                  - not_confirmed
                  - canceled
                  - checked_in
                  - checked_out
                  - no_show
              customFields:
                description: Custom Fields related to the reservation
                type: array
                items:
                  type: object
                  properties:
                    customFieldName:
                      description: Custom Field Name
                      type: string
                    customFieldValue:
                      description: Custom Field Value
                      type: string
              mainGuestDetails:
                description: Details for the main guest of the reservation
                type: array
                items:
                  type: object
                  properties:
                    guestFirstName:
                      description: First Name
                      type: string
                    guestLastName:
                      description: Last Name
                      type: string
                    guestGender:
                      description: Gender
                      type: string
                      enum:
                        - M
                        - F
                        - N/A
                    guestEmail:
                      description: Email Address
                      type: string
                    guestPhone:
                      description: Phone Number
                      type: string
                    guestCellPhone:
                      description: Cell Phone Number
                      type: string
                    guestAddress:
                      description: Adress
                      type: string
                    guestAddress2:
                      description: Address Line 2 (Complement)
                      type: string
                    guestCity:
                      description: City
                      type: string
                    guestCountry:
                      description: Country
                      type: string
                    taxID:
                      description: Guest Tax Identifier Number
                      type: string
                    companyTaxID:
                      description: Company Tax Identifier Number
                      type: string
                    companyName:
                      description: Company Name
                      type: string
                    guestState:
                      description: State
                      type: string
                    guestZip:
                      description: Zip code
                      type: string
                    isAnonymyzed:
                      description: Flag indicating the guest data was removed upon request
                      type: boolean
              reservationRooms:
                description: Booked rooms information
                type: array
                items:
                  type: object
                  properties:
                    roomTypeName:
                      description: Room type name
                      type: string
                    guestName:
                      description: Assigned guest name
                      type: string
                    startDate:
                      description: Check-in date
                      type: string
                      format: date
                    endDate:
                      description: Check-out date
                      type: string
                      format: date
                    adults:
                      description: Number of adults for the room
                      type: integer
                    children:
                      description: Number of children for the room
                      type: integer
                    nights:
                      description: Number of nights
                      type: integer
                    roomTotal:
                      description: Total rate for the room
                      type: number
                    roomID:
                      description: Unique ID of the room
                      type: string
                    roomName:
                      description: Name of the room
                      type: string
                    roomTypeID:
                      description: ID of the room type
                      type: string
              reservationRoomsTotal:
                description: Total rates for all rooms
                type: number
              reservationAdjustments:
                description: Adjustments applied to the reservation
                type: array
                items:
                  type: object
                  properties:
                    adjustmentDescription:
                      description: Description
                      type: string
                    adjustmentRoomName:
                      description: Room name
                      type: string
                    adjustmentDateTime:
                      description: Date and time of the adjustment
                      type: string
                      format: date-time
                    adjustmentDateTimeUTC:
                      description: Date and time of the adjustment (UTC)
                      type: string
                      format: date-time
                    adjustmentAmount:
                      description: Amount
                      type: number
              reservationAdjustmentsTotal:
                description: Total sum of adjustments
                type: number
              reservationPayments:
                description: Payments made for this reservation
                type: array
                items:
                  type: object
                  properties:
                    paymentType:
                      description: Type
                      type: string
                    paymentDescription:
                      description: Description
                      type: string
                    paymentDateTime:
                      description: Date and time of the payment
                      type: string
                      format: date-time
                    paymentDateTimeUTC:
                      description: Date and time of the payment (UTC)
                      type: string
                      format: date-time
                    paymentAmount:
                      description: Amount
                      type: number
                    reservationPaymentsTotal:
                      description: Total sum of payments
                      type: number
              reservationAdditionalProducts:
                description: Additional items (products or services)
                type: array
                items:
                  type: object
                  properties:
                    productID:
                      description: Internal product ID
                      type: string
                    soldProductID:
                      description: ID of the sold product
                      type: string
                    itemCode:
                      description: Code of the item
                      type: string
                    productName:
                      description: Name
                      type: string
                    productPrice:
                      description: Price
                      type: number
                    productQuantity:
                      description: Quantity sold
                      type: integer
                    productSubTotal:
                      description: Gross amount
                      type: number
                    productFees:
                      description: Fees charged for this item
                      type: number
                    productTaxes:
                      description: Taxes charged for this item
                      type: number
                    productTotal:
                      description: Net amount
                      type: number
                    productNote:
                      description: Product note
                      type: number
                    transactionDateTime:
                      description: Date and time of the sale
                      type: string
                      format: date-time
              reservationAdditionalProductsTotal:
                description: Total sum for additional items
                type: number
              reservationAddOnProducts:
                description: Addons
                type: array
                items:
                  type: object
                  properties:
                    soldProductID:
                      description: ID of the sold product
                      type: string
                    productName:
                      description: Name
                      type: string
                    productPrice:
                      description: Price
                      type: number
                    productQuantity:
                      description: Quantity sold
                      type: integer
                    productSubTotal:
                      description: Gross amount
                      type: number
                    productFees:
                      description: Fees charged for this addon
                      type: number
                    productTaxes:
                      description: Taxes charged for this addon
                      type: number
                    productTotal:
                      description: Net amount
                      type: number
                    transactionDateTime:
                      description: Date and time of the sale
                      type: string
                      format: date-time
              reservationAddOnProductsTotal:
                description: Total sum for addons
                type: number
              reservationTaxes:
                description: Taxes
                type: array
                items:
                  type: object
                  properties:
                    taxName:
                      description: Name
                      type: string
                    taxAmount:
                      description: Amount
                      type: number
              reservationTaxesTotal:
                description: Total sum for taxes
                type: number
              reservationFees:
                description: Fees
                type: array
                items:
                  type: object
                  properties:
                    taxName:
                      description: Name
                      type: string
                    taxAmount:
                      description: Amount
                      type: number
              reservationFeesTotal:
                description: Total sum for fees
                type: number
              balance:
                description: Balance currently owed
                type: number
              balanceDetailed:
                description: >-
                  Reservation balance detailed with the information available on
                  PC app, describing the financial items calculated
                type: array
                items:
                  type: object
                  properties:
                    suggestedDeposit:
                      description: >-
                        Suggested deposit value, calculated according to the
                        hotel policies. Does not mean that it was effectively
                        paid
                      type: string
                    subTotal:
                      description: Sum of the room prices on the reservation
                      type: number
                    additionalItems:
                      description: Sum of the additional items recorded on the reservation
                      type: number
                    taxesFees:
                      description: Sum of taxes and fees on the reservation
                      type: number
                    grandTotal:
                      description: Sum of sub.Total + additionalItems + taxesFees
                      type: number
                    paid:
                      description: >-
                        Amount paid (reservation deposit + any other extra
                        payment)
                      type: number
                    originalCurrencyCode:
                      description: >-
                        The currency the booking was originally made in.
                        Included only if different from property currency
                      type: string
                    originalCurrencyRate:
                      description: >-
                        The currency conversion rate used at the time of
                        booking. Included only if originalCurrencyCode is
                        different from property currency.
                      type: number
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostReservationNoteRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation Unique Identifier
          type: string
        reservationNote:
          description: Note to be added to reservation
          type: string
        userID:
          description: User ID Identify the actual user that is posting the note
          type: string
          nullable: true
    PostReservationNoteResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        reservationNoteID:
          description: Reservation note ID
          type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetReservationNotesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the notes on that reservation
          type: array
          items:
            type: object
            properties:
              reservationNoteID:
                description: Reservation note ID
                type: string
              userName:
                description: User Name
                type: string
              dateCreated:
                description: Creation datetime
                type: string
                format: date-time
              dateModified:
                description: Last modification datetime
                type: string
                format: date-time
              reservationNote:
                description: Note content
                type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PutReservationNoteRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation Unique Identifier
          type: string
        reservationNoteID:
          description: Reservation Note ID
          type: string
        reservationNote:
          description: Note to be added to reservation
          type: string
    PutReservationNoteResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    DeleteReservationNoteResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostReservationDocumentRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation Unique Identifier
          type: string
        file:
          description: >-
            Form-based File Upload<br/> Allowed file types: <code>*.pdf, *.rtf,
            *.doc, *.docx, *.txt, *.jpg, *.jpeg, *.png, *.gif, *.csv, *.xls,
            *.xlsx, *.xml</code><br/> Allowed max file size: 100MB
          type: string
          format: binary
    PostReservationDocumentResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
        data:
          description: Details for the uploaded file
          type: object
          properties:
            fileID:
              description: uploaded file identifier
              type: string
    PutReservationRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation Unique Identifier, one reservation ID per call.
          type: string
        estimatedArrivalTime:
          description: Estimated Arrival Time, 24-hour format.
          type: string
          format: time
          nullable: true
        status:
          description: >-
            Reservation status<br /> 'confirmed' - Reservation is confirmed<br
            /> 'not_confirmed' - Reservation not passed confirmation<br />
            'canceled' - Reservation is canceled<br /> 'checked_in' - Guest is
            in hotel<br /> 'checked_out' - Guest already left hotel<br />
            'no_show' - Guest didn't showed up on check-in date
          type: string
          enum:
            - confirmed
            - not_confirmed
            - canceled
            - checked_in
            - checked_out
            - no_show
          nullable: true
        checkoutDate:
          description: Update the checkoutDate across the whole reservation
          type: string
          format: date
          nullable: true
        customFields:
          description: Array with custom fields information
          type: array
          items:
            type: object
            properties:
              customFieldName:
                description: >-
                  Internal custom field reference. Must match the registered
                  name in backend. Pay Attention
                type: string
                nullable: true
              customFieldValue:
                description: >-
                  Custom field value. It's strictly forbidden to send
                  unencrypted payment data through the API. Numeric values
                  longer than 12 characters and considered valid by Luhn's
                  algorithm will be rejected.
                type: string
                nullable: true
          nullable: true
        rooms:
          description: >-
            Array with rooms information to change accommodations assigned to
            the reservation
          type: array
          items:
            type: object
            properties:
              subReservationID:
                description: Sub Reservation ID of the specific assigned room. Optional.
                type: string
                nullable: true
              roomTypeID:
                description: Room Type ID. Mandatory if rooms are sent.
                type: string
                nullable: true
              checkinDate:
                description: >-
                  Check-in date for this specific room. Mandatory if rooms are
                  sent.
                type: string
                format: date
                nullable: true
              checkoutDate:
                description: >-
                  Check-out date for this specific room. Mandatory if rooms are
                  sent.
                type: string
                format: date
                nullable: true
              adults:
                description: Quantity of adults for the room. Mandatory if rooms are sent.
                type: integer
                nullable: true
              children:
                description: Number of children for the room. Mandatory if rooms are sent.
                type: integer
                nullable: true
              rateID:
                description: Rate ID for the room. Optional.
                type: string
                nullable: true
          nullable: true
        dateCreated:
          description: Date reservation was made. Do not change if omitted.
          type: string
          format: date-time
          nullable: true
        sendStatusChangeEmail:
          description: Send email on reservation status change to property and guest.
          type: boolean
          nullable: true
          default: false
    PutReservationResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: To be used in case any error occurs.
          type: string
          nullable: true
        data:
          description: Returns the reservation data as defined by getReservation call.
          type: object
          nullable: true
    GetSourcesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: ''
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Property Id
                type: string
              sourceID:
                description: Source Identifier
                type: string
              sourceName:
                description: Source Name
                type: string
              isThirdParty:
                description: true if source is from third party
                type: boolean
              status:
                description: true if source is active
                type: boolean
              commission:
                description: How much commission charged by source (in %)
                type: number
              paymentCollect:
                description: Type of payment collect practiced by source
                type: string
                enum:
                  - hotel
                  - channel
              taxes:
                description: ''
                type: array
                items:
                  type: object
                  properties:
                    taxID:
                      description: ID of tax
                      type: string
                    name:
                      description: Name of tax
                      type: string
                    amount:
                      description: Value of tax
                      type: number
                    amountType:
                      description: If tax is percentage of amount or fixed
                      type: string
                      enum:
                        - percentage
                        - fixed
                    type:
                      description: If tax is included or not in final price
                      type: string
                      enum:
                        - exclusive
                        - inclusive
              fees:
                description: ''
                type: array
                items:
                  type: object
                  properties:
                    feeID:
                      description: ID of fee
                      type: integer
                    name:
                      description: Name of fee
                      type: string
                    amount:
                      description: Value of fee
                      type: number
                    amountType:
                      description: If fee is percentage of amount or fixed
                      type: string
                      enum:
                        - percentage
                        - fixed
                    type:
                      description: If fee is included or not in final price
                      type: string
                      enum:
                        - exclusive
                        - inclusive
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetRoomsFeesAndTaxesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details of the fees and taxes applicable
          type: object
          properties:
            fees:
              description: Details of the fees applicable
              type: array
              items:
                type: object
                properties:
                  feeName:
                    description: Name of the fee
                    type: string
                  feeValue:
                    description: Value of the fee for the selected parameters
                    type: number
                  totalFees:
                    description: Total value of the fees
                    type: number
            taxes:
              description: Details of the taxes applicable
              type: array
              items:
                type: object
                properties:
                  feeName:
                    description: Name of the tax
                    type: string
                  feeValue:
                    description: Value of the tax for the selected parameters
                    type: string
                  totalTaxes:
                    description: Total value of the taxes
                    type: number
            roomsTotalWithoutTaxes:
              description: '"roomsTotal" parameter subtracting the included taxes'
              type: number
            grandTotal:
              description: Total with fees and taxes
              type: number
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostRoomAssignRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation identifier
          type: string
        subReservationID:
          description: Sub Reservation identifier
          type: string
          nullable: true
        newRoomID:
          description: Room ID of the room that will be assigned.
          type: string
        roomTypeID:
          description: >-
            Room Type ID of the room that will be assigned. Need to be informed
            in case of assignment.
          type: string
          nullable: true
        oldRoomID:
          description: >-
            Room ID of the room that was assigned. Need to be informed in case
            of reassignment.
          type: string
          nullable: true
        overrideRates:
          description: >-
            Deprecated. Please use adjustPrice instead. Setting
            overrideRates=true will have the opposite of the effect that the
            name implies. It will cause the rates to NOT be overridden, but
            instead to be recalculated based on the new room assignment.
          type: boolean
          nullable: true
          default: false
        adjustPrice:
          description: >-
            If room assignment would result in an upcharge or discount, this
            parameter needs to be set to true to approve the charges. If not
            set, the rate will retain its original value.
          type: boolean
          nullable: true
          default: false
    PostRoomAssignResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostRoomCheckInRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation identifier
          type: string
        subReservationID:
          description: >-
            Sub Reservation identifier, allows for granular control over what
            room is being checked-in. If sent, roomID is ignored.
          type: string
          nullable: true
        roomID:
          description: Room ID of the room that will be checked-in.
          type: string
          nullable: true
    PostRoomCheckInResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    PostRoomCheckOutRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        reservationID:
          description: Reservation identifier
          type: string
        subReservationID:
          description: >-
            Sub Reservation identifier, allows for granular control over what
            room is being checked out. If sent, roomID is ignored.
          type: string
          nullable: true
        roomID:
          description: Room ID of the room that will be checked out.
          type: string
          nullable: true
    PostRoomCheckOutResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetReservationRoomDetailsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
        data:
          description: Details for the rooms assigned on the selected date
          type: object
          properties:
            reservationID:
              description: Reservation Unique Identifier.
              type: string
            subReservationID:
              description: Subreservation Unique Identifier
              type: string
            roomID:
              description: ID of room assigned
              type: string
            roomName:
              description: Name of room assigned
              type: string
            dormRoomName:
              description: >-
                Name of the dorm room. Used for the shared dorm beds that are
                organized into rooms within the same room type.
              type: string
              nullable: true
            guestID:
              description: Guest Identifier
              type: string
            guestName:
              description: Guest Name
              type: string
            roomStatus:
              description: >-
                Room status<br /> 'cancelled' - Reservation with this room was
                canceled<br /> 'checked_out' - Guest already left the room<br />
                'in_house' - Guest is in the room<br /> 'not_checked_in' - Guest
                isn't checked-in yet
              type: string
              enum:
                - cancelled
                - checked_out
                - in_house
                - not_checked_in
            roomTypeID:
              description: ID of room type assigned
              type: string
            roomTypeName:
              description: Name of room type assigned
              type: string
            roomTypeIsVirtual:
              description: If room is virtual (true) or physical (false)
              type: boolean
            maxGuests:
              description: Maximum number of guests that room type permits
              type: integer
            adults:
              description: >-
                Number of adults registered to room (this does not mean there
                will be this number of guests in guests array)
              type: integer
            children:
              description: >-
                Number of children registered to room (this does not mean there
                will be this number of guests in guests array)
              type: integer
            guests:
              description: Array with all guests assigned to room
              type: array
              items:
                type: object
                properties:
                  guestID:
                    description: ID of assigned guest
                    type: string
                  guestFirstName:
                    description: First name of assigned guest
                    type: string
                  guestLastName:
                    description: Last of assigned guest
                    type: string
                  isMainGuest:
                    description: If guest is reservation's main guest
                    type: boolean
    PostRoomBlockRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        roomBlockType:
          description: >-
            Room block type. ‘blocked’ - Room block. ‘out_of_service’ - Out of
            service block
          type: string
          enum:
            - blocked
            - out_of_service
        roomBlockReason:
          description: Room block reason
          type: string
        startDate:
          description: Room block start date
          type: string
          format: date
        endDate:
          description: Room block end date
          type: string
          format: date
        rooms:
          description: >-
            All rooms for room block. When multiple rooms are submitted they
            will be created under the same roomBlockID.
          type: array
          items:
            type: object
            properties:
              roomID:
                description: Room ID
                type: string
              roomTypeID:
                description: Room type ID
                type: string
    PostRoomBlockResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        propertyID:
          description: Property ID
          type: string
        roomBlockID:
          description: Room block ID
          type: string
        roomBlockType:
          description: >-
            Room block type. ‘blocked’ - Room block. ‘out_of_service’ - Out of
            service block
          type: string
          enum:
            - blocked
            - out_of_service
        roomBlockReason:
          description: Room block reason
          type: string
        startDate:
          description: Room block start date
          type: string
          format: date
        endDate:
          description: Room block end date
          type: string
          format: date
        rooms:
          description: All rooms for room block
          type: array
          items:
            type: object
            properties:
              roomID:
                description: Room ID
                type: string
              roomTypeID:
                description: Room Type ID
                type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false).  If
            success = true, it does not exist.
          type: string
    GetRoomBlocksResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Room block details
          type: array
          items:
            type: object
            properties:
              roomBlockID:
                description: Room block ID
                type: string
              roomBlockType:
                description: >-
                  Room block type. ‘blocked’ - Room block. ‘out_of_service’ -
                  Out of service block
                type: string
                enum:
                  - blocked
                  - out_of_service
              roomBlockReason:
                description: Room block reason
                type: string
              startDate:
                description: Room block start date
                type: string
                format: date
              endDate:
                description: Room block end date
                type: string
                format: date
              rooms:
                description: All rooms for Block ID
                type: array
                items:
                  type: object
                  properties:
                    roomID:
                      description: Room ID
                      type: string
                    roomTypeID:
                      description: Room type ID
                      type: string
              count:
                description: Number of results (properties) returned.
                type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false).  If
            success = true, it does not exist.
          type: string
    PutRoomBlockRequest:
      type: object
      properties:
        propertyID:
          description: Property ID
          type: string
          nullable: true
        roomBlockID:
          description: Room block ID
          type: string
        roomBlockReason:
          description: Room block reason
          type: string
          nullable: true
        startDate:
          description: Room block start date
          type: string
          format: date
          nullable: true
        endDate:
          description: Room block end date
          type: string
          format: date
          nullable: true
        rooms:
          description: >-
            All rooms for room block. When multiple rooms are submitted they
            will be created under the same roomBlockID.
          type: array
          items:
            type: object
            properties:
              roomID:
                description: Room ID
                type: string
                nullable: true
              roomTypeID:
                description: Room type ID
                type: string
                nullable: true
          nullable: true
    PutRoomBlockResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        propertyID:
          description: Property ID
          type: string
        roomBlockID:
          description: Room block ID
          type: string
        roomBlockType:
          description: >-
            Room block type. ‘blocked’ - Room block. ‘out_of_service’ - Out of
            service block
          type: string
          enum:
            - blocked
            - out_of_service
        roomBlockReason:
          description: Room block reason
          type: string
        startDate:
          description: Room block start date
          type: string
          format: date
        endDate:
          description: Room block end date
          type: string
          format: date
        rooms:
          description: All rooms for room block
          type: array
          items:
            type: object
            properties:
              roomID:
                description: Room ID
                type: string
              roomTypeID:
                description: Room Type ID
                type: string
        message:
          description: >-
            To be used in case any error occurs (if success = false).  If
            success = true, it does not exist.
          type: string
    DeleteRoomBlockResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false).  If
            success = true, it does not exist.
          type: string
    GetRoomTypesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Room Types details
          type: array
          items:
            type: object
            properties:
              roomTypeID:
                description: Room Type ID
                type: string
              propertyID:
                description: Property ID
                type: string
              roomTypeName:
                description: Room Type Name
                type: string
              roomTypeNameShort:
                description: Room Type Short Name
                type: string
              roomTypeDescription:
                description: Room Type Description
                type: string
              isPrivate:
                description: Whether room is private or shared
                type: boolean
              maxGuests:
                description: Max number of guests allowed in the room type
                type: integer
              adultsIncluded:
                description: Number of adults included on the basic room rate
                type: integer
              childrenIncluded:
                description: Number of children included on the basic room rate
                type: integer
              roomTypePhotos:
                description: List of photos for the room type
                type: array
                items:
                  type: string
              roomTypeFeatures:
                description: List of features for the room type
                type: array
                items:
                  type: string
              roomsAvailable:
                description: Number of rooms available, based on the parameters provided.
                type: integer
                nullable: true
              roomRate:
                description: >-
                  Basic rate for the room, based on the parameters provided.
                  Does not return if roomsAvailable = 0.
                type: number
                nullable: true
              roomTypeUnits:
                description: Number of rooms of a particular type
                type: integer
              roomTypeUnitDormBeds:
                description: Number of beds per Shared Dorm Room type
                type: integer
        count:
          description: Number of results in this page
          type: integer
        total:
          description: Total number of results
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetAvailableRoomTypesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Room Types details
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Property ID
                type: string
              propertyCurrency:
                description: Currency used by the property
                type: array
                items:
                  type: object
                  properties:
                    currencyCode:
                      description: Currency identifier code
                      type: string
                    currencySymbol:
                      description: Currency symbol
                      type: string
                    currencyPosition:
                      description: Currency position
                      type: string
                      enum:
                        - before
                        - after
              propertyRooms:
                description: List of room types for the property
                type: array
                items:
                  type: object
                  properties:
                    roomTypeID:
                      description: Room type ID
                      type: string
                    roomTypeName:
                      description: Room type name
                      type: string
                    roomTypeNameShort:
                      description: Room type short name
                      type: string
                    roomTypeDescription:
                      description: Room Type Description
                      type: string
                    maxGuests:
                      description: Max number of guests allowed in the room type
                      type: integer
                    adultsIncluded:
                      description: Number of adults included on the basic room rate
                      type: integer
                    childrenIncluded:
                      description: Number of children included on the basic room rate
                      type: integer
                    roomTypePhotos:
                      description: List of photos for the room type
                      type: array
                      items:
                        type: object
                        properties:
                          thumb:
                            description: Thumbnail URL
                            type: string
                          image:
                            description: Full Image URL
                            type: string
                    roomTypeFeatures:
                      description: List of features for the room type
                      type: array
                      items:
                        type: string
                    roomRate:
                      description: >-
                        Basic rate for the room, based on the parameters
                        provided
                      type: number
                    roomRateID:
                      description: Specific Rate ID used for the room type ID
                      type: string
                    ratePlanNamePublic:
                      description: Rate plan public name
                      type: string
                    ratePlanNamePrivate:
                      description: Rate plan private name
                      type: string
                    roomsAvailable:
                      description: >-
                        Number of rooms available, based on the parameters
                        provided
                      type: integer
                    adultsExtraCharge:
                      description: >-
                        Total extra charge for number of adults, depending on
                        room settings (see "adultsIncluded" field). It is an
                        associative array, where the key is the number of
                        adults, and the value is the total extra charge when the
                        number of adults is selected.
                      type: array
                      items:
                        type: object
                      nullable: true
                    childrenExtraCharge:
                      description: >-
                        Total extra charge for number of children, depending on
                        room settings (see "childrenIncluded" field). It is an
                        associative array, where the key is the number of
                        children, and the value is the total extra charge when
                        the number of children is selected.
                      type: array
                      items:
                        type: object
                      nullable: true
                    roomRateDetailed:
                      description: Detailed information on the rates, if requested
                      type: array
                      items:
                        type: object
                        properties:
                          date:
                            description: ''
                            type: string
                            format: date
                            nullable: true
                          rate:
                            description: ''
                            type: number
                            nullable: true
                      nullable: true
                    derivedType:
                      description: >-
                        type of deriving (only if current rate was derived from
                        other one).
                      type: string
                      enum:
                        - fixed
                        - percentage
                      nullable: true
                    derivedValue:
                      description: >-
                        Can be positive or negative (only if current rate was
                        derived from other one).
                      type: number
                      nullable: true
                    individualRooms:
                      description: >-
                        Individual rooms available to be booked (if set on
                        backend)
                      type: array
                      items:
                        type: object
                        properties:
                          roomID:
                            description: ''
                            type: string
                            nullable: true
                          roomName:
                            description: ''
                            type: number
                            nullable: true
                          dormRoomName:
                            description: >-
                              Name of the dorm room. Used for the shared dorm
                              beds that are organized into rooms within the same
                              room type.
                            type: string
                            nullable: true
                      nullable: true
        roomCount:
          description: Number of results (room types) returned
          type: integer
        count:
          description: Number of results (properties) returned
          type: integer
        total:
          description: Total number of results (properties)
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetRoomsResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Room Types details
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Property ID
                type: string
              rooms:
                description: All rooms for property ID
                type: array
                items:
                  type: object
                  properties:
                    roomID:
                      description: Room ID
                      type: string
                    roomName:
                      description: Room Name
                      type: string
                    dormRoomName:
                      description: >-
                        Name of the dorm room. Used for the shared dorm beds
                        that are organized into rooms within the same room type
                      type: string
                    roomDescription:
                      description: Room Description
                      type: string
                    maxGuests:
                      description: Number of guests that room allows
                      type: integer
                    isPrivate:
                      description: If room is private (true) or shared (false)
                      type: boolean
                    isVirtual:
                      description: If room is virtual (true) or physical (false)
                      type: boolean
                    roomBlocked:
                      description: >-
                        If room is blocked on calendar during the period
                        selected. If no check-in/out dates are sent, it returns
                        the status for the current day.
                      type: boolean
                    roomTypeID:
                      description: Room type ID
                      type: string
                    roomTypeName:
                      description: Room type Name
                      type: string
                    roomTypeNameShort:
                      description: Room type Short Name
                      type: string
                    linkedRoomIDs:
                      description: >-
                        List of linked room IDs for this room (including nested
                        relations). Only returned if includeRoomRelations is set
                        to true
                      type: array
                      items:
                        type: string
                      nullable: true
                    linkedRoomTypeIDs:
                      description: >-
                        List of linked room type IDs. Only returned if
                        includeRoomRelations is set to true
                      type: array
                      items:
                        type: string
                      nullable: true
                    linkedRoomTypeQty:
                      description: >-
                        Data about linked rooms count, grouped by room type.
                        Only returned if includeRoomRelations is set to true
                      type: array
                      items:
                        type: object
                        properties:
                          roomTypeId:
                            description: Room type ID
                            type: string
                            nullable: true
                          roomQty:
                            description: Related rooms count
                            type: integer
                            nullable: true
                      nullable: true
        count:
          description: Number of results (properties) returned
          type: integer
        total:
          description: Total number of results, can be more than what was returned
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetRoomsUnassignedResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Room Types details
          type: array
          items:
            type: object
            properties:
              propertyID:
                description: Property ID
                type: string
              rooms:
                description: All rooms for property ID
                type: array
                items:
                  type: object
                  properties:
                    roomID:
                      description: Room ID
                      type: string
                    roomName:
                      description: Room Name
                      type: string
                    dormRoomName:
                      description: >-
                        Name of the dorm room. Used for the shared dorm beds
                        that are organized into rooms within the same room type
                      type: string
                    roomDescription:
                      description: Room Description
                      type: string
                    maxGuests:
                      description: Number of guests that room allows
                      type: integer
                    isPrivate:
                      description: If room is private (true) or shared (false)
                      type: boolean
                    isVirtual:
                      description: If room is virtual (true) or physical (false)
                      type: boolean
                    roomBlocked:
                      description: >-
                        If room is blocked on calendar during the period
                        selected. If no check-in/out dates are sent, it returns
                        the status for the current day.
                      type: boolean
                    roomTypeID:
                      description: Room type ID
                      type: string
                    roomTypeName:
                      description: Room type Name
                      type: string
                    roomTypeNameShort:
                      description: Room type Short Name
                      type: string
        count:
          description: Number of results (properties) returned
          type: integer
        total:
          description: Total number of results, can be more than what was returned
          type: integer
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
    GetTaxesAndFeesResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        message:
          description: >-
            To be used in case any error occurs (if success = false). If success
            = true, it does not exist.
          type: string
          nullable: true
        data:
          description: >-
            Details for the taxes and fees. If success = false, it may not
            exist.
          type: array
          items:
            type: object
            properties:
              type:
                description: Type. Fee or tax.
                type: string
                enum:
                  - fee
                  - tax
              feeID:
                description: Fee's unique identifier. Only exists if type = fee.
                type: integer
                nullable: true
              taxID:
                description: Tax's unique identifier. Only exists if type = tax.
                type: integer
                nullable: true
              name:
                description: Name
                type: string
              code:
                description: Code
                type: string
              amount:
                description: Amount
                type: number
              amountAdult:
                description: >-
                  Amount charged per adult. Only applicable if amountType =
                  fixed_per_person (Per Person Per Night)
                type: number
              amountChild:
                description: >-
                  Amount charged per children. Only applicable if amountType =
                  fixed_per_person (Per Person Per Night)
                type: number
              amountRateBased:
                description: >-
                  Rules defined for Rate-Based taxes/fees. Only applicable if
                  amountType = percentage_rate_based (Rate-based)
                type: array
                items:
                  type: object
                  properties:
                    rate:
                      description: Maximum rate for which this amount is valid
                      type: number
                    percentage:
                      description: Percentage applied for the rate
                      type: number
                nullable: true
              amountType:
                description: >-
                  Amount type. They mean:<br/> <table>
                  <tr><th>Value</th><th>Meaning</th></tr>
                  <tr><td>percentage</td><td>Percentage of Total
                  Amount</td></tr> <tr><td>fixed</td><td>Fixed per Room Night /
                  Item</td></tr> <tr><td>fixed_per_person</td><td>Fixed per
                  Person per Night</td></tr>
                  <tr><td>fixed_per_accomodation</td><td>Fixed per
                  Accomodation</td></tr>
                  <tr><td>fixed_per_reservation</td><td>Fixed per
                  Reservation</td></tr>
                  <tr><td>percentage_rate_based</td><td>Rate-based</td></tr>
                  </table>
                type: string
                enum:
                  - percentage
                  - fixed
                  - fixed_per_person
                  - fixed_per_accomodation
                  - fixed_per_reservation
                  - percentage_rate_based
              availableFor:
                description: >-
                  Where this tax/fee is available?<br/>They mean:<br/> <table>
                  <tr><th>Value</th><th>Meaning</th></tr>
                  <tr><td>product</td><td>Items</td></tr>
                  <tr><td>rate</td><td>Reservations</td></tr>
                  <tr><td>fee</td><td>Fees -- this tax is charged on top of some
                  fees</td></tr> </table>
                type: array
                items:
                  type: string
                enum:
                  - product
                  - rate
                  - fee
              feesCharged:
                description: >-
                  List of Fee IDs charged by the current tax. Only exists if
                  type = tax.
                type: array
                items:
                  type: integer
                nullable: true
              inclusiveOrExclusive:
                description: If this tax/fee is inclusive or exclusive
                type: string
                enum:
                  - inclusive
                  - exclusive
              isDeleted:
                description: Flag indicating if tax was deleted from the system
                type: boolean
              childId:
                description: ID of the tax or fee that replaced current one
                type: string
              createdAt:
                description: Date when tax or fee was created in the system
                type: string
              expiredAt:
                description: Date when tax or fee was expired
                type: string
          nullable: true
        total:
          description: Total number of results
          type: integer
          nullable: true
    GetUsersResponse:
      type: object
      properties:
        success:
          description: Returns if the request could be completed
          type: boolean
        data:
          description: Details for the users
          type: array
          items:
            type: object
            properties:
              userID:
                description: User ID
                type: string
              firstName:
                description: First Name
                type: string
              lastName:
                description: Last Name
                type: string
              email:
                description: Email
                type: string
              language:
                description: >-
                  User Language|Property Default Language. See the full list of
                  available language parameters <a target="_blank"
                  href="https://integrations.cloudbeds.com/hc/en-us/articles/360007144993-FAQ#methods-and-parameters">here</a>
                type: string
              userRole:
                description: Details for the role
                type: object
                properties:
                  name:
                    description: Role's name
                    type: string
                  description:
                    description: Role's description
                    type: string
              active:
                description: ''
                type: string
                enum:
                  - 'yes'
                  - 'no'
              lastLogin:
                description: Date and time of the last login event
                type: string
                format: date
              propertyId:
                description: Property numeric identifier
                type: string
              organizationID:
                description: Organization ID
                type: string
                nullable: true
paths:
  /oauth/metadata:
    get:
      tags:
        - Authentication
      summary: metadata
      description: >-
        In the context of properties being distributed across multiple
        localizations, this endpoint serves to retrieve the precise location of
        the property associated with the provided access token. Further
        information can be found in the [Authentication
        guide](https://integrations.cloudbeds.com/hc/en-us/sections/14731510501915-Authentication).
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMetadataResponse'
  /access_token:
    post:
      tags:
        - Authentication
      summary: access_token
      description: >-
        Query the authorization server for an access token used to access
        property resources.</br> If the automatic delivery method for API keys
        is used, the grant type `urn:ietf:params:oauth:grant-type:api-key` needs
        to be used to request an API key. This grant type requires
        `grant_type=urn:ietf:params:oauth:grant-type:api-key`, `client_id`,
        `client_secret`, `redirect_uri` and `code`.</br> For OAuth 2.0., two
        different grant types (`authorization_code`, `refresh_token`) are
        supported. Authorization code grant type requires
        `grant_type=authorization_code`, `client_id`, `client_secret`,
        `redirect_uri`, `code`. Refresh token grant type requires
        `grant_type=refresh_token`, `client_id`, `client_secret`,
        `refresh_token`.</br> Read the [Authentication
        guide](https://integrations.cloudbeds.com/hc/en-us/sections/14731510501915-Authentication)
        for implementation tips, user flows and testing advice.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAccessTokenResponse'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostAccessTokenRequest'
  /userinfo:
    get:
      tags:
        - Authentication
      summary: userinfo
      description: Returns information on user who authorized connection
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserinfoResponse'
      parameters:
        - description: Specify a property ID when using role_details
          name: property_id
          schema:
            type: string
          required: false
          in: query
        - description: Specify whether to include role and acl details of the user.
          name: role_details
          schema:
            type: boolean
          required: false
          in: query
  /getAdjustment:
    get:
      tags:
        - Adjustment
      summary: getAdjustment
      description: Gets the details for the one AdjustmentID
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAdjustmentResponse'
      security:
        - api_key:
            - read:adjustment
          OAuth2:
            - read:adjustment
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Adjustment identifier
          name: adjustmentID
          schema:
            type: string
          required: true
          in: query
  /getAdjustments:
    get:
      tags:
        - Adjustment
      summary: getAdjustments
      description: Gets all the Adjustments and their details to a specified reservation
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAdjustmentsResponse'
      security:
        - api_key:
            - read:adjustment
          OAuth2:
            - read:adjustment
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Reservation identifier
          name: reservationID
          schema:
            type: string
          required: true
          in: query
  /deleteAdjustment:
    delete:
      tags:
        - Adjustment
      summary: deleteAdjustment
      description: Voids the AdjustmentID transaction on the specified reservationID
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteAdjustmentResponse'
      security:
        - api_key:
            - delete:adjustment
          OAuth2:
            - delete:adjustment
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Reservation identifier
          name: reservationID
          schema:
            type: string
          required: true
          in: query
        - description: Adjustment identifier
          name: adjustmentID
          schema:
            type: string
          required: true
          in: query
  /postAdjustment:
    post:
      tags:
        - Adjustment
      summary: postAdjustment
      description: Adds an adjustment to a reservation
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAdjustmentResponse'
      security:
        - api_key:
            - write:adjustment
          OAuth2:
            - write:adjustment
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostAdjustmentRequest'
  /createAllotmentBlock:
    post:
      tags:
        - AllotmentBlocks
      summary: createAllotmentBlock
      description: Retreive allotment blocks @apiQuery {Integer} propertyID Property ID
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCreateAllotmentBlockResponse'
      security:
        - api_key:
            - write:allotmentBlock
          OAuth2:
            - write:allotmentBlock
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostCreateAllotmentBlockRequest'
  /deleteAllotmentBlock:
    post:
      tags:
        - AllotmentBlocks
      summary: deleteAllotmentBlock
      description: Delete allotment blocks
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostDeleteAllotmentBlockResponse'
      security:
        - api_key:
            - write:allotmentBlock
          OAuth2:
            - write:allotmentBlock
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostDeleteAllotmentBlockRequest'
  /getAllotmentBlocks:
    get:
      tags:
        - AllotmentBlocks
      summary: getAllotmentBlocks
      description: Retrieve allotment blocks
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllotmentBlocksResponse'
      security:
        - api_key:
            - read:allotmentBlock
          OAuth2:
            - read:allotmentBlock
      parameters:
        - description: >-
            Property ID (optional, by default all authorized properties will be
            included)
          name: propertyID
          schema:
            type: string
          required: true
          in: query
        - description: Allotment block code
          name: allotmentBlockCode
          schema:
            type: string
          required: false
          in: query
        - description: Allotment block name
          name: allotmentBlockName
          schema:
            type: string
          required: false
          in: query
        - description: A group profile code
          name: groupCode
          schema:
            type: string
          required: false
          in: query
        - description: Allotment block status(es)
          name: allotmentBlockStatus
          schema:
            type: string
            enum:
              - definite
              - tentative
              - lead
              - cancelled
          required: false
          in: query
        - description: The type of allotment block
          name: allotmentBlockType
          schema:
            type: string
            enum:
              - aggregate
              - allotment
          required: false
          in: query
        - description: 'Number of allotment blocks to return per page (min: 1, max: 100)'
          name: pageSize
          schema:
            type: integer
          required: false
          in: query
        - description: Which page in the results to access
          name: pageNumber
          schema:
            type: integer
          required: false
          in: query
        - description: Interval start date
          name: startDate
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: Interval start date
          name: endDate
          schema:
            type: string
            format: date
          required: false
          in: query
  /updateAllotmentBlock:
    post:
      tags:
        - AllotmentBlocks
      summary: updateAllotmentBlock
      description: Update an allotment block @apiQuery {Integer} propertyID Property ID
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostUpdateAllotmentBlockResponse'
      security:
        - api_key:
            - write:allotmentBlock
          OAuth2:
            - write:allotmentBlock
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostUpdateAllotmentBlockRequest'
  /createAllotmentBlockNotes:
    post:
      tags:
        - AllotmentBlocks
      summary: createAllotmentBlockNotes
      description: Add a note to an allotment block
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCreateAllotmentBlockNotesResponse'
      security:
        - api_key:
            - read:allotmentBlock
          OAuth2:
            - read:allotmentBlock
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostCreateAllotmentBlockNotesRequest'
  /listAllotmentBlockNotes:
    get:
      tags:
        - AllotmentBlocks
      summary: listAllotmentBlockNotes
      description: List notes added to an allotment block
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetListAllotmentBlockNotesResponse'
      security:
        - api_key:
            - read:allotmentBlock
          OAuth2:
            - read:allotmentBlock
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: true
          in: query
        - description: Allotment block code
          name: allotmentBlockCode
          schema:
            type: string
          required: true
          in: query
        - description: Note status
          name: status
          schema:
            type: string
            enum:
              - all
              - active
              - archived
          required: false
          in: query
        - description: Page
          name: pageNumber
          schema:
            type: integer
          required: false
          in: query
        - description: Number of Items per Page (min 1, max 100)
          name: pageSize
          schema:
            type: integer
          required: false
          in: query
  /updateAllotmentBlockNotes:
    post:
      tags:
        - AllotmentBlocks
      summary: updateAllotmentBlockNotes
      description: Update a note on an allotment block
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostUpdateAllotmentBlockNotesResponse'
      security:
        - api_key:
            - read:allotmentBlock
          OAuth2:
            - read:allotmentBlock
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostUpdateAllotmentBlockNotesRequest'
  /deleteAppPropertySettings:
    post:
      tags:
        - AppSettings
      summary: deleteAppPropertySettings
      description: ''
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostDeleteAppPropertySettingsResponse'
      security:
        - api_key:
            - delete:appPropertySettings
          OAuth2:
            - delete:appPropertySettings
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostDeleteAppPropertySettingsRequest'
  /getAppPropertySettings:
    get:
      tags:
        - AppSettings
      summary: getAppPropertySettings
      description: Returns the app property settings
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAppPropertySettingsResponse'
      security:
        - api_key:
            - read:appPropertySettings
          OAuth2:
            - read:appPropertySettings
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: true
          in: query
        - description: Key
          name: key
          schema:
            type: string
          required: false
          in: query
  /postAppPropertySettings:
    post:
      tags:
        - AppSettings
      summary: postAppPropertySettings
      description: ''
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAppPropertySettingResponse'
      security:
        - api_key:
            - write:appPropertySettings
          OAuth2:
            - write:appPropertySettings
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostAppPropertySettingRequest'
  /putAppPropertySettings:
    post:
      tags:
        - AppSettings
      summary: putAppPropertySettings
      description: ''
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPutAppPropertySettingsResponse'
      security:
        - api_key:
            - write:appPropertySettings
          OAuth2:
            - write:appPropertySettings
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostPutAppPropertySettingsRequest'
  /getCurrencySettings:
    get:
      tags:
        - Currency
      summary: getCurrencySettings
      description: Get currency settings
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCurrencySettingsResponse'
      security:
        - api_key:
            - read:currency
          OAuth2:
            - read:currency
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /getCustomFields:
    get:
      tags:
        - CustomFields
      summary: getCustomFields
      description: >-
        Gets custom fields list<br /> ¹ data.displayed = "booking" - Display
        this field to guests on the booking engine.<br /> ¹ data.displayed =
        "reservation" - Add this field to the reservation folio for use by
        staff.<br /> ¹ data.displayed = "card" - Make this field available for
        registration cards.<br />
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCustomFieldsResponse'
      security:
        - api_key:
            - read:customFields
          OAuth2:
            - read:customFields
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Field identifier
          name: customFieldID
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Internal reference and is used for integration purposes such as
            custom links and the API
          name: shortcode
          schema:
            type: string
          required: false
          in: query
  /postCustomField:
    post:
      tags:
        - CustomFields
      summary: postCustomField
      description: >-
        Sets custom fields. The call should only be made once to add the field
        to the system.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCustomFieldResponse'
      security:
        - api_key:
            - write:customFields
          OAuth2:
            - write:customFields
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostCustomFieldRequest'
  /getDashboard:
    get:
      tags:
        - Dashboard
      summary: getDashboard
      description: Returns basic information about the current state of the hotel
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDashboardResponse'
      security:
        - api_key:
            - read:dashboard
          OAuth2:
            - read:dashboard
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: 'Return data for this date. Format: YYYY-MM-DD'
          name: date
          schema:
            type: string
            format: date
          required: false
          in: query
  /getEmailTemplates:
    get:
      tags:
        - Emails
      summary: getEmailTemplates
      description: >-
        Returns a list of all existing email templates. This call is only
        available for third-party integration partners, and not for property
        client IDs.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEmailTemplatesResponse'
      security:
        - api_key:
            - read:communication
          OAuth2:
            - read:communication
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /postEmailTemplate:
    post:
      tags:
        - Emails
      summary: postEmailTemplate
      description: >-
        Creates a new email template. See the full list of available language
        parameters <a
        href="https://integrations.cloudbeds.com/hc/en-us/articles/360007144993-FAQ#methods-and-parameters">here</a>.
        This call is only available for third-party integration partners, and
        not for property client IDs.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostEmailTemplateResponse'
      security:
        - api_key:
            - write:communication
          OAuth2:
            - write:communication
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostEmailTemplateRequest'
  /getEmailSchedule:
    get:
      tags:
        - Emails
      summary: getEmailSchedule
      description: >-
        Returns a list of all existing email scheduling. This call is only
        available for third-party integration partners, and not for property
        client IDs.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEmailScheduleResponse'
      security:
        - api_key:
            - read:communication
          OAuth2:
            - read:communication
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /postEmailSchedule:
    post:
      tags:
        - Emails
      summary: postEmailSchedule
      description: >-
        Creates a new email schedule for existing email template. Email template
        can be scheduled based on two parameters: reservationStatusChange and
        reservationEvent. Only one of the parameters can be used.
        *reservationStatusChange* schedules email to be sent when reservation
        status transitions to a specific one, for instance: `confirmed`.
        *reservationEvent* schedules email to be sent number of days prior or
        after a specific event, for instance: `after_check_out` at a given time
        This call is only available for third-party integration partners, and
        not for property client IDs.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostEmailScheduleResponse'
      security:
        - api_key:
            - write:communication
          OAuth2:
            - write:communication
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostEmailScheduleRequest'
  /getGroupNotes:
    get:
      tags:
        - Groups
      summary: getGroupNotes
      description: Returns group notes
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetGroupNotesResponse'
      security:
        - api_key:
            - read:group
          OAuth2:
            - read:group
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: true
          in: query
        - description: Group code
          name: groupCode
          schema:
            type: string
          required: true
          in: query
        - description: 'Number of groups notes to return per page (min: 1, max: 100)'
          name: pageSize
          schema:
            type: integer
          required: true
          in: query
        - description: Which page in the results to access
          name: pageNumber
          schema:
            type: integer
          required: true
          in: query
  /getGroups:
    get:
      tags:
        - Groups
      summary: getGroups
      description: Returns the groups for a property
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetGroupsResponse'
      security:
        - api_key:
            - read:group
          OAuth2:
            - read:group
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: true
          in: query
        - description: Unique ID for a group
          name: groupCode
          schema:
            type: string
          required: false
          in: query
        - description: The type of group
          name: type
          schema:
            type: string
            enum:
              - group
              - company
              - travel_agent
              - wholesaler
          required: false
          in: query
        - description: Group status
          name: status
          schema:
            type: string
            enum:
              - open
              - closed
          required: false
          in: query
        - description: Datetime (lower limit) to be queried
          name: createdFrom
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: Datetime (upper limit) to be queried
          name: createdTo
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: 'Number of groups to return per page (min: 1, max: 100)'
          name: pageSize
          schema:
            type: integer
          required: false
          in: query
        - description: Which page in the results to access
          name: pageNumber
          schema:
            type: integer
          required: false
          in: query
  /patchGroup:
    post:
      tags:
        - Groups
      summary: patchGroup
      description: >-
        Updates an existing group with information provided. At least one
        information field is required for this call.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPatchGroupResponse'
      security:
        - api_key:
            - write:group
          OAuth2:
            - write:group
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostPatchGroupRequest'
  /postGroupNote:
    post:
      tags:
        - Groups
      summary: postGroupNote
      description: Adds a group note
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostGroupNoteResponse'
      security:
        - api_key:
            - write:group
          OAuth2:
            - write:group
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostGroupNoteRequest'
  /putGroup:
    post:
      tags:
        - Groups
      summary: putGroup
      description: >-
        Adds a group to the property. Please note that the default setting for
        'Route to Group Folio' will be 'No,' and the 'Reservation Folio
        Configuration' will be set as the default folio configuration. You can
        edit these settings through the user interface (UI).
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPutGroupResponse'
      security:
        - api_key:
            - write:group
          OAuth2:
            - write:group
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostPutGroupRequest'
  /getGuest:
    get:
      tags:
        - Guest
      summary: getGuest
      description: Returns information on a guest specified by the Reservation ID parameter
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetGuestResponse'
      security:
        - api_key:
            - read:guest
          OAuth2:
            - read:guest
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Reservation Unique Identifier. Required if no guestID is provided.
          name: reservationID
          schema:
            type: string
          required: false
          in: query
        - description: Guest ID. Required if no reservationID is provided.
          name: guestID
          schema:
            type: string
          required: false
          in: query
  /getGuestList:
    get:
      tags:
        - Guest
      summary: getGuestList
      description: >-
        Returns a list of guests, ordered by modification date ### Group account
        support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetGuestListResponse'
      security:
        - api_key:
            - read:guest
          OAuth2:
            - read:guest
      parameters:
        - description: List of property IDs, comma-separated, i.e. 37,345,89
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Inferior limit datetime, used to filter guests result, based on
            latest creation/modification date
          name: resultsFrom
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Superior limit datetime, used to filter guests result, based on
            latest creation/modification date
          name: resultsTo
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-in date range
            starting on this date
          name: checkInFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-in date range
            ending on this date
          name: checkInTo
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-out date
            range starting on this date
          name: checkOutFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-out date
            range ending on this date
          name: checkOutTo
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: Filters guests result based on Guest First Name
          name: guestFirstName
          schema:
            type: string
          required: false
          in: query
        - description: Filters guests result based on Guest Last Name
          name: guestLastName
          schema:
            type: string
          required: false
          in: query
        - description: Filters guests result based on Guest Email
          name: guestEmail
          schema:
            type: string
          required: false
          in: query
        - description: Filters guests result based on Guest Phone Number
          name: guestPhone
          schema:
            type: string
          required: false
          in: query
        - description: Filters guests result based on Guest Cell Phone Number
          name: guestCellPhone
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Reservation status <br /> If more than one, send as comma-separated
            values. i.e. in_progress,confirmed
          name: status
          schema:
            type: string
            enum:
              - in_progress
              - confirmed
              - not_confirmed
              - canceled
              - checked_in
              - checked_out
              - no_show
          required: false
          in: query
        - description: Sort By parameter
          name: sortBy
          schema:
            type: string
            enum:
              - creation
              - modification
            default: modification
          required: false
          in: query
        - description: If API response should return with more of Guest's information
          name: includeGuestInfo
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: If true, response only returns main guest's
          name: excludeSecondaryGuests
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: Results page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Results page size. Max = 100
          name: pageSize
          schema:
            type: integer
            default: 100
          required: false
          in: query
  /getGuestsModified:
    get:
      tags:
        - Guest
      summary: getGuestsModified
      description: >-
        Returns a list of guests based on their modification date. Note that
        when a guest checks in or checks out of a room, their record is modified
        at that time. If no date range is passed, only the records for the
        current day are returned. Also note that if the guest is assigned to
        multiple rooms, it will result in multiple records. ### Group account
        support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetGuestsModifiedResponse'
      security:
        - api_key:
            - read:guest
          OAuth2:
            - read:guest
      parameters:
        - description: List of property IDs, comma-separated, i.e. 37,345,89
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
        - description: >-
            When used, and true, will return guests only currently in-house. If
            the guest checks-out, it will not appear on the results.
          name: inHouse
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: >-
            Inferior limit datetime, used to filter guests result, based on
            latest creation/modification date
          name: resultsFrom
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Superior limit datetime, used to filter guests result, based on
            latest creation/modification date
          name: resultsTo
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-in date range
            starting on this date
          name: checkInFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-in date range
            ending on this date
          name: checkInTo
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-out date
            range starting on this date
          name: checkOutFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-out date
            range ending on this date
          name: checkOutTo
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: Results page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Results page size. Max = 100
          name: pageSize
          schema:
            type: integer
            default: 100
          required: false
          in: query
  /getGuestsByStatus:
    get:
      tags:
        - Guest
      summary: getGuestsByStatus
      description: >-
        Returns a list of guests in the current status (Not Checked In, In
        House, Checked Out or Cancelled), sorted by modification date. If no
        date range is passed, it returns all guests with the selected status.
        ### Group account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetGuestsByStatusResponse'
      security:
        - api_key:
            - read:guest
          OAuth2:
            - read:guest
      parameters:
        - description: Guest status during the period
          name: status
          schema:
            type: string
            enum:
              - canceled
              - checked_out
              - in_house
              - not_checked_in
          required: true
          in: query
        - description: >-
            ID for the properties to be queried (comma-separated, i.e.
            37,345,89).<br /> It can be omitted if the API key is
            single-property, or to get results from all properties on an
            association.
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Used to filter guests result, and returns only the guests that were
            last modified starting on "resultsFrom" value
          name: resultsFrom
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Used to filter guests result, and returns only the guests that were
            last modified ending on "resultsTo" value
          name: resultsTo
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: Results page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Results page size. Max = 100
          name: pageSize
          schema:
            type: integer
            default: 20
          required: false
          in: query
  /getGuestsByFilter:
    get:
      tags:
        - Guest
      summary: getGuestsByFilter
      description: >-
        Returns a list of guests matching the selected parameters ### Group
        account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetGuestsByFilterResponse'
      security:
        - api_key:
            - read:guest
          OAuth2:
            - read:guest
      parameters:
        - description: List of property IDs, comma-separated, i.e. 37,345,89
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
        - description: Current guest status
          name: status
          schema:
            type: string
            enum:
              - cancelled
              - checked_out
              - in_house
              - not_checked_in
          required: true
          in: query
        - description: ''
          name: reservationID
          schema:
            type: string
          required: false
          in: query
        - description: ''
          name: roomID
          schema:
            type: string
          required: false
          in: query
        - description: ''
          name: guestName
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-in date range
            starting on this date
          name: checkInFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-in date range
            ending on this date
          name: checkInTo
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-out date
            range starting on this date
          name: checkOutFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters guests result to return only guests with check-out date
            range ending on this date
          name: checkOutTo
          schema:
            type: string
            format: date
          required: false
          in: query
  /postGuestNote:
    post:
      tags:
        - Guest
      summary: postGuestNote
      description: Adds a guest note
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostGuestNoteResponse'
      security:
        - api_key:
            - write:guest
          OAuth2:
            - write:guest
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostGuestNoteRequest'
  /getGuestNotes:
    get:
      tags:
        - Guest
      summary: getGuestNotes
      description: Retrieves a guest notes
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetGuestNotesResponse'
      security:
        - api_key:
            - read:guest
          OAuth2:
            - read:guest
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Guest ID
          name: guestID
          schema:
            type: string
          required: true
          in: query
  /putGuestNote:
    put:
      tags:
        - Guest
      summary: putGuestNote
      description: Updates an existing guest note.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutGuestNoteResponse'
      security:
        - api_key:
            - write:guest
          OAuth2:
            - write:guest
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PutGuestNoteRequest'
  /deleteGuestNote:
    delete:
      tags:
        - Guest
      summary: deleteGuestNote
      description: Archives an existing guest note.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteGuestNoteResponse'
      security:
        - api_key:
            - write:guest
          OAuth2:
            - write:guest
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Guest ID
          name: guestID
          schema:
            type: string
          required: true
          in: query
        - description: Note ID
          name: noteID
          schema:
            type: string
          required: true
          in: query
  /putGuest:
    put:
      tags:
        - Guest
      summary: putGuest
      description: >-
        Updates an existing guest with information provided. At least one
        information field is required for this call.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutGuestResponse'
      security:
        - api_key:
            - write:guest
          OAuth2:
            - write:guest
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PutGuestRequest'
  /postGuestDocument:
    post:
      tags:
        - Guest
      summary: postGuestDocument
      description: Attaches a document to a guest
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostGuestDocumentResponse'
      security:
        - api_key:
            - write:guest
          OAuth2:
            - write:guest
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostGuestDocumentRequest'
  /postGuest:
    post:
      tags:
        - Guest
      summary: postGuest
      description: Adds a guest to reservation as an additional guest.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostGuestResponse'
      security:
        - api_key:
            - write:guest
          OAuth2:
            - write:guest
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostGuestRequest'
  /postGuestsToRoom:
    post:
      tags:
        - Guest
      summary: postGuestsToRoom
      description: >-
        Assigns guest(s) to a room in a reservation and adds these guests as
        additional guests.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostGuestsToRoomResponse'
      security:
        - api_key:
            - write:guest
          OAuth2:
            - write:guest
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostGuestsToRoomRequest'
  /postGuestPhoto:
    post:
      tags:
        - Guest
      summary: postGuestPhoto
      description: Attaches a photo to a guest
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostGuestPhotoResponse'
      security:
        - api_key:
            - write:guest
          OAuth2:
            - write:guest
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostGuestPhotoRequest'
  /getHotels:
    get:
      tags:
        - Hotel
      summary: getHotels
      description: >-
        Returns a list of hotels, filtered by the parameters passed ### Group
        account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHotelsResponse'
      security:
        - api_key:
            - read:hotel
          OAuth2:
            - read:hotel
      parameters:
        - description: List of property IDs, comma-separated, i.e. 37,345,89
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
        - description: Property name, or part of it
          name: propertyName
          schema:
            type: string
          required: false
          in: query
        - description: Property city, or part of it
          name: propertyCity
          schema:
            type: string
          required: false
          in: query
        - description: Page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Page size
          name: pageSize
          schema:
            type: integer
            default: 20
          required: false
          in: query
  /getHotelDetails:
    get:
      tags:
        - Hotel
      summary: getHotelDetails
      description: Returns the details of a specific hotel, identified by "propertyID"
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHotelDetailsResponse'
      security:
        - api_key:
            - read:hotel
          OAuth2:
            - read:hotel
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /postFile:
    post:
      tags:
        - Hotel
      summary: postFile
      description: Attaches a file to a hotel
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostFileResponse'
      security:
        - api_key:
            - write:hotel
          OAuth2:
            - write:hotel
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostFileRequest'
  /getFiles:
    get:
      tags:
        - Hotel
      summary: getFiles
      description: Returns a list of files attached to a hotel, ordered by creation date
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFilesResponse'
      security:
        - api_key:
            - read:hotel
          OAuth2:
            - read:hotel
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Sort By parameter
          name: sortBy
          schema:
            type: string
            enum:
              - name
              - type
              - source
              - date
            default: date
          required: false
          in: query
        - description: >-
            Order response in DESCending or ASCending order, used together with
            sortBy
          name: orderBy
          schema:
            type: string
            enum:
              - desc
              - asc
            default: desc
          required: false
          in: query
        - description: >-
            Filter filess by name. Include only with names containing specified
            string
          name: name
          schema:
            type: string
          required: false
          in: query
        - description: Results page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Results page size. Max = 100
          name: pageSize
          schema:
            type: integer
            default: 100
          required: false
          in: query
  /getHouseAccountList:
    get:
      tags:
        - HouseAccount
      summary: getHouseAccountList
      description: Pulls list of active house accounts
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHouseAccountListResponse'
      security:
        - api_key:
            - read:houseAccount
          OAuth2:
            - read:houseAccount
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /getHouseAccountDetails:
    get:
      tags:
        - HouseAccount
      summary: getHouseAccountDetails
      description: Pulls details of specific house account
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHouseAccountDetailsResponse'
      security:
        - api_key:
            - read:houseAccount
          OAuth2:
            - read:houseAccount
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: House Account ID to get details for
          name: houseAccountID
          schema:
            type: string
          required: true
          in: query
        - description: date"] Inferior limit date, used to filter result records
          name: resultsFrom
          schema:
            type: string
            format: date
            default: current
          required: false
          in: query
        - description: date"] Inferior limit date, used to filter result records
          name: resultsTo
          schema:
            type: string
            format: date
            default: current
          required: false
          in: query
  /postNewHouseAccount:
    post:
      tags:
        - HouseAccount
      summary: postNewHouseAccount
      description: Add a new House Account
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostNewHouseAccountResponse'
      security:
        - api_key:
            - write:houseAccount
          OAuth2:
            - write:houseAccount
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostNewHouseAccountRequest'
  /putHouseAccountStatus:
    put:
      tags:
        - HouseAccount
      summary: putHouseAccountStatus
      description: Change specific house account to either open or closed.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutHouseAccountStatusResponse'
      security:
        - api_key:
            - write:houseAccount
          OAuth2:
            - write:houseAccount
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PutHouseAccountStatusRequest'
  /getHousekeepingStatus:
    get:
      tags:
        - Housekeeping
      summary: getHousekeepingStatus
      description: >-
        Returns the current date's housekeeping information The housekeeping
        status is calculated basing on the set of fields roomOccupied |
        roomCondition | roomBlocked | vacantPickup | roomBlocked |
        refusedService The available statuses are: - Vacant and Dirty (VD):
        false | “dirty” | false | false | false | false - Occupied and Dirty
        (OD): true | “dirty” | false | false | false | false - Vacant and Clean
        (VC): false | “clean” | false | false | false | false - Occupied and
        Clean (OC): true | “clean” | false | false | false | false - Occupied
        and Clean Inspected (OCI): true | “inspected” | false | false | false |
        false - Vacant and Clean Inspected (VCI): false | “inspected” | false |
        false | false | false - Do Not Disturb (DND): if doNotDisturb is true -
        Refused Service (RS): if refusedService is true - Out of Order (OOO): if
        roomBlocked is true - Vacant and Pickup (VP): if vacantPickup is true
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHousekeepingStatusResponse'
      security:
        - api_key:
            - read:housekeeping
          OAuth2:
            - read:housekeeping
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Filter by room type ID. If more than one, send as comma-separated,
            i.e. 37,345,89
          name: roomTypeIDs
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Use this parameter to filter by housekeeper. If you need to specify
            multiple housekeepers, send their IDs as a comma-separated list
            (e.g., 37, 345, 89). To retrieve unassigned housekeepers, use the
            value 0.
          name: housekeeperIDs
          schema:
            type: string
          required: false
          in: query
        - description: Condition of room
          name: roomCondition
          schema:
            type: string
            enum:
              - clean
              - dirty
          required: false
          in: query
        - description: Flag for current room occupation status
          name: roomOccupied
          schema:
            type: boolean
          required: false
          in: query
        - description: Results page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Results page size. Max = 5000
          name: pageSize
          schema:
            type: integer
            default: 100
          required: false
          in: query
  /postHousekeepingStatus:
    post:
      tags:
        - Housekeeping
      summary: postHousekeepingStatus
      description: >-
        Switches the current date's housekeeping status for a specific room ID
        to either clean or dirty The housekeeping status is calculated basing on
        the set of fields roomOccupied | roomCondition | roomBlocked |
        vacantPickup | roomBlocked | refusedService The available statuses are:
        - Vacant and Dirty (VD): false | “dirty” | false | false | false | false
        - Occupied and Dirty (OD): true | “dirty” | false | false | false |
        false - Vacant and Clean (VC): false | “clean” | false | false | false |
        false - Occupied and Clean (OC): true | “clean” | false | false | false
        | false - Occupied and Clean Inspected (OCI): true | “inspected” | false
        | false | false | false - Vacant and Clean Inspected (VCI): false |
        “inspected” | false | false | false | false - Do Not Disturb (DND): if
        doNotDisturb is true - Refused Service (RS): if refusedService is true -
        Out of Order (OOO): if roomBlocked is true - Vacant and Pickup (VP): if
        vacantPickup is true
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHousekeepingStatusResponse'
      security:
        - api_key:
            - write:housekeeping
          OAuth2:
            - write:housekeeping
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostHousekeepingStatusRequest'
  /postHousekeeper:
    post:
      tags:
        - Housekeeping
      summary: postHousekeeper
      description: Add New Housekeeper
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHousekeeperResponse'
      security:
        - api_key:
            - write:housekeeping
          OAuth2:
            - write:housekeeping
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostHousekeeperRequest'
  /putHousekeeper:
    put:
      tags:
        - Housekeeping
      summary: putHousekeeper
      description: Edit Housekeeper Details
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutHousekeeperResponse'
      security:
        - api_key:
            - write:housekeeping
          OAuth2:
            - write:housekeeping
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PutHousekeeperRequest'
  /getHousekeepers:
    get:
      tags:
        - Housekeeping
      summary: getHousekeepers
      description: 'Returns a list of housekeepers ### Group account support'
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHousekeepersResponse'
      security:
        - api_key:
            - read:housekeeping
          OAuth2:
            - read:housekeeping
      parameters:
        - description: >-
            ID for the properties to be queried (comma-separated, i.e.
            37,345,89). It can be omitted if the API key is single-property, or
            to get results from all properties on an association.
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Results page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Results page size. Max = 1000
          name: pageSize
          schema:
            type: integer
            default: 100
          required: false
          in: query
  /postHousekeepingAssignment:
    post:
      tags:
        - Housekeeping
      summary: postHousekeepingAssignment
      description: Assign rooms (single or multiple) to an existing housekeeper
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHousekeepingAssignmentResponse'
      security:
        - api_key:
            - write:housekeeping
          OAuth2:
            - write:housekeeping
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostHousekeepingAssignmentRequest'
  /getAppState:
    get:
      tags:
        - Integration
      summary: getAppState
      description: >-
        Get the current app integration state for a property.<br /> This call is
        only available for third-party integration partners, and not for
        property client IDs. Read the [Connecting/Disconnecting Apps
        guide](https://integrations.cloudbeds.com/hc/en-us/articles/360007613213-Connecting-Disconnecting-Apps)
        to further understand the use cases.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAppStateResponse'
      parameters:
        - description: Property identifier to be queried
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /postAppState:
    post:
      tags:
        - Integration
      summary: postAppState
      description: >-
        Update app integration state for a property ID. <br /> This call is only
        available for third-party integration partners, and not for property
        client IDs. <br /> If an app is set to 'disabled', it will remove all
        active sessions Read the [Connecting/Disconnecting Apps
        guide](https://integrations.cloudbeds.com/hc/en-us/articles/360007613213-Connecting-Disconnecting-Apps)
        to further understand the use cases.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAppStateResponse'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostAppStateRequest'
  /postGovernmentReceipt:
    post:
      tags:
        - Integration
      summary: postGovernmentReceipt
      description: Add a Government Receipt to a Reservation or House Account
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostGovernmentReceiptResponse'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostGovernmentReceiptRequest'
  /getAppSettings:
    get:
      tags:
        - Integration
      summary: getAppSettings
      description: Get the current app settings for a property.<br />
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAppSettingsResponse'
      parameters:
        - description: Property identifier to be queried
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /postAppError:
    post:
      tags:
        - Integration
      summary: postAppError
      description: >-
        Submit the error received by the hybrid integration from the partner to
        the MFD
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAppErrorResponse'
      security:
        - api_key:
            - write:appError
          OAuth2:
            - write:appError
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostAppErrorRequest'
  /postWebhook:
    post:
      tags:
        - Integration
      summary: postWebhook
      description: >-
        Subscribe a webhook for a specified event. Read the [Webhooks
        guide](https://integrations.cloudbeds.com/hc/en-us/articles/360007612553-Webhooks)
        to see available objects, actions, payload info and more.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostWebhookResponse'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostWebhookRequest'
  /deleteWebhook:
    delete:
      tags:
        - Integration
      summary: deleteWebhook
      description: >-
        Remove subscription for webhook. Read the [Webhooks
        guide](https://integrations.cloudbeds.com/hc/en-us/articles/360007612553-Webhooks)
        to see available objects, actions, payload info and more. ### Group
        account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteWebhookResponse'
      parameters:
        - description: List of property IDs, comma-separated, i.e. 37,345,89
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
        - description: Subscription ID
          name: subscriptionID
          schema:
            type: string
          required: true
          in: query
  /getWebhooks:
    get:
      tags:
        - Integration
      summary: getWebhooks
      description: List webhooks for which the API client is subscribed to.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWebhooksResponse'
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /getInvoice:
    get:
      tags:
        - Invoices
      summary: getInvoice
      description: >-
        Returns invoice data. This call is only available for third-party
        integration partners, and not for property client IDs.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInvoiceResponse'
      security:
        - api_key:
            - read:reservation
          OAuth2:
            - read:reservation
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Invoice ID
          name: invoiceID
          schema:
            type: string
          required: true
          in: query
  /patchInvoice:
    post:
      tags:
        - Invoices
      summary: patchInvoice
      description: >-
        Update invoice state. This call is only available for third-party
        integration partners, and not for property client IDs.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPatchInvoiceResponse'
      security:
        - api_key:
            - write:reservation
          OAuth2:
            - write:reservation
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostPatchInvoiceRequest'
  /getItem:
    get:
      tags:
        - Item
      summary: getItem
      description: >-
        Gets the details for the one itemID<br /> <sup>1</sup> only if
        data.stockInventory = true<br> <sup>2</sup> Taxes, fees and totals will
        show up only if an item has assigned tax or fee.<br>
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetItemResponse'
      security:
        - api_key:
            - read:item
          OAuth2:
            - read:item
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Item identifier
          name: itemID
          schema:
            type: string
          required: true
          in: query
  /putItemToInventory:
    put:
      tags:
        - Item
      summary: putItemToInventory
      description: >-
        Updates an item with information provided<br /> ¹ only if
        item.stockInventory = true<br />
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutItemToInventoryResponse'
      security:
        - api_key:
            - write:item
          OAuth2:
            - write:item
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PutItemToInventoryRequest'
  /getItems:
    get:
      tags:
        - Item
      summary: getItems
      description: >-
        Gets all the items and their prices the hotel has created in
        myfrontdesk<br> <sup>1</sup> only if data.stockInventory = true<br>
        <sup>2</sup> Taxes, fees and totals will show up only if an item has
        assigned tax or fee.<br>
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetItemsResponse'
      security:
        - api_key:
            - read:item
          OAuth2:
            - read:item
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Category identifier
          name: itemCategoryID
          schema:
            type: string
          required: false
          in: query
  /getItemCategories:
    get:
      tags:
        - Item
      summary: getItemCategories
      description: Gets the item category list
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetItemCategoriesResponse'
      security:
        - api_key:
            - read:item
          OAuth2:
            - read:item
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /postItemCategory:
    post:
      tags:
        - Item
      summary: postItemCategory
      description: Adds new items category
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostItemCategoryResponse'
      security:
        - api_key:
            - write:item
          OAuth2:
            - write:item
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostItemCategoryRequest'
  /postItemsToInventory:
    post:
      tags:
        - Item
      summary: postItemsToInventory
      description: Adds new items batch<br /> ¹ only if item.stockInventory = true<br />
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostItemsToInventoryResponse'
      security:
        - api_key:
            - write:item
          OAuth2:
            - write:item
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostItemsToInventoryRequest'
  /postItem:
    post:
      tags:
        - Item
      summary: postItem
      description: Adds an item either to a reservation or to a house account.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostItemResponse'
      security:
        - api_key:
            - write:item
          OAuth2:
            - write:item
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostItemRequest'
  /postCustomItem:
    post:
      tags:
        - Item
      summary: postCustomItem
      description: >-
        Adds single, or multiple, custom items and their associated payments to
        a Reservation or House Account as a single transaction.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCustomItemResponse'
      security:
        - api_key:
            - write:item
          OAuth2:
            - write:item
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostCustomItemRequest'
  /appendCustomItem:
    post:
      tags:
        - Item
      summary: appendCustomItem
      description: >-
        Append single, or multiple, custom items and their associated payments
        to a existing one in a Reservation.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAppendCustomItemResponse'
      security:
        - api_key:
            - write:item
          OAuth2:
            - write:item
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostAppendCustomItemRequest'
  /postVoidItem:
    post:
      tags:
        - Item
      summary: postVoidItem
      description: >-
        Voids the itemID transaction on the specified Reservation ID or House
        Account ID. If payments were sent in calls
        [postItem](https://api.cloudbeds.com/api/v1.1/docs/#api-Item-postItem)
        or
        [postCustomItem](https://api.cloudbeds.com/api/v1.1/docs/#api-Item-postCustomItem),
        they will be deleted too.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostVoidItemResponse'
      security:
        - api_key:
            - write:item
          OAuth2:
            - write:item
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostVoidItemRequest'
  /getPackages:
    get:
      tags:
        - Package
      summary: getPackages
      description: >-
        This efficient method allows you to retrieve the collection of packages
        associated with a property. Packages here define a group of features
        that a property has the ability to utilize or access. By invoking this
        API method, developers will get a comprehensive view of the feature sets
        that are available and active for a specific property. The getPackages
        method boasts a seamless execution that offers essential information,
        vital in enhancing property management, understanding available
        functionalities and ultimately, optimizing user experience.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPackagesResponse'
      security:
        - api_key:
            - read:package
          OAuth2:
            - read:package
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /getPackageNames:
    get:
      tags:
        - Package
      summary: getPackageNames
      description: Return a list of billing package names for a property
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPackagesResponse'
      security:
        - api_key:
            - read:package
          OAuth2:
            - read:package
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /getPayments:
    get:
      tags:
        - Payment
      summary: getPayments
      description: >-
        Get a list of transactions for a reservation/house account/guest, with
        its respective payment allocation<br /> ¹ one of these fields are
        required ² only if data.isAllocated = true (and includePaymentAllocation
        = true)
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPaymentsResponse'
      security:
        - api_key:
            - read:payment
          OAuth2:
            - read:payment
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: ¹ ID for the reservation to be queried.
          name: reservationID
          schema:
            type: string
          required: true
          in: query
        - description: ¹ ID for the house account to be queried.
          name: houseAccountID
          schema:
            type: string
          required: true
          in: query
        - description: ¹ ID for the guest to be queried.
          name: guestID
          schema:
            type: string
          required: true
          in: query
        - description: >-
            Datetime (lower limit) to be queried. If not sent, and reservationID
            informed, will use reservation date. In other cases, current date -7
            days is used.
          name: createdFrom
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Datetime (upper limit) to be queried. If not sent, and reservationID
            informed, will use check-out date. In other cases, current date is
            used.
          name: createdTo
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: Adds payment allocation to response, when available.
          name: includePaymentAllocation
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: Page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Page size
          name: pageSize
          schema:
            type: integer
            default: 100
          required: false
          in: query
  /getTransactions:
    get:
      tags:
        - Payment
      summary: getTransactions
      description: >-
        Get a list of transactions for a property, or list of properties, for
        the date range specified. If no date range or reservation is specified,
        it will return the transactions for the last 7 days, unless stated
        otherwise.<br /> Please note that some reservations modification may not
        be reflected in this timestamp. ### Group account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionsResponse'
      security:
        - api_key:
            - read:payment
          OAuth2:
            - read:payment
      parameters:
        - description: >-
            ID for the properties to be queried (comma-separated, i.e.
            37,345,89).<br /> It can be omitted if the API key is
            single-property, or to get results from all properties on an
            association.
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: If the response should include debit transactions
          name: includeDebit
          schema:
            type: boolean
            default: true
          required: false
          in: query
        - description: If the response should include credit transactions
          name: includeCredit
          schema:
            type: boolean
            default: true
          required: false
          in: query
        - description: If the response should include deleted transactions
          name: includeDeleted
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: >-
            If the response should include children transactions (requires the
            parameter transactionIDs)
          name: includeChildren
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: >-
            Reservation Unique Identifier, used to filter transactions result If
            reservationID is informed, and dates are not, all transactions with
            the reservationID will be returned.
          name: reservationID
          schema:
            type: string
          required: false
          in: query
        - description: Sub Reservation Identifier, used to filter transactions result
          name: subReservationID
          schema:
            type: string
          required: false
          in: query
        - description: Room ID, used to filter transactions result
          name: roomID
          schema:
            type: string
          required: false
          in: query
        - description: Guest ID, used to filter transactions result
          name: guestID
          schema:
            type: string
          required: false
          in: query
        - description: House Account ID, used to filter transactions result
          name: houseAccountID
          schema:
            type: string
          required: false
          in: query
        - description: >-
            List of transaction IDs to be returned, comma-separated, i.e.
            37,345,89.
          name: transactionIDs
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Inferior limit date, used to filter transactions result (posted
            transaction date)
          name: resultsFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Superior limit date, used to filter transactions result (posted
            transaction date)
          name: resultsTo
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: Inferior limit date, used to filter transactions result
          name: modifiedFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: Superior limit date, used to filter transactions result
          name: modifiedTo
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Inferior limit datetime, used to filter transactions result
            (creation date of the transaction). If informed, all other dates are
            ignored (except createdTo). If createdFrom is informed, but
            createdTo is not, the call will return all results since this
            datetime. Necessary only if createdTo is sent. If time portion not
            given, assumes 00:00:00.
          name: createdFrom
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Superior limit datetime, used to filter transactions result
            (creation date of the transaction). If informed (together with
            createdFrom), all other dates are ignored. If time portion not
            given, assumes 23:59:59.
          name: createdTo
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: Transaction filter is used to filter transactions result
          name: transactionFilter
          schema:
            type: string
            default: simple_transactions,adjustments,adjustments_voids,voids,refunds
          required: false
          in: query
        - description: Results page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Results page size. Max = 100
          name: pageSize
          schema:
            type: integer
            default: 100
          required: false
          in: query
        - description: Sort response results by field
          name: sortBy
          schema:
            type: string
            enum:
              - transactionDateTime
              - transactionModifiedDateTime
              - guestCheckIn
              - guestCheckOut
          required: false
          in: query
        - description: >-
            Order response in DESCending or ASCending order, used together with
            sortBy
          name: orderBy
          schema:
            type: string
            enum:
              - desc
              - asc
            default: desc
          required: false
          in: query
  /postPayment:
    post:
      tags:
        - Payment
      summary: postPayment
      description: >-
        Add a payment to a specified reservation or house account. If both
        Reservation ID and HouseAccountID are informed, only the former is taken
        in consideration.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPaymentResponse'
      security:
        - api_key:
            - write:payment
          OAuth2:
            - write:payment
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostPaymentRequest'
  /postCustomPaymentMethod:
    post:
      tags:
        - Payment
      summary: postCustomPaymentMethod
      description: >-
        Add a Custom Payment Method to a property. This call does not allow to
        add Payment Methods: credit cards, bank transfer or Pay Pal.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCustomPaymentMethodResponse'
      security:
        - api_key:
            - write:payment
          OAuth2:
            - write:payment
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostCustomPaymentMethodRequest'
  /getPaymentMethods:
    get:
      tags:
        - Payment
      summary: getPaymentMethods
      description: Get a list of active methods for a property, or list of properties
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPaymentMethodsResponse'
      security:
        - api_key:
            - read:payment
          OAuth2:
            - read:payment
      parameters:
        - description: ID for the property to be queried
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Language that payment methods name should return (if available).
          name: lang
          schema:
            type: string
            enum:
              - en
              - pt-br
              - es
            default: en
          required: false
          in: query
  /getPaymentsCapabilities:
    get:
      tags:
        - Payment
      summary: getPaymentsCapabilities
      description: Lists the payment capabilities of a given property
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPaymentsCapabilitiesResponse'
      security:
        - api_key:
            - read:payment
          OAuth2:
            - read:payment
      parameters:
        - description: ID for the property to be queried
          name: propertyID
          schema:
            type: string
          required: false
          in: query
  /postVoidPayment:
    post:
      tags:
        - Payment
      summary: postVoidPayment
      description: >-
        Voids a payment (using paymentID) to a specified reservation or house
        account.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostVoidPaymentResponse'
      security:
        - api_key:
            - write:payment
          OAuth2:
            - write:payment
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostVoidPaymentRequest'
  /postCharge:
    post:
      tags:
        - Payment
      summary: postCharge
      description: >-
        Use a payment method to process a payment on a reservation, group
        profile, accounts receivable ledger, or house account.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostChargeResponse'
      security:
        - api_key:
            - write:payment
          OAuth2:
            - write:payment
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostChargeRequest'
  /postCreditCard:
    post:
      tags:
        - Payment
      summary: postCreditCard
      description: >-
        Returns the rate of the room type selected, based on the provided
        parameters
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostCardResponse'
      security:
        - api_key:
            - read:rate
          OAuth2:
            - read:rate
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostCardRequest'
  /getRate:
    get:
      tags:
        - Rate
      summary: getRate
      description: >-
        Returns the rate of the room type selected, based on the provided
        parameters
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRateResponse'
      security:
        - api_key:
            - read:rate
          OAuth2:
            - read:rate
      parameters:
        - description: Room Type ID
          name: roomTypeID
          schema:
            type: string
          required: true
          in: query
        - description: Check-in date
          name: startDate
          schema:
            type: string
            format: date
          required: true
          in: query
        - description: Check-out date
          name: endDate
          schema:
            type: string
            format: date
          required: true
          in: query
        - description: Number of adults
          name: adults
          schema:
            type: integer
          required: false
          in: query
        - description: Number of children
          name: children
          schema:
            type: integer
          required: false
          in: query
        - description: If the rates need detailed information
          name: detailedRates
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: >-
            Return information for one or more specific rate plans by promo
            code. This parameter is DEPRECATED and not recommended for usage.
            Use method getRatePlans instead
          name: promoCode
          schema:
            type: boolean
            default: false
          required: false
          in: query
  /getRateJobs:
    get:
      tags:
        - Rate
      summary: getRateJobs
      description: >-
        Returns a list of Rate Jobs. Rate jobs are only returned within 7 days
        of creation, after 7 days they will not be returned in the response.
        Requests which do not provide a jobReferenceID will be filtered by the
        client ID of the request's token.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRateJobsResponse'
      security:
        - api_key:
            - read:rate
          OAuth2:
            - read:rate
      parameters:
        - description: Filter Rate Jobs by jobReferenceID
          name: jobReferenceID
          schema:
            type: string
          required: false
          in: query
        - description: Filter Rate Jobs based on status
          name: status
          schema:
            type: string
          required: false
          in: query
  /getRatePlans:
    get:
      tags:
        - Rate
      summary: getRatePlans
      description: >-
        Returns the rates of the room type or promo code selected, based on the
        provided parameters. If no parameters are provided, then the method will
        return all publicly available rate plans. ### Group account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRatePlansResponse'
      security:
        - api_key:
            - read:rate
          OAuth2:
            - read:rate
      parameters:
        - description: List of property IDs, comma-separated, i.e. 37,345,89
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
        - description: List of Rate IDs, comma-separated, i.e. 37,345,89
          name: rateIDs
          schema:
            type: string
          required: false
          in: query
        - description: List of Room Type IDs, comma-separated, i.e. 37,345,89
          name: roomTypeID
          schema:
            type: string
          required: false
          in: query
        - description: List of Promo Codes, comma-separated, i.e. 37,345,89
          name: promoCode
          schema:
            type: string
          required: false
          in: query
        - description: Include rate plans with promo code
          name: includePromoCode
          schema:
            type: boolean
            default: true
          required: false
          in: query
        - description: Check-in date
          name: startDate
          schema:
            type: string
            format: date
          required: true
          in: query
        - description: Check-out date
          name: endDate
          schema:
            type: string
            format: date
          required: true
          in: query
        - description: Number of adults
          name: adults
          schema:
            type: integer
          required: false
          in: query
        - description: Number of children
          name: children
          schema:
            type: integer
          required: false
          in: query
        - description: If the rates need detailed information
          name: detailedRates
          schema:
            type: boolean
            default: false
          required: false
          in: query
  /patchRate:
    post:
      tags:
        - Rate
      summary: patchRate
      description: >-
        Update the rate of the room based on rateID selected, based on the
        provided parameters. You can make multiple rate updates in a single API
        call. Providing a startDate and/or endDate will update rates only within
        the interval provided. Only non derived rates can be updated, requests
        to update a derived rate will return an error. This endpoint performs
        updates asynchronously,  rate updates are added to a queue and the
        endpoint returns a job reference ID. This job reference ID can be used
        to track job status notifications or to look up details of the update
        once it is completed. The API is limited to 30 interval per update,
        sending more than 30 will return an error.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPatchRateResponse'
      security:
        - api_key:
            - write:rate
          OAuth2:
            - write:rate
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostPatchRateRequest'
  /putRate:
    post:
      tags:
        - Rate
      summary: putRate
      description: >-
        Update the rate of the room based on rateID selected, based on the
        provided parameters. You can make multiple rate updates in a single API
        call. Providing a startDate and/or endDate will update rates only within
        the interval provided. Only non derived rates can be updated, requests
        to update a derived rate will return an error. This endpoint performs
        updates asynchronously,  rate updates are added to a queue and the
        endpoint returns a job reference ID. This job reference ID can be used
        to track job status notifications or to look up details of the update
        once it is completed. The API is limited to 30 interval per update,
        sending more than 30 will return an error.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPutRateResponse'
      security:
        - api_key:
            - write:rate
          OAuth2:
            - write:rate
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostPutRateRequest'
  /getReservation:
    get:
      tags:
        - Reservation
      summary: getReservation
      description: >-
        Returns information on a booking specified by the reservationID
        parameter
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReservationResponse'
      security:
        - api_key:
            - read:reservation
          OAuth2:
            - read:reservation
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Reservation Unique Identifier. Obtained from one of the
            "Reservations" group methods
          name: reservationID
          schema:
            type: string
          required: true
          in: query
  /postReservation:
    post:
      tags:
        - Reservation
      summary: postReservation
      description: Adds a reservation to the selected property
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostReservationResponse'
      security:
        - api_key:
            - write:reservation
          OAuth2:
            - write:reservation
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostReservationRequest'
  /getReservations:
    get:
      tags:
        - Reservation
      summary: getReservations
      description: >-
        Returns a list of reservations that matched the filters criteria.<br />
        Please note that some reservations modification may not be reflected in
        this timestamp. ### Group account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReservationsResponse'
      security:
        - api_key:
            - read:reservation
          OAuth2:
            - read:reservation
      parameters:
        - description: >-
            ID for the properties to be queried (comma-separated, i.e.
            37,345,89).<br /> It can be omitted if the API key is
            single-property, or to get results from all properties on an
            association.
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Filter by current reservation status
          name: status
          schema:
            type: string
            enum:
              - not_confirmed
              - confirmed
              - canceled
              - checked_in
              - checked_out
              - no_show
          required: false
          in: query
        - description: >-
            Inferior limit datetime, used to filter reservations, based on
            booking date
          name: resultsFrom
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Superior limit datetime, used to filter reservations, based on
            booking date
          name: resultsTo
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Inferior limit datetime, used to filter reservations, based on
            booking modification date
          name: modifiedFrom
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Superior limit datetime, used to filter reservations, based on
            booking modification date
          name: modifiedTo
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Filters reservations result to return only reservations with
            check-in date range starting on this date
          name: checkInFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters reservations result to return only reservations with
            check-in date range ending on this date
          name: checkInTo
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters reservations result to return only reservations with
            check-out date range starting on this date
          name: checkOutFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters reservations result to return only reservations with
            check-out date range ending on this date
          name: checkOutTo
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Filters reservation with the supplied room ID. CheckIn/checkOut
            dates OR status are required. If dates are provided and span more
            than one day, more than one reservation can be returned. If roomID
            supplied, roomName is ignored.
          name: roomID
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Filters reservation with the supplied room name (customizable by
            each property). CheckIn/checkOut dates OR status are required. If
            dates are provided and span more than one day, more than one
            reservation can be returned.
          name: roomName
          schema:
            type: string
          required: false
          in: query
        - description: If guests details should be included or not
          name: includeGuestsDetails
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: If reservation custom fields should be included or not
          name: includeCustomFields
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: >-
            When specified, the response will include an additional rooms field
            that combines both unassigned and assigned rooms.
          name: includeAllRooms
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: Filters reservation with the supplied source ID.
          name: sourceId
          schema:
            type: string
          required: false
          in: query
        - description: Filters reservation with the supplied reservation source ID.
          name: sourceReservationId
          schema:
            type: string
          required: false
          in: query
        - description: Filters reservation with the supplied rate plan ID.
          name: ratePlanId
          schema:
            type: string
          required: false
          in: query
        - description: Filters reservation with the supplied primary guest first name.
          name: firstName
          schema:
            type: string
          required: false
          in: query
        - description: Filters reservation with the supplied primary guest last name.
          name: lastName
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Filters reservation with the supplied Guest ID (Including additional
            guests).
          name: guestID
          schema:
            type: string
          required: false
          in: query
        - description: Sort response results by most recent action
          name: sortByRecent
          schema:
            type: boolean
          required: false
          in: query
        - description: Results page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Results page size. Max = 100
          name: pageSize
          schema:
            type: integer
            default: 100
          required: false
          in: query
  /getReservationsWithRateDetails:
    get:
      tags:
        - Reservation
      summary: getReservationsWithRateDetails
      description: >-
        Returns a list of reservations with added information regarding booked
        rates and sources. The results are limited to 2 years in the past unless
        resutsFrom parameter is set to another date.<br /> Please note that some
        reservations modification may not be reflected in this timestamp.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReservationsWithRateDetailsResponse'
      security:
        - api_key:
            - read:reservation
          OAuth2:
            - read:reservation
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Inferior limit datetime, used to filter reservations, based on
            booking date. If it is not set, will return the reservations
            starting 2 years ago
          name: resultsFrom
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Superior limit datetime, used to filter reservations, based on
            booking date. If it is not set, will return the reservations up to
            current date
          name: resultsTo
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Superior limit datetime, used to filter reservations, based on
            modification date.
          name: modifiedFrom
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: >-
            Superior limit datetime, used to filter reservations, based on
            modification date.
          name: modifiedTo
          schema:
            type: string
            format: date-time
          required: false
          in: query
        - description: Sort response results by most recent action
          name: sortByRecent
          schema:
            type: boolean
          required: false
          in: query
        - description: >-
            Reservation identifiers, comma-separated, i.e. 37,345,89, used to
            return transactions limited to the selected reservations.
          name: reservationID
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Superior limit datetime, used to filter reservations, based on
            reservation check-out date.
          name: reservationCheckOutFrom
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Superior limit datetime, used to filter reservations, based on
            reservation check-out date.
          name: reservationCheckOutTo
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: Include deleted reservations
          name: includeDeleted
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: List of statuses (separated by comma) to be excluded from search
          name: excludeStatuses
          schema:
            type: string
          required: false
          in: query
        - description: Results page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Results page size. Max = 100
          name: pageSize
          schema:
            type: integer
            default: 100
          required: false
          in: query
  /getReservationAssignments:
    get:
      tags:
        - Reservation
      summary: getReservationAssignments
      description: Returns a list of rooms/reservations assigned for a selected date.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReservationAssignmentsResponse'
      security:
        - api_key:
            - read:reservation
          OAuth2:
            - read:reservation
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Date selected to get the assignments. If no date is passed, it will
            return the results for the current day.
          name: date
          schema:
            type: string
            format: date
          required: false
          in: query
  /getReservationInvoiceInformation:
    get:
      tags:
        - Reservation
      summary: getReservationInvoiceInformation
      description: >-
        Returns information that can be used to create an invoice for the
        selected reservation
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReservationInvoiceInformationResponse'
      security:
        - api_key:
            - read:reservation
          OAuth2:
            - read:reservation
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Reservation Unique Identifier
          name: reservationID
          schema:
            type: string
          required: true
          in: query
  /postReservationNote:
    post:
      tags:
        - Reservation
      summary: postReservationNote
      description: Adds a reservation note
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostReservationNoteResponse'
      security:
        - api_key:
            - write:reservation
          OAuth2:
            - write:reservation
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostReservationNoteRequest'
  /getReservationNotes:
    get:
      tags:
        - Reservation
      summary: getReservationNotes
      description: Retrieves reservation notes based on parameters
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReservationNotesResponse'
      security:
        - api_key:
            - read:reservation
          OAuth2:
            - read:reservation
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Reservation Unique Identifier
          name: reservationID
          schema:
            type: string
          required: true
          in: query
  /putReservationNote:
    put:
      tags:
        - Reservation
      summary: putReservationNote
      description: Updates an existing reservation note.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutReservationNoteResponse'
      security:
        - api_key:
            - write:reservation
          OAuth2:
            - write:reservation
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PutReservationNoteRequest'
  /deleteReservationNote:
    delete:
      tags:
        - Reservation
      summary: deleteReservationNote
      description: Archives an existing reservation note.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteReservationNoteResponse'
      security:
        - api_key:
            - write:reservation
          OAuth2:
            - write:reservation
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Reservation Unique Identifier
          name: reservationID
          schema:
            type: string
          required: true
          in: query
        - description: Reservation Note ID
          name: reservationNoteID
          schema:
            type: string
          required: true
          in: query
  /postReservationDocument:
    post:
      tags:
        - Reservation
      summary: postReservationDocument
      description: Attaches a document to a reservation
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostReservationDocumentResponse'
      security:
        - api_key:
            - write:reservation
          OAuth2:
            - write:reservation
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostReservationDocumentRequest'
  /putReservation:
    put:
      tags:
        - Reservation
      summary: putReservation
      description: >-
        Updates a reservation, such as custom fields, estimated arrival time,
        room configuration and reservation status.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutReservationResponse'
      security:
        - api_key:
            - write:reservation
          OAuth2:
            - write:reservation
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PutReservationRequest'
  /getSources:
    get:
      tags:
        - Reservation
      summary: getSources
      description: Gets available property sources
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSourcesResponse'
      security:
        - api_key:
            - read:reservation
          OAuth2:
            - read:reservation
      parameters:
        - description: >-
            ID for the properties to be queried (comma-separated, i.e.
            37,345,89).<br />
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
  /getRoomsFeesAndTaxes:
    get:
      tags:
        - Room
      summary: getRoomsFeesAndTaxes
      description: >-
        Get applicable fees and tax to a booking. This is meant to be used on
        checkout to display to the guest.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRoomsFeesAndTaxesResponse'
      security:
        - api_key:
            - read:room
          OAuth2:
            - read:room
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Check-in date
          name: startDate
          schema:
            type: string
            format: date
          required: true
          in: query
        - description: Check-out date
          name: endDate
          schema:
            type: string
            format: date
          required: true
          in: query
        - description: Total value of the rooms to be booked, with included taxes
          name: roomsTotal
          schema:
            type: number
          required: true
          in: query
        - description: Number of rooms to be booked
          name: roomsCount
          schema:
            type: integer
          required: true
          in: query
  /postRoomAssign:
    post:
      tags:
        - Room
      summary: postRoomAssign
      description: Assign/Reassign a room on a guest reservation
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRoomAssignResponse'
      security:
        - api_key:
            - write:room
          OAuth2:
            - write:room
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostRoomAssignRequest'
  /postRoomCheckIn:
    post:
      tags:
        - Room
      summary: postRoomCheckIn
      description: Check-in a room already assigned for a guest
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRoomCheckInResponse'
      security:
        - api_key:
            - write:room
          OAuth2:
            - write:room
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostRoomCheckInRequest'
  /postRoomCheckOut:
    post:
      tags:
        - Room
      summary: postRoomCheckOut
      description: >-
        Check-out a room already assigned for a guest. If all rooms are checked
        out, the reservation status will update accordingly to "Checked Out" as
        well.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRoomCheckOutResponse'
      security:
        - api_key:
            - write:room
          OAuth2:
            - write:room
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostRoomCheckOutRequest'
  /getReservationRoomDetails:
    get:
      tags:
        - Room
      summary: getReservationRoomDetails
      description: >-
        Returns information about particular room in reservation by its
        subReservationID
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReservationRoomDetailsResponse'
      security:
        - api_key:
            - read:room
          OAuth2:
            - read:room
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Sub Reservation ID of the specific assigned room
          name: subReservationID
          schema:
            type: string
          required: true
          in: query
  /postRoomBlock:
    post:
      tags:
        - Room
      summary: postRoomBlock
      description: Adds a room block to the selected property.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRoomBlockResponse'
      security:
        - api_key:
            - write:roomblock
          OAuth2:
            - write:roomblock
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PostRoomBlockRequest'
  /getRoomBlocks:
    get:
      tags:
        - Room
      summary: getRoomBlocks
      description: Returns a list of all room blocks considering the informed parameters.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRoomBlocksResponse'
      security:
        - api_key:
            - read:roomblock
          OAuth2:
            - read:roomblock
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Room block ID
          name: roomBlockID
          schema:
            type: string
          required: false
          in: query
        - description: Room type ID
          name: roomTypeID
          schema:
            type: string
          required: false
          in: query
        - description: Room ID
          name: roomID
          schema:
            type: string
          required: false
          in: query
        - description: >-
            date"] Start date - will filter for any room blocks that include
            this date (Date range must be one month or less)
          name: startDate
          schema:
            type: string
            format: date
            default: Todays
          required: false
          in: query
        - description: >-
            date"] End date - will filter for any room blocks that include this
            date (Date range must be one month or less)
          name: endDate
          schema:
            type: string
            format: date
            default: Todays
          required: false
          in: query
        - description: Page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Page size
          name: pageSize
          schema:
            type: integer
            default: 20
          required: false
          in: query
  /putRoomBlock:
    put:
      tags:
        - Room
      summary: putRoomBlock
      description: Updates a room block.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutRoomBlockResponse'
      security:
        - api_key:
            - write:roomblock
          OAuth2:
            - write:roomblock
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PutRoomBlockRequest'
  /deleteRoomBlock:
    delete:
      tags:
        - Room
      summary: deleteRoomBlock
      description: Deletes a room block
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteRoomBlockResponse'
      security:
        - api_key:
            - delete:roomblock
          OAuth2:
            - delete:roomblock
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: Room block ID
          name: roomBlockID
          schema:
            type: string
          required: true
          in: query
  /getRoomTypes:
    get:
      tags:
        - Room
      summary: getRoomTypes
      description: >-
        Returns a list of room types filtered by the selected parameters ###
        Group account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRoomTypesResponse'
      security:
        - api_key:
            - read:room
          OAuth2:
            - read:room
      parameters:
        - description: Property ID list, comma-separated, i.e. 37,345,89
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
        - description: >-
            Room Type ID list, If more than one, send as comma-separated, i.e.
            37,345,89
          name: roomTypeIDs
          schema:
            type: string
          required: false
          in: query
        - description: Check-in date. Required for the rates to be returned.
          name: startDate
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: Check-out date. Required for the rates to be returned.
          name: endDate
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: Number of adults. Required for the rates to be returned.
          name: adults
          schema:
            type: integer
          required: false
          in: query
        - description: Number of children. Required for the rates to be returned.
          name: children
          schema:
            type: integer
          required: false
          in: query
        - description: If detailed rates are expected
          name: detailedRates
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: Room type name, used to filter
          name: roomTypeName
          schema:
            type: string
          required: false
          in: query
        - description: Hotel city, used to filter
          name: propertyCity
          schema:
            type: string
          required: false
          in: query
        - description: Hotel name, used to filter
          name: propertyName
          schema:
            type: string
          required: false
          in: query
        - description: Max number of guests, used to filter
          name: maxGuests
          schema:
            type: string
          required: false
          in: query
        - description: Page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Page size
          name: pageSize
          schema:
            type: integer
            default: 20
          required: false
          in: query
  /getAvailableRoomTypes:
    get:
      tags:
        - Room
      summary: getAvailableRoomTypes
      description: >-
        Returns a list of room types with availability considering the informed
        parameters ### Group account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAvailableRoomTypesResponse'
      security:
        - api_key:
            - read:room
          OAuth2:
            - read:room
      parameters:
        - description: Property ID list, comma-separated, i.e. 37,345,89
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
        - description: Check-In date.
          name: startDate
          schema:
            type: string
            format: date
          required: true
          in: query
        - description: Check-Out date.
          name: endDate
          schema:
            type: string
            format: date
          required: true
          in: query
        - description: Number of rooms.
          name: rooms
          schema:
            type: integer
            default: 1
          required: true
          in: query
        - description: Number of adults.
          name: adults
          schema:
            type: integer
            default: 1
          required: true
          in: query
        - description: Number of children.
          name: children
          schema:
            type: integer
          required: true
          in: query
        - description: Promotional code
          name: promoCode
          schema:
            type: string
          required: false
          in: query
        - description: If detailed rates are expected
          name: detailedRates
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: Sort parameter
          name: sort
          schema:
            type: string
            enum:
              - room_name
              - hotel_name
              - room_price
              - hotel_stars
          required: false
          in: query
        - description: ''
          name: order
          schema:
            type: string
            enum:
              - asc
              - desc
            default: asc
          required: false
          in: query
        - description: Minimum daily rate. Used to filter results
          name: minRate
          schema:
            type: number
          required: false
          in: query
        - description: Maximum daily rate. Used to filter results
          name: maxRate
          schema:
            type: number
          required: false
          in: query
        - description: Page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Page size
          name: pageSize
          schema:
            type: integer
            default: 20
          required: false
          in: query
  /getRooms:
    get:
      tags:
        - Room
      summary: getRooms
      description: >-
        Returns a list of all rooms considering the informed parameters. If
        Check-in/out dates are sent, only unassigned rooms are returned. ###
        Group account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRoomsResponse'
      security:
        - api_key:
            - read:room
          OAuth2:
            - read:room
      parameters:
        - description: Property ID list, comma-separated, i.e. 37,345,89
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
        - description: Room type ID, comma-separated, i.e. 37,345,89
          name: roomTypeID
          schema:
            type: string
          required: true
          in: query
        - description: Room Type (short-version)
          name: roomTypeNameShort
          schema:
            type: string
          required: true
          in: query
        - description: >-
            Initial stay date. If sent, only returns unassigned rooms in this
            period. If not sent, will return all rooms available in property.
            Necessary if endDate is sent.
          name: startDate
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: Final stay date. Necessary if startDate is sent.
          name: endDate
          schema:
            type: string
            format: date
          required: false
          in: query
        - description: >-
            Determines whether room relations info should be included in the
            response
          name: includeRoomRelations
          schema:
            type: integer
            default: 0
          required: false
          in: query
        - description: Page number
          name: pageNumber
          schema:
            type: integer
            default: 1
          required: false
          in: query
        - description: Page size
          name: pageSize
          schema:
            type: integer
            default: 20
          required: false
          in: query
  /getRoomsUnassigned:
    get:
      tags:
        - Room
      summary: getRoomsUnassigned
      description: >-
        Returns a list of unassigned rooms in the property. Call is alias of
        [getRooms](#api-Room-getRooms). Please check its documentation for
        parameters, response and example. ### Group account support
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRoomsUnassignedResponse'
      security:
        - api_key:
            - read:room
          OAuth2:
            - read:room
      parameters:
        - description: List of property IDs, comma-separated, i.e. 37,345,89
          name: propertyIDs
          schema:
            type: string
          required: false
          in: query
  /getTaxesAndFees:
    get:
      tags:
        - Taxes and Fees
      summary: getTaxesAndFees
      description: >-
        Returns the taxes and fees set for the property. Read the [Rate-Based
        tax (Dynamic Tax)
        guide](https://myfrontdesk.cloudbeds.com/hc/en-us/articles/360014103514-rate-based-tax-dynamic-tax)
        to understand its usage.
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTaxesAndFeesResponse'
      security:
        - api_key:
            - read:taxesAndFees
          OAuth2:
            - read:taxesAndFees
      parameters:
        - description: Property ID
          name: propertyID
          schema:
            type: string
          required: false
          in: query
        - description: If the response should include deleted taxes and fees
          name: includeDeleted
          schema:
            type: boolean
            default: false
          required: false
          in: query
        - description: If the response should include expired taxes and fees
          name: includeExpired
          schema:
            type: boolean
            default: false
          required: false
          in: query
  /getUsers:
    get:
      tags:
        - User
      summary: getUsers
      description: 'Returns information on the properties'' users ### Group account support'
      responses:
        '200':
          description: 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUsersResponse'
      security:
        - api_key:
            - read:user
          OAuth2:
            - read:user
      parameters:
        - description: Property numeric identifiers (comma-separated, i.e. 37,345,89)
          name: property_ids
          schema:
            type: string
          required: false
          in: query
