Attention: Please check the Hotel Release Notes page for the latest updates and enhancements.
Create Reservation Full Payload API Reference
POST |
book/reservations Base path: Pre-production https://api.pp.travelport.com/11/hotel/ Production https://api.travelport.com/11/hotel/ |
Related Content: Hotel Guide, Hotel Workflow Diagram, Hotel Availability API Reference
Use the Create Reservation full payload request to book a room by sending stay details and the booking code from the Availability response, along with traveler, form of payment, and payment information. The full payload request sends full reservation information instead of an offer identifier from the Availability response as in the reference payload request.
Travelport will attempt to sell the number of rooms requested, but the supplier may not be able to accommodate the total number of rooms. Each room sold will create a unique hotel segment in the Travelport PNR.
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 will be associated with a different Traveler name
If the number of rooms requested is not equal to the number of Traveler names in the request, each room will be associated to the first Traveler name.
Request
Also see Authorization and Common Hotel API Headers.
Query Parameters
Travelport has introduced an automatic check of the rate used in the reservation request. If the guarantee type or price has changed from what was received in the availability response, Travelport will return an error instructing the user to decide to accept this change. If the user wants to accept the change, the relevant query parameter indicator (one or both) listed should be added and the CREATE/ADD request sent a second time.
Parameter | Description | Required/Optional |
---|---|---|
acceptPriceChangeInd |
Boolean: true indicates that the user accepts any difference in the total price received in availability versus what is the current price in the sell process; false denotes that the user does not accept a price difference and the sell process should not complete. Default is false. |
Optional |
acceptGuaranteeChangeInd |
Boolean: true indicates that the user accepts any difference in the guarantee type (guarantee required, deposit required, prepay required) received in availability versus what is the current guarantee type in the sell process; false denotes that the user does not accept a guarantee type difference and the sell process should not complete. Default is false. |
Optional |
Request Body
The tables in this section break down the Create Reservation request into its top level objects to separate the information in each.
Object |
Description |
Required/Optional |
---|---|---|
ReservationDetail |
Top level object for the request. Includes the Offer, Traveler, FormOfPayment, Payment, ReservationComment, and TravelAgency objects. |
Required |
Offer object
Object |
Description |
Required/Optional |
---|---|---|
Offer |
Top level object for reservation details. Includes Identifier, Product, Price, and TermsAndConditionsFull. |
Required |
Identifier |
Top level object for room rate source. |
Required |
|
String. Send the value from CatalogOffering/Identifier/authority in the Availability response. |
Required |
Product |
Details about the property, dates, and number of guests. Includes PropertyKey and DateRange. |
Required |
|
String. Send the value from ProductOptions/ProductBooking in the Availability response for the offer (aka rate) to book. |
Required |
|
String. Total number of guests. Numeric values 1-9 inclusive supported. |
Required |
|
Number. The number of rooms requested; 1-9 inclusive supported. If not provided, default quantity is 1. |
Optional |
DateRange |
Reservation date range. |
Required |
|
String. Check-in date in YYYY-MM-DD format. |
Required |
|
String. Check-out date in YYYY-MM-DD format. |
Required |
|
String. Same day check-in and -out date in YYYY-MM-DD format. Send specific only when a check-in and check-out both happen on the same day.
|
Required if no start and end date pair. |
PropertyKey |
Property ID information. |
Required |
|
String. Two-character chain code to book. |
Required |
|
String. Property code of the property within the hotel chain. |
Required |
Price |
Top level object. Includes CurrencyCode and TotalPrice. |
Required |
CurrencyCode |
Top level object. |
Required |
|
Number. Number of decimal places for the currency code. |
Required |
|
String. Three-character currency code for the offer returned in either the Availability or Rules response. |
Required |
TotalPrice |
Number. Sends price details from the response from either Availability (send the value in CatalogOffering/Price/TotalPrice of the offer to book) or Rules (send the value in Offer/Price/TotalPrice). Includes TotalPrice and CurrencyCode. Although you can send the price returned from either Availability or Rules, the Rules pricing may be more accurate so it is recommended to send that value if you ran that request.
|
Required |
TermsAndConditionsFull |
Terms and conditions top level object. Includes the ProductRateCodeInfo object. |
Required when returned in the Availability response |
ProductRateCodeInfo |
Top level object for information associated with any negotiated rate plan code for the offer to book, if a rate code was returned for that offer in the Availability response. Includes RateCodeInfo. |
Required when returned in the Availability response |
RateCodeInfo |
Rate code details from the Availability response as follows: |
Required when returned in the Availability response |
|
String. Send the value from ProductRateCodeInfo/RateCodeInfo/value |
Required when returned in the Availability response |
|
String. Send the value from ProductRateCodeInfo/RateCodeInfo/rateID
|
Required when returned in the Availability response |
|
String. Send the value from ProductRateCodeInfo/RateCodeInfo/rateCategory |
Optional |
|
String. Send the value from ProductRateCodeInfo/RateCodeInfo/rateName |
Optional |
Traveler object
Object |
Description |
Required/Optional |
---|---|---|
Traveler |
Traveler details. Includes PersonName, Telephone, Email, and CustomerLoyalty objects. |
Required |
PersonName |
Traveler details. Travelport+ limits the combination of Given and Surname to 22 characters. Given name must have at least one character. PersonName exceeding 22 characters is truncated in the response.
|
Required |
|
String. Traveler first name. |
Required |
|
String. Traveler last name. |
Required |
|
String. Salutation of honorific (e.g. Mr., Mrs., Ms., Miss, Dr.) |
Optional |
Telephone |
Traveler telephone details. |
Required |
|
String. Phone country code. |
Optional |
|
String. Phone number. |
Required |
|
String. Phone local area code. |
Required |
|
String. Phone city code. |
Optional |
|
Traveler email address. Booking.com and Expedia require a traveler email address in the Create Reservation and Add Reservation requests. Both systems send a confirmation email to the traveler moments after the booking completes.
|
Required for certain suppliers |
|
String. Traveler email address. |
Required |
CustomerLoyalty |
One frequent guest number and / or one frequent flyer number. |
Optional |
|
String. Two character hotel or air supplier code or brand code of the loyalty program. |
Required if object used. |
|
String. Number on loyalty card. |
Required if object used. |
|
String. “hotel” for designating frequent guest or “air” for designating frequent flyer. |
Required if object used. |
FormOfPayment object
Object |
Description |
Required/Optional |
---|---|---|
FormOfPayment |
Top level object for form of payment details. Includes PaymentCard. |
Required |
PaymentCard |
Form of payment details. Includes CardNumber, SeriesCode, Telephone, and Address objects. |
Required |
|
String. Credit card expiration date in MMYY format. |
Required |
|
String. Type of card including Credit, Debit, and Gift. |
Required |
|
String. Code for credit card type. |
Required |
|
String. Name on credit card. |
Required |
CardNumber |
Card number details. |
Required |
|
String. Credit card number. |
Required |
SeriesCode |
Security code of card. |
|
|
String. The credit card three- or four-digit CVV code. Booking.com and Expedia require the CVV code.
|
Required for certain suppliers. |
Telephone |
Telephone information associated with card. |
|
|
String. Phone country code. |
Optional |
|
String. Phone number. |
Optional |
|
String. Phone local area code. |
Optional |
|
String. Agency city code. |
Optional |
Address |
Billing address details. Includes Number, Street, AddressLine, City, StateProv, Country, and PostalCode objects. |
Optional |
Number |
Top level object for street number of billing address. |
Optional |
|
String. Street number value. |
Optional |
Street |
String. See name value. |
Optional |
AddressLine |
String. Address number and street name. |
Optional |
City |
String. The city of the billing address. |
Optional |
County |
String. The county of the billing address. |
Optional |
StateProv |
Top level state or province object. |
Optional |
|
String. State or province of billing address. |
Optional |
|
String. Full state or province name. |
Optional |
Country |
Country of billing address. |
Optional |
|
String. Standard two-letter coded value for country. |
Optional |
|
String. Custom user-assigned identifier for the country |
Optional |
|
String. Full country name. |
Optional |
|
String. Organization that provided the Id number. |
Optional |
PostalCode |
String. Postal code of billing address. |
Optional |
|
Billing email address. |
Optional |
|
String. Billing email address. |
Optional |
Optional objects - Payment, TravelAgency
Object |
Description |
Required/Optional |
---|---|---|
Payment |
Top level object for payment details. The payment object is used to explicitly denote the amount expected to be charged for the hotel reservation in this style:
Includes Amount object. |
Required |
|
String. Customer-assigned identifier for the payment. |
Optional |
|
String. Customer-assigned name for the payment. |
Optional |
|
Boolean (true/false). If set to true, user expects credit card to be charged to support deposit or prepay rate. |
Required |
|
Boolean (true/false). If set to true, user expects payment due at check in at the hotel. |
Required |
Amount |
Amount of payment. |
Required |
|
String. Currency code. |
Required |
|
String. Amount to pay. |
Required |
TravelAgency |
Optional top level object for travel agency information. Includes AgencyPCC and Telephone objects. |
Optional |
AgencyPCC |
Top level object. |
Optional |
|
String. Agency PCC code. |
Optional |
Telephone |
Top level object for agency telephone information. |
Optional |
|
String. Agency telephone number. |
Optional |
|
String. Agency phone local area code. |
Optional |
|
String. OTA code for how phone is used. (e.g. Home, Business, Emergency Contact, Travel Arranger, Day, Evening) |
Optional |
|
String. Agency city code. |
Optional |
Optional objects - Comment
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
Object |
Description |
Required/Optional |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ReservationComment |
Optional top level object used for notepad, unassociated, and special instruction remarks. Includes Comment object. |
Optional |
||||||||||||||||
|
Originator of comment. Accepted value: Agency. |
Required |
||||||||||||||||
|
Designates visibility of remark.
Notepad remarks: Agency
Unassociated remarks: Traveler
Special instructions: Supplier |
Required |
||||||||||||||||
Comment |
Array of name/value pairs. |
Required |
||||||||||||||||
|
Type of remark.
Notepad remarks: 2 character code. Use asterisk for any placeholder. (HS, CR, R*, **)
Unassociated remarks: ITIN COMMENTS
Special instruction remarks: SI |
Required |
||||||||||||||||
|
String. Remark text. Limits:
Notepad remarks: 87 characters
Unassociated remarks: 70 characters
Special instruction remarks: 50 characters |
Required |
||||||||||||||||
Accounting |
Optional top level object used for all DOCI remarks. Includes NameValuePair object. |
Optional |
||||||||||||||||
|
Accounting remark designator. Accepted value: DOCI. |
Required |
||||||||||||||||
NameValuePair |
Array of name/value pairs. |
Required |
||||||||||||||||
|
Type of remark. Accepted values:
|
Required |
||||||||||||||||
|
String. Text to pair with name values above. Text limitations for each name value are listed below.
|
Required |
Response
The response for the Create Reservation Full Payload request is nearly identical to the response for the reference payload request. The only difference is that the response to the reference payload request returns Reservation/id, which is the offer ID sent in that request. This is not returned for the full payload request.
See the Create Reservation Reference Payload API Reference for the response table and examples.
Example Request
The example below shows the Create Reservation full payload request.
{
"ReservationDetail": {
"Offer": [
{
"Identifier": {
"authority": "BKNG"
},
"Product": [
{
"type": "ProductHospitality",
"Quantity": 1,
"PropertyKey": {
"chainCode": "CN",
"propertyCode": "B6381"
},
"DateRange": {
"start": "2022-02-22",
"end": "2022-02-25"
},
"bookingCode": "147245301_307884210_1_1_0",
"guests": "1"
}
],
"Price": {
"type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"TotalPrice": 150,
},
"TermsAndConditionsFull": [
{
"type": "TermsAndConditionsFullHospitality",
"ProductRateCodeInfo": [
{
"RateCodeInfo": {
"value": "LV1",
"rateName": "",
"rateID": "",
"rateCategory": ""
}
}
]
}
]
}
],
"Traveler": [
{
"PersonName": {
"Given": "John",
"Surname": "Smith"
},
"Telephone": [
{
"type": "TelephoneDetail",
"countryAccessCode": "1",
"areaCityCode": "909",
"phoneNumber": "1231234",
"cityCode": "DEN"
}
],
"Email": [
{
"value": "smith@example.com"
}
]
}
],
"Payment": [
{
"Amount": {
"code": "GBP",
"value": 143.0
}
}
],
"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": "California"
},
"Country": {
"value": "US",
"id": "country_4",
"name": "United States",
"codeContext": "Example String Value"
},
"PostalCode": "91711-3323"
}
}
}
]
}
}
Example Response
The response for the Create Reservation Full Payload request is nearly identical to the response for the reference payload request. See the Create Reservation Reference Payload API Reference.
Error Messages
These error messages are specific to Create Reservation Full Payload. See the Create Reservation Reference Payload API Reference for general Create Reservation error messages.
SourceCode | StatusCode (HTTP code) | Message |
---|---|---|
|
400 |
Not able to reach IDM Authorization atomic or Authorization cannot be identified due to insufficient inputs. |
|
400 |
Product cannot be empty |
|
400 |
# of Rooms requested Must be between 1 and 9 |
|
400 |
ChainCode cannot be empty. |
|
400 |
ChainCode should be alphabetical and two characters long. |
|
400 |
PropertyCode cannot be empty. |
|
400 |
INVALID - ROOMMASTER PROPERTY NUMBER |
|
400 |
PROPERTY NOT AVAILABLE |
|
400 |
startdate and enddate cannot be empty. |
|
400 |
startdate is not valid. |
|
400 |
enddate cannot be less than startDate. |
|
400 |
startdate and enddate cannot be in the past. |
400 |
enddate is not valid. |
|
400 |
Cannot parse 2022-55-01: Invalid value for MonthOfYear (valid values 1 - 12): 55. Date format must be yyyy-MM-dd. |
|
400 |
Cannot parse 2022-05-55: Invalid value for DayOfMonth (valid values 1 - 28/31): 55. Date format must be yyyy-MM-dd. |
|
400 |
Cannot parse 2022-05: Text '2022-05' could not be parsed at index 7. Date format must be yyyy-MM-dd. |
|
400 |
CHECK OUT DATE BEYOND 332 DAYS INTO FUTURE |
|
400 |
Booking Code must be provided. |
|
400 |
UNSUCCESSFUL LINK SELL- MSG FROM LINK VENDOR PROPERTY NOT AVAILABLE DISTANCE AND DIRECTION OF ALTERNATE S FROM REQUESTED PROPERTY |
|
400 |
INVALID - NEED RATE CODE |
|
400 |
# of Guests request Must be between 1 and 9 |
|
400 |
Validation errors: Argument 'block_ids' requires argument 'incremental_prices'. |
|
400 |
Currency code cannot be empty. |
|
400 |
Total price cannot be empty |
|
|
400 |
processBooking: The supplied incremental price (0) is not correct for this block_id (18790106_344392930_1_2_0). If needed, please include any parameters that may affect the pricing, such as booker_country. asked_price: 0; available_price: 670.02; mode: 1; channel: 0 |
|
401 |
Unauthorised user. |
|
500 |
null |