---
title: "Retrieve rates for specific hotel properties"
method: POST
path: "/hotels/rates"
tags: ["Service"]
---

# Retrieve rates for specific hotel properties

`POST /hotels/rates`

Retrieve hotel rates

## Headers

- `Accept-Language` string
- `concur-correlationid` string, required

## Request body

- RatesCriteria
  - `checkin` string, date, required — Check in date as entered by traveler
  - `checkout` string, date, required — Check out date as entered by traveler
  - `guestCountryCode` string — Two-character ISO code (ISO ALPHA-2) for country
  - `hotelPropertyRefs` HotelPropertyRef[], required — Reference Ids to hotel properties for which rate is requested
    - `chainCode` string — Chain code associated with hotel if any
    - `propertyCode` string, required — Provider's property code as given in search response
  - `numGuests` integer — No. of guests for accomodation
  - `rateCategories` RateCategory[] — Special rate categories requested if applicable
    - `otaCode` integer, required — Code based on OTA Rate Plan Type (RPT) list (https://www.opentraveldevelopersnetwork.com/code-list)
    - `value` string — Optional value for the given rate plan type code
  - `requestorInfo` RequestorInfo, required — Information about POS (Point Of Sale), traveler and user associated with this request
    - `bookingForSelf` boolean — Is logged in person booking for self or on behalf of someone else
    - `loginId` string — Login ID of traveler within Concur. Only sent when available.
    - `posRequestorId` string, required — An identifier of the entity making the request (e.g. ATA/IATA/ID number)
    - `travelerUuid` string, required — UUID that identifies the traveler within Concur
    - `gdsName` 'SABRE' | 'AMADEUS' | 'TRAVELPORT' — Name of the GDS (Global Distribution System) to be used for this booking (active or passive segment). Supported values: SABRE, AMADEUS, TRAVELPORT
    - `pcc` string — Pseudo City Code or Office ID (OID) for the GDS account to be used for this booking (active or passive segment).
    - `singlePNR` boolean — Indicates if the booking should be made in a single PNR (Passenger Name Record) for all travelers. If true, all travelers will be booked under the same PNR. If false, each traveler will have their own PNR.
  - `searchSessionToken` string, uuid — Session token to be generated and provided by server on initial "search" call that can be referenced back for future api calls on the same session.
  - `accessViaMobile` boolean — Indicates if the request is coming from mobile device
  - `customFields` CustomField[] — Custom fields supported by the vendor (e.g. CostCenter)
    - `name` string, required — Name of the custom field
    - `value` string, required — Value of the custom field

## Response `200`

Hotel rates for requested properties

- RatesResponse
  - `checkin` string, date, required
  - `checkout` string, date, required
  - `hotelRates` HotelRates[], required
    - `propertyCode` string, required
    - `rates` HotelRate[], required
      - `bedding` Bedding[]
        - `bedTypeCode` integer, required — Code based on OTA Bed Type (BED) list (https://www.opentraveldevelopersnetwork.com/code-list)
        - `quantity` integer, required — No. of beds
      - `mealsIncluded` integer[] — Code based on OTA Meal Plan Type (MPT) list (https://www.opentraveldevelopersnetwork.com/code-list)
      - `roomAmenities` RoomAmenity[]
        - `amenityCode` integer, required
        - `cost` Price
          - `amount` number, required
          - `currencyCode` string, required — ISO 4217 currency code
      - `roomDescription` string[]
      - `roomRate` RoomRate, required
        - `cancelPenalties` CancelPenalties
          - `description` string — Common description applicable to all the penalties
          - `penalties` CancelPenalty[], required — Cancel penalties associated with the rate
            - `amountPercent` AmountPercent
              - …
            - `cancelDeadline` string — Date string in the date-time notation as defined by RFC 3339 with or without timezone, section 5.6. If there is no timezone it is assumed to be local timezone of the hotel
            - `description` string
            - `refundableStatus` 'UNKNOWN' | 'FULLY_REFUNDABLE' | 'PARTIALLY_REFUNDABLE' | 'NON_REFUNDABLE', required
        - `guarantee` RoomRateGuarantee
          - `acceptedPayments` PaymentCardType[]
          - `amountPercent` AmountPercent
            - `amount` Price
              - …
            - `applyAs` 'FIRST_NIGHT_DEPOSIT' | 'LAST_NIGHT_DEPOST' | 'FIRST_AND_LAST_NIGHT_DEPOSIT' | 'FIRST_NIGHT_PAYMENT' | 'LAST_NIGHT_PAYMENT' | 'FIRST_AND_LAST_NIGHT_PAYMENT'
            - `basisType` 'FULL_STAY' | 'NIGHTS' | 'FIRST_LAST'
            - `feesInclusive` boolean — If true, all fees are included in the returned rate.
            - `numberOfNights` integer — The number of nights that are to be spent in the property.
            - `percent` number — The percentage used to calculate the amount of the cancel fee.
            - `taxInclusive` boolean — If true, all taxes are included in the returned rate.
          - `cvvRequired` boolean
          - `guaranteeType` 'DEPOSIT_REQUIRED' | 'GUARANTEE_REQUIRED' | 'NONE', required
        - `nightlyPrices` NightlyPrice[]
          - `basePrice` number, required
          - `currencyCode` string, required — ISO 4217 currency code
          - `endDate` string, date, required
          - `fees` Fees — Representation of nightly fees associated with a rate for given dates along with optional breakdown.
            - `amount` number, required
            - `feeBreakdown` FeeTaxType[]
              - …
          - `startDate` string, date, required
          - `taxes` Taxes — Representation of nightly tax amount associated with a rate along with optional breakdown.
            - `amount` number, required
            - `taxBreakdown` FeeTaxType[]
              - …
          - `totalPrice` number
        - `prepayRequired` boolean — Whether or not prepayment is required for booking this rate
        - `rateCategory` RateCategory
          - `otaCode` integer, required — Code based on OTA Rate Plan Type (RPT) list (https://www.opentraveldevelopersnetwork.com/code-list)
          - `value` string — Optional value for the given rate plan type code
        - `rateCustomText` string — Informational text for rate
        - `rateChangesOverStay` boolean, required
        - `loyaltyMembershipRequired` boolean — Whether or not loyalty card/program is required for booking this rate
        - `rateDescription` string[]
        - `prepaymentDetails` RatePrepaymentDetails
          - `paymentDate` string, date-time, required — Scheduled payment date
          - `termsAndConditionsUrl` string, required — URL for the terms and conditions of the rate provided by supplier
        - `ratePlanId` string, required
        - `refundable` boolean — Is this rate refundable or not (based on all cancel penalties)
        - `roomId` string
        - `totalPrice` TotalPrice, required — Details about total pricing associated with the stay
          - `currencyCode` string, required — ISO 4217 currency code
          - `fees` number
          - `feesBreakdown` FeeTaxType[]
            - `amount` number, required
            - `fttCode` integer, required — Code based on OTA's Fee Tax Type (FTT) list (https://www.opentraveldevelopersnetwork.com/code-list)
            - `inclusive` boolean, required — Whether or not this tax/fee is included in totalAmountAfterTax amount.
            - `isPayableAtProperty` boolean — Whether or not this tax/fee is payable at the property.
          - `isTotalBeforeTaxDisplayEligible` boolean — Controls what value is shown on property details page for rates. Displays totalBeforeTax if set to true otherwise display totalAftertax. Note that totalAfterTax will be required if this is set false.
          - `taxes` number
          - `taxesBreakdown` FeeTaxType[]
            - `amount` number, required
            - `fttCode` integer, required — Code based on OTA's Fee Tax Type (FTT) list (https://www.opentraveldevelopersnetwork.com/code-list)
            - `inclusive` boolean, required — Whether or not this tax/fee is included in totalAmountAfterTax amount.
            - `isPayableAtProperty` boolean — Whether or not this tax/fee is payable at the property.
          - `totalAfterTax` number
          - `totalBeforeTax` number, required
        - `highlightedRateText` string — Informational text for highlighted rate
        - `rateDetailsCallRequired` boolean — Does this rate require a call to rateDetails before booking
      - `roomType` integer — OTA code of type GRI (Guest Room Info) providing guest room type details
      - `source` HotelRateSource — Details about source attributed to this rate. Please note that logo is given preference to name and nothing is displayed as source if suppress is true
        - `logo` string, uri — Logo of the supplier for this source that can be shown in UI
        - `name` string — Name of the supplier for this source that can be shown in UI (Logo is given higher preference)
        - `suppress` boolean — If true, will suppress all source attributions for this rate

## Other responses

- `400` — Invalid client request. Request shouldn't be retried without changing it.
- `401` — Unauthorized
- `500` — Error while processing the request. Request can be retried as is at a later time.

---

[API](https://skmtc.net/concur/apis/hotel-service-api.md) · [All operations](https://skmtc.net/concur/apis/hotel-service-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/concur/hotel-service-api/revisions/1fbd68eda4fc/schema)
