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:
Use this base path after you have migrated to the new credentials from Travelport (using .net instead of .com):
|
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.
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
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:
|
acceptGuaranteeChangeInd |
Boolean. Behaviors are as follows:
|
Request Body
ReservationDetail*
Top level object for the request.
Includes the Offer, Receipt, FormOfPayment, Payment, ReservationComment, and TravelAgency.

Receipt*
Mandatory top level object for confirmation details.
Includes Confirmation object.
Confirmation*
Confirmation details.
Includes ConfirmationStatus and OfferStatus objects.
ConfirmationStatus*
Status of confirmation.
Includes Locator object.
Status* : String. Status associated to the sold hotel segment. Send the value from the Create Reservation response:
Receipt/Confirmation/ConfirmationStatus
Locator*
The reservation locator code (Travelport) or confirmation number (Supplier). Send the value from the Create Reservation response:
Receipt/Confirmation/ConfirmationStatus/Locator
source* : String. Content source – either two-digit GDS or Supplier code.
Send the value from the Create Reservation response
Receipt/Confirmation/ConfirmationStatus/Locator/source
sourceContext* : String. Either Travelport or Supplier.
Send the value from the Create Reservation response
Receipt/Confirmation/ConfirmationStatus/Locator/sourceContext
value* : String. If sourceContext is Travelport, the value is the PNR locator code.
If sourceContext is Supplier, the value is the supplier confirmation number.
Send the value from the Create Reservation response
Receipt/Confirmation/ConfirmationStatus/Locator/value
OfferStatus*
Status of the offer.
Status* : String. Status associated to the offer. Send the value from the Create Reservation response:
Receipt/Confirmation/OfferStatus/Status

Offer*
Top level object for reservation details.
Includes Identifier, Product, Price, and TermsAndConditionsFull objects.
Identifier*
Top level object for room rate source.
authority* : String. Send the value from CatalogOffering/Identifier/authority in the Availability response.
Product*
Details about the property, dates, and number of guests.
Includes PropertyKey and DateRange objects.
bookingCode* : String. Send the value from ProductOptions/ProductBooking in the Availability response for the offer (aka rate) to book.
guests* : Number. Total number of guests; 1-9 inclusive supported.
Quantity : Number. The number of rooms requested; 1-9 inclusive supported. If not provided, default quantity is 1.
DateRange*
Reservation date range.
start* : String. Check-in date in YYYY-MM-DD format. Used with end to designate a range of dates.
end* : String. Check-out date in YYYY-MM-DD format.
specific* if no start and end date pair : String. Same day check-in and -out date in YYYY-MM-DD format.
PropertyKey*
Property ID information.
chainCode* : String. Two-character chain code to book.
propertyCode* : String. Property code of the property within the hotel chain.
Price *
Sends price details from Availability or Rules response.
Includes TotalPrice and CurrencyCode.
TotalPrice*
Number. Value from Price/TotalPrice in the Availability or Rules response.
CurrencyCode*
CurrencyCode from the Availability or Rules response.
decimalPlace* : Number. Number of decimal places.
value* : String. Three-character currency code.
TermsAndConditionsFull* when returned in the Availability response
Terms and conditions top level object.
Includes the ProductRateCodeInfo object.
ProductRateCodeInfo* when returned in the Availability response
Top level object for information associated with negotiated rate plan codes, when applicable.
Includes RateCodeInfo.
RateCodeInfo* when returned in the Availability response
Information on the rate code from the Availability response:
value* when returned in the Availability response : String. Send the value from ProductRateCodeInfo/RateCodeInfo/value
rateID* when returned in the Availability response : String. Send the value from ProductRateCodeInfo/RateCodeInfo/rateID
rateCategory : String. Send the value from ProductRateCodeInfo/RateCodeInfo/rateCategory
rateName : String. Send the value from ProductRateCodeInfo/RateCodeInfo/rateName

FormOfPayment*
Top level object for form of payment details. Includes PaymentCard object.
PaymentCard*
Form of payment details.
expireDate*: String. Credit card expiration date in MMYY format.
CardType*: String. Type of card including Credit, Debit, and Gift.
CardCode* : String. Code for credit card type.
CardHolderName*: String. Name on credit card.
Includes CardNumber, SeriesCode, Telephone, and Address objects.
CardNumber*
Card number details.
PlainText*: String. Credit card number.
SeriesCode
Security code of card.
PlainText* for certain suppliers: String. The credit card three- or four-digit CVV code.
Booking.com requires the CVV code.
Telephone
Telephone information associated with card.
countryAccessCode: String. Phone country code.
phoneNumber: String. Phone number.
areaCityCode: String. Phone local area code.
cityCode: String. Agency city code.
Address
Billing address details. Includes Number, Street, AddressLine, City, StateProv, Country, and PostalCode objects.
Number
Top level object for street number of billing address.
value: String. Street number value.
Street
String. Street name.
AddressLine
String. Address number and street name.
City
String. The city of the billing address.
County
String. The county of the billing address.
StateProv
Top level state or province object.
value: String. State or province of billing address.
name: String. Full state or province name.
Country
Country of billing address.
Value: String. Standard two-letter coded value for country.
Id: String. Custom user-assigned identifier for the country.
Name: String. Full country name.
codeContext: String. Organization that provided the Id number.
PostalCode
String. Postal code of billing address.
Billing email address.
value: String. Billing email address.

Payment*
Top level object for payment details.
The Payment object explicitly denotes the amount expected to be charged for the hotel reservation as follows:
-
For Prepay Required rates, the full total amount is used. This amount will be charged to the credit card on this transaction. Indicators should be set as: depositInd = true; guaranteeInd = false.
-
For Deposit Required rates, the deposit amount is used. This amount will be charged to the credit card on this transaction. Indicators should be set as: depositInd = true; guaranteeInd = false.
-
For Guarantee Required rates, the full total amount is used. This amount is expected to be charged to the credit card at check in. Indicators should be set as: depositInd = false; guaranteeInd = true.
id: String. Customer-assigned identifier for the payment.
PaymentRef: String. Customer-assigned name for the payment.
depositInd*: Boolean (true/false). If set to true, user expects credit card to be charged to support deposit or prepay rate.
guaranteeInd*: Boolean (true/false). If set to true, user expects payment due at check in at the hotel.
Includes Amount object.
Amount*
Amount of payment.
code*: String. Currency code.
value*: String. Amount to pay.
TravelAgency
Optional top level object for travel agency information. Includes AgencyPCC and Telephone objects.
AgencyPCC
Top level object.
agencyCode: String. Agency PCC code.
Telephone
Top level object for agency telephone information.
phoneNumber: String. Agency telephone number.
areaCityCode: String. Agency phone local area code.
phoneUseType: String. Agency code for how phone is used. (e.g., Home, Business, Emergency Contact, Travel Arranger, Day, Evening)
cityCode: String. Agency city code.


Travelport Hotel Kit allows for the addition of these types of remarks on the Create/Add message:
-
Notepad remarks
-
General
-
Historical
-
Confidential
-
-
Unassociated remarks
-
Special Instruction remarks
-
Accounting remarks
The following objects noted as required are required only if ReservationComment is sent.
ReservationComment
Optional top level object for remarks. Includes Comment object.
commentSource*: Originator of comment. Supported value is Agency.
shareWith*: Designates visibility of remark. Send the following for each type of remark:
Notepad remarks: Agency
Unassociated remarks: Traveler
Special instructions: Supplier
Comment*
Array of name/value pairs.
name*: Type of remark. Send the following for each type of remark:
Notepad remarks: Two-character code. Use asterisk for any placeholder. (HS, CR, R*, **)
Unassociated remarks: ITIN COMMENTS
Special instruction remarks: SI
value*: String. Remark text. Character limits for each type of remark:
Notepad remarks: 87
Unassociated remarks: 70
Special instruction remarks: 50
Accounting
Optional top level object used for all DOCI remarks.
dataType*: Accounting remark designator. Accepted value: DOCI.
Includes NameValuePair object.
NameValuePair*
Array of name/value pairs.
name* : Type of remark. Supported values and meanings:
DYO Design Your Own Itinerary FS Fare Saver CR Canned Remarks TK Ticket Number Details AC Agent, Account, or Branch Details AR Replace Sign On Code X* Back Office Accounting Details FT Free Text
value*: String. Text to pair with name values above. Note the following character limits for each name value:
DYO 2 digit, numeric FS 9 characters total limit in format 1 (all numeric) or format 2 (numeric “–“ two alpha) CR 42 characters total limit in format (two numeric “.” two numeric “.” etc) TK 8 to 12 characters in format 1 (all numeric) or format 2 (numeric “-“ three numeric) AC 42 characters, alphanumeric and some special characters AR 10 characters, alphanumeric X* 84 characters, alphanumeric and some special characters FT 84 characters, alphanumeric and some special characters
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.