Sync Hotel Reservation API Reference
POST |
book/reservations/ 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: Hotel Guide, Hotel Workflow Diagram, Hotel Availability API Reference
Use the Sync Reservation request to synchronize a Booking.com hotel reservation to a Travelport PNR whenever specific sell failures occur. The Sync Reservation request is a scaled down re-try of a previous Create or Add Reservation request that adds to the original sell request the Traveler email address and the Booking.com booking information. The Sync message attempts to add the reservation information into a Travelport reservation as a standard aggregator segment but without re-selling the segment in the aggregator system.
Booking.com requires the traveler’s email address in a hotel sell request. If the sell completes in the Booking.com system, the traveler receives a confirmation email containing information needed to synchronize the Travelport booking if the user receives one of two specific error messages on the original sell attempt.
For specific failure scenarios, error message explanation, and sync message handling, see Sync Reservations after Aggregator Sell Failure in the JSON Hotel APIs Guide.
Request
Query Parameters
None.
Request Body
The Sync response returns all available data for the reservation using the same structure as the Create Reservation response. See the Create Reservation Reference Payload API Reference for documentation and examples.
ReservationDetail*
Top level object for the request.
Includes the Offer, Traveler, and Receipt objects.
Offer object
Offer*
Top level object for sync request.
Includes the Identifier object.
passiveOfferInd*: Indicates aggregator segment built into PNR. Always send with true.
Identifier*
Top level object for room rate source.
source*: String. Send the value from CatalogOffering/Identifier/authority in the Availability response.
Traveler object
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.
Receipt object
Receipt*
Mandatory top level object for confirmation details.
Includes Confirmation object.
Confirmation*
Confirmation details.
Includes Locator object.
Locator*
Locator information for the reservation.
source*: String. Content source. Two-character Supplier code.
If source matches chain code, the offer is directly with the supplier. If source is BO, the offer is with Booking.com.
sourceContext*: String. Either Travelport or Supplier.
value*: String. Reference number for locatorType.
Example
{
"ReservationDetail": {
"Offer": [
{
"Identifier": {
"authority": "BKNG"
},
"passiveOfferInd": true
}
],
"Receipt": [
{
"@type": "ReceiptConfirmation",
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"locatorType": "Confirmation Number",
"source": "XZ",
"sourceContext": "Supplier",
"value": "7555249349974"
}
}
}
],
"Traveler": [
{
"@type": "Traveler",
"Email": [
{
"value": smith@nope.com
}
]
}
]
}
}
Response
The Sync response returns all available data for the reservation using the same structure as the Create Reservation response. See the Create Reservation Reference Payload API Reference for documentation and examples.
Example
{
"ReservationResponse": {
"Reservation": {
"@type": "ReservationDetail",
"id": "f1ecd79d-198c-4fe3-ae91-a9ca9cd10637",
"Offer": [
{
"@type": "Offer",
"Identifier": {
"authority": "BKNG"
},
"Product": [
{
"@type": "ProductHospitality",
"Quantity": 1,
"bookingCode": "147245306_307884210_1_1_0",
"guests": 1,
"PropertyKey": {
"chainCode": "CN",
"propertyCode": "B6381"
},
"DateRange": {
"start": "2022-02-22",
"end": "2022-02-25"
}
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "USD",
"decimalPlace": 2
},
"TotalPrice": 150,
"TotalTaxes": 50,
"TotalFees": 30,
"Base": 100,
"PriceBreakdown": [
{
"@type": "PriceBreakdownHospitality",
"roomPricingType": "Per night",
"NightlyRate": [
{
"startDate": "2022-02-22",
"nights": 1,
"Amount": {
"CurrencyCode": {
"value": "USD"
},
"Base": 40,
"Total": 60,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 20,
"Tax": [
{
"currencyCode": "USD",
"taxCode": "CITYTAX",
"Description": "Tax and Service fee",
"includedInBase": "No",
"value": 16
},
{
"currencyCode": "USD",
"taxCode": "VAT",
"Description": "VAT",
"includedInBase": "No",
"value": 4
}
]
}
}
},
{
"startDate": "2022-02-23",
"nights": 3,
"Amount": {
"CurrencyCode": {
"value": "USD"
},
"Base": 60,
"Total": 90,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 30,
"Tax": [
{
"currencyCode": "USD",
"taxCode": "CITYTAX",
"Description": "Tax and Service fee",
"includedInBase": "No",
"value": 24
},
{
"currencyCode": "USD",
"taxCode": "VAT",
"Description": "VAT",
"includedInBase": "No",
"value": 6
}
]
}
}
},
{
"startDate": "2022-02-26",
"nights": 1,
"Amount": {
"CurrencyCode": {
"value": "USD"
},
"Base": 60,
"Total": 90,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 30,
"Tax": [
{
"currencyCode": "USD",
"taxCode": "CITYTAX",
"Description": "Tax and Service fee",
"includedInBase": "No",
"value": 24
},
{
"currencyCode": "USD",
"taxCode": "VAT",
"Description": "VAT",
"includedInBase": "No",
"value": 6
}
]
}
}
}
],
"AverageNightlyRate": [
{
"code": "USD",
"value": 50,
"approximateInd": true
}
],
"AmenitySurcharges": {
"@type": "AmenitySurchargesDetail",
"Surcharge": [
{
"currencyCode": "USD",
"description": "Crib Surcharge",
"value": 0
},
{
"currencyCode": "USD",
"description": "Rollaway Surcharge",
"value": 25
}
]
}
},
{
"@type": "PriceBreakdownHospitality",
"roomPricingType": "Per stay",
"Amount": {
"CurrencyCode": {
"value": "USD"
},
"Base": 100,
"Total": 150,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 50,
"Tax": [
{
"currencyCode": "USD",
"taxCode": "CITYTAX",
"Description": "Tax and Service fee",
"includedInBase": "No",
"value": 40
},
{
"currencyCode": "USD",
"taxCode": "VAT",
"Description": "VAT",
"includedInBase": "No",
"value": 10
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 30,
"Fee": [
{
"feeCode": "RESORT",
"feeApplication": "PerAccommodation",
"feeFrequency": "PerStay",
"FeeAmountOrPercent": {
"Amount": {
"code": "USD",
"value": 15
}
}
}
]
},
"Commission": {
"@type": "CommissionAmount",
"application": "Non-paying "
}
}
}
]
},
"TermsAndConditionsFull": [
{
"@type": "TermsAndConditionsFullHospitality",
"Guarantee": [
{
"GuaranteeType": "PrepayRequired"
}
],
"CancelPenalty": [
{
"Deadline": {
"SpecificDate": {
"start": "2022-01-19",
"end": "2022-02-14"
},
"Time": "23:59:59.000"
},
"HotelPenalty": {
"@type": "HotelPenaltyAmount",
"Amount": [
{
"value": 0,
"code": "INR"
}
]
},
"Refundable": "Yes"
},
{
"Deadline": {
"SpecificDate": {
"start": "2022-02-15",
"end": "9999-12-31"
},
"Time": "23:59:59.000"
},
"HotelPenalty": {
"@type": "HotelPenaltyAmount",
"Amount": [
{
"value": 9000,
"code": "INR"
}
]
}
}
]
}
]
}
],
"Traveler": [
{
"@type": "Traveler",
"id": "T1",
"PersonName": {
"Given": "John",
"Surname": "Smith"
},
"Telephone": [
{
"countryAccessCode": "1",
"areaCityCode": "909",
"phoneNumber": "1231234",
"cityCode": "DEN"
}
],
"Email": [
{
"value": smith@nope.com
}
]
}
],
"TravelerProduct": [
{
"@type": "TravelerProduct",
"TravelerRef": "T1",
"OfferRef": "O1"
}
],
"Receipt": [
{
"@type": "ReceiptConfirmation",
"OfferRef": [
"O1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"confirmationStatus": {
"@type": "OfferStatusHospitality",
"Status": "Confirmed"
},
"Locator": {
"value": "T9RY0-WQ842",
"locatorType": "Confirmation Number",
"source": "BO",
"sourceContext": "Supplier"
},
"OfferStatus": {
"@type": "OfferStatusHospitality",
"Status": "Confirmed"
}
}
},
{
"@type": "ReceiptConfirmation",
"OfferRef": [
"O1"
],
"Confirmation": {
"@type": "ConfirmationHold",
"Locator": {
"value": "4619",
"locatorType": "Pin code",
"source": "BO",
"sourceContext": "Supplier"
},
"OfferStatus": {
"@type": "OfferStatusHospitality",
"Status": "Confirmed"
}
}
},
{
"@type": "ReceiptConfirmation",
"Confirmation": {
"@type": "ConfirmationHold",
"confirmationStatus": {
"@type": "OfferStatusHospitality",
"Status": "Confirmed"
},
"Locator": {
"value": "0GQ9HS",
"sourceContext": "Travelport"
},
"OfferStatus": {
"@type": "OfferStatusHospitality",
"Status": "Confirmed"
}
}
}
]
}
}
}