Hard Change
Rapid’s Hard Change API enables partners to offer a self-serve option for travelers to adjust key details of their booking without cancelling and rebooking.
Overview
Flexibility remains a top priority for travelers and it's important to build a seamless experience for those who need to change the details of an existing booking as their travel plans shift.
When such booking changes impact the cost they are called hard changes. Rapid's Hard Change API enables you to build or improve your traveler-facing or agent-facing change experience by powering date, room type, and occupancy modifications via API.
Rapid's Hard Change API facilitates the following change types:
- Dates can be adjusted or completely substituted for a new range of dates in the future. However, please note that completely new stay dates must be no more than one year after the original booked dates.
- The room type from the original booking can be upgraded or downgraded. For example, a Standard Two Queen booking can be upgraded to a Deluxe King booking.
- The number of occupants can be increased or reduced.
- Stay date and number of occupants can be changed together (passed as parameters) for available rooms.
The above changes can be made pre-stay on any single room Rapid bookings made on Expedia-contracted inventory. This includes same-day changes as long as they are made before check-in, though penalties from the property may apply.
Please note, the option to change will not appear for non-refundable bookings when the penalty
determined by the property is equal to the original booking value.
This provides your agents and travelers with better self-serviceability and reduces the need for manual change efforts that require Expedia servicing support.
Additionally, a record of all changes made to a booking can be viewed using the itinerary history feature.
Benefits of Hard Change
Resolve booking changes faster and retain your travelers: Agents no longer need to log in to a separate tool or call Expedia agents to make booking changes, saving you time and servicing costs. Plus, by avoiding a full booking cancellation, travelers won’t feel prompted to restart the shopping process, so you are less likely to lose them to a competitor.
Keep last available room secured and maintain original pricing when possible: Travelers have spent time selecting the right property for their trip. For a portion of properties, hard change retains the original room meaning there isn’t a risk of losing the last available room. Although we cannot guarantee that nightly rates will be the same, if the property allows, your traveler can receive the same nightly pricing as their original booking.
Improve the traveler experience by keeping the itinerary ID consistent: You retain the original itinerary number through a hard change, resulting in less confusion for you, agents, and travelers.
How it works
- Request the itinerary from Rapid’s Itinerary Retrieve endpoint to see if the booking is eligible for hard change. If eligible, a
shop_for_change
tokenized link will appear in the Itinerary Retrieve or Itinerary Search response.
Example of link in response:
[
{
"itinerary_id": "1293878723",
...
"rooms": [
{
"id": "307234070",
...
"links": {
"cancel": {
"method": "DELETE",
"href": "/v3/itineraries/9030154067083/rooms/d3a9f088-f8a9-4ac1-999d-d5bae3ae18b0?token=REhZAQsCBAEHU0cBW0NeEUocagFfXQcEMzUfXFREClxbAUBeUEsHC1UKTTtbAGxEXAZaFgAIKy5lfC4SURNFRltbUkFpQFVGRAtbC2tdBQtdU1EGAlBSBhRRVFIEFVJdA1UbUQNRA04LVVdZBwkAUVwFUQEXR1gXRw1WRGsWQQtfX1xWb1xXWQ8OVFYAVxZAXBJKWA1WPlEFCFMDAlVXC1NXH1YDBFMZAQVQVhkKBgMCHVdUUwIHBQFRVAZQARVJQVgSUhZCQGcIUAQHDV8NDB9VD1RRXQ4XUUdEQQYEAl4EC15KBgpdRyBQBlJfFkQOBQUNVgAGAFEHUAQ="
},
"change": {
"method": "PUT",
"href": "/v3/itineraries/9030154067083/rooms/d3a9f088-f8a9-4ac1-999d-d5bae3ae18b0?token=REhZAQsCBAEHU0cBW0NeEUocagFfXQcEMzUfXFREClxbAUBeUEsHC1UKTTtbAGxEXAZaFgAIKy5lfC4SURNFRltbUkFpQFVGRAtbC2tdBQtdU1EGAlBSBhRRVFIEFVJdA1UbUQNRA04LVVdZBwkAUVwFUQEXR1gXRw1WRGsWQQtfX1xWb1xXWQ8OVFYAVxZAXBJKWA1WPlEFCFMDAlVXC1NXH1YDBFMZAQVQVhkKBgMCHVdUUwIHBQFRVAZQARVJQVgSUhZCQGcIUAQHDV8NDB9VD1RRXQ4XUUdEQQYEAl4EC15KBgpdRyBQBlJfFkQOBQUNVgAGAFEHUAQ="
},
"shop_for_change": {
"method": "GET",
"href": "/v3/properties/480180/availability?token=XV1CBl5UWkdoCwc9RlNTCkoBCCp_bSd1QBRcX1BGEVEIVjlHXF1ZAVcHDVRRXlEbDVdQXEkBBlMFFFoBAFQbAAEHBgcOBlIED1sMQ0RRD1dURUwIBEpVAh8JUVhSTQdfVVlTXRo0YEVLWxETV10PE1gWXAFuRVwRQQpWQFFAVhxQRURaXlJsBlhXDQtaBm9QUQRaWg1NFQVTBVMBGVdRHwQBFAAHRQtQCFEXA0xaR0YIXlY9AFkNCFhaBTpFWkdYX2gQWAtbBAlUBRcABUBQQVBDFlxWVmwBW1tbDVxTOkEEFlc7DAENU1QIUgMBXAlXHkRZFkNdURFrFkcKAF4KXToNUAlVAwRbD1YXCUZdAEc-XQhWAGhfXAoLVlcDUltRBkhVUgYGHVZTUwEUDQBVCEwIAwRUXFEBVFMECQYfAExfF0xdDARvUgxfDlFaBmsXDVwLPgxXDwEIVQoIUlUHUB5TDQ1TUQ0BaEZWBVsWVm4ODgUERQ0UXlZWUwIOV1sHFl1dBF9ZCV5aBQ8FVV5RFh1RBQdISQddDwdeS1pBExYFXgsVRVgWF1oBSztGA1VTSwBbBwFqCgUMCVACBVICU1UbUwoABR0BAAEFSFYFUlcVUAENAgdVBl1XAAUEHhJIWQALBQdRA1MeRgEHUUpACFcBahZeQksGVl5BV0QPVztLU0RBWVBFARFREgtaBEJSSxhmWAYFWAlVBFMHA1BRBAYECkMDTQtHQQhfAWtRW10KWV8FPVUKBlJfCwsMBwMLABpTBUkHCh4ETFBAQA9bXmZSDVpTWF0Ea1tTB0dEBF0GGw9WQwdfDghRDVZrDEUGVWtRAAoABlsHVwNQUhEBXQsBRlUXV1E8Qw9cAwkLVQdSHFEOSAUEbAUBQFAjBQlBAyQDVxoEBlRvR11BXRZHWQ9WbFULClhRCFE5TV5NBFhpFldbDzxTRRFCAFZXGAkwMXdAAgpGXEdKHWZbDQBVXG1iRAdAURASXlpUOVYLXVoLDwE6RQ0SAglbUwIGTFEDFl1IDEVBXV1QOwMNW11ZC186VhdCSwdXBR8EbGZwRV0eWBVHXFcDPFYLVg9dCFRpSRdaFAFHFxhuUAYJBl4GAwwGEVZOWkNBXgxTOlZbDl1RX1JqXAUWbV0AQFlGURIFVgVaQFJHcAtdVw8SQVUPUw9RBVUDBA5dBA=="
}
}
}
]
}
]
Available rooms/rates:
- You can then call the Additional Rates endpoint in the Availability API using the
shop_for_change
tokenized link to search for different dates and/or number of occupants for the same/different room type. The Availability response will return all available rooms with rates that are eligible for the new check-in/check-out dates and/or occupancy. This Availability response is the same one that you have already integrated with for regular shopping flows. Use theprice_check
link associated with the updatedroom
,rate
, andbed_group
that is appropriate for the change. - The
sales_channel
is a required field in the Availability request. If this field is not passed in the request an error will be returned in the response. - If the original booking was a property/hotel collect rate and if
currency
is not passed in theshop_for_change
request, the property currency will be returned. For example, if the property is in Spain and it's a property/hotel collect rate but you booked in USD, if USD is not passed in theshop_for_change
request the prices returned will be in EUR. - After selecting the room, use the
price_check
URL to get the refund or extra charge amounts as well as any penalties, if applicable. Note that the refund or amount owed will take into account any penalties incurred. Change or cancellation penalties are determined by the property. - The price check link returns the
amount_owed
orrefund
and/orpenalty
for the new dates, room, and/or number of occupants. - If the original booking was on a member rate, partners should pass the
rate_option=member
parameter in order to see available member rates (MOD). We will not re-use the value from the original booking because we want to make sure at the time of the hard change the traveler is actually logging in as a member to be able to receive member rates correctly.
Limitations of hard change
- It is not possible to change the business model using hard change. For example, a booking cannot be changed from
expedia_collect
toproperty_collect
. Such attempts will throw a 400 - Bad Request error at theshop_for_change
step.
Example
{
"type": "invalid_input",
"message": "An invalid request was sent in, please check the nested errors for details.",
"errors": [
{
"type": "filter.mismatch",
"message": "Existing booking is property_collect, this cannot be changed.",
"fields": [
{
"name": "filter",
"type": "querystring",
"value": "expedia_collect"
}
]
}
]
}
- It is also not possible to change the rate type using hard change. For example, changing a package booking will shop for package rates at the
shop_for_change
step. If there is not a package rate available for the change, it will show as no availability.
Example of Price Check response with refund:
In this example, we are shortening the stay by 1 night at $148.37 USD per night with no penalty
, resulting in that amount as a refund
.
{
"status": "available",
...
"refund": {
"request_currency": {
"value": "148.37",
"currency": "USD"
},
"billable_currency": {
"value": "148.37",
"currency": "USD"
}
}
}
Example of Price Check response with amount owed and penalty:
In this example, we are shortening the stay by 1 night at $148.37 USD per night, but there is a $200.00 USD penalty
for cancelling that night, resulting in $51.63 USD owed.
{
"status": "available",
...
"amount_owed": {
"request_currency": {
"value": "51.63",
"currency": "USD"
},
"billable_currency": {
"value": "51.63",
"currency": "USD"
}
},
"penalty": {
"request_currency": {
"value": "200.00",
"currency": "USD"
},
"billable_currency": {
"value": "200.00",
"currency": "USD"
}
}
}
- If the property has extra person fees, property fees, and/or stay fees these will also be returned in the response.
- The
commit
link is to confirm that the traveler wants to change the dates and accepts the terms of the change. When there is:- An amount due in the body of the change commit, input new payment information. Accepted payment types are customer card, virtual card, corporate card, or affiliate collect.
- A refund the traveler does not need to input a new payment and the refund will be to the original form of payment.
Important notes:
- If there's
amount_owed
in the Price Check response, payment is required, not providing payment will give an error. - If there's a
refund
in the response, payment is not required, but if provided will be ignored. - If there's no
amount_owed
orrefund
, payment is not required, but if provided will be ignored with no error.
Example of change commit link in Price Check response:
{
"status": "available",
...
"links": {
"commit": {
"method": "PUT",
"href": "/v3/itineraries/9030222954615/rooms/036df797-f9a1-4ad8-a1e9-1e9a621ecd0a/pricing?token=QldfCGlcUA4EXVRWAxBCAF4ARxBZVwVmEg9dBFAFV11SAVAHGFhVBgBJDQENBB4PCAAHSVACW1gAAFFXUVIEBxJbUkFVW1FbQz1bA2tGBFVXQ1EIcTw1d30scRBFSg9bVTtVW1YPVAZcCQIAWEtXR0sHQQBuXl1YC1oGBAVAQA1NU29HSUVWWUNKBwZdFVlcVwBVbgBKDk8SUBMUWwUAR0VUXAYfCFYSWABDDVFHXVwGb1cHBxAOAl9TFwRWUA5cXRo3ZEJFVk0TV1wORgdFUF0dEkdRUlZOV1xVB1kSB1wKCVsKAjpCBABXEVVrDFVeCQIAVgYAEhFVElA6Ek4WXVg3YHUtdnQxc0BfA0BmF1QVVBIFA1ZaS1IUAAISXlxZAENUC1FRWwtbXAoJBlYeAFYcAwBCFVJKElgDS25JF1tQDVRRPQpUDVYGVQwNVBIIB14EBBcOVFJUF1weARFCE11fARsFbTAiEVlSFF8BRlgMBjkGWQMIDQAKXwcRAQpXU1NfEEIIBgMFV0xSAxsAXR4EWA1FVxZmCRFcXQgETQhWFwRWUWYNBwlXDlcFVhVCSQxRWVEFU1AXSgpbQhZfXFNpR1JCWw1mYyN6IXV4Lnh9F1dZWwcObVQAXVRQSjlXXghPbFMEUg9LCQIAWEtXR1gLWhBfQwRXBFEdDgVAQQFfU0JBWVtUO0RXExBXBA1BWBFQVU9IE1ECUExRXAMAWRNWRxYSWg9RRz5CA0dAXV0Pb1gGXwVRBQZWWgRQGFYPClFPAwUFXRVZDVsLGQACAAABVwcMAwVbDBJDAUFHDFwLPVsAWFBSWVoLWgYNSFdXDgUVUAJRDU4NVgJdSwUAAQBQDAJTUwxbBEBBFFtJAEcVSD5RAQoECAQEXFpEUF0KVRdWF1FWbxZcDF0EBlUBA0wBBRpVVmcKVhNVeAAKQAd3VwsaV1sJAlsIVwwBOxIHDVwNCAtUbVpMAVRnCwANVgEBU1oADlBXEVdcE1oQQEg9AgkBVF8zMEMEB1NoBgdBU0pZFUJcW10KVUozQVNVCxMnUAYWWwddOQVWV1NdBE0UUBJaWldZRgEmHFN2QwEETRxFAUEHUUQCeEcGADdDV1FYdVZSFgIHElB3QAYGEl9CVBAHBkFWcxxXAmdAXQNWFVYEFgUiFlEKRREAWkxbFUBDB1cUBHhUFlR3EwEiFRdMRkBfWVBBO15cW1AAR3NbXAJSQhdVXAtVBFYAAlNQCwE="
}
}
}
Example of request body for commit with acceptance of new payment method:
{
"payments": [
{
"type": "customer_card",
"number": "4111111111111111",
"security_code": "123",
"expiration_month": "08",
"expiration_year": "2030",
"billing_contact": {
"given_name": "John",
"family_name": "Smith",
"email": "john@example.com",
"phone": {
"country_code": "1",
"area_code": "487",
"number": "5550077"
},
"address": {
"line_1": "555 1st St",
"line_2": "10th floor",
"line_3": "Unit 12",
"city": "Seattle",
"state_province_code": "WA",
"postal_code": "98119",
"country_code": "US"
}
}
}
]
}
After committing the change, you should do an Itinerary Retrieve to confirm the changes have been applied.
Example of new dates:
Itinerary with original check-in date of 2023-12-13 and check-out date of 2023-12-14:
{
"itinerary_id": "9141257626318",
"property_id": "480180",
"rooms": [
{
"id": "201300171",
"bed_group_id": "37321",
"confirmation_id": {
"expedia": "32831654",
"property": "53063928"
},
"checkin": "2023-12-13",
"checkout": "2023-12-14",
"number_of_adults": 2,
"given_name": "Jane",
"family_name": "Doe",
"status": "booked",
"special_request": "Top floor or away from street please",
"smoking": false,
"rate": {
"id": "270125984",
"merchant_of_record": "property",
"refundable": true,
"cancel_refund": {
"amount": "-151.31",
"currency": "USD"
},
"cancel_penalties": [
{
"currency": "USD",
"nights": "1",
"start": "2023-12-11T23:59:00.000-06:00",
"end": "2023-12-13T23:59:00.000-06:00"
}
],
"amenities": [
"2192",
"1073742786"
],
"pricing": {
"nightly": [
[
{
"value": "129",
"type": "base_rate",
"currency": "USD"
},
{
"value": "22.31",
"type": "tax_and_service_fee",
"currency": "USD"
}
]
],
"totals": {
"inclusive": {
"billable_currency": {
"value": "151.31",
"currency": "USD"
}
},
"exclusive": {
"billable_currency": {
"value": "129",
"currency": "USD"
}
},
"property_fees": {
"billable_currency": {
"value": "0.81",
"currency": "USD"
}
}
},
"fees": {
"mandatory_fee": {
"billable_currency": {
"value": "0.81",
"currency": "USD"
}
}
}
}
},
"loyalty_id": "123456789",
"loyalty": {
"member_id": "123456789",
"program_id": "Hotel"
},
"links": {
"cancel": {
"method": "DELETE",
"href": "/v3/itineraries/9141257626318/rooms/934aec56-b124-4f29-9ef8-90309b92eb07?token=REhZAQsDBAMHVEcBW0NeEUocagFfXQcEMzUfXFREClxbAUBeUEsHC1UKTTtbAGxEXAZaFgAIKy5lfC4SQgdERlpTRWxGQV9TXg5ROl1QXAAJAA0NBEIVQFYVVURBQTlRVFkCCwdQC1MeUQkAXVQPDFQHWwJQX1gWFlcDU0wWVgBQV1dBX0BDSlRXC0R3CVVQUhJMXF8NWAhSBVIEAFE="
},
"change": {
"method": "PUT",
"href": "/v3/itineraries/9141257626318/rooms/934aec56-b124-4f29-9ef8-90309b92eb07?token=REhZAQsDBAMHVEcBW0NeEUocagFfXQcEMzUfXFREClxbAUBeUEsHC1UKTTtbAGxEXAZaFgAIKy5lfC4SQgdERlpTRWxGQV9TXg5ROl1QXAAJAA0NBEIVQFYVVURBQTlRVFkCCwdQC1MeUQkAXVQPDFQHWwJQX1gWFlcDU0wWVgBQV1dBX0BDSlRXC0R3CVVQUhJMXF8NWAhSBVIEAFE="
},
"pricing": {
"method": "GET",
"href": "/v3/itineraries/9141257626318/rooms/934aec56-b124-4f29-9ef8-90309b92eb07/pricing?token=REhZAQsDBAMHVEcBW0NeEUocagFfXQcEMzUfXFREClxbAUBeUEsHC1UKTTtbAGxEXAZaFgAIKy5lfC4SQgdERlpTRWxGQV9TXg5ROl1QXAAJAA0NBEIRR1ABDQ4ACV4JBlMCBBERQQxIURYVTWdbBQRSDVUADwlDVg5SX1hbXglYWFdSWFRAQQMIAxpEBFRaWAZLXhdIT1sOWEdCVRQXXFBHbRcDUwdGUA9SA2taUA9RAgdVVgIDAhxQW1MHGAcOUAZPVVUFWBUAAAEFV1YBXQsAUQQeclsGV19DEV8JVwtXVgdRU10EUw=="
},
"shop_for_change": {
"method": "GET",
"href": "/v3/properties/480180/availability?token=XV1CBl5UWkdoCwc9RlNTCkoBCCp_bSd1QBRcX1BGEVEIVjlHXF1ZAVcHDVRRXlEbDVdQXEkBBlMFFFoBAFQbAAEHBgcOBlIED1sMQ0RRD1dURUwIBEpVAh8JUVhSTQdfVVlTXRo0YEVLWxETV10PE1gWXAFuRVwRQQpWQFFAVhxQRURaXlJsBlhXDQtaBm9QUQRaWg1NFQVTBVMBGVdRHwQBFAAHRQtQCFEXA0xaR0YIXlY9AFkNCFhaBTpFWkdYX2gQWAtbBAlUBRcABUBQQVBDFlxWVmwBW1tbDVxTOkEEFlc7DAENU1QIUgMBXAlXHkRZFkNdURFrFkcKAF4KXToNUAlVAwRbD1YXCUZdAEc-XQhWAGhfXAoLVlcDUltRBkhVUgYGHVZTUwEUDQBVCEwIAwRUXFEBVFMECQYfAExfF0xdDARvUgxfDlFaBmsXDVwLPgxXDwEIVQoIUlUHUB5TDQ1TUQ0BaEZWBVsWVm4ODgUERQ0UXlZWUwIOV1sHFl1dBF9ZCV5aBQ8FVV5RFh1RBQdISQddDwdeS1pBExYFXgsVRVgWF1oBSztGA1VTSwBbBwFqCgUMCVACBVICU1UbUwoABR0BAAEFSFYFUlcVUAENAgdVBl1XAAUEHhJIWQALBQdRA1MeRgEHUUpACFcBahZeQksGVl5BV0QPVztLU0RBWVBFARFREgtaBEJSSxhmWAYFWAlVBFMHA1BRBAYECkMDTQtHQQhfAWtRW10KWV8FPVUKBlJfCwsMBwMLABpTBUkHCh4ETFBAQA9bXmZSDVpTWF0Ea1tTB0dEBF0GGw9WQwdfDghRDVZrDEUGVWtRAAoABlsHVwNQUhEBXQsBRlUXV1E8Qw9cAwkLVQdSHFEOSAUEbAUBQFAjBQlBAyQDVxoEBlRvR11BXRZHWQ9WbFULClhRCFE5TV5NBFhpFldbDzxTRRFCAFZXGAkwMXdAAgpGXEdKHWZbDQBVXG1iRAdAURASXlpUOVYLXVoLDwE6RQ0SAglbUwIGTFEDFl1IDEVBXV1QOwMNW11ZC186VhdCSwdXBR8EbGZwRV0eWBVHXFcDPFYLVg9dCFRpSRdaFAFHFxhuUAYJBl4GAwwGEVZOWkNBXgxTOlZbDl1RX1JqXAUWbV0AQFlGURIFVgVaQFJHcAtdVw8SQVUPUw9RBVUDBA5dBA=="
}
}
}
],
"billing_contact": {
"given_name": "Jane",
"family_name": "Doe",
"address": {
"line_1": "123 Main Street",
"line_2": "",
"city": "Seattle",
"state_province_code": "WA",
"postal_code": "98122",
"country_code": "US"
}
},
"creation_date_time": "2023-06-21T19:52:42.477Z",
"affiliate_reference_id": "2023-06-21-02",
"affiliate_metadata": "data_point_1:|data_point2:",
"email": "janedoe@email.com",
"phone": {
"country_code": "1",
"area_code": "858",
"number": "1234567"
}
}
Itinerary with new check-in date 2023-12-04 and check-out date 2023-12-05. Note that the itinerary number will remain the same as in the original booking.
{
"itinerary_id": "9141257626318",
"property_id": "480180",
"rooms": [
{
"id": "201300171",
"bed_group_id": "37321",
"confirmation_id": {
"expedia": "33633318"
},
"checkin": "2023-12-04",
"checkout": "2023-12-05",
"number_of_adults": 2,
"given_name": "Jane",
"family_name": "Doe",
"status": "booked",
"special_request": "Top floor or away from street please",
"smoking": false,
"rate": {
"id": "270125984",
"merchant_of_record": "property",
"refundable": true,
"cancel_refund": {
"amount": "-151.31",
"currency": "USD"
},
"cancel_penalties": [
{
"currency": "USD",
"nights": "1",
"start": "2023-12-02T23:59:00.000-06:00",
"end": "2023-12-04T23:59:00.000-06:00"
}
],
"amenities": [
"2192",
"1073742786"
],
"pricing": {
"nightly": [
[
{
"value": "22.31",
"type": "tax_and_service_fee",
"currency": "USD"
},
{
"value": "129.00",
"type": "base_rate",
"currency": "USD"
}
]
],
"totals": {
"inclusive": {
"billable_currency": {
"value": "151.31",
"currency": "USD"
}
},
"exclusive": {
"billable_currency": {
"value": "129.00",
"currency": "USD"
}
},
"property_fees": {
"billable_currency": {
"value": "0.81",
"currency": "USD"
}
}
},
"fees": {
"mandatory_fee": {
"billable_currency": {
"value": "0.81",
"currency": "USD"
}
}
}
}
},
"loyalty_id": "123456789",
"loyalty": {
"member_id": "123456789",
"program_id": "Hotel"
},
"links": {
"cancel": {
"method": "DELETE",
"href": "/v3/itineraries/9141257626318/rooms/ae70934e-1f8f-441c-9ae5-6f75a622ce55?token=REhZAQsDBAMHVEcBW0NeEUocagFfXQcEMzUfXFREClxbAUBeUEsHC1UKTTtbAGxEXAZaFgAIKy5lfC4SQgdERlpTRWxGQV9TXg5ROl1QXAAJAA0NBEIVQFYVVURBQTlRVFkCCwdQC1MeUQkAXVQPDFQHWwJQX1gWFlcDU0wWVgBQV1dBX0BDSlRXC0R3CVVQUhJMXF8NWAhSBVIEAFE="
},
"change": {
"method": "PUT",
"href": "/v3/itineraries/9141257626318/rooms/ae70934e-1f8f-441c-9ae5-6f75a622ce55?token=REhZAQsDBAMHVEcBW0NeEUocagFfXQcEMzUfXFREClxbAUBeUEsHC1UKTTtbAGxEXAZaFgAIKy5lfC4SQgdERlpTRWxGQV9TXg5ROl1QXAAJAA0NBEIVQFYVVURBQTlRVFkCCwdQC1MeUQkAXVQPDFQHWwJQX1gWFlcDU0wWVgBQV1dBX0BDSlRXC0R3CVVQUhJMXF8NWAhSBVIEAFE="
},
"pricing": {
"method": "GET",
"href": "/v3/itineraries/9141257626318/rooms/ae70934e-1f8f-441c-9ae5-6f75a622ce55/pricing?token=REhZAQsDBAMHVEcBW0NeEUocagFfXQcEMzUfXFREClxbAUBeUEsHC1UKTTtbAGxEXAZaFgAIKy5lfC4SQgdERlpTRWxGQV9TXg5ROl1QXAAJAA0NBEIRR1ABDQ4ACV4JBlMCBBERQQxIURYVTWdbBQRSDVUADwlDVg5SX1hbXglYWFdSWFRAQQMIAxpEBFRaWAZLXhdIT1sOWEdCVRQXXFBHbRcDUwdGUA9SA2taUA9RAgdVVgIDAhxQW1MHGAcOUAZPVVUFWBUAAAEFV1YBXQsAUQQeclsGV19DEV8JVwtXVgdRU10EUw=="
},
"shop_for_change": {
"method": "GET",
"href": "/v3/properties/480180/availability?token=XV1CBl5UWkdoCwc9RlNTCkoBCCp_bSd1QBRcX1BGEVEIVjlHXF1ZAAZWAFUGB1YbXFMNXUkBAFdXFANWV1IbBFcEUVUPUgZRUVEGQ0RRD1dURUwIBEpVAh8JUVhSTQdfVVlTXRo0YEVLWxETV10PE1gWXAFuRVwRQQpWQFFAVhxQRURaXlJsBlhXDQtaBm9QUQRaWg1NFQVTBVMBGVdRHwUAFAAHRQtQCFEXA0xaR0YIXlY9AFkNCFhaBTpFWkdYX2gQWAtbBAlUBRcABUBQQVBDFlxWVmwBW1tbDVxTOkEEFlc7DAENU1QIUgMBXAlXHkRZFkNdURFrFkcKAF4KXToNUAlVAwRbD1YXCUZdAEc-XQhWAGhfXApTAFRSDgtQVUgGBQxUHVYBUFsUDQRWBUwHVQBRBAUKVFUDDAQfAExfF0xdDARvUgxfDlFaBmsXDVwLPgxXDwEIVQoIUlUHUB5TDQ1TUQ0BaEZWBVsWVm4ODgUERQ0UXlZWUwIOV1sHFl1dBF9ZCV5aBQ8FVV5RFh1RBQdISQddDwdeS1pBExYFXgsVRVgWF1oBSztGA1VTSwBbBwFqCgUMCVACBVICU1UbUwoABR0BAAEFSFYFUlcVUAENAgdVBl1XAAUEHhJIWQALBQdRA1MeRgEHUUpACFcBahZeQksGVl5BV0QPVztLU0RBWVBFARFREgtaBEJSSxhmWAYFWAlVBFMHA1BRBAYECkMDTQtHQQhfAWtRW10KWV8FPVUKBlJfCwsMBwMLABpTBUkGDR4ETFBAQA9bXmZSDVpTWF0Ea1tTB0dEBF0GGw9WQwdfDghRDVZrDEUGVWtRAAoAB1UHVQZUXhEBXQsBRlUXV1E8Qw9cAwkLVQdSHFEOSAUEbAUBQFAjBA5BAyQEURoBA1pvR11BXRZHWQ9WbFULClhRCFE5TV5NBFhpFldbDzxTRRFCAFZXGAkwMXdAAgpGXEdKHWZbDQBVXG1iRAdAURASXlpUOVYLXVoLDwE6RQ0SAglbUwIGTFEDFl1IDEVBXV1QOwMNW11ZC186VhdCSwdXBR8EbGZwRV0eWBVHXFcDPFYLVg9dCFRpSRdaFAFHFxhuUAYJBl4GAwwGEVZOWkNBXgxTOlZbDl1RX1JqXAUWbV0AQFlGURIFVgVaQFJHcAtdVw8SQVUPUAxVBlEDBgpQBw=="
}
}
}
],
"billing_contact": {
"given_name": "Jane",
"family_name": "Doe",
"address": {
"line_1": "123 Main Street",
"line_2": "",
"city": "Seattle",
"state_province_code": "WA",
"postal_code": "98122",
"country_code": "US"
}
},
"creation_date_time": "2023-06-21T19:52:42.477Z",
"affiliate_reference_id": "2023-06-21-02",
"affiliate_metadata": "data_point_1:|data_point2:",
"email": "janedoe@email.com",
"phone": {
"country_code": "1",
"area_code": "858",
"number": "1234567"
}
}
To view the history of the booking, you should call the Itinerary Retrieve API by using the include=history
flag. Itinerary-level and room-level details will be returned.
Error handling
- No change possible. Reservation already matches requested date.
When the check-in, check-out, occupancy, room type, rate ID, and price are all the same as the original booking a 400 Bad Request error will be returned.
{
"type": `invalid_input`,
"message": "An invalid request was sent in, please check the nested errors for details",
"errors": [
{
"type": "no_change",
"message": "No change possible. Reservation already matches requested date."
}
]
}
- Existing booking is Expedia Collect/Property Collect, this cannot be changed.
As mentioned above, it is not possible to change the business model using hard change. For example, a booking cannot be changed from expedia_collect
to property_collect
. Attempts to change the business model will throw a 400 - Bad Request error at the shop_for_change
step.
{
"type": "invalid_input",
"message": "An invalid request was sent in, please check the nested errors for details.",
"errors": [
{
"type": "filter.mismatch",
"message": "Existing booking is property_collect, this cannot be changed.",
"fields": [
{
"name": "filter",
"type": "querystring",
"value": "expedia_collect"
}
]
}
]
}
For further guidance on error handling see the relevant endpoint in the API Explorer or refer to common error responses.