Check the Hotel Release Notes for updates across all Hotel APIs.

Add Hotel Reservation Full Payload API Reference

Put

book/reservations/{LocatorCode}

For {AggregatorLocatorCode} send the locator code returned at booking or in Reservation Retrieve in Receipt/Confirmation/Locator/value.

Hotel bookings return multiple locator codes. Send the value from the instance of Receipt with Confirmation/Locator/locatorType=PNR Locator. See Locator Codes for details.

Use this base path if you have not yet received or not migrated to the new credentials from Travelport:

Pre-production https://api.pp.travelport.com/11/hotel/ | Production https://api.travelport.com/11/hotel/

Use this base path after you have migrated to the new credentials from Travelport (using .net instead of .com):

Pre-production https://api.pp.travelport.net/11/hotel/ | Production https://api.travelport.net/11/hotel/

Related Content: JSON Hotel APIs Guide, Hotel Workflows, Hotel Availability API Reference

Add Hotel Reservation allows you to add another hotel room to an existing reservation, This full payload request sends complete offer details, including the booking code from a preceding Availability request.

As an alternative, you can use the Add Hotel Reservation reference payload request to send only identifiers from preceding search (either by location or by ID) and Availability requests.

Do not send a Traveler object in an Add Reservation request. Traveler details on the reservation cannot be changed or updated with this request.
Multi-room sell requests

When making a reservation, Travelport attempts to sell the number of rooms requested, but the supplier may not be able to accommodate the total number of rooms. Each room sold creates a unique hotel segment on the Travelport reservation. A traveler name will be associated with each room with these limitations:

  • If the number of rooms requested is equal to the number of traveler names in the request, each room is associated with a unique traveler name.

  • If the number of rooms requested is not equal to the number of traveler names in the request, all rooms are associated with the first traveler name.


Request

As part of the request requirements, also see Authentication and Common Hotel API Headers.

Query Parameters

All Hotel APIs that create a new reservation or add a segment to an existing reservation verify the reservation request with the guarantee type and price returned in the preceding Availability or SearchComplete response. If there is any difference, the API does not yet create the reservation but instead returns an error notifying you of the change. To accept the change, send the request a second time with the appropriate query parameter/s below. Do not send either of these query parameters in the first reservation request.

If you do not want to proceed with the booking because of the changes, sending a second booking request is not necessary, however, you can simply start a new booking and let these offers expire.

Object Description

acceptPriceChangeInd

Boolean. Behaviors are as follows:

true: Accepts any difference in the current sell price from the total price returned in the Availability response.

false: Terminates the sell process without making a reservation. Default if not sent is false.

acceptGuaranteeChangeInd

Boolean. Behaviors are as follows:

true: Accepts any difference in the guarantee type from the guarantee type returned in the Availability response. Guarantee types checked for differences are guarantee required, deposit required, prepay required.

false: Terminates the sell process without making a reservation. Default if not sent is false.

Request Body

For additional examples, download the developer toolkits and see Using Postman and Developer Toolkits.
The red asterisk at the end of an object name below, as in Traveler*, marks that object as required in the request.

 

ReservationDetail*

Top level object for the request.

Includes the Offer, Receipt, FormOfPayment, Payment, ReservationComment, and TravelAgency.






 

Example request body

{
 "ReservationDetail": {
  "Offer": {
   "Identifier": {
    "authority": "BKNG"
   },
   "Product": {
    "@type": "ProductHospitality",
    "bookingCode": "DXN15OF",
    "guests": 1,
    "Quantity": 1,
    "PropertyKey": {
     "chainCode": "CN",
     "propertyCode": "B6381"
    },
    "DateRange": {
     "start": "2022-02-22",
     "end": "2022-02-25"
    }
   },
   "Price": {
    "@type": "PriceDetail",
    "CurrencyCode": {
     "value": "USD"
    },
    "TotalPrice": 150
   },
   "TermsAndConditionsFull": {
    "ProductRateCodeInfo": [
     {
      "RateCodeInfo": {
       "rateCategory": "Negotiated",
       "rateName": "DuranRex Trucking",
       "rateID": "1X343X34",
       "value": "DUR"
      }
     }
    ]
   }
  },
  "Traveler": [
   {
    "PersonName": {
     "Given": "John",
     "Surname": "Smith"
    },
    "Telephone": [
     {
      "@type": "TelephoneDetail",
      "countryAccessCode": "1",
      "areaCityCode": "909",
      "phoneNumber": "1231234",
      "cityCode": "DEN"
     }
    ],
    "Email": [
     {
      "value": "smith@nope.com"
     }
    ]
   }
  ],
  "Payment": [
   {
    "Amount": {
     "code": "GBP",
     "value": 143
    }
   }
  ],
  "FormOfPayment": [
   {
    "@type": "FormOfPaymentPaymentCard",
    "PaymentCard": {
     "@type": "PaymentCardDetail",
     "expireDate": "0625",
     "CardType": "Credit",
     "CardCode": "CA",
     "CardHolderName": "John Smith",
     "CardNumber": {
      "PlainText": "5156180436615984"
     },
     "SeriesCode": {
      "PlainText": "123"
     },
     "Telephone": [
      {
       "@type": "TelephoneDetail",
       "countryAccessCode": "1",
       "areaCityCode": "909",
       "phoneNumber": "1231234",
       "cityCode": "DEN"
      }
     ],
     "Address": {
      "@type": "AddressDetail",
      "Number": {
       "value": "125"
      },
      "Street": "Billing Address Street",
      "AddressLine": [
       "125 Billing Address Street"
      ],
      "City": "Claremont",
      "County": "Los Angeles",
      "StateProv": {
       "value": "CA",
       "name": "Texas"
      },
      "Country": {
       "value": "US",
       "id": "country_4",
       "name": "United States",
       "codeContext": "Example String Value"
      },
      "PostalCode": "91711-3323"
     }
    }
   }
  ],
  "Receipt": [
   {
    "@type": "ReceiptConfirmation",
    "Confirmation": {
     "@type": "ConfirmationHold",
     "confirmationStatus": {
      "@type": "OfferStatusHospitality",
      "Status": "Confirmed"
     },
     "Locator": {
      "value": "0GQ9HS",
      "sourceContext": "Travelport"
     },
     "OfferStatus": {
      "@type": "OfferStatusHospitality",
      "Status": "Confirmed"
     }
    }
   }
  ]
 }
}

Response

The Hotel Add Reservation response returns the same data in the same structure as does Create Reservation. See the Create Reservation API Reference for documentation.

The Add Reservation full payload response returns details for only the reservation added, not the reservation already on the booking. For full reservation details including all segments, send a Reservation Retrieve request after adding another room.

The response for both the Add Reservation reference payload and full payload responses are identical with the exception of the Reservation/id object, which is returned only in the reference payload response to show the offer identifier sent in the reference payload request.