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.

Results from Availability and SearchComplete are stored in cache for 30 minutes. If the offers expire before you create a reservation, you must send a new request before booking.
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

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

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

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

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.

Results from Availability and SearchComplete are stored in cache for 30 minutes. If the offers expire before booking, you must send a new request.




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.











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

For additional examples, download the developer toolkits and see Using Postman and Developer Toolkits.

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:

This example request sends several types of remarks.