---
title: "Validate rebooking for price optimization"
method: POST
path: "/v2/hotel/validate-rebooking"
tags: ["Hotel"]
---

# Validate rebooking for price optimization

`POST /v2/hotel/validate-rebooking`

Validates if a hotel rebooking can be performed for price optimization purpose.
The Source PNR ID provided in the request will be checked if it's eligible for rebooking. 
In the response, if `isValid` is `true` then users can proceed to checkout flow, which cancels the existing Source PNR 
and creates a new PNR to save booking cost.

## Request body

- HotelValidateRebookingRequest
  - `cancelSourcePnrId` string, required — Source PNR ID that needs to be validated.
  - `travelers` Traveler[], required — List of travelers
    - `travelerPersonalInfo` TravelerPersonalInfo — Traveler personal information.
      - `loyaltyInfos` LoyaltyInfo[]
        - `appliedTo` string[]
        - `id` string, required
        - `issuedBy` string, required
        - `type` 'UNKNOWN_TYPE' | 'AIR' | 'HOTEL' | 'CAR' | 'RAIL', required
        - `linked` boolean — Indicates if this loyalty account is linked to the external provider. Only applicable for certain loyalty types.
        - `tier` string — Loyalty membership tier name echoed from the supplier.
      - `travelPref` TravelPref — Travel preferences.
        - `airPref` AirPref — Travel preferences related to air travel.
          - `airlinePrefs` AirlinePref[]
            - `airlines` string[]
            - `flightType` 'UNKNOWN_FLIGHT_TYPE' | 'DOMESTIC' | 'INTERNATIONAL' | 'ALL'
          - `alliancePref` AlliancePref — Alliance preferences.
            - `alliances` Alliance[], required
          - `farePref` FarePref — Fare preferences.
            - `fareTypes` string[], required
          - `homeAirport` string
          - `mealPref` MealPref — Meal preferences.
            - `exclMealPrefs` MealType[]
            - `inclMealPrefs` MealType[]
            - `specialMealDescription` string
          - `numStopPref` NumStopsPref — Preferred number of stops.
            - `numOfStops` integer, required
          - `seatAmenityPref` SeatAmenityPref — Seat amenity preference.
            - `seatAmenityTypes` string[], required
          - `seatLocationPrefs` SeatLocationPref[]
            - `cabins` string[]
            - `isBulkHeadPref` boolean
            - `maxFlightDurationInHours` integer
            - `position` 'UNKNOWN_POSITION' | 'AISLE' | 'WINDOW' | 'AISLE_OR_WINDOW'
          - `preferredAirports` PreferredAirport[] — A list of user preferred airports.
            - `airportName` string — Airport name.
            - `airportCode` string, required — IATA airport code.
            - `label` 'HOME' | 'WORK' | 'OTHER', required — The label of preferred airport or rail station.
        - `preferredCurrency` string
        - `railCards` RailCard[]
          - `cardNumber` string — Number of card
          - `expiryDate` DateModel — Date in ISO 8601 standard.
            - `iso8601` string, required
          - `name` string, required — Name of the Rail Card.
          - `spotnanaCode` string, required — Unique Spotnana code/identifier for Rail Card.
          - `vendor` string, required — Vendor Name.
        - `railPref` RailPref — Travel preferences related to rail station.
          - `preferredRailStations` PreferredRailStation[] — A list of user preferred rail stations.
            - `stationName` string — Rail station name.
            - `stationCode` string, required — Rail station code.
            - `cityName` string — Name of city where the rail station is located.
            - `countryCode` string — Alpha-2 country code where the rail station is located.
            - `label` 'HOME' | 'WORK' | 'OTHER', required — The label of preferred airport or rail station.
          - `seatPreference` SeatPref — Preference about seat of rail.
            - `hasAccessibility` boolean — Whether or not requires assistance for disability.
            - `seatTypes` SeatPrefType[]
            - `seatLocations` SeatPrefLocation[]
            - `deckLevels` DeckLevel[]
            - `seatDirections` SeatPrefDirection[]
          - `travelClasses` RailTravelClass[] — A list of class of service for rail.
          - `coachPreferences` CoachPref[] — A list of coach preference for rail.
          - `conditionalRates` ConditionalRate[] — A list of conditional rates for rail.
        - `carPref` CarPref — Travel preferences related to car.
          - `vendors` CarVendor[] — A list of car vendors.
            - `code` string, required — Vendor code
            - `name` string, required — Vendor name
            - `isPresentInPreferredVendors` boolean — Whether the car vendor is present in preferred vendor list. This is an optional field which gets populated only in the preferred vendor autocomplete API.
          - `carTypes` CarType[] — A list of types of car.
          - `engineTypes` EngineType[] — A list of types of engine.
          - `transmissionTypes` TransmissionSearchFilter[] — A list of types of transmission.
          - `conditionalRates` ConditionalRate[] — A list of conditional rates for rail.
        - `hotelPref` HotelPref — Travel preferences related to hotel.
          - `hotelParentChains` HotelChain[] — A list of hotel parent chains.
            - `chainCode` string — The code of hotel chain.
            - `chainName` string — The name of hotel chain.
          - `hotelBrands` HotelBrand[] — A list of hotel brands.
            - `brandCode` string — The code of hotel brand.
            - `brandName` string — The name of hotel brand.
          - `hotelAmenityTypes` HotelPrefAmenity[] — A list of HotelAmenities.
          - `roomPreference` RoomPreference — Room options and stay preference.
            - `isMobilityAccessible` boolean — Whether or not mobility accessible room, tub.
            - `bedCount` 'ONE_BED' | 'TWO_BEDS' — The number of bed in the room.
            - `roomType` 'SMOKING' | 'NON_SMOKING' — Single selection of type of room.
            - `mostImportantFact` 'ROOM_TYPE' | 'BED_COUNT' | 'ROOM_LOCATION' — Single selection of the most import fact.
            - `roomLocation` 'HIGH_FLOOR' | 'LOW_FLOOR' | 'NEAR_ELEVATOR' — Location of the hotel room
            - `pillowType` 'FOAM' | 'EXTRA_FOAM' | 'EXTRA_FEATHER' — The type of pillow in hotel room.
            - `roomAmenityPrefs` string[]
          - `conditionalRates` ConditionalRate[] — A list of conditional rates for rail.
      - `blockLoyalty` boolean — If true, hides the loyalty program input on the checkout page for this traveler.
    - `user` User — User details.
      - `addresses` PostalAddress[]
        - `addressLines` string[], required — Address lines
        - `administrativeArea` string — Code of administrative area. For example: DL for Delhi, India. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
        - `administrativeAreaName` string — Name of administrative area. This is full name corresponding to administrativeArea. Like Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.
        - `description` string — Address description
        - `isDefault` boolean — Whether this address is default address in case multiple addresses are specified.
        - `languageCode` string — BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. Examples: "zh-Hant", "ja", "ja-Latn", "en".
        - `locality` string — Generally refers to the city/town portion of the address.
        - `locationCode` string — IATA 3-letter location code. See https://www.iata.org/en/services/codes.
        - `organization` string — The name of the organization at the address.
        - `postalCode` string — Postal code of the address. This is a required field when setting for a user/legal entity/company etc.
        - `continentCode` string — 2 letter continent code of the continent this address falls in.
        - `recipients` string[] — The recipient at the address.
        - `regionCode` string, required — Region code of the country/region of the address.
        - `regionName` string — Region name of the country/region of the address.
        - `revision` integer
        - `sortingCode` string — Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
        - `sublocality` string — Sublocality of the address. This can be neighborhoods, boroughs, districts.
        - `timezone` string — Time zone of the address.
        - `coordinates` Latlng — Latitude and Longitude for a Location
          - `latitude` number, double, required — Latitude of the Location
          - `longitude` number, double, required — Longitude of the Location
      - `dob` DateModel — Date in ISO 8601 standard.
        - `iso8601` string, required
      - `email` string, email
      - `emergencyContactInfo` EmergencyContactInfo — Emergency contact information.
        - `address` PostalAddress — Postal Address Details
          - `addressLines` string[], required — Address lines
          - `administrativeArea` string — Code of administrative area. For example: DL for Delhi, India. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
          - `administrativeAreaName` string — Name of administrative area. This is full name corresponding to administrativeArea. Like Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.
          - `description` string — Address description
          - `isDefault` boolean — Whether this address is default address in case multiple addresses are specified.
          - `languageCode` string — BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. Examples: "zh-Hant", "ja", "ja-Latn", "en".
          - `locality` string — Generally refers to the city/town portion of the address.
          - `locationCode` string — IATA 3-letter location code. See https://www.iata.org/en/services/codes.
          - `organization` string — The name of the organization at the address.
          - `postalCode` string — Postal code of the address. This is a required field when setting for a user/legal entity/company etc.
          - `continentCode` string — 2 letter continent code of the continent this address falls in.
          - `recipients` string[] — The recipient at the address.
          - `regionCode` string, required — Region code of the country/region of the address.
          - `regionName` string — Region name of the country/region of the address.
          - `revision` integer
          - `sortingCode` string — Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
          - `sublocality` string — Sublocality of the address. This can be neighborhoods, boroughs, districts.
          - `timezone` string — Time zone of the address.
          - `coordinates` Latlng — Latitude and Longitude for a Location
            - `latitude` number, double, required — Latitude of the Location
            - `longitude` number, double, required — Longitude of the Location
        - `designation` string
        - `email` string, email, required
        - `name` Name — Full name containing first, middle, last (family) names, and suffix.
          - `family1` string, required — Last (family) name.
          - `family2` string
          - `given` string, required — First (given) name.
          - `middle` string — Middle name.
          - `suffix` 'NAME_SUFFIX_UNKNOWN' | 'SR' | 'JR' | 'MD' | 'PHD' | 'II' | 'III' | 'IV' | 'DO' | 'ATTY' | 'V' | 'VI' | 'ESQ' | 'DC' | 'DDS' | 'VM' | 'JD' | 'SECOND' | 'THIRD' — Suffix for name
          - `preferred` string — Informal preferred name added by traveler. This is not used on any PNR or tickets
        - `phoneNumber` PhoneNumber — Properly formatted phone number.
          - `countryCode` integer — two digit country code
          - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
          - `extension` string — phone number extension
          - `isoCountryCode` string — ISO alpha-2 code
          - `italianLeadingZero` boolean
          - `nationalNumber` integer
          - `numberOfLeadingZeros` integer
          - `preferredDomesticCarrierCode` string
          - `rawInput` string
          - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
        - `userOrgId` UserOrgId — User and user's organization information.
          - `organizationAgencyId` OrganizationAgencyId — Agency id for the organization.
            - `id` string, required
          - `organizationId` OrganizationId, required — Organization id for traveler.
            - `id` string, required
          - `userId` UserId, required — User identifier
            - `id` string, uuid, required
          - `tmcInfo` TmcInfo — TMC config information.
            - `id` CompanyId, required — Company ID
              - …
            - `primaryServiceProviderTmc` PrimaryServiceProviderTmc, required — Primary service provider TMC info
              - …
            - `secondaryServiceProviderTmcs` SecondaryServiceProviderTmc[] — Secondary service provider TMCs for the TMC.
              - …
            - `partnerTmcId` CompanyId — Company ID
              - …
          - `tmcBasicInfo` TmcBasicInfo — TMC related basic information.
            - `contractingTmc` CompanyRef, required — Basic information about a company.
              - …
            - `bookingTmc` CompanyRef, required — Basic information about a company.
              - …
      - `emergencyContact` EmergencyContact — Emergency contact information.
        - `name` string, required — Full name of contact.
        - `email` string, email — Email address of contact.
        - `designation` string — Job title of contact.
        - `relation` 'RELATION_UNKNOWN' | 'SPOUSE' | 'PARENT' | 'SIBLING' | 'CHILD' | 'FRIEND' | 'RELATIVE' | 'COLLEAGUE' | 'OTHER' — Relation of contact to user.
        - `phoneNumbers` PhoneNumber[], required — Phone numbers of contact.
          - `countryCode` integer — two digit country code
          - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
          - `extension` string — phone number extension
          - `isoCountryCode` string — ISO alpha-2 code
          - `italianLeadingZero` boolean
          - `nationalNumber` integer
          - `numberOfLeadingZeros` integer
          - `preferredDomesticCarrierCode` string
          - `rawInput` string
          - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
        - `preferredLanguage` string — Language preferred by user.
      - `gender` 'MALE' | 'FEMALE' | 'UNSPECIFIED' | 'UNDISCLOSED' | 'GENDER_REDACTED'
      - `identityDocs` IdentityDocument[] — List of user identity documents.
        - union — Identity document details. Currently supported documents are passport, immigration document, known traveler number, redress number and national document.
          - object
            - `passport` Passport — Passport details.
              - …
          - object
            - `immigrationDoc` ImmigrationDocument — Immigration document details.
              - …
          - object
            - `redress` RedressNumber — Redress details
              - …
          - object
            - `ktn` KnownTravelerNumber — Information about the Known Traveler Number (KTN).
              - …
          - object
            - `nationalDoc` NationalDoc — National Document Id details.
              - …
      - `name` Name — Full name containing first, middle, last (family) names, and suffix.
        - `family1` string, required — Last (family) name.
        - `family2` string
        - `given` string, required — First (given) name.
        - `middle` string — Middle name.
        - `suffix` 'NAME_SUFFIX_UNKNOWN' | 'SR' | 'JR' | 'MD' | 'PHD' | 'II' | 'III' | 'IV' | 'DO' | 'ATTY' | 'V' | 'VI' | 'ESQ' | 'DC' | 'DDS' | 'VM' | 'JD' | 'SECOND' | 'THIRD' — Suffix for name
        - `preferred` string — Informal preferred name added by traveler. This is not used on any PNR or tickets
      - `paymentInfos` PaymentInfo[]
        - `applicableTo` string[]
        - `card` Card, required — User card info
          - `id` string, uuid — Unique identifier for this card
          - `type` 'UNKNOWN' | 'CREDIT' | 'DEBIT' — Type of card
          - `company` 'NONE' | 'VISA' | 'MASTERCARD' | 'AMEX' | 'DISCOVER' | 'AIR_TRAVEL_UATP' | 'CARTE_BLANCHE' | 'DINERS_CLUB' | 'JCB' | 'BREX' | 'UNION_PAY' | 'EURO_CARD' | 'ACCESS_CARD' | 'ELO_CARD' — The issuing company of card
          - `name` string — Name on card
          - `address` PostalAddress — Postal Address Details
            - `addressLines` string[], required — Address lines
            - `administrativeArea` string — Code of administrative area. For example: DL for Delhi, India. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
            - `administrativeAreaName` string — Name of administrative area. This is full name corresponding to administrativeArea. Like Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.
            - `description` string — Address description
            - `isDefault` boolean — Whether this address is default address in case multiple addresses are specified.
            - `languageCode` string — BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. Examples: "zh-Hant", "ja", "ja-Latn", "en".
            - `locality` string — Generally refers to the city/town portion of the address.
            - `locationCode` string — IATA 3-letter location code. See https://www.iata.org/en/services/codes.
            - `organization` string — The name of the organization at the address.
            - `postalCode` string — Postal code of the address. This is a required field when setting for a user/legal entity/company etc.
            - `continentCode` string — 2 letter continent code of the continent this address falls in.
            - `recipients` string[] — The recipient at the address.
            - `regionCode` string, required — Region code of the country/region of the address.
            - `regionName` string — Region name of the country/region of the address.
            - `revision` integer
            - `sortingCode` string — Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
            - `sublocality` string — Sublocality of the address. This can be neighborhoods, boroughs, districts.
            - `timezone` string — Time zone of the address.
            - `coordinates` Latlng — Latitude and Longitude for a Location
              - …
          - `number` string, required — Card number
          - `expiryMonth` integer — Expiry month
          - `expiryYear` integer — Expiry year
          - `cvv` string — Card cvv number
          - `label` string — Card Label
          - `currency` string — Native currency of the card.
          - `externalId` string — Spotnana partner card id.
          - `vaultId` string, uuid — ID of the vault used for creating the card.
          - `expiry` union — Contains the expiry of a Card.
            - object
              - …
            - object
              - …
          - `ownershipLabel` 'CORPORATE' | 'PERSONAL' | 'CENTRAL' — Ownership label of the card whether it is personal, corporate or central.
        - `accessType` 'UNKNOWN_TYPE' | 'CENTRALISED' | 'INDIVIDUAL' | 'PERSONAL' | 'TMC' | 'APPLICATION' | 'ITINERARY' | 'EVENTS' | 'TRAVEL_ARRANGER_MANAGED' | 'COMPANY_TRAVEL_ARRANGER_MANAGED' | 'EVENT_TEMPLATE' — Identifies the different ways the card can be used across an organization
        - `access` CreditCardAccess — Access type for cards to check who in the organization has permission to use it
          - `accessType` 'UNKNOWN_TYPE' | 'CENTRALISED' | 'INDIVIDUAL' | 'PERSONAL' | 'TMC' | 'APPLICATION' | 'ITINERARY' | 'EVENTS' | 'TRAVEL_ARRANGER_MANAGED' | 'COMPANY_TRAVEL_ARRANGER_MANAGED' | 'EVENT_TEMPLATE', required — Identifies the different ways the card can be used across an organization
          - `entityIds` string[], required — Holds the ids for for all users who can access the card or organization id
          - `entities` CardAccessEntity[] — A list of cardAccessEntity consisting of central card access level if present and entity id.
            - `entityId` string, required — Holds the id for for the user who can access the card or organization id or legal entity
            - `centralCardAccessLevel` 'UNKNOWN' | 'ORGANIZATION' | 'LEGAL_ENTITY' | 'TMC' — Identifies at which level central card is applicable, for example organization or legal entity.
      - `phoneNumbers` PhoneNumber[]
        - `countryCode` integer — two digit country code
        - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
        - `extension` string — phone number extension
        - `isoCountryCode` string — ISO alpha-2 code
        - `italianLeadingZero` boolean
        - `nationalNumber` integer
        - `numberOfLeadingZeros` integer
        - `preferredDomesticCarrierCode` string
        - `rawInput` string
        - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
      - `profilePicture` Image — An image with meta data. Either the `data` or `url` property must be supplied to load the image.
        - `data` string, byte
        - `dimensions` Dimensions — Image dimensions ie width and height.
          - `height` integer
          - `width` integer
        - `url` string
      - `nationality` string — Nationality of user
      - `title` 'TITLE_UNKNOWN' | 'MR' | 'MS' | 'MRS' | 'MX' | 'MASTER' | 'MISS' | 'DR' | 'PROFESSOR' | 'CAPTAIN' | 'REVEREND' | 'HONOURABLE' | 'SIR' | 'LADY' | 'AMBASSADOR' | 'LORD' | 'BRIGADIER' | 'SENATOR' | 'DAME' | 'JUSTICE' | 'UK' | 'TITLE_REDACTED'
    - `userBusinessInfo` UserBusinessInfo — User business information.
      - `department` Department — Department details.
        - `id` DepartmentId, required — Department id.
          - `id` string, required
        - `name` string, required
        - `externalId` string — External id of the department
        - `employeeCount` integer — Count of employees in the department
      - `designation` string
      - `email` string, email, required
      - `employeeId` string, required — Unique employee id. Can use email if a company don't use employee ids.
      - `grade` Grade — Grade details.
        - `employeeCount` integer — Count of employees in the grade
        - `id` GradeId, required — Grade id.
          - `id` string, required
        - `name` string, required
      - `legalEntityId` LegalEntityId, required — The ID of the legal entity.
        - `id` string, required
      - `managerBasicInfo` UserBasicInfo — Basic user information.
        - `userOrgId` UserOrgId — User and user's organization information.
          - `organizationAgencyId` OrganizationAgencyId — Agency id for the organization.
            - `id` string, required
          - `organizationId` OrganizationId, required — Organization id for traveler.
            - `id` string, required
          - `userId` UserId, required — User identifier
            - `id` string, uuid, required
          - `tmcInfo` TmcInfo — TMC config information.
            - `id` CompanyId, required — Company ID
              - …
            - `primaryServiceProviderTmc` PrimaryServiceProviderTmc, required — Primary service provider TMC info
              - …
            - `secondaryServiceProviderTmcs` SecondaryServiceProviderTmc[] — Secondary service provider TMCs for the TMC.
              - …
            - `partnerTmcId` CompanyId — Company ID
              - …
          - `tmcBasicInfo` TmcBasicInfo — TMC related basic information.
            - `contractingTmc` CompanyRef, required — Basic information about a company.
              - …
            - `bookingTmc` CompanyRef, required — Basic information about a company.
              - …
        - `persona` 'UNKNOWN_PERSONA' | 'EMPLOYEE' | 'GUEST' | 'PERSONAL' | 'RELATIVE' | 'ADHOC' — Persona of the user
        - `email` string, email
        - `name` Name — Full name containing first, middle, last (family) names, and suffix.
          - `family1` string, required — Last (family) name.
          - `family2` string
          - `given` string, required — First (given) name.
          - `middle` string — Middle name.
          - `suffix` 'NAME_SUFFIX_UNKNOWN' | 'SR' | 'JR' | 'MD' | 'PHD' | 'II' | 'III' | 'IV' | 'DO' | 'ATTY' | 'V' | 'VI' | 'ESQ' | 'DC' | 'DDS' | 'VM' | 'JD' | 'SECOND' | 'THIRD' — Suffix for name
          - `preferred` string — Informal preferred name added by traveler. This is not used on any PNR or tickets
        - `profilePicture` Image — An image with meta data. Either the `data` or `url` property must be supplied to load the image.
          - `data` string, byte
          - `dimensions` Dimensions — Image dimensions ie width and height.
            - `height` integer
            - `width` integer
          - `url` string
        - `tier` 'BASIC' | 'SEAT1A' | 'TIER_2' | 'TIER_3' | 'TIER_4' | 'TIER_5' | 'TIER_6' | 'TIER_7' | 'TIER_8' | 'TIER_9' | 'TIER_10' | 'TIER_11' | 'TIER_12' | 'TIER_13' | 'TIER_14' | 'TIER_15' | 'TIER_16' | 'TIER_17' | 'TIER_18' | 'TIER_19' | 'TIER_20' | 'TIER_21' | 'TIER_22' | 'TIER_23' | 'TIER_24' | 'TIER_25' | 'TIER_26' | 'TIER_27' | 'TIER_28' | 'TIER_29' | 'TIER_30' | 'TIER_31' — Tier of User. Note: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP. Display names for other tiers are driven by the company tier configuration.
        - `phoneNumber` PhoneNumber — Properly formatted phone number.
          - `countryCode` integer — two digit country code
          - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
          - `extension` string — phone number extension
          - `isoCountryCode` string — ISO alpha-2 code
          - `italianLeadingZero` boolean
          - `nationalNumber` integer
          - `numberOfLeadingZeros` integer
          - `preferredDomesticCarrierCode` string
          - `rawInput` string
          - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
        - `employeeId` string — Employee id of the user
        - `isActive` boolean — Whether user profile is active or not.
      - `office` Office — Office details.
        - `address` PostalAddress — Postal Address Details
          - `addressLines` string[], required — Address lines
          - `administrativeArea` string — Code of administrative area. For example: DL for Delhi, India. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
          - `administrativeAreaName` string — Name of administrative area. This is full name corresponding to administrativeArea. Like Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.
          - `description` string — Address description
          - `isDefault` boolean — Whether this address is default address in case multiple addresses are specified.
          - `languageCode` string — BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. Examples: "zh-Hant", "ja", "ja-Latn", "en".
          - `locality` string — Generally refers to the city/town portion of the address.
          - `locationCode` string — IATA 3-letter location code. See https://www.iata.org/en/services/codes.
          - `organization` string — The name of the organization at the address.
          - `postalCode` string — Postal code of the address. This is a required field when setting for a user/legal entity/company etc.
          - `continentCode` string — 2 letter continent code of the continent this address falls in.
          - `recipients` string[] — The recipient at the address.
          - `regionCode` string, required — Region code of the country/region of the address.
          - `regionName` string — Region name of the country/region of the address.
          - `revision` integer
          - `sortingCode` string — Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
          - `sublocality` string — Sublocality of the address. This can be neighborhoods, boroughs, districts.
          - `timezone` string — Time zone of the address.
          - `coordinates` Latlng — Latitude and Longitude for a Location
            - `latitude` number, double, required — Latitude of the Location
            - `longitude` number, double, required — Longitude of the Location
        - `id` OfficeId, required — The unique ID of the office.
          - `id` string, required — The value of the unique ID for the office.
        - `name` string, required
        - `latlng` Latlng — Latitude and Longitude for a Location
          - `latitude` number, double, required — Latitude of the Location
          - `longitude` number, double, required — Longitude of the Location
        - `taxId` string
      - `organizationId` OrganizationId, required — Organization id for traveler.
        - `id` string, required
      - `phoneNumbers` PhoneNumber[]
        - `countryCode` integer — two digit country code
        - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
        - `extension` string — phone number extension
        - `isoCountryCode` string — ISO alpha-2 code
        - `italianLeadingZero` boolean
        - `nationalNumber` integer
        - `numberOfLeadingZeros` integer
        - `preferredDomesticCarrierCode` string
        - `rawInput` string
        - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
      - `userCostCenter` CostCenter — Cost center details.
        - `id` CostCenterId, required
          - `id` string, required
        - `name` string, required
        - `externalId` string
      - `designatedApproverInfos` UserBasicInfo[] — A list of user basic info for designated approvers.
        - `userOrgId` UserOrgId — User and user's organization information.
          - `organizationAgencyId` OrganizationAgencyId — Agency id for the organization.
            - `id` string, required
          - `organizationId` OrganizationId, required — Organization id for traveler.
            - `id` string, required
          - `userId` UserId, required — User identifier
            - `id` string, uuid, required
          - `tmcInfo` TmcInfo — TMC config information.
            - `id` CompanyId, required — Company ID
              - …
            - `primaryServiceProviderTmc` PrimaryServiceProviderTmc, required — Primary service provider TMC info
              - …
            - `secondaryServiceProviderTmcs` SecondaryServiceProviderTmc[] — Secondary service provider TMCs for the TMC.
              - …
            - `partnerTmcId` CompanyId — Company ID
              - …
          - `tmcBasicInfo` TmcBasicInfo — TMC related basic information.
            - `contractingTmc` CompanyRef, required — Basic information about a company.
              - …
            - `bookingTmc` CompanyRef, required — Basic information about a company.
              - …
        - `persona` 'UNKNOWN_PERSONA' | 'EMPLOYEE' | 'GUEST' | 'PERSONAL' | 'RELATIVE' | 'ADHOC' — Persona of the user
        - `email` string, email
        - `name` Name — Full name containing first, middle, last (family) names, and suffix.
          - `family1` string, required — Last (family) name.
          - `family2` string
          - `given` string, required — First (given) name.
          - `middle` string — Middle name.
          - `suffix` 'NAME_SUFFIX_UNKNOWN' | 'SR' | 'JR' | 'MD' | 'PHD' | 'II' | 'III' | 'IV' | 'DO' | 'ATTY' | 'V' | 'VI' | 'ESQ' | 'DC' | 'DDS' | 'VM' | 'JD' | 'SECOND' | 'THIRD' — Suffix for name
          - `preferred` string — Informal preferred name added by traveler. This is not used on any PNR or tickets
        - `profilePicture` Image — An image with meta data. Either the `data` or `url` property must be supplied to load the image.
          - `data` string, byte
          - `dimensions` Dimensions — Image dimensions ie width and height.
            - `height` integer
            - `width` integer
          - `url` string
        - `tier` 'BASIC' | 'SEAT1A' | 'TIER_2' | 'TIER_3' | 'TIER_4' | 'TIER_5' | 'TIER_6' | 'TIER_7' | 'TIER_8' | 'TIER_9' | 'TIER_10' | 'TIER_11' | 'TIER_12' | 'TIER_13' | 'TIER_14' | 'TIER_15' | 'TIER_16' | 'TIER_17' | 'TIER_18' | 'TIER_19' | 'TIER_20' | 'TIER_21' | 'TIER_22' | 'TIER_23' | 'TIER_24' | 'TIER_25' | 'TIER_26' | 'TIER_27' | 'TIER_28' | 'TIER_29' | 'TIER_30' | 'TIER_31' — Tier of User. Note: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP. Display names for other tiers are driven by the company tier configuration.
        - `phoneNumber` PhoneNumber — Properly formatted phone number.
          - `countryCode` integer — two digit country code
          - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
          - `extension` string — phone number extension
          - `isoCountryCode` string — ISO alpha-2 code
          - `italianLeadingZero` boolean
          - `nationalNumber` integer
          - `numberOfLeadingZeros` integer
          - `preferredDomesticCarrierCode` string
          - `rawInput` string
          - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
        - `employeeId` string — Employee id of the user
        - `isActive` boolean — Whether user profile is active or not.
      - `designatedApproverUserIds` UserId[] — A list of userId for designated approvers.
        - `id` string, uuid, required
      - `authorizerEmail` string — Email address to be used as approval authorizer, when a manager is not present.
    - `userOrgId` UserOrgId — User and user's organization information.
      - `organizationAgencyId` OrganizationAgencyId — Agency id for the organization.
        - `id` string, required
      - `organizationId` OrganizationId, required — Organization id for traveler.
        - `id` string, required
      - `userId` UserId, required — User identifier
        - `id` string, uuid, required
      - `tmcInfo` TmcInfo — TMC config information.
        - `id` CompanyId, required — Company ID
          - `id` string, uuid, required
        - `primaryServiceProviderTmc` PrimaryServiceProviderTmc, required — Primary service provider TMC info
          - `tmcId` CompanyId, required — Company ID
            - `id` string, uuid, required
        - `secondaryServiceProviderTmcs` SecondaryServiceProviderTmc[] — Secondary service provider TMCs for the TMC.
          - `tmcId` CompanyId, required — Company ID
            - `id` string, uuid, required
          - `supplier` 'SABRE' | 'AMADEUS' | 'TRAVEL_FUSION' | 'FARELOGIX_NDC' | 'ATPCO_NDC' | 'TRAINLINE' | 'AVIA' | 'QBR' | 'BCD' | 'QANTAS_HOTELS' | 'SOUTHWEST' | 'EXPEDIA' | 'HOTEL_HUB' | 'NDC' | 'MARRIOTT' | 'CLEARTRIP' | 'KYTE' | 'GROUNDSPAN' | 'SABRE_NDC' | 'BOOKING_COM' | 'CARTRAWLER' | 'PREMIER_INN' | 'TRAVELODGE' | 'ENTERPRISE' | 'HYATT' | 'NATIONAL' | 'ALAMO' | 'HERTZ' | 'DOLLAR' | 'THRIFTY' | 'FIREFLY' | 'EUROSTAR' | 'AVIS' | 'BUDGET', required — Supplier type like Sabre, TravelFusion etc.
          - `travelType` 'AIR' | 'HOTEL' | 'CAR' | 'RAIL' | 'LIMO' | 'MISC' | 'ALL', required — Travel Type
        - `partnerTmcId` CompanyId — Company ID
          - `id` string, uuid, required
      - `tmcBasicInfo` TmcBasicInfo — TMC related basic information.
        - `contractingTmc` CompanyRef, required — Basic information about a company.
          - `id` CompanyId, required — Company ID
            - `id` string, uuid, required
          - `name` string
          - `logo` Image — An image with meta data. Either the `data` or `url` property must be supplied to load the image.
            - `data` string, byte
            - `dimensions` Dimensions — Image dimensions ie width and height.
              - …
            - `url` string
        - `bookingTmc` CompanyRef, required — Basic information about a company.
          - `id` CompanyId, required — Company ID
            - `id` string, uuid, required
          - `name` string
          - `logo` Image — An image with meta data. Either the `data` or `url` property must be supplied to load the image.
            - `data` string, byte
            - `dimensions` Dimensions — Image dimensions ie width and height.
              - …
            - `url` string
    - `persona` 'UNKNOWN_PERSONA' | 'EMPLOYEE' | 'GUEST' | 'PERSONAL' | 'RELATIVE' | 'ADHOC' — Persona of the user
    - `isActive` boolean — A boolean flag to show if traveler is active.
    - `tier` 'BASIC' | 'SEAT1A' | 'TIER_2' | 'TIER_3' | 'TIER_4' | 'TIER_5' | 'TIER_6' | 'TIER_7' | 'TIER_8' | 'TIER_9' | 'TIER_10' | 'TIER_11' | 'TIER_12' | 'TIER_13' | 'TIER_14' | 'TIER_15' | 'TIER_16' | 'TIER_17' | 'TIER_18' | 'TIER_19' | 'TIER_20' | 'TIER_21' | 'TIER_22' | 'TIER_23' | 'TIER_24' | 'TIER_25' | 'TIER_26' | 'TIER_27' | 'TIER_28' | 'TIER_29' | 'TIER_30' | 'TIER_31' — Tier of User. Note: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP. Display names for other tiers are driven by the company tier configuration.
    - `adhocUserInfo` AdhocUserInfo — Basic information related to ad-hoc traveler profile.
      - `profileOwner` ProfileOwner, required — Basic information about the owner of the ad-hoc user.
        - `userId` UserId, required — User identifier
          - `id` string, uuid, required
      - `isSaved` boolean — A boolean flag to show if ad-hoc traveler is visible in search. While updating the user if client tries to update this field, it will throw exception.
    - `externalId` string — External id of this user.
  - `tripId` TripId, required — Id of trip.
    - `id` string, required — Id.

## Response `200`

OK

- HotelValidateRebookingResponse — Hotel Validate rebooking response
  - `isValid` boolean, required — Indicates if the validation is successful.
  - `spotnanaPnrId` string, required — The Spotnana PNR ID of the corresponding source PNR ID provided in the request.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — The specified resource was not found.

---

[API](https://skmtc.net/spotnana/apis/hotel-api.md) · [All operations](https://skmtc.net/spotnana/apis/hotel-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/spotnana/hotel-api/versions/4ad6bc6046c1/schema)
