Add Hotel Reservation Reference Payload API Reference

Put

book/reservations/{AggregatorLocatorCode}

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

Base path:

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

Production https://api.travelport.net/11/hotel/

Travelport has updated all JSON API authentication and authorization endpoints. The previous production endpoints will be deprecated 30 Jan 2026. Pre-production endpoints were deprecated 5 Dec 2025. See Endpoint Migration for details.

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 reference payload request sends a cached offer ID from a preceding Availability response. It requires both a preceding search (either by location or by ID) request and an Availability request, or a SearchComplete request.

As an alternative, you can send full offer details in the Add Hotel Reservation full payload request.

Multi-room sell requests

When making a reservation, Travelport attempts to sell the number of rooms requested; however, 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 is 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

Hotel APIs that create a new reservation or add a new segment to an existing reservation verify the reservation request with the guarantee type and price returned in preceding steps in the workflow (either theAvailability or SearchComplete.response.) When there is any difference, the API does not yet create the reservation but instead returns an error to notify about the change. To accept the change, send the request a second time with the applicable query parameter/s below. Do not send either of these query parameters in the initial request.

If you do not want to proceed with the booking because of the changes, you are not required to send a second booking request with the false value/s per below. You can simply let these offers expire.

Object Description

acceptPriceChangeInd

Boolean. Send with true to accept any difference in the current sell price from the total price returned in an earlier response. Default is false; terminates the sell process without booking.

acceptGuaranteeChangeInd

Boolean. Send with true to accept any difference in the guarantee type from the guarantee type returned in an earlier response. (The guarantee types checked for differences are guarantee required, deposit required, prepay required.) Default is false; terminates the sell process without booking.

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 objects.


Offer*

ID of the offer to add to the booking.

id* : String. Offer identifier for the offer to add. Send the value from the response returned earlier in the workflow, either Availability or SearchComplete:

  • Availability: Send the value returned in CatalogOffering/id for the instance of CatalogOffering for the offer to add.

  • SearchComplete: Send the value returned in propertyItems/lowestPublicAvailableRate/rateKey/value for the instance of propertyItems to add.





Example request body

 "ReservationDetail": {
  "Offer": [
   {
    "@type": "Offer",
    "id": "62b3ced3-92f7-47b3-adb1-03588c5dc5a7:190000fa-366c-4ffd-a4d1-59d17177c774"
   }
  ],
  "Payment": [
   {
    "@type": "Payment",
    "Amount": {
     "code": "USD",
     "value": 308.43
    }
   }
  ],
  "FormOfPayment": [
   {
    "@type": "FormOfPaymentPaymentCard",
    "PaymentCard": {
     "@type": "PaymentCardDetail",
     "expireDate": "0825",
     "CardType": "Credit",
     "CardCode": "VI",
     "CardHolderName": "Frank Sinatra",
     "CardNumber": {
      "@type": "CardNumber",
      "PlainText": "XXXXXXXXXXX"
     },
     "SeriesCode": {
      "@type": "SeriesCode",
      "PlainText": "XXX"
     },
     "PersonName": {
      "@type": "PersonNameDetail",
      "Given": "Bill",
      "Surname": "Thisguy"
     },
     "Address": {
      "@type": "AddressDetail",
      "Number": {
       "value": "125"
      },
      "Street": "Billing Address Street",
      "AddressLine": [
       "125 Billing Address Street"
      ],
      "City": "Claremont",
      "County": "Los Angeles",
      "StateProv": {
       "value": "CA"
      },
      "Country": {
       "value": "US"
      },
      "PostalCode": "91711-3323"
     },
     "Telephone": [
      {
       "@type": "TelephoneDetail",
       "countryAccessCode": "1",
       "areaCityCode": "909",
       "phoneNumber": "1231234",
       "cityCode": "DEN"
      }
     ],
     "Email": [
      {
       "value": "smith@example.com"
      }
     ]
    }
   }
  ],
  "Traveler": [
   {
    "@type": "Traveler",
    "PersonName": {
     "@type": "PersonName",
     "Given": "Jon",
     "Surname": "Smith",
     "Title": "Mr"
    },
    "Telephone": [
     {
      "@type": "TelephoneDetail",
      "countryAccessCode": "91",
      "areaCityCode": "011",
      "phoneNumber": "9891766469",
      "cityCode": "DL"
     }
    ],
    "Email": [
     {
      "value": "smith@example.com"
     }
    ]
   }
  ]
 }
}

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. See below for an example.

The Add Reservation reference 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 per below only for the reference payload response. Reservation/id returns the offer identifier sent in the reference payload request.

Example