Create Reservation Reference Payload API Reference
POST |
book/reservations/build 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, 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, 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
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 either of the preceding responses as appropriate:
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.
JSON Hotel SearchComplete is not yet available as a general release. All details in this documentation are for informational purposes only and subject to change until General Availability release, which will be communicated in advance via a Travelport Developer Advisory.

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. “hotel” for designating frequent guest or “air” for designating 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 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.
ReservationComment
Top level object to include remarks and comments in the booking.

The following types of remarks are supported for 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 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.
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: System-generated offer identifier value sent in the reference payload request to book that offer. Note that id is not returned in the response to a full payload request. 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 which supplier system returned that specific room rate (offer). Properties:
authority: Indicates which supplier returned the lowest available rate for that property. Acceptable values are:
- TVPT: Travelport
- BKNG: Booking.com
value: Reference offer ID value.
Traveler
Traveler details. See below.
TravelerProduct
Reference numbers to link travelers to a specific offer. 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 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, type ProductHospitality. Key value pairs:
bookingCode: Booking code retrieved from the Availability response.
adaCompliant: Yes, No, or Unknown indicator for ADA compliance.
propertyName: Name of property offering this product.
guests: Number of guests.
Quantity: Number of rooms currently 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. Possible values and meanings:
10: Traveler in this GuestCount is an adult
8: Traveler in this GuestCount is a child
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 or No indicator for smoking.
wifiIncluded: Yes or No indicator for wifi.
viewCode: Free text describing the view.
shortRoomDescription: Normalized text for grouping rates against similar room types.
accessibleRoom: Yes or No indicator for room with accessible features.
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: Amenity included with rate.
RoomOccupancy
Room occupancy value. Key value pair:
maxOccupancy: The maximum number of room occupants.
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: The amount of the offer.
Includes CurrencyCode and PriceBreakdown objects.
CurrencyCode
The currency code the amount is provided in. Key value pairs:
decimalPlace: Decimal place number.
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: When set as true, expect multiple occurrences of roomPricingType (per night).
If roomPricingType = Per night:
May include NightlyRate, AverageNightlyRate, and AmenitySurcharges objects.
If roomPricingType = Per stay key value pair:
Description: 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
Parent object which can include Fee by rate or by property. Fees may be included in the TotalPrice or may be 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: When 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. Default is false. Fee is included in Base Price.
includedInTotalPriceInd: Boolean. Default is false. Fee is included in Total Price.
Includes FeeAmountOrPercent object.
FeeAmountOrPercent
Object defining the amount or percent charged as a fee. Key value pairs:
Amount: Amount object for a specific fee amount.
code: Three-character currency code.
value: Exact amount of fee.
Percent: Percentage of base amount charged as a fee.
Commission
Commission details.
When returned with @type CommissionPercent key value pairs are:
application: A value of Commissionable indicates the rate pays commission. Non-paying indicates no commission.
Percent: The commission percentage.
When returned with @type CommissionAmount key value pairs are:
application: Same as above.
Amount: Exact amount of commission paid for this booking.
code: Three-character currency code.
value: Numeric amount of commission.
AverageNightlyRate
The average nightly rate of the request. 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. Default is false. The rate returned is contingent on a membership number to be included within the sell request, typically associated to frequent guest or frequent flyer loyalty numbers.
RateQualificationIDRequiredAtCheckIn: Boolean. Default is false. The discounted rate returned may be denied at the property if guest does not 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: Two character hotel supplier code or brand code of the loyalty program for frequent guest use. Two character air supplier code of loyalty program for frequent flyer use.
supplierType: “hotel” for designating frequent guest or “air” for designating frequent flyer.
Guarantee
Array. Indicates if the room rate requires a guarantee to be booked. Key value pair:
guaranteeType: The type of guarantee. Possible values are:
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 range of dates.
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: Yes, No, or Unknown indicating if additional taxes may be applied to penalty amount.
Nights: The number of nights charged at the nightly rate if provider charges a cancellation fee.
When returned with @type HotelPenaltyPercent:
Percent: Percentage of total amount to be charged as penalty.
appliesTo: Value of “Amount” will be returned.
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 in relation to TotalPrice. Key value pairs:
remainderInd:true or false indicating if a deposit was part 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-generated traveler identification number. Always the 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: “hotel” for Frequent Guest / “air” for Frequent Flyer

Top level object array that links a specific traveler to a specific hotel segment (offer). Each offer has a linked traveler. Properties:
TravelerRef: Traveler reference number allowing a linkage to an offer.
OfferRef: Offer reference number allowing a linkage to a traveler.

FormOfPayment
Top level object for form of payment details. Properties:
id: Payment reference number allowing a linkage to an offer.
Includes PaymentCard object.
PaymentCard
Object referencing payment card information. Properties:
expireDate: string. Four numeric code representing month and year of expiration date
CardCode: string. Two character card brand code.
CardHolderName: string. Name on card.
Includes CardNumber object.
CardNumber
Object referencing details of the charge/debit card. Properties:
PlainText: string. Number on charge/debit card.

Payment
Top level object array linking the form of payment used to the segment purchased with that FOP.
Includes Amount, FormOfPaymentIndentifier, and OfferIdentifier objects.
Amount
Object detailing amount due for the hotel segment. Properties:
value: numeric. Amount due.
code: string. Three character currency code
FormOfPaymentIndentifier
Object designating a form of payment used to complete purchase.
Includes the Identifier object.
Identifier
Object describing linkage numbers involved in a hotel segment purchase. Properties:
value: Travelport-generated identifier number. FormOfPaymentIdentifier will start with the characters FOP. OfferIdentifier will start with the character O.
OfferIdentifier
Object designating a hotel segment purchase.
Includes Identifier object (see above).

Receipt
Top level object.
Includes OfferRef and Confirmation objects.
OfferRef
Reference number to link this set of receipt information to a specific offer. Always the letter O followed by a number.
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 with the supplier. If source is XZ, the offer is with Expedia. 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 / 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
Object used for remarks. Properties:
commentSource: Entry source of comment. Agency or Supplier.
shareWith: Describes who has visibility to the information contained within the remark. 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
CurrencyRateConversion is returned only if requestedCurrency was 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 currency conversion information per below.
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 for the currency value.
value: Currency code.
TargetCurrency
Currency code sent in the request in requestedCurrency. Key value pairs:
decimalPlace: Number of decimal places.
value: Currency code.
ConversionRate
Current conversion rate of the user-specified currency (the TargetCurrency value). 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.
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, and so on.
-
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, record locators, and other information 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
}
]
}
}
}