Create Reservation Reference Payload API Reference
|
POST |
book/reservations/build 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, SearchComplete API Reference
Use the Create Reservation reference payload request to book a room using a cached offer from either of the preceding responses:
The reference payload sends an offer ID plus traveler details and both form of payment and payment information. It does not send full offer details as in the 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
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
The example below shows the reference payload to create a reservation using an offer ID from Hotel Availability.
ReservationQueryBuild*
Top level object for the request.
Includes the ReservationBuild object.
ReservationBuild*
Top level object for hotel sell request by offer ID.
May include the BuildFromCatalogOfferingHospitality, Traveler, FormOfPayment, Payment, ReservationComment, and TravelAgency objects.
BuildFromCatalogOfferingHospitality*
Object signifying hospitality request. Top level object for offer identifiers from the Availability response. Includes CatalogOfferingIdentifier object.
NumberOfRooms : Number. Supports values 1-9 inclusive. Number of rooms requested at a single property. If not sent, defaults to one room.
CatalogOfferingIdentifier*
Top level object for reference offer identifier.
value* : String. 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 book.
SearchComplete: Send the value returned in propertyItems/lowestPublicAvailableRate/rateKey/value for the instance of propertyItems to book.
Traveler*
Traveler details.
Includes PersonName, Telephone, Email, and CustomerLoyalty objects.
PersonName*
Traveler details.
Given*: String. Traveler first name.
Surname*: String. Traveler last name.
Prefix: String. Salutation of honorific (e.g. Mr., Mrs., Ms., Miss, Dr.)
Telephone*
Traveler telephone details.
countryAccessCode: String. Phone country code.
phoneNumber*: String. Phone number.
areaCityCode*: String. Phone local area code.
cityCode: String. Phone city code.
Email*: for certain suppliers
Traveler email address.
value*: String. Traveler email address.
CustomerLoyalty
One frequent guest number and / or one frequent flyer number.
programId* if object used: String. Two character hotel or air supplier code or brand code of the loyalty program.
value* if object used: String. Number on loyalty card.
supplierType* if object used: String. Send with hotel to designate number as frequent guest or air to designate as frequent flyer.
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; supported values are Credit, Debit, 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 amount 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, at booking, credit card is charged for deposit or prepay rate.
guaranteeInd*: Boolean (true/false). If set to true, no amounts are charged at booking; customer is to make payment 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.
The following objects noted as required* are required only if ReservationComment is sent.
ReservationComment
Optional top level object for remarks. See Comments and Remarks in the JSON Hotel APIs Guide for more about remarks.
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
Includes Comment object.
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 Create Reservation Payload request
{
"ReservationQueryBuild": {
"@type": "ReservationQueryBuild",
"ReservationBuild": {
"@type": "ReservationBuildFromCatalogOffering",
"BuildFromCatalogOfferingHospitality": {
"@type": "BuildFromCatalogOfferingHospitality",
"CatalogOfferingIdentifier": {
"value": "6269ddc1-a017-40cb-bce6-140d5e74e104:cc3280205f5ae9a9b7944c1002c88b33"
}
},
"Traveler": [
{
"@type": "Traveler",
"PersonName": {
"Given": "Bear",
"Surname": "Das",
"Title": "Mr"
},
"Telephone": [
{
"@type": "TelephoneDetail",
"countryAccessCode": "91",
"areaCityCode": "011",
"phoneNumber": "9891766469",
"cityCode": "DL"
}
],
"Email": [
{
"value": "matt.singh@galileo.co.in"
}
],
"CustomerLoyalty": [
{
"value": "1111111",
"programId": "IQ",
"supplierType": "hotel"
},
{
"value": "222222",
"programId": "IT",
"supplierType": "air"
}
]
}
],
"FormOfPayment": [
{
"@type": "FormOfPaymentPaymentCard",
"PaymentCard": {
"@type": "PaymentCardDetail",
"expireDate": "1125",
"CardType": "Credit",
"CardCode": "VI",
"CardHolderName": "Frank Sinatra",
"CardNumber": {
"@type": "CardNumber",
"PlainText": "4444333322221111"
},
"SeriesCode": {
"@type": "SeriesCode",
"PlainText": "343"
},
"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"
}
]
}
}
],
"Payment": [
{
"@type": "Payment",
"Amount": {
"code": "USD",
"value": 143.37
},
"guaranteeInd": true,
"depositInd": false
}
]
}
}
}
Response
Top level objects
ReservationResponse
Top level object for the response.
traceID: Identifier that can be used for troubleshooting. See Trace and Transaction IDs.
Reservation
Top level object. Properties:
id: Internal identifier for the response.
Includes Offer, Traveler, TravelerProduct, and Receipt objects. May include ReservationComment and Accounting.
Offer
Top level object for offer details. Properties:
id: Offer identifier sent in the reference payload request to book that offer. Not returned in the full payload response; this is the only difference in the two responses.
Includes Identifier object and, detailed in tables below, Product, Price, and TermsAndConditionsFull objects. May include DepositPolicy object.
Identifier
Defines the system that returned the offer. Properties:
authority: Source of information, either TVPT (Travelport) or BKNG (Booking.com).
value: Reference offer ID value.
Traveler
Traveler details. See below.
TravelerProduct
Traveler associated with offer (segment). See below.
FormOfPayment
Details for the form of payment used to pay for this offer. See below.
Payment
Details for the amount paid. See below.
Receipt
Top level object for confirmation details. See below.
ReservationComment
Top level object for remarks stored in the PNR. See below.
Accounting
Top level object for optional Accounting remarks. See below.
Product
Product is a common object in the model. Not all objects in this table may be returned in this specific API.
Array. One instance for each product; has @type ProductHospitality. Key value pairs:
bookingCode: Booking code from the Availability response.
adaCompliant: Indicator for ADA compliance, either Yes, No, or Unknown.
propertyName: Name of property offering this product.
guests: Number of guests.
Quantity: Number of rooms available matching this rate.
Includes PropertyKey, PropertyAddress, RoomType, Telephone, GuestCounts, and DateRange objects.
PropertyKey
When ReferenceList is returned, PropertyKey includes the key value pairs:
chainCode: Chain code for the property
propertyCode: Property code for the property.
PropertyAddress
Top level property address object. Key value pairs:
City: Property city.
PostalCode: Property postal code.
Includes AddressLine, StateProv, and Country objects.
AddressLine
Text string for property street address.
StateProv
Property state or province. Key value pairs:
value: The state or province code of the property address.
name: State/province name or code.
Country
Property country. Key value pairs:
name: Country name or code.
Telephone
Telephone number of property. Key value pairs:
phoneNumber: String. Accepted characters: numeric, dash, space, period.
cityCode: IATA city code if referenced by phone number
GuestCounts
Object for number and type of guests.
GuestCount
Array describing guest details. Key value pairs:
count: Numeric. Number of travelers.
ageQualifyingCode: Typically used only for children or if traveler age is relevant, such as for a senior discount. Supported numeric values and meanings:
10: Adult traveler
8: Child traveler
RoomType
Room type detail. Includes RoomCharacteristics, Description, and RoomAmenity objects.
RoomCharacteristics
Room details. Key value pairs:
category: Category of the room.
typeCode: OTA room type code.
smokingAllowed: Yes indicates smoking in room is allowed; No indicates smoking not allowed in room.
wifiIncluded: Yes indicates wifi is included in rate; No indicates wifi is not included.
viewCode: Free text describing the view.
shortRoomDescription: Normalized text for grouping rates against similar room types.
accessibleRoom: Yes indicates room has accessibility features; No indicates it does not.
Includes BedConfiguration object.
BedConfiguration
Configuration of bed(s) in room. Key value pairs:
quantity: Number of beds in the room.
bedType: Bed type values as follows:
- King Bed(s)
- Queen Bed(s)
- Twin Bed(s)
- Sofa Bed(s)
- OTHER Bed(s)
size: Size of bed(s) in the room. Approximate measurement of the bed(s).
Description
A room description text string. Key value pairs:
languages: The language code of the description text.
value: Room description text (e.g., Save 15 Pct Off Studio King Suite Full Breakfast:Free WiFi:32in TV).
RoomAmenity
Room amenity name and description. Key value pairs:
description: Description of amenity received from supplier.
code: OTA code associated to amenity
includedIndicator: Yes indicates amenity is included with rate.
RoomOccupancy
Room occupancy value. Key value pair:
maxOccupancy: The maximum number of guests allowed in the room.
DateRange
Check-in and -out dates. Key value pairs:
start: Check-in date in YYYY-MM-DD format.
end: Check-out date in YYYY-MM-DD format.
Price is a common object in the model. Not all objects in this table may be returned in this specific API.
Price
Price details for this offer or rate. Key value pairs:
Base: Base price before taxes and fees. Not returned by all suppliers.
TotalTaxes: Total taxes applied to the base price. Not returned by all suppliers.
TotalFees: Total fees included in Total Price.
TotalPrice: Total price of this offer including the base price and all taxes and fees.
Includes CurrencyCode and PriceBreakdown objects.
CurrencyCode
The currency code the amount is provided in. Key value pairs:
decimalPlace: Number of decimal places for this currency.
value: Three-character currency code.
PriceBreakdown
The information returned in PriceBreakdown can vary by provider and location. Key value pairs:
roomPricingType: A string provided by the hotel to describe the rate, such as per night or per stay.
priceChangesDuringStayInd: True indicates the price changes during requested dates; multiple instances of roomPricingType=per night are returned.
If roomPricingType = Per night, may include NightlyRate, AverageNightlyRate, and AmenitySurcharges objects.
If roomPricingType = Per stay, Description returns a rate description text string, e.g., Advance Purchase-Ro-Free WiFi..
May include Amount and Commission objects.
NightlyRate
Rate per night. Key value pairs:
startDate: Start date for the nightly rate in YYYY-MM-DD format.
nights: Number of nights the nightly rate is valid.
Includes Amount object.
Amount
The rate amount. Key value pairs:
Base: Base amount of the rate not including taxes or fees.
Total: Total for this group of nights.
Includes CurrencyCode (see above), Taxes, and Fees objects.
Taxes
Tax details.
TotalTaxes: Total of all taxes included in this rate.
Includes Tax and TaxPercent objects.
Tax
Breakdown of the tax. Key value pairs:
currencyCode: Three character currency code.
description: OTA description of tax.
purpose: Supplier returned description of tax.
includedInBase: Indicates whether tax is included in Amount/Base value. Possible values are Yes, No, Unknown.
taxCode: OTA code for the tax.
value: The amount of the tax
TaxPercent
Returned when the tax is expressed as a percentage of the amount. Key value pairs:
taxCode: Any code for the tax.
includedInBase: Indicates whether tax is included in the base amount. Possible values are Yes, No, or Unknown.
value: The tax percentage amount.
Fees
Fees may be included in the TotalPrice due separately at the property. Key value pairs:
TotalFees: Total fees included in the total price.
TotalAdditionalFeesPaidLocally: Fees due separately at the property. Expect them to be paid in local currency.
Includes Fee object.
Fee
Fee details. Key value pairs:
description: Hotel provider's text explanation of the fee, e.g. Resort Fee.
feeCode: Hotel provider's explanation of the fee; can be returned either as a code or as text.
feeApplication: How the fee is applied. Possible values are:
- PERPERSON
- PERROOM
- PERACCOMMODATION
- PERHOUSE
- PERAPARTMENT
- PERADULT
feeFrequency: The frequency of the fee. Possible values are:
- PERNIGHT
- PERDAY
- PERSTAY
- PERWEEK
- ROUNDTRIP
- ONEWAY
includedInBaseInd: Boolean. True indicates fee is included in Base Price.
includedInTotalPriceInd: Boolean. True indicates fee is included in Total Price.
Includes FeeAmountOrPercent object.
FeeAmountOrPercent
Defines whether the fee is charged as an amount or percentage. Key value pairs:
Amount: Returned if fee is charged as fixed amount.
code: Three-character currency code.
value: Exact amount of fee.
Percent: Returned if fee is charged as percentage of base amount.
Commission
Commission details. Returned with either @type CommissionPercent (commission is a percentage) or @type CommissionAmount (commission is a set amount).
When returned with @type CommissionPercent:
application: A value of Commissionable indicates the rate pays commission. Non-paying indicates no commission.
Percent: The commission percentage.
When returned with @type CommissionAmount:
application: A value of Commissionable indicates the rate pays commission. Non-paying indicates no commission.
Amount: Exact amount of commission paid for this booking.
code: Three-character currency code.
value: Numeric amount of commission.
AverageNightlyRate
The average nightly rate. Key value pairs:
code: Three-character currency code of amount.
approximateInd: true indicates this is a calculated value; false indicates this is the value returned by the property.
value: Numeric amount of average nightly rate.
AmenitySurcharges
Amenity surcharges detail. Includes Surcharge object.
Surcharge
Additional charges related to requested amenities. Key value pairs:
currencyCode: Three-character currency code.
description: Description of charge (e.g., Roll away Surcharge)
value: Surcharge amount.
TermsAndConditionsFull
TermsAndConditionsFull is a common object in the model. Not all objects in this table may be returned in this specific API.
Top level object for terms and conditions, instances of TermsAndConditionsFullHospitality.
RatePaymentInfo: Postpay or Prepay designation.
CustomerLoyaltyIDRequiredAtReservation: Boolean. True indicates the rate returned is contingent on a membership number, typically a frequent guest or frequent flyer loyalty number.
RateQualificationIDRequiredAtCheckIn: Boolean. True indicates the rate returned is contingent on qualification to be presented at check in at the property; guest must show proof of qualifying, typically an ID for government, military, workplace, association, or membership.
As returned from supplier, objects returned may include TextBlock, CustomerLoyalty, Guarantee, CancelPenalty, DepositPolicy, AcceptedCreditCard, Description, MealsIncluded, ProductRateCodeInfo, and CheckInOutPolicy.
TextBlock
Array. Each instance is one rule or set of information. Key value pair:
title: The title of the rule or information. May include any of the following Rule Types. Not every property returns all of these types. Some properties do not return any title. Only English is supported for these values.
Supported values:
Promotional Data
Rate Description
Room Rate Data
Rate Text
Guarantee
Cancellation
Deposit
Check in/out
Room detail
Extra charges
Packages
Property
Location
Miscellaneous
Rate Amount
Alternate Rate Amount
Rate Comment
FAX
Phone
Special Information
Information
Room Hold Expiration Time
Includes the TextFormatted object providing the rule or information itself.
TextFormatted
The rule or information itself. Key value pairs:
language: The language the rule is provided in.
value: The actual text of the hotel rule or information.
CustomerLoyalty
String. Indicates customer loyalty information. Key value pairs:
value: Number on loyalty card.
programId: For frequent guest number, the two-character hotel supplier or brand code. For frequent flyer number, the two-character air supplier code of the loyalty program.
supplierType: Returns hotel for frequent guest number or air or for frequent flyer number.
Guarantee
Array. Indicates if the room rate requires a guarantee to be booked. Key value pair:
guaranteeType: The type of guarantee. Supported values:
PrepayRequired
DepositRequired
GuaranteesNotRequired
Profile
DepositNotRequired
NoGuaranteesAccepted
GuaranteeRequired
CC/DC/Voucher
PrepayNotRequired
GuaranteesAccepted
NoDepositsAccepted
CancelPenalty
Array. CancelPenalty breaks down any cancellation penalties for the rate. Key value pair:
Refundable: Yes indicate the rate is refundable. No indicates no refund is available for a cancellation.
Includes the Deadline and HotelPenalty objects.
Deadline
Cancellation penalty deadline details. Key value pair:
Time: The deadline time in 24-hour HH:MM:SS format.
Includes SpecificDate object.
SpecificDate
Details on cancellation penalty. Key value pairs:
specific: Specific cancellation date in YYYY-MM-DD format.
start: Date in YYYY-MM-DD format. Used with end to designate a date range.
end: Date in YYYY-MM-DD format.
HotelPenalty
Cancellation penalty amount. Key value pairs depend on the @type value:
When returned with @type HotelPenaltyNights:
subjectToTax: Indicator whether penalty amount is subject to taxes, either Yes, No, Unknown.
Nights: The number of nights charged at the nightly rate for the cancellation fee.
When returned with @type HotelPenaltyPercent:
Percent: Percentage of total amount to be charged as penalty.
appliesTo: Returned as Amount.
When returned with @type HotelPenaltyAmount:
Amount: Exact penalty amount.
code: Three-character currency code.
value: Penalty amount.
DepositPolicy
Deposit details related to this booking. Includes Deposit object.
Deposit
Deposit total. Key value pairs:
remainderInd: True indicates deposit was a portion of the total price.
Date: Date deposit must be received.
Includes CurrencyAmount object.
CurrencyAmount
Amount of deposit and the currency code for that amount. Key value pairs:
code: Currency code.
value: Deposit amount.
AcceptedCreditCard
An array of accepted credit cards. Key value pair:
value: Two-character credit card code.
Description
Free-form text for a room and rate description.
MealsIncluded
The following meal attributes are returned only if true:
breakfastInd: Breakfast is included.
lunchInd: Lunch is included.
dinnerInd: Dinner is included.
ProductRateCodeInfo
Top level object for rate code details. Includes RateCodeInfo.
RateCodeInfo
Rate code information. Key value pairs:
rateName: Name of the rate plan.
rateID: ID of the rate plan associated with the negotiated rate plan code.
value: The negotiated rate plan code.
rateCategory: OTA rate category code.
Possible values:
Military
Convention
Credential
Weekly
Association
All
FamilyPlan
Club
Monthly
RackGeneral
FullInclusive
Promotional
Government
Industry/TravelAgentRate
PrePaid
Weekend
Corporate
Mutli-DayPackage
Tour
Employee
MultLevel/Negotiated/Secure
Package
Other
Leisure
VIP
SeniorCitizen
CheckInOutPolicy
Check in and out times. Key value pairs:
checkInTime: Local property check in time in 24 hour clock format.
checkOutTime: Local property check out time in 24 hour clock format.
Traveler
Traveler details. Properties:
id: Travelport system-generated traveler identification number in the format starting with letter T followed by a unique number.
Includes PersonName, Telephone, and Email objects.
PersonName
Properties:
Given: Traveler first name.
Surname: Traveler last name.
Prefix: Honorific title.
Telephone
Traveler telephone details. Properties:
phoneNumber: Phone number.
areaCityCode: Phone local area code.
countryAccessCode: Phone country code.
cityCode: Traveler city code.
Traveler email address. Properties:
value: Traveler email address.
CustomerLoyalty
One frequent guest number and / or one frequent flyer number. Properties:
programID: Two character hotel or air supplier code.
value: Number on loyalty card.
supplierType: Value of hotel for frequent guest program and air for frequent flyer program.
Traveler and offer reference numbers linking a specific traveler to a specific hotel segment (offer). Each offer has a linked traveler. Properties:
TravelerRef: Traveler reference number associated with offer in OfferRef.
OfferRef: Offer reference number associated with traveler in TravelerRef.
FormOfPayment
Top level object for form of payment details. Properties:
id: System-assigned reference id for the form of payment.
Includes PaymentCard object.
PaymentCard
Form of payment card details. Properties:
expireDate: string. Four number code for the month and year of expiration date, e.g., 0130 for January 2 2030.
CardCode: string. Two character card brand code.
CardHolderName: string. Name on card.
Includes CardNumber object.
CardNumber
Form of payment card number. Properties:
PlainText: string. Number on charge/debit card.
Payment
Top level object linking the FOP used to the segment purchased with that FOP.
Includes Amount, FormOfPaymentIndentifier, and OfferIdentifier objects.
Amount
Amount charged to the FOP. Properties:
value: numeric. Amount charged.
code: string. Three character currency code
FormOfPaymentIndentifier
The Travelport-assigned identifier for the FOP used for purchase.
Includes the Identifier object.
Identifier (for form of payment)
value: Travelport-generated identifier number for the form of payment used for this offer; starts with the characters FOP.
OfferIdentifier
Offer purchased with this FOP.
Includes Identifier object.
Identifier (for offer)
value: Travelport-generated identifier number for the offer purchased with this form of payment; starts with the character O.
Receipt
Top level object.
Includes OfferRef and Confirmation objects.
OfferRef
Travelport-assigned reference id number of the offer paid for.
Confirmation
Confirmation details.
Includes Locator and OfferStatus objects.
Locator
Locator information for the reservation. Key value pairs:
source: Content source. Two character supplier code. If source matches chain code, the offer is directly from the supplier. If source is BO, the offer is with Booking.com.
sourceContext: Either Travelport, Agency, or Supplier.
locatorType: Description of what value represents.
Travelport: Confirmation number; PNR locator
Agency: IATA Number
Booking.com: Confirmation number; PIN number
value: Reference number for locatorType.
creationDate: Date created in Travelport or supplier system in YYYY-MM-DD format.
Booking.com returns a PIN number along with the confirmation number for each sold hotel segment. If the agent/traveler needs to reconcile the booking with Booking.com, Booking.com requires both the PIN number and confirmation number to locate the segment in their system.
OfferStatus
Status of offer. Key value pair:
Status: Status associated to the sold hotel segment. Possible values include:
- Cancelled
- Confirmed
- Pending
- Rejected
ReservationComment
Remarks on the reservation. Properties:
commentSource: Source of comment, either Agency or Supplier.
shareWith: Describes who has visibility to the remark, either Agency or Traveler.
Includes Comment and AppliesTo objects.
Comment
Properties:
value: text component of the remark
name: type of remark
AppliesTo
Includes OfferIdentifier object. Returned for Special Instruction and Associated Remarks.
OfferIdentifier
The offer linked to this remark. Properties:
offerRef: Cross-reference to offer id for hotel segment linked to this remark.
Accounting
Object for accounting remarks. Properties:
dataType: Always DOCI
Includes NameValuePair object.
NameValuePair
Object defining types and text of accounting remarks. Properties:
value: text component of the remark
name: type of remark
CurrencyRateConversion
Returned only if requestedCurrency sent in the request. By default the Hotel APIs return all rates in the currency of the hotel's location. If requestedCurrency was sent in the request, the response returns the currency conversion rate of the local currency to the requested currency. The response does not convert any amounts.
Includes SourceCurrency, TargetCurrency, and ConversionRate objects.
SourceCurrency
The currency code based on the location of the hotel and used for all rates in the response. Key value pairs:
decimalPlace: Number of decimal places.
value: Currency code.
TargetCurrency
Currency code sent in the request in requestedCurrency. Key value pairs:
decimalPlace: Number of decimal places.
value: Currency code.
ConversionRate
Conversion rate. Key value pair:
value: Conversion rate of SourceCurrency value to TargetCurrency value. This value can be used to calculate, independently of the API, conversion for the rates in the response. The response does not convert any amounts.
Example response
{
"ReservationResponse": {
"Reservation": {
"@type": "ReservationDetail",
"Offer": [
{
"@type": "Offer",
"id": "O1",
"Identifier": {
"value": "6269ddc1-a017-40cb-bce6-140d5e74e104:cc3280205f5ae9a9b7944c1002c88b33",
"authority": "TVPT"
},
"Product": [
{
"@type": "ProductHospitality",
"Quantity": 1,
"bookingCode": "T00AABT",
"guests": 1,
"adaCompliant": "No",
"propertyName": "SpringHill Suites by Marriott Grand Rapids Airport Southeast",
"associatedCityCode": "GRR",
"associatedAirportCode": "GRR",
"PropertyAddress": {
"@type": "Address",
"AddressLine": [
"5250 28th St. SE"
],
"City": "Grand Rapids",
"StateProv": {
"value": "MI",
"name": "MI"
},
"Country": {
"name": "US"
},
"PostalCode": "49512"
},
"Telephone": {
"@type": "Telephone",
"phoneNumber": "464-1130",
"cityCode": "GRR"
},
"GuestCounts": {
"GuestCount": [
{
"count": 1,
"ageQualifyingCode": "10"
}
]
},
"PropertyKey": {
"@type": "PropertyKey",
"chainCode": "XV",
"propertyCode": "89550"
},
"TravelerContact": {
"@type": "TravelerContact",
"Email": {
"value": "matt.singh@galileo.co.in"
},
"Telephone": {
"@type": "Telephone",
"countryAccessCode": "91",
"areaCityCode": "011",
"phoneNumber": "9891766469",
"cityCode": "HDQ"
}
},
"RoomType": {
"@type": "RoomTypeDetail",
"RoomCharacteristics": {
"@type": "RoomCharacteristics",
"typeCode": "3",
"smokingAllowed": "No",
"wifiIncluded": "No",
"BedConfiguration": [
{
"quantity": 2,
"bedType": "Queen Bed(s)",
"size": "160 cm X 200 cm"
}
],
"accessibleRoom": "No"
},
"Description": {
"value": "AAA Caa Hot Deals, Membership Card Required, Suite, 2 Queen"
}
},
"DateRange": {
"start": "2025-10-16",
"end": "2025-10-17"
}
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "USD",
"decimalPlace": 2
},
"Base": 121.5,
"TotalTaxes": 21.87,
"TotalPrice": 143.37,
"PriceBreakdown": [
{
"@type": "PriceBreakdownHospitality",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"value": "USD",
"decimalPlace": 2
},
"Base": 121.5,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 21.87,
"Tax": [
{
"value": 21.87,
"currencyCode": "USD",
"taxCode": "08",
"purpose": "Lodging tax",
"description": "Lodging tax",
"includedInBase": "No"
}
]
},
"Total": 143.37
},
"Commission": {
"@type": "Commission",
"application": "Commissionable"
},
"roomPricingType": "Per stay",
"Description": "Best Available Rate"
},
{
"@type": "PriceBreakdownHospitality",
"roomPricingType": "Per night",
"NightlyRate": [
{
"@type": "NightlyRate",
"startDate": "2025-10-16",
"nights": 1,
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"value": "USD",
"decimalPlace": 2
},
"Base": 121.5,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 21.87,
"Tax": [
{
"value": 21.87,
"currencyCode": "USD",
"taxCode": "08",
"purpose": "Lodging tax",
"description": "Lodging tax",
"includedInBase": "No"
}
]
},
"Total": 143.37
}
}
],
"AverageNightlyRate": [
{
"value": 121.5,
"code": "USD"
}
]
}
]
},
"TermsAndConditionsFull": [
{
"@type": "TermsAndConditionsFullHospitality",
"CustomerLoyalty": [
{
"value": "1111111",
"supplierType": "Hotel"
},
{
"value": "222222",
"programId": "IT",
"supplierType": "Air"
}
],
"TextBlock": [
{
"@type": "TextBlock",
"title": "Address",
"TextFormatted": [
{
"value": "5250 28Th Street Se Grand Rapids Mi 49512"
}
]
},
{
"@type": "TextBlock",
"title": "Guarantee",
"TextFormatted": [
{
"value": "ID Required Must Guarantee Late Arrival"
}
]
},
{
"@type": "TextBlock",
"title": "Cancellation",
"TextFormatted": [
{
"value": "cancel: 143.37 usd cancel fee person room cancellation permitted up to 1 days before arrival."
}
]
},
{
"@type": "TextBlock",
"title": "Room detail",
"TextFormatted": [
{
"value": "Maximum Occupancy- 5 Guests"
}
]
},
{
"@type": "TextBlock",
"title": "Rate description",
"TextFormatted": [
{
"value": "T00Aabt: AAA Caa Hot Deals Membership Card Required Suite 2 Queen 2 Queen Mini Fridge Microwave 450 Square Feet/41 Square Metre Living/Sitting Area Wireless Internet Complimentary"
}
]
},
{
"@type": "TextBlock",
"title": "Rate amount",
"TextFormatted": [
{
"value": "12150 Person Night Starting 16 Oct For 1 Night"
}
]
},
{
"@type": "TextBlock",
"title": "Number Nights",
"TextFormatted": [
{
"value": "1"
}
]
},
{
"@type": "TextBlock",
"title": "Room rate",
"TextFormatted": [
{
"value": "Taxes - Total Tax/Surch/Fee - 21.87 P/Stay Taxes: 21.87 Usd Commissionable Rate"
}
]
},
{
"@type": "TextBlock",
"title": "Phone",
"TextFormatted": [
{
"value": "1-616-464-1130"
}
]
},
{
"@type": "TextBlock",
"title": "Total Amount",
"TextFormatted": [
{
"value": "14337 Approx Total Include All Known Taxes/Fees"
}
]
},
{
"@type": "TextBlock",
"title": "Room Hold Expiration Time",
"TextFormatted": [
{
"value": "BOOKING HELD UNTIL 00:00 LOCAL HOTEL TIME ON ARRIVAL DATE"
}
]
}
],
"Guarantee": [
{
"@type": "Guarantee",
"guaranteeType": "GuaranteeRequired"
}
],
"CancelPenalty": [
{
"@type": "CancelPenalty",
"Deadline": {
"@type": "Deadline",
"SpecificDate": {
"start": "2025-09-16",
"end": "2025-10-15"
},
"Time": "23:59:59"
},
"HotelPenalty": {
"@type": "HotelPenaltyPercent",
"appliesTo": "Amount",
"Percent": 0
},
"Refundable": "Yes"
},
{
"@type": "CancelPenalty",
"Deadline": {
"@type": "Deadline",
"SpecificDate": {
"start": "2025-10-16"
}
},
"HotelPenalty": {
"@type": "HotelPenaltyAmount",
"Amount": [
{
"value": 143.37,
"code": "USD"
}
]
},
"Refundable": "No"
}
],
"Description": [
"T00Aabt: AAA Caa Hot Deals Membership Card Required",
"Suite 2 Queen",
"2 Queen Mini Fridge",
"Microwave 450 Square Feet/41 Square Metre Living/Sitting Area",
"Wireless Internet Complimentary"
],
"ProductRateCodeInfo": [
{
"RateCodeInfo": {
"rateCategory": "Association"
}
}
],
"RatePaymentInfo": "PostPay",
"CustomerLoyaltyIDRequiredAtReservation": false,
"RateQualificationIDRequiredAtCheckIn": true
}
],
"passiveOfferInd": false
}
],
"Traveler": [
{
"@type": "Traveler",
"id": "T1",
"PersonName": {
"@type": "PersonName",
"Given": "Bear",
"Surname": "Das"
},
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "91",
"areaCityCode": "011",
"phoneNumber": "9891766469",
"cityCode": "HDQ"
}
],
"Email": [
{
"value": "matt.singhnope.com"
}
],
"CustomerLoyalty": [
{
"value": "1111111",
"supplierType": "Hotel"
},
{
"value": "222222",
"programId": "IT",
"supplierType": "Air"
}
]
}
],
"TravelerProduct": [
{
"@type": "TravelerProduct",
"TravelerRef": "T1",
"OfferRef": "O1"
}
],
"FormOfPayment": [
{
"@type": "FormOfPaymentPaymentCard",
"id": "FOP1",
"PaymentCard": {
"@type": "PaymentCard",
"expireDate": "1125",
"CardCode": "VI",
"CardHolderName": "Frank Sinatra",
"CardNumber": {
"@type": "CardNumber",
"PlainText": "************1111"
}
}
}
],
"Payment": [
{
"@type": "Payment",
"Amount": {
"value": 143.37,
"code": "USD"
},
"FormOfPaymentIdentifier": {
"Identifier": {
"value": "FOP1"
}
},
"OfferIdentifier": [
{
"Identifier": {
"value": "O1"
}
}
]
}
],
"Receipt": [
{
"@type": "ReceiptConfirmation",
"OfferRef": [
"O1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"value": "80073065",
"locatorType": "Confirmation Number",
"source": "XV",
"sourceContext": "Supplier",
"creationDate": "2025-09-16"
},
"OfferStatus": {
"@type": "OfferStatusHospitality",
"code": "HK",
"Status": "Confirmed"
}
}
},
{
"@type": "ReceiptConfirmation",
"OfferRef": [
"O1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"value": "96120603",
"locatorType": "IATA Number",
"sourceContext": "Agency",
"creationDate": "2025-09-16"
},
"OfferStatus": {
"@type": "OfferStatusHospitality",
"Status": "Confirmed"
}
}
},
{
"@type": "ReceiptConfirmation",
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"value": "D6VBHL",
"locatorType": "PNR Locator",
"sourceContext": "Travelport"
},
"OfferStatus": {
"@type": "OfferStatusHospitality",
"Status": "Confirmed"
}
}
}
],
"ReservationComment": [
{
"@type": "ReservationComment",
"Comment": [
{
"value": "No charge to CC",
"name": "Special Instruction"
}
],
"AppliesTo": [
{
"@type": "AppliesToOffer",
"OfferIdentifier": [
{
"offerRef": "O1"
}
]
}
]
},
{
"@type": "ReservationComment",
"commentSource": "Supplier",
"shareWith": "Agency",
"Comment": [
{
"value": "CXL:PERMITTED UP TO 01 DAYS BEFORE ARRIVAL INVALID/CF-80073065",
"name": "OSI REMARKS"
}
],
"AppliesTo": [
{
"@type": "AppliesToOffer",
"OfferIdentifier": [
{
"offerRef": "O1"
}
]
}
]
}
]
},
"traceId": "5ba67b95-a9b2-4d0b-b3a2-b075969e79f1"
}
}
Additional Example
The JSON Hotel APIs return reservation details in a standard format used for many API responses, including Create Reservation reference and full payloads, Add Reservation full and reference payloads, Retrieve Reservation, and so on. All reservation responses return the following:
-
Each hotel room is its own segment with a unique offer ID (returned in Reservation/Offer/id).
-
All travelers on the reservation are listed in the Traveler object and have a unique traveler ID, such as T1, T2.
-
TravelerProduct links each offer (aka segment or room) to a specific traveler reference id that cross-references a traveler name in the Traveler object. 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. 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.
-
FormOfPayment returns the details of the FOP used for each offer, such as credit card name and number (masked).
-
Payment returns the amount paid and FOP used for each offer.
-
Some objects, such as ReservationComment and TravelAgency, are returned only if this information was included in the booking.
-
Receipt returns confirmations and record locators for each offer.
The Receipt object is critical because you must provide these confirmations and/or record locators for subsequent requests to retrieve, modify, or cancel a booking. Bookings return three instances of Receipt with @type ReceiptConfirmation:
- Supplier receipt: Confirmation number from the hotel supplier
The hotel that operates the property and makes property and rate details available through a booking platfrom such as Travelport or another aggregator.. Required to cancel this booking. Identify this instance with Confirmation/Locator/sourceContext=Supplier - Aggregator receipt: Locator code from the aggregator
A platform that consolidates travel services, schedules, prices, and other details from multiple suppliers into a single interface., such as Travelport or Booking.com. Required to retrieve, modify, or cancel this booking. Identify this instance with Confirmation/Locator/sourceContext=Travelport or another aggregator name if not Travelport. - Agency receipt: Locator details for your agency PCC provided at provisioning with Travelport. Identify this instance with Confirmation/Locator/sourceContext=Agency
This example request sends several types of remarks.
{
"ReservationQueryBuild": {
"@type": "ReservationQueryBuild",
"ReservationBuild": {
"@type": "ReservationBuildFromCatalogOffering",
"BuildFromCatalogOfferingHospitality": {
"@type": "BuildFromCatalogOfferingHospitality",
"CatalogOfferingIdentifier": {
"value": "9eb4a047-2b20-41c8-bba3-2b67472eb3e8:8dfe87557b6ca1b0bfb9b9e05db1a1dc"
}
},
"Traveler": [
{
"@type": "Traveler",
"PersonName": {
"Given": "Bear",
"Surname": "Das",
"Title": "Mr"
},
"Telephone": [
{
"@type": "TelephoneDetail",
"countryAccessCode": "91",
"areaCityCode": "011",
"phoneNumber": "9891766469",
"cityCode": "DL"
}
],
"Email": [
{
"value": "matt.singh@galileo.co.in"
}
],
"CustomerLoyalty": [
{
"value": "1111111",
"programId": "IQ",
"supplierType": "hotel"
},
{
"value": "222222",
"programId": "IT",
"supplierType": "air"
}
]
}
],
"ReservationComment": [
{
"commentSource": "Agency",
"shareWith": "Traveler",
"Comment": [
{
"name": "Special Instruction",
"value": "My special instruction"
}
]
},
{
"commentSource": "Agency",
"shareWith": "Traveler",
"Comment": [
{
"name": "ITIN COMMENTS",
"value": "This is an unassociated remark"
}
]
},
{
"commentSource": "Agency",
"shareWith": "Agency",
"Comment": [
{
"name": "HM",
"value": "This is a historical remark"
},
{
"name": "CF",
"value": "This is a confidential remark"
},
{
"name": "X*",
"value": "This is a regular remark"
}
]
}
],
"Accounting": {
"dataType": "DOCI",
"NameValuePair": [
{
"name": "DYO",
"value": "01"
},
{
"name": "FS",
"value": "123456789"
},
{
"name": "FT",
"value": "123aaa"
},
{
"name": "CR",
"value": "01.12.99"
},
{
"name": "TK",
"value": "12345678-123"
},
{
"name": "AC",
"value": "A1"
},
{
"name": "AR",
"value": "A2"
},
{
"name": "X*",
"value": "ABC-123"
}
]
},
"FormOfPayment": [
{
"@type": "FormOfPaymentPaymentCard",
"PaymentCard": {
"@type": "PaymentCardDetail",
"expireDate": "0825",
"CardType": "Credit",
"CardCode": "VI",
"CardHolderName": "Frank Sinatra",
"CardNumber": {
"@type": "CardNumber",
"PlainText": "4444333322221111"
},
"SeriesCode": {
"@type": "SeriesCode",
"PlainText": "343"
},
"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"
}
]
}
}
],
"Payment": [
{
"@type": "Payment",
"Amount": {
"code": "USD",
"value": 844.97
},
"guaranteeInd": true,
"depositInd": false
}
]
}
}
}