Package Retrieve Booking API

Guidance and examples for accessing the Package Retrieve Booking API

The Package Retrieve Booking API allows you to retrieve the details of an Expedia booking (whether booking was done via Booking API or on an Expedia website).

Endpoint

MethodEndpointPrerequisites
GEThttps://apim.expedia.com/packages/bookings/[TripNumber]An active TripNumber from the Package Booking API.

Required Headers

Key:Expedia API key
Authorization:Expedia API Authorization String
User-Id:username@domain.com

The email address associated with the booking and to which the Booking Confirmation Email will be sent.
Accept:application/vnd.exp-package.v3+json
Partner-Transaction-Id:Partner TransactionID String

Next Steps

  • Get baggage details of each flight selected via Baggage Fee API.

Example of Package Retrieve Itinerary Query Request

Retrieve Itinerary Request

https://apim.expedia.com/packages/bookings/12345

Package Retrieve Response

{
  "TransactionId": "89d97172-bd18-4d00-8a9f-4988ab1ab334",
  "Title": "My Package Booking",
  "ItineraryNumber": 79010381654,
  "Status": "BOOKED",
  "BookingDateTime": "2021-09-29T11:46:56-07:00",
  "LastUpdateDateTime": "2021-09-29T12:46:56+00:00",
  "PartnerAgentId": "123456",
  "PartnerConfirmationNumber": "hello123",
  "AirlineConfirmations": [
    {
      "MarketingAirlineCode": "HA",
      "ConfirmationNumber": "Unassigned"
    }
  ],
  "HotelConfirmation": "8082279258335",
  "GDSLocators": [
    "PYNMH4"
  ],
  "TripStartTime": "2021-02-02T22:55:00-10:00",
  "TripEndTime": "2021-02-06T21:50:00-10:00",
  "NumberOfRooms": 2,
  "Price": {
    "PackageBasePrice": {
      "Value": "1074.93",
      "Currency": "USD"
    },
    "PackageTotalPrice": {
      "Value": "1216.99",
      "Currency": "USD"
    },
    "PackageTaxesAndFees": {
      "Value": "142.06",
      "Currency": "USD"
    },
    "TotalHotelMandatoryFees": {
      "Value": "80.00",
      "Currency": "USD"
    },
    "AverageCostPerPerson": {
      "Value": "1216.99",
      "Currency": "USD"
    },
    "HotelMandatoryFeesDetail": [
      {
        "Type": "ResortFee_Amt",
        "Amount": {
          "Value": "80.00",
          "Currency": "USD"
        }
      }
    ]
  },
  "Hotel": {
    "Id": "16427768",
    "Name": "Lucky Dragon Las Vegas",
    "LocalCurrencyCode": "USD",
    "Location": {
      "Address": {
        "Address1": "300 W Sahara Ave",
        "City": "Las Vegas",
        "Province": "NV",
        "Country": "USA",
        "PostalCode": "89102"
      },
      "GeoLocation": {
        "Latitude": "36.14409",
        "Longitude": "-115.16078"
      }
    },
    "ThumbnailUrl": "https://images.trvl-media.com/hotels/17000000/16430000/16427800/16427768/c124cce7_t.jpg",
    "StarRating": "4.0",
    "CleanlinessAndSafety": {
      "CLEANLINESS": [
        "Follows regional sanitization guidelines of O2 Safe (UNPLV) (France)",
        "Follows standard sanitization guidelines of We Care Clean (Best Western)",
        "Follows industry sanitization guidelines of European Holiday Home Association (EHHA - Europe)"
      ],
      "SOCIAL_DISTANCING": [
        "Protective shields in place at main contact areas",
        "Guest rooms kept vacant for 72 hours between stays",
        "Social distancing measures in place"
      ],
      "SAFETY": [
        "Personal protective equipment worn by staff",
        "Temperature checks available for guests",
        "Masks available",
        "Hand sanitizer provided",
        "Individually-wrapped food options available for lunch, dinner, and through room service"
      ],
      "DISCLAIMER": [
        "This information is provided by our partners."
      ]
    },
    "Rooms": [
      {
        "Traveler": {
          "Name": {
            "FirstName": "John",
            "MiddleName": "Edward",
            "LastName": "Doe"
          },
          "Phone": {
            "CountryCode": "1",
            "AreaCode": "206",
            "Number": "9876543"
          },
          "Email": "john.doe@gmail.com"
        },
        "Status": "BOOKED",
        "RoomPreferences": [
          {
            "Type": "SmokingPreference",
            "Value": "SmokingOrNonSmoking"
          },
          {
            "Type": "Bed",
            "Value": "47"
          }
        ],
        "SpecialRequests": "check-in 2 hours late,Crib Required",
        "Occupants": [
          {
            "Adults": 1
          }
        ],
        "StayDates": [
          {
            "CheckInDate": "2021-02-03",
            "CheckOutDate": "2021-02-06"
          }
        ],
        "Description": "Double Room",
        "RatePlans": [
          {
            "RoomTypeId": "201819406",
            "RatePlanId": "209246280",
            "RateRuleId": "224598154",
            "InventorySourceCode": "expe",
            "StayDates": {
              "CheckInDate": "2021-02-03",
              "CheckOutDate": "2021-02-06"
            },
            "PaymentMethod": "Online",
            "Amenities": [
              {
                "Id": "1073742787",
                "Name": "Free Internet"
              },
              {
                "Id": "2109",
                "Name": "Free Parking"
              }
            ],
            "ConfirmationNumber": "49167704-0022-4943-913c-d5828998eecf"
          }
        ],
        "SmokingOption": "SmokingOrNonSmoking",
        "Amenities": [
          {
            "Id": "4948",
            "Name": "Free cribs/infant beds"
          },
          {
            "Id": "4343",
            "Name": "Wheelchair accessible"
          },
          {
            "Id": "1073742840",
            "Name": "Rollaway/extra beds (free)"
          },
          {
            "Id": "4093",
            "Name": "Square feet -415"
          }
        ]
      }
    ]
  },
  "Flight": {
    "Travelers": [
      {
        "Name": {
          "FirstName": "John",
          "MiddleName": "Edward",
          "LastName": "Doe"
        },
        "Phone": {
          "CountryCode": "1",
          "AreaCode": "206",
          "Number": "9876543"
        },
        "Email": "john.doe@gmail.com",
        "Gender": "Male",
        "PassengerType": "ADULT",
        "DateOfBirth": "1978-10-23",
        "Passport": {
          "CountryCode": "US",
          "Number": "123GHY",
          "ExpirationDate": "2021-11-11"
        },
        "FrequentFlyerPrograms": [
          {
            "MarketingCarrierCode": "HA",
            "ProgramCarrierCode": "HA",
            "Number": "12345",
            "Status": "Frequent flyer requests should be confirmed directly with the airline"
          }
        ],
        "Tickets": [
          {
            "MarketingAirlineCode": "HA",
            "TicketNumber": "Unassigned",
            "ConfirmationNumber": "Unassigned"
          }
        ]
      }
    ],
    "Segments": [
      {
        "FlightDuration": "PT5H35M",
        "TotalStops": 0,
        "DepartureArrivalDayDifference": 1,
        "AirportChange": false,
        "FareType": "NET",
        "Links": {
          "ApiBaggageFees": {
            "Accept": "application/vnd.exp-flight.v1+json",
            "Method": "GET",
            "Href": "https://apim.int.expedia.com/flights/baggagefees/Cj0KAkhBGgoyMDE4LTAyLTAyIgNITkwqCjIwMTgtMDItMDMyA0xBUzoBTUIGTUxXME9XSgdFQ09OT01ZUgE4EgNVU0QaAmtn"
          }
        },
        "Legs": [
          {
            "DepartureAirport": {
              "Code": "HNL",
              "Name": "Daniel K. Inouye Intl.",
              "City": "Honolulu",
              "Province": "Hawaii",
              "Country": "USA",
              "Latitude": "21.332544",
              "Longitude": "-157.919701"
            },
            "ArrivalAirport": {
              "Code": "LAS",
              "Name": "McCarran Intl.",
              "City": "Las Vegas",
              "Province": "Nevada",
              "Country": "USA",
              "Latitude": "36.085393",
              "Longitude": "-115.150098"
            },
            "DepartureDateTime": "2021-02-02T22:55:00-10:00",
            "ArrivalDateTime": "2021-02-03T06:30:00-08:00",
            "FlightNumber": "8",
            "MarketingAirlineCode": "HA",
            "MarketingAirlineName": "Hawaiian Airlines",
            "EquipmentCode": "332",
            "EquipmentName": "Airbus A330-200",
            "FlightDuration": "PT5H35M",
            "BookingCode": "M",
            "CabinClass": "ECONOMY",
            "EquipmentChange": false,
            "AirlineConfirmation": {
              "MarketingAirlineCode": "HA",
              "ConfirmationNumber": "Unassigned"
            },
            "GDSLocator": "PYNMH4"
          }
        ]
      },
      {
        "FlightDuration": "PT6H45M",
        "TotalStops": 0,
        "DepartureArrivalDayDifference": 0,
        "AirportChange": false,
        "FareType": "NET",
        "Links": {
          "ApiBaggageFees": {
            "Accept": "application/vnd.exp-flight.v1+json",
            "Method": "GET",
            "Href": "https://apim.int.expedia.com/flights/baggagefees/Cj0KAkhBGgoyMDE4LTAyLTA2IgNMQVMqCjIwMTgtMDItMDYyA0hOTDoBSUIGSUxYME9XSgdFQ09OT01ZUgE1EgNVU0QaAmtn"
          }
        },
        "Legs": [
          {
            "DepartureAirport": {
              "Code": "LAS",
              "Name": "McCarran Intl.",
              "City": "Las Vegas",
              "Province": "Nevada",
              "Country": "USA",
              "Latitude": "36.085393",
              "Longitude": "-115.150098"
            },
            "ArrivalAirport": {
              "Code": "HNL",
              "Name": "Daniel K. Inouye Intl.",
              "City": "Honolulu",
              "Province": "Hawaii",
              "Country": "USA",
              "Latitude": "21.332544",
              "Longitude": "-157.919701"
            },
            "DepartureDateTime": "2021-02-06T17:05:00-08:00",
            "ArrivalDateTime": "2021-02-06T21:50:00-10:00",
            "FlightNumber": "5",
            "MarketingAirlineCode": "HA",
            "MarketingAirlineName": "Hawaiian Airlines",
            "EquipmentCode": "332",
            "EquipmentName": "Airbus A330-200",
            "FlightDuration": "PT6H45M",
            "BookingCode": "I",
            "CabinClass": "ECONOMY",
            "EquipmentChange": false,
            "AirlineConfirmation": {
              "MarketingAirlineCode": "HA",
              "ConfirmationNumber": "Unassigned"
            },
            "GDSLocator": "PYNMH4"
          }
        ]
      }
    ],
    "Free24HourCancellation": true,
    "FareOptions": [
      {
        "SegmentIds": [
          "MTAyNDQ5NTg1MTI=",
          "MTAyNDQ5NTg1MTE="
        ],
        "CleanlinessInfo": {
          "PassengerMask": {
            "Availability": "INCLUDED"
          },
          "MiddleSeatEmpty": {
            "Availability": "NOT_AVAILABLE"
          },
          "CapacityCapped": {
            "Availability": "NOT_AVAILABLE"
          },
          "CleaningMethod": "DISINFECTANT",
          "CleaningFrequency": "EVERY_FLIGHT"
        }
      }
    ]
  },
  "PartnerMetaData": {
    "SampleKey1": "SampleValue1",
    "SampleKey2": "SampleValue2"
  }
}

Error Codes

Common Error Codes

HTTP Status CodeError CodeError Message
400INVALID_CLIENT_KEYInvalid client key: xxx
400 500RETRIEVE_APPLICATION_ERRORApplication Error.
400ITINERARY_NOT_FOUNDThe itinerary was not found. Please provide valid user-id and itinerary number.
500RETRIEVE_ITINERARY_ERRORUnable to retrieve data for itinerary number %s. Please try again later.
400INVALID_ITINERARY_NUMThe itinerary number is either missing or invalid. Itinerary Number :%s
400UNKNOWN_PATHUnknown request path
400INVALID_ACCEPT_HEADERAPI version is either missing or invalid. Please provide a correct API version in the Accept header.
400INVALID_USER_IDUser-Id in http headers is missing or invalid. It must be a valid email.
400INVALID_USER_CREDENTIALSUser credentials are either missing or invalid.
400PARTNER_TRANSACTION_ID_MISSINGPartner transaction Id in http headers is missing.
400ITINERARY_NOT_FOUND_FOR_PARTNERItinerary %s was not found for client key %s.
400RETRIEVE_APPLICATION_ERRORRetrieve Failed. Application Error.
400UNSUPPORTED_PACKAGE_TYPEThe retrieved package contains products other than flight and hotel (eg.insurance)

Warning Codes

Warning Codes

CodeMessageDescription
PACKAGE_AIR_PRODUCT_CANCELEDAir Product in the package booking is canceled.The Package product is in booked status but the Air product has been canceled. So the Flight details is removed in the Package retrieve response.
PACKAGE_HOTEL_PRODUCT_CANCELEDHotel Product in the package booking is canceled.The Package product is in booked status but the Hotel product has been canceled. So the Hotel details is removed in the Package retrieve response.
FLIGHT_REFUND_UNAVAILABLEPlease contact Airline company directly if you have any refund related question.If the Flight product in Package Retrieve has an Agency Air Category, then refund details are not provided by Expedia and you will need to contact the Airline directly.

API details

Here, you can explore the endpoint definitions for this API, then go to the API Explorer to try out all the XAP endpoints, download OpenAPI specs, or download our Postman collections. Testing with one or all of these options will give you an understanding of how the examples and schema definitions compare to the actual output.


Did you find this page helpful?
How can we improve this content?
Thank you for helping us improve!