Check the Hotel Release Notes for updates across all Hotel APIs.

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:

Pre-production https://api.pp.travelport.com/11/hotel/ | Production https://api.travelport.com/11/hotel/

Use this base path after you have migrated to the new credentials from Travelport (using .net instead of .com):

Pre-production https://api.pp.travelport.net/11/hotel/ | Production https://api.travelport.net/11/hotel/

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

As part of the request requirements, also see Authentication and Common Hotel API Headers.

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.

The red asterisk at the end of an object name below, as in Traveler*, marks that object as required in the request.
For additional examples, download the developer toolkits and see Using Postman and Developer Toolkits.

 

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.)

Travelport+ limits the combination of Given and Surname to 22 characters. Given name must have at least one character. PersonName exceeding 22 characters is truncated in the response.

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.

Booking.com requires a traveler email address in the Create Reservation and Add Reservation requests. A system-generated confirmation email is sent to the traveler after the booking completes.

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.

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.

 

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"
            }
          }
        }
      ]
    }
  }
}