---
title: "Reserve the given hotel rate"
method: POST
path: "/hotels/reservation"
tags: ["Service"]
---

# Reserve the given hotel rate

`POST /hotels/reservation`

Reserve hotel rate

## Headers

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

## Request body

- ReservationCriteria
  - `bookingUuid` string, required — UUID that identifies the booking within Concur
  - `checkin` string, date, required
  - `checkout` string, date, required
  - `comments` string[] — Comments with special requests or preferences from the user for this booking
  - `customFields` CustomField[], required — Vendor specific fields if setup for vendor integration
    - `name` string, required — Name of the custom field
    - `value` string, required — Value of the custom field
  - `guarantee` ReservationCriteriaGuarantee
    - `cardHolderAddress` Address
      - `addressLines` string[], required
      - `city` string, required — City name
      - `countryCode` string, required — Two-character ISO code (ISO ALPHA-2) for country
      - `postalCode` string
      - `state` string — **Deprecated - Use stateName instead** Two-character state code - provided when available
      - `stateName` string — Name or code of the State/Province/Adminstrative region
    - `cardHolderName` string
    - `cardNumber` string, required
    - `cardExpiryMonth` integer
    - `cardExpiryYear` integer
    - `cardType` 'AMERICAN_AIRLINES' | 'ALASKA_BARTER' | 'AMEX' | 'AWARD_CREDIT' | 'CANADIAN' | 'CARTE_BLANCHE' | 'CHINA_UNION_PAY' | 'CONFERMA' | 'DELTA' | 'DINERS_CLUB' | 'DISCOVER' | 'ENROUTE' | 'EURO_CARD' | 'JCB' | 'MC' | 'NORTHWEST' | 'TWA' | 'UATP' | 'UNITED_TRAVEL' | 'UNITED_CREDIT' | 'VISA' | 'VENDOR_PROVIDED', required
    - `cvv` string — Card Verification Value - three or four-digit number on credit card for security
    - `virtualCardDeploymentId` string — Deployment ID of conferma card when Conferma payment is used for booking a hotel
  - `guests` Guest[], required
    - `address` Address
      - `addressLines` string[], required
      - `city` string, required — City name
      - `countryCode` string, required — Two-character ISO code (ISO ALPHA-2) for country
      - `postalCode` string
      - `state` string — **Deprecated - Use stateName instead** Two-character state code - provided when available
      - `stateName` string — Name or code of the State/Province/Adminstrative region
    - `birthdate` string, date
    - `companyName` string
    - `contactInfo` ContactInfo
      - `emails` string[], required
      - `faxNumber` string
      - `phoneNumbers` string[], required
    - `firstname` string, required
    - `middleName` string — Middle name of the guest.
    - `lastname` string, required
  - `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
  - `hrefs` ReservationCriteriaHrefs — Collection of URLs related to the booking, such as the Change Notification callback endpoint.
    - `changeNotificationV4` string, required — Callback URL for the Change Notification API. The base URI varies depending on the datacenter where the booking is processed. The {TRIP_ID} will be replaced by the actual Trip ID.
    - `authV0` string, required — Authentication URL for the booking.
  - `legalEntity` LegalEntity — Provides details about the legal entity associated with this booking if available
    - `address` Address
      - `addressLines` string[], required
      - `city` string, required — City name
      - `countryCode` string, required — Two-character ISO code (ISO ALPHA-2) for country
      - `postalCode` string
      - `state` string — **Deprecated - Use stateName instead** Two-character state code - provided when available
      - `stateName` string — Name or code of the State/Province/Adminstrative region
    - `name` string, required — Name of the legal entity
    - `taxId` string, required — Tax identity of the legal entity
  - `loyalty` ReservationCriteriaLoyalty
    - `accountId` string, required
    - `programCode` string, required
  - `paymentModeIndicator` 'PERSONAL_CARD' | 'CORPORATE_CARD' | 'CONCUR_VIRTUAL_CARD' | 'VENDOR_VIRTUAL_CARD'
  - `ratePlanId` string, required
  - `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.
  - `threeDSecure` ThreeDSecure — 3D Secure Strong Customer Authentication payment verification parameters
    - `avv` string, required — For 3DS1, this is the CAVV. For 3DS2, this is the AVV.
    - `cavvAlgorithm` string — Identifies the algorithm used to generate the CAVV for 3DS1.
    - `eci` string, required — Electronic Commerce Indicator
    - `exemptionCode` string — Identifies SCA exemption type
    - `messageVersion` string, required — 3D Secure version
    - `threeDSServerTransactionId` string — For 3DS1, this identifies the XID. For 3DS2, this identifies the dsTransactionId.
    - `transactionId` string, required — Unique transaction identifier assigned by the 3DS Server to identify a single transaction.
  - `tripUuid` string, required — UUID that identifies the trip within Concur
  - `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)

## Response `200`

Hotel reservation successful

- ReservationDetails
  - `basicHotelProperty` BasicHotelProperty, required
    - `address` Address
      - `addressLines` string[], required
      - `city` string, required — City name
      - `countryCode` string, required — Two-character ISO code (ISO ALPHA-2) for country
      - `postalCode` string
      - `state` string — **Deprecated - Use stateName instead** Two-character state code - provided when available
      - `stateName` string — Name or code of the State/Province/Adminstrative region
    - `chainCode` string
    - `cityCode` string, required — IATA 3 char city code for this property (required for adding passive segments)
    - `contactInfo` ContactInfo, required
      - `emails` string[], required
      - `faxNumber` string
      - `phoneNumbers` string[], required
    - `hotelName` string, required
    - `position` Geolocation
      - `latitude` number, required
      - `longitude` number, required
    - `propertyCode` string, required
  - `checkin` string, date
  - `checkout` string, date
  - `comments` string[] — Additional information from the supplier for the traveler (e.g., whether loyalty points are applicable to the booking)
  - `confirmationCodes` ConfirmationCode[], required
    - `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
  - `guests` Guest[], required
    - `address` Address
      - `addressLines` string[], required
      - `city` string, required — City name
      - `countryCode` string, required — Two-character ISO code (ISO ALPHA-2) for country
      - `postalCode` string
      - `state` string — **Deprecated - Use stateName instead** Two-character state code - provided when available
      - `stateName` string — Name or code of the State/Province/Adminstrative region
    - `birthdate` string, date
    - `companyName` string
    - `contactInfo` ContactInfo
      - `emails` string[], required
      - `faxNumber` string
      - `phoneNumbers` string[], required
    - `firstname` string, required
    - `middleName` string — Middle name of the guest.
    - `lastname` string, required
  - `isModifiable` boolean — Whether or not this reservation can be modified.
  - `voucherUrl` string — The URL to the voucher for this booking
  - `roomDescription` string[], required
  - `roomRate` RoomRateDetails
    - `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
  - `status` 'PENDING_CONFIRMATION' | 'RESERVED' | 'CANCELLED', required
  - `activeSegmentInConcurPNR` boolean — Whether or not this reservation was added to Concur PNR as active segment (true) or not. Required if using Single PNR Solution

## 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/versions/1fbd68eda4fc/schema)
