Professional Documents
Culture Documents
Shopping Cart APIs v0.8
Shopping Cart APIs v0.8
APIs
Version 0.87
Table of Contents
Change control............................................................................................................................................
Introduction - Purpose of this Document....................................................................................................
1. Shopping Cart API................................................................................................................................
1.1 Summary............................................................................................................................4
AddToShoppingCartRQ......................................................................................................................5
AddToShoppingCartRS.......................................................................................................................5
ViewShoppingCartRQ........................................................................................................................5
ViewShoppingCartRS.........................................................................................................................6
RemoveItemFromShoppingCartRQ...................................................................................................9
RemoveItemFromShoppingCartRS....................................................................................................9
ClearShoppingCartRQ........................................................................................................................9
ClearShoppingCartRS.........................................................................................................................9
CountShoppingCartItemsRQ..............................................................................................................9
CountShoppingCartItemsRS.............................................................................................................10
Description of individual objects.................................................................................................11
AuthenticatedSenders.....................................................................................................11
PriceApplicability.............................................................................................................12
ProductAttributes..........................................................................................................16
Service.............................................................................................................................16
Media..............................................................................................................................22
Vendor.............................................................................................................................23
OfficeLocation................................................................................................................24
Introduction - Purpose of this Document....................................................................................................
1. Shopping Cart API................................................................................................................................
1.1 Summary............................................................................................................................4
AddToShoppingCartRQ......................................................................................................................5
AddToShoppingCartRS.......................................................................................................................5
ViewShoppingCartRQ........................................................................................................................5
ViewShoppingCartRS.........................................................................................................................6
RemoveItemFromShoppingCartRQ...................................................................................................9
RemoveItemFromShoppingCartRS....................................................................................................9
ClearShoppingCartRQ........................................................................................................................9
ClearShoppingCartRS.........................................................................................................................9
CountShoppingCartItemsRQ..............................................................................................................9
CountShoppingCartItemsRS.............................................................................................................10
Description of individual objects.................................................................................................11
AuthenticatedSenders.....................................................................................................11
PriceApplicability.............................................................................................................11
ProductAttributes............................................................................................................14
Service.............................................................................................................................15
Media...............................................................................................................................20
Vendor.............................................................................................................................20
OfficeLocation..................................................................................................................22
Change control
Name Date Changes summary Version
Maria v0.1-
Initial versions
Psaraki v0.7
Updated info:
Maria 13th February Viator – move startTime in addToCart
Psaraki 2023 Viator markup
Update party (authenticatedSenders) v0.8
Updated Info:
Efsevia 17th February
Avis tax details
Kotsifaki 2023
Avis populate more vehicle characteristics
For each of the ancillary types (Properties, Experiences & Car Hire), we list all the information that
will be available as part of the shopping cart request and response messages.
AddToShoppingCartRQ
AddToShoppingCartRQ Required Description
payloadAttributes.correlationId * The correlationId as returned by a previous getTravelOfferDetailsRS.
When a request message includes an echo token, the corresponding response
payloadAttributes.echoToken
message will include the same echo token.
The details of the sender of this request. The AuthenticatedSenders object is
authenticatedSenders *
defined in the individual objects below (ref AuthenticatedSenders).
The selected offer from a previous offer response. The array will always
selectedOffers *
contain one single item for ancillaries.
selectedOffers.recommendationId * The recommendationId from the respective getTravelOfferDetailsRS.
selectedOffers.bundleId * The bundleId from the respective getTravelOfferDetailsRS.
The selected priceApplicabilityId from the respective getTravelOfferDetailsRS.
selectedOffers.selectionList *
The array will always contain one single item for ancillaries.
selectedOffers. Specifies the selected bedGroupId from the respective
* (Expedia only)
serviceQualifier.serviceTypeIdentifier getTravelOfferDetailsRS. Used only for properties.
Starting time for the item in the case that the product has multiple start times,
deliveryInstructions.startTime.
e.g. “10:00”
formattedDateTime
Used only for experiences.
AddToShoppingCartRS
Returns an http 200 OK in case of a successful response or an Aerostream error response otherwise.
ViewShoppingCartRQ
ViewShoppingCartRQ Required Description
payloadAttributes.correlationId * The correlationId as returned by a previous getTravelOfferDetailsRS.
When a request message includes an echo token, the corresponding response
payloadAttributes.echoToken
message will include the same echo token.
The details of the sender of this request. The AuthenticatedSenders object is
authenticatedSenders *
defined in the individual objects below (ref AuthenticatedSenders).
ViewShoppingCartRS
ViewShoppingCartRS Required Description
End-to-end correlation of application logs. It will be the same as provided in
payloadAttributes.correlationId *
the request.
messageDatetime.formattedDateTime * Timestamp of the response message.
shoppingCart * The details and the items that the shopping cart contains.
shoppingCart.shoppingCartId * Inique identifier of this shopping cart instance.
The details of the sender of this request. The AuthenticatedSenders object is
shoppingCart.recipients *
defined in the individual objects below (ref AuthenticatedSenders).
shoppingCart. Timestamp of the creation time of the shopping cart, e.g. "2021-06-
*
creationDate.formattedDateTime 23T20:27:04"
shoppingCart. Timestamp of the last change time of the shopping cart, e.g. "2021-06-
lastChangeDate.formattedDateTime 23T20:27:04"
shoppingCart. Timestamp of the last view time of the shopping cart, e.g. "2021-06-
lastViewDate.formattedDateTime 23T20:27:04"
shoppingCart.selectedOffers * Array of the offers/items that the shopping cart contains.
shoppingCart.selectedOffers.
* The recommendationId from the respective getTravelOfferDetailsRS.
recommendationId
shoppingCart.selectedOffers.bundleId * The bundleId from the respective getTravelOfferDetailsRS.
shoppingCart.selectedOffers.
* Unique id within the shopping cart specifying this item/offer.
bundleSelectionId
Specifies the ancillary type of this item. One of:
Hotel
shoppingCart.selectedOffers.serviceType *
Car
Activity
shoppingCart.selectedOffers.
* (Expedia only) Specifies the selected bedGroupId. Used only for properties.
serviceQualifier.serviceTypeIdentifier
The price applicability details of this item. Both the bundleBreakdown and
shoppingCart.selectedOffers. priceDetail arrays will contain only one item for ancillaries. The
*
bundleBreakdown.priceDetail PriceApplicability object is defined in the individual objects below (ref
PriceApplicability).
Services for a particular item/offer. Only one item is expected for ancillaries.
shoppingCart.selectedOffers.serviceList *
The Service object is defined in the individual objects below (ref Service).
Vendor details. For Expedia, the property’s core info; for Avis, the office’s
* (Expedia and
shoppingCart.selectedOffers.vendor info. The Vendor object is defined in the individual objects below (ref
Avis only)
Vendor).
shoppingCart.selectedOffers.trip * Trip details pertaining to this item.
Start date of the trip, that is:
o Check-in date for properties,
with format YYYY-MM-DD. E.g. 2021-09-08
shoppingCart.selectedOffers.trip.
* o Date to check for available experiences,
tripStartDate.formattedDateTime
with format YYYY-MM-DD. E.g. 2021-09-08
o Pickup date and time for car hire,
with format YYYY-MMM-DDTHH:MM:SS E.g. 2021-09-08T10:00:00
End date of the trip, that is:
o Check-out date for properties,
shoppingCart.selectedOffers.trip. * (Expedia and
with format YYYY-MM-DD. E.g. 2021-09-08
tripEndDate.formattedDateTime Avis only)
o Drop off date and time for car hire,
with format YYYY-MMM-DDTHH:MM:SS E.g. 2021-09-08T10:00:00
shoppingCart.selectedOffers.trip.
* The destination name
startLocation.name
shoppingCart.selectedOffers.trip.
* The destination Id of the trip
startLocation.externalId.locationId
shoppingCart.selectedOffers.trip. * (Expedia and
Type of the externalId.locationId
startLocation.externalId.type Viator only)
shoppingCart.selectedOffers.trip.
* (Avis only) The drop off name
endLocation.name
shoppingCart.selectedOffers.trip.
* (Avis only) The drop off locationId
endLocation.externalId.locationId
shoppingCart.selectedOffers.trip.
* Array of objects to define the travelers that participate in this trip.
travelers
shoppingCart.selectedOffers.trip.
* An identifier for a particular traveler of the trip.
travelers.personId
shoppingCart.selectedOffers.trip. * The PTC of the traveler. The array will always contain one single item for
travelers.ptc ancillaries.
RemoveItemFromShoppingCartRQ
RemoveItemFromShoppingCartRQ Required Description
payloadAttributes.correlationId * The correlationId as returned by a previous getTravelOfferDetailsRS.
When a request message includes an echo token, the corresponding response
payloadAttributes.echoToken
message will include the same echo token.
The details of the sender of this request. The AuthenticatedSenders object is
authenticatedSenders *
defined in the individual objects below (ref AuthenticatedSenders).
Refers to an item (bundleSelectionId) in the shopping cart that is requested to
itemRef *
be removed.
RemoveItemFromShoppingCartRS
Returns an http 200 OK in case of a successful response or an Aerostream error response otherwise.
ClearShoppingCartRQ
ClearShoppingCartRQ Required Description
payloadAttributes.correlationId * The correlationId as returned by a previous getTravelOfferDetailsRS.
When a request message includes an echo token, the corresponding response
payloadAttributes.echoToken
message will include the same echo token.
The details of the sender of this request. The AuthenticatedSenders object is
authenticatedSenders *
defined in the individual objects below (ref AuthenticatedSenders).
ClearShoppingCartRS
Returns an http 200 OK in case of a successful response or an Aerostream error response otherwise.
CountShoppingCartItemsRQ
CountShoppingCartItemsRQ Required Description
payloadAttributes.correlationId * The correlationId as returned by a previous getTravelOfferDetailsRS.
When a request message includes an echo token, the corresponding response
payloadAttributes.echoToken
message will include the same echo token.
authenticatedSenders * The details of the sender of this request. The AuthenticatedSenders object is
CountShoppingCartItemsRS
CountShoppingCartItemsRS Required Description
End-to-end correlation of application logs. It will be the same as provided in
payloadAttributes.correlationId *
the request.
messageDatetime.formattedDateTime * Timestamp of the response message.
numberOfItems * The number of items that the shopping cart contains.
• WEB_BROWSER
• AIRPORT_KIOSK
• MOBILE_WEB
• MOBILE_APP
• OTHER
• UNKNOWN
messageSender.senderType * (only for TAP) Type of the sender. Used only for TAP with value “CSR”.
messageSender.agentID * (only for TAP) Logged in agent user id. Used only for TAP.
messageSender. sourceSenderCode * (only for TAP) Staff number of the agent. Used only for TAP.
msgParticipants.agentId * (only for LAH) The membership id of the LAH user. The array will contain one single item
when the Customer is the direct message participant or two items when
the Customer Service Agent is the direct message participant. In the latter
case, both the Agent and the Customer’s info should be provided.
msgParticipants.senderType * Values:
LAH : Loyalty Account Holder
OPCO : Operational Company of Customer Service Agents and
Representatives
msgParticipants.senderName * (only for TAP) Airline code of the CSR.
Mantadory for TAP flows and IAGL-white-label Avis flows.
msgParticipants.user.residenceCountryCode Residence country code of LAH
PriceApplicability
priceApplicabilityId * The Price Applicability Id of this item/offer
Reference to the serviceId within this item/offer. The array will
serviceRef *
always contain one single item for ancillaries.
packageAttributes * Package information, e.g. hotel room package
packageAttributes.packageId * Unique Package Id within a price applicability
Name of the product option.
packageAttributes.name
Used only for experiences.
Vehicle rate code (for cars).
packageAttributes.code * (Avis only) Identification code for the product option (for experiences).
Used only for cars and experiences.
packageAttributes.remarks.title Description of the product option.
scale = 2
packageTotalPrice.baseAmount. currencyCode Currency code
packageTotalPrice. totalTaxAmount.amount.intValue Total tax amount
Decimal points, e.g. 120.35:
packageTotalPrice. totalTaxAmount.amount.scale amount = 12035
scale = 2
packageTotalPrice.
Currency code
totalTaxAmount.amount.currencyCode
packageTotalPrice.taxDetails Array of items. Tax breakdown. Used only for avis.
packageTotalPrice.taxDetails.taxName Name of the tax. E.g. "Local Tax”
packageTotalPrice.taxDetails.taxAmount.amount.intValue Tax amount
Decimal points, e.g. 120.35:
packageTotalPrice.taxDetails. taxAmount.amount.scale amount = 12035
scale = 2
packageTotalPrice.taxDetails. taxAmount.currencyCode Currency code
Net amount. Cost of goods, without markup.
packageTotalPrice. netAmount.amount.intValue
Used only for experiences.
Decimal points, e.g. 120.35:
packageTotalPrice. netAmount.amount.scale amount = 12035
scale = 2
packageTotalPrice.netAmount. currencyCode Currency code
Markup amount. Calculation: netAmount*markupPercent
packageTotalPrice. markup.amount.intValue
Used only for experiences.
Decimal points, e.g. 120.35:
packageTotalPrice. markup.amount.scale amount = 12035
scale = 2
packageTotalPrice.markup. currencyCode Currency code
packageTotalPrice. surcharges Any additional surcharges (array)
packageTotalPrice.surcharges. feeCode Fee designator
packageTotalPrice. surcharges. amount.amount.intValue Fee amount
Decimal points, e.g. 120.35:
packageTotalPrice.surcharges. amount.amount.scale amount = 12035
scale = 2
ProductAttributes
ProductAttributes Required Description
List of attribute pairs (key-value)
Experiences:
under path /packageAttributes: "cancelIfBadWeather",
"cancelIfInsufficientTravelers", "ticketInfo", "pickupIncluded"
attributePairs
Vehicles:
under path /packageAttributes: "unlimited_distance", "distance_unit",
“under_age_fee_applied”, "distance_covered", "distance_overage"
“true”, “false”
for " ticketInfo": the respective description
Service
serviceId * The Service Id as returned in the getTravelOfferDetailsRS
* (Viator
description.title Description of this product. Used only for experiences.
only)
* (Expedia
room The details of a room service. Used only for properties.
only)
room.name * The name of the room
room.roomId * Expedia’s room Id
Dimension details of the room. Array of items.
room.dimensionList
Returned only in the getTravelOfferDetailsRS
Type of dimension, values {"square_meters", "square_feet"}
room.dimensionList. dimCategory
Returned only in the getTravelOfferDetailsRS
Dimension value, e.g. 85
room.dimensionList. dimValue
Returned only in the getTravelOfferDetailsRS
Unit of measurement. E.g. “m2”, “ft2”
room.dimensionList. UOM
Returned only in the getTravelOfferDetailsRS
Total maximum occupancy allowed for the room.
room.maxOccupants
Returned only in the getTravelOfferDetailsRS
* (Avis
vehicle The details of a vehicle service. Used only for cars
only)
vehicle.name Name of the vehicle
offers.serviceList.vehicle.make Make of the vehicle
offers.serviceList.vehicle.model Model of the vehicle
vehicle.vehicleClassCode The vehicle class code used to identify individual cars and
question
List of allowed answers for this booking question if the
experience.bookingQuestions. allowedAnswers
answer represents a selection from a set of specific answers
The type of the experience service. There are 5 types:
i. STANDARD: a tour-based product (focused on
visiting and viewing) that occurs at a single location
or proceed through a set of locations on a single day
ii. MULTI_DAY_TOUR: a tour or activity that occur over
multiple days, and therefore include a breakdown of
the itinerary for each day of the tour, as well as extra
information about food and accommodation
iii. ACTIVITY: an activity-based product (focused on the
experience. experienceDetails.type * activity rather than the location) that occurs at a
single location or proceeds through a set of locations
on a single day
iv. HOP_ON_HOP_OFF: a tour that operates
continuously, such as a bus tour, wherein passengers
can use their ticket to board and alight as they
please at any of the stops along the route
v. UNSTRUCTURED: a text-based description for
products that their suppliers have not yet upgraded
them to structured data
experience. experienceDetails.duration Duration information for this service
Duration of this service in the case that it takes a fixed
experience. experienceDetails. duration.duration
amount of time
Lower limit of the duration of this service in the case that
experience. experienceDetails. duration.minDuration
this product's duration varies
Upper limit of the duration of this service in the case that
experience. experienceDetails. duration.maxDuration
this product's duration varies
Duration information for this service returned as a free text,
experience. experienceDetails. duration.freeText
used only in UNSTRUCTURED products
experience. experienceDetails. duration.uom Unit of measurement. E.g. “min”
Details about the delivery of the product.
experience.deliveryInstructions
Used only for experiences in the getTravelOfferDetailsRS.
pickupLocations.address.cityName
experience.deliveryInstructions.
Zip or postal code
pickupLocations.address.zipCode
experience.deliveryInstructions.
Country name
pickupLocations.adsress.countryName
experience.deliveryInstructions.
Country code
pickupLocations.address.countryCode
Name of this location.
experience.deliveryInstructions. pickupLocations.location.name *
Used only for experiences in the getTravelOfferDetailsRS.
experience.deliveryInstructions. Reference id of this location. Used only for experiences in
*
pickupLocations.location.externalId.locationId the getTravelOfferDetailsRS.
Geographic coordinates (lattitude/longitude) for this
experience.deliveryInstructions. pickupLocations.geoLocation location.
Used only for experiences in the getTravelOfferDetailsRS.
experience.deliveryInstructions. pickupLocations.geoLocation. Latitude of this location.
*
latitude.intValue Used only for experiences in the getTravelOfferDetailsRS.
experience.deliveryInstructions. pickupLocations.geoLocation. Decimal points.
*
latitude.scale Used only for experiences in the getTravelOfferDetailsRS.
experience.deliveryInstructions. pickupLocations.geoLocation. Longitude of this location.
*
longitude.intValue Used only for experiences in the getTravelOfferDetailsRS.
experience.deliveryInstructions. pickupLocations.geoLocation. Decimal points.
*
longitude.scale Used only for experiences in the getTravelOfferDetailsRS.
Array of starting point locations and descriptions. Same
experience.deliveryInstructions.startLocations structure as pickupLocations.
Used only for experiences in the getTravelOfferDetailsRS.
Array of ending point locations and descriptions. Same
experience.deliveryInstructions.endLocations structure as pickupLocations.
Used only for experiences in the getTravelOfferDetailsRS.
The array will contain only one hero image of the vehicle (for
cars) or the product (for experiences). Used only for cars and
media experiences.
Each Media object is defined in the individual objects below
(ref Media).
Media
Media Required Description
title Title of the image
Populated with value 1, if this is a “hero” image (for properties) or a “cover” image (for
mediaSequence
experiences); not returned otherwise.
mediaList Array of different dimensions of the same image
Size of the image. Used only for properties and experiences.
mediaList.type For properties, e.g. “350px”
For experiences: width x height, e.g. "60x40"
mediaList.href The URL for the link
Vendor
Vendor Required Description
The vendor’s id.
vendorId * For properties, the unique Expedia’s property Id.
For cars, the unique Aerostream’s vendor brand id.
The vendor’s name.
vendorName *
For properties, the property name.
* (Expedia
hotel Details of a hotel vendor, used only for properties
only)
The array will contain one hero image of the property.
vendors.hotel.media
Each Media object is defined in the individual objects below (ref Media)
vendors.hotel.address Address information
vendors.hotel.address.streetAddress Array of street addresses. Expedia returns up to two addresses.
vendors.hotel.address.cityName City
vendors.hotel.address.stateOrProvince State or province
vendors.hotel.address.zipCode Postal/zip code
vendors.hotel.address.countryCode Country code
vendors.hotel.checkInDetails The property’s check-in information.
vendors.hotel.checkInDetails.
The time at which a property begins to allow check-ins, e.g. "3:00 PM"
checkinStartTime
vendors.hotel.checkInDetails.
The time at which a property stops allowing check-ins.
checkinEndTime
vendors.hotel.checkInDetails.
The time by which a guest must check out.
checkoutTime
vendors.hotel.checkInDetails.
The property’s check-in policy.
instructions
vendors.hotel.checkInDetails. Any special instructions for checking into this property that may be specific to this
specialInstructions property.
vendors.hotel.checkInDetails.
The minimum age for a customer to be able to check-in at a property.
minCheckInAge
vendors.hotel.feeList Information related to a property’s fees. Array of items.
vendors.hotel.feeList.type Type of fee, values: {“mandatory”, “optional”}
vendors.hotel.feeList.attribute Description of the fee. The array will always contain one single item.
Information about property policies that guests need to be aware of. The array will
vendors.hotel.policies
always contain one single item.
vendors.hotel.policies.type Type of policy, value: {“know_before_you_go”}
vendors.hotel.policies.attribute Description of the policy. The array will always contain one single item.
vendors.carHireOffice * (Avis only) Used only for cars.
Rental car pickup location and address information. The OfficeLocation object is
vendors.carHireOffice.pickupLocation
defined in the individual objects below (ref OfficeLocation)
Rental car dropff location and address information. The OfficeLocation object is
vendors.carHireOffice.dropoffLocation
defined in the individual objects below (ref OfficeLocation)
vendors.carHireOffice.policies Policies. Array of items.
vendors.carHireOffice.policies.type Values: “terms”, “liability”
vendors.carHireOffice.policies.attribute List of terms and conditions
OfficeLocation
OfficeLocation Required Description
address Address details
address.stateOrProvince State or province
address.streetAddress Array of street addresses.
address.cityName City name or administrative area
address.zipCode Zip or postal code
address.countryName Country name
address.countryCode Country code