---
title: "Retrieve hotel rate details"
method: POST
path: "/hotels/ratedetails"
tags: ["Service"]
---

# Retrieve hotel rate details

`POST /hotels/ratedetails`

Retrieve hotel rate details for rates of a property - used when rate details are missing from /rates call and/or during checkout process.

## Headers

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

## Request body

- RateDetailsCriteria
  - `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
  - `hotelPropertyRef` HotelPropertyRef, required — Reference to hotel property using provider specific property code
    - `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 as entered by traveler
  - `rateCategories` RateCategory[] — Special rate categories requested if applicable. Rate category is a value used to request a particular rate code if the guest qualifies for a special rate, such as AARP, AAA or a corporate rate. Uses RPT OTA code type.
    - `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
  - `ratePlanIds` string[], required — Rate Product Ids for which detail rates are requested
  - `accessViaMobile` boolean — Indicates if the request is coming from mobile device
  - `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.
  - `reshopInfo` ReshopInfo — Contains information required for reshopping a hotel booking.
    - `gdsRecordLocator` GDSRecordLocator
      - `gdsName` 'SABRE' | 'AMADEUS' | 'TRAVELPORT', required — Name of the GDS (Global Distribution System) to be used for this booking (active or passive segment). Supported values: SABRE, AMADEUS, TRAVELPORT
      - `pcc` string, required — Pseudo City Code or Office ID (OID) for the GDS account to be used for this booking (active or passive segment).
      - `recordLocator` string, required — Record locator of the PNR where this booking should be created (active or passvie)
    - `confirmationCodes` ConfirmationCode[]
      - `code` string, required
      - `codeType` 'RESERVATION' | 'SUPPLIER_CONFIRMATION' | 'CANCELLATION' | 'HOTEL_CONFIRMATION' | 'CONCUR_GDS_REFERENCE' | 'PASSIVE_CONFIRMATION' | 'PIN', required — Confirmation Code Types that maps to OTA codes for Unique Id Types list RESERVATION(Record Locator)=14, SUPPLIER_CONFIRMATION=40, CANCELLATION=50, HOTEL_CONFIRMATION(Property Confirmation No.)=10, CONCUR_GDS_REFERENCE -> Concur Booking Record Locator for Passives
  - `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

- RateDetailsResponse
  - `checkin` string, date, required
  - `checkout` string, date, required
  - `roomRates` RoomRateDetails[], required
    - `cancelPenalties` CancelPenalties, required
      - `description` string — Common description applicable to all the penalties
      - `penalties` CancelPenalty[], required — Cancel penalties associated with the rate
        - `amountPercent` AmountPercent
          - `amount` Price
            - `amount` number, required
            - `currencyCode` string, required — ISO 4217 currency code
          - `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.
        - `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, required
      - `acceptedPayments` PaymentCardType[]
      - `amountPercent` AmountPercent
        - `amount` Price
          - `amount` number, required
          - `currencyCode` string, required — ISO 4217 currency code
        - `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[]
          - `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.
      - `startDate` string, date, required
      - `taxes` Taxes — Representation of nightly tax amount associated with a rate along with optional breakdown.
        - `amount` number, required
        - `taxBreakdown` 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.
      - `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

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