You are on page 1of 27

Ancillaries Shopping Cart

APIs

Version 0.87

Copyright © 2024 JR Technologies


All Rights Reserved.
Confidential - Not for distribution

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

Copyright © 2024 JR Technologies, All Rights Reserved. Page 2 of 27


Confidential - Not for distribution

CountShoppingCartItemsRQ..............................................................................................................9
CountShoppingCartItemsRS.............................................................................................................10
Description of individual objects.................................................................................................11
AuthenticatedSenders.....................................................................................................11
PriceApplicability.............................................................................................................11
ProductAttributes............................................................................................................14
Service.............................................................................................................................15
Media...............................................................................................................................20
Vendor.............................................................................................................................20
OfficeLocation..................................................................................................................22

Copyright © 2024 JR Technologies, All Rights Reserved. Page 3 of 27


Confidential - Not for distribution

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

Introduction - Purpose of this


Document
This document provides a first high-level overview of the Aerostream Shopping Cart APIs.

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.

Copyright © 2024 JR Technologies, All Rights Reserved. Page 4 of 27


Confidential - Not for distribution

1. Shopping Cart API


1.1 Summary
The following methods defines the generic Shopping Cart API and are independent of the type of the
ancillary:
o AddToShoppingCart
 adds an offer (item) to cart
o ViewShoppingCart
 returns all the items of the cart with their details
o RemoveItemFromShoppingCart
 removes the requested item from the cart
o ClearShoppingCart
 removes all the items from the cart
o CountShoppingCartItems
 returns the number of items in the cart

Copyright © 2024 JR Technologies, All Rights Reserved. Page 5 of 27


Confidential - Not for distribution

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

Copyright © 2024 JR Technologies, All Rights Reserved. Page 6 of 27


Confidential - Not for distribution

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

Copyright © 2024 JR Technologies, All Rights Reserved. Page 7 of 27


Confidential - Not for distribution

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.

Copyright © 2024 JR Technologies, All Rights Reserved. Page 8 of 27


Confidential - Not for distribution

Values: {ADT, CHD, INF, SRC, YTH, TRA}


Array of objects, used to group travelers to define occupancy. Travelers
shoppingCart.selectedOffers.trip.
* (Expedia only) within the same shopperGroup signify that they will stay in the same room. It
shopperGroups
is used only for properties.
shoppingCart.selectedOffers.trip. Array of items, specifies the travelers that are staying in the same room.
shopperGroups.shopperRef Refers to travelers.personId.
Specifies the eligible PTCs for this product and the details of it (e.g. a product
shoppingCart.selectedOffers.
* (Viator only) defines its own age ranges per PTC). Array of items. Used only for
offeredPTCs
experiences.
shoppingCart.selectedOffers. PTC code
* (Viator only)
offeredPTCs.code Values: {ADT, CHD, INF, SRC, YTH, TRA}
shoppingCart.selectedOffers.
Lower limit (inclusive) of the age range defined by this PTC
offeredPTCs.startAge
shoppingCart.selectedOffers.
Upper limit (inclusive) of the age range defined by this PTC
offeredPTCs.endAge
shoppingCart.selectedOffers.
Starting time for the item as provided in the request, e.g. “10:00”
deliveryInstructions.startTime.
Used only for experiences.
formattedDateTime

Copyright © 2024 JR Technologies, All Rights Reserved. Page 9 of 27


Confidential - Not for distribution

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

Copyright © 2024 JR Technologies, All Rights Reserved. Page 10 of 27


Confidential - Not for distribution

defined in the individual objects below (ref AuthenticatedSenders).

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.

Copyright © 2024 JR Technologies, All Rights Reserved. Page 11 of 27


Confidential - Not for distribution

Description of individual objects


AuthenticatedSenders
authenticatedSenderId * An agreed senderId that must be present in all the requests
Specifies the device of the customer, that the request is sent from. One of:
 AGENT_TERMINAL
 WEB_BROWSER
 AIRPORT_KIOSK
messageSender.pos.device.deviceName *
 MOBILE_WEB
 MOBILE_APP
 OTHER
 UNKNOWN
Specifies the airline that this customer is a loyalty member of; 2-character
messageSender.iataNumber *
IATA airline code, e.g. “BA”
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
msgParticipants.agentId *
the Customer Service Agent is the direct message participant. In the latter
case, both the Agent and the Customer’s info should be provided.
Values:
msgParticipants.senderType *  LAH : Loyalty Account Holder
 CSR : Customer Service Agents and Representatives
AuthenticatedSenders Required Description
authenticatedSenderId * An agreed senderId that must be present in all the requests.
 “IAGL-white-label” for Online channel (IAGL UI)
 “IAGL-TAP” for Offline channel (TAP)
messageSender.iataNumber * Specifies the airline that this customer is a loyalty member of; 2-character
IATA airline code, e.g. “BA”
messageSender.pos.posCountry * (Expedia and The country code of the traveler’s point of sale. This should represent the
Avis only) country where the shopping transaction is taking place.
messageSender.pos.posCurrency Currency code
messageSender.pos.posLanguage Language code, e.g. “en-US”, “es-ES”
messageSender.pos.device. ipAddress The customer’s IP address as provided in the request
messageSender.pos.device. deviceName * Specifies the device that the request was sent from. Values:
• AGENT_TERMINAL

Copyright © 2024 JR Technologies, All Rights Reserved. Page 12 of 27


Confidential - Not for distribution

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

Copyright © 2024 JR Technologies, All Rights Reserved. Page 13 of 27


Confidential - Not for distribution

Used only for experiences.


* (Expedia
packageAttributes.packageRules and Viator Contain the cancellation policies. Array of items.
only)
packageAttributes.packageRules. packageRuleId * Unique Package Rule Id within a price applicability
When ruleTypeInd is true, and packageType is cancel, then
cancellation is possible.
packageAttributes.packageRules. ruleTypeInd *
When ruleTypeInd is false, and packageType is cancel, then
cancellation is not possible, meaning no refund will be given.
Type of this package rule. E.g. for cancellation rule, it will be
packageAttributes.packageRules. packageType *
“cancel”
packageAttributes.packageRules. startDateTime. Effective date and time of cancellation penalty, e.g. “2021-04-
formattedDateTime 01T15:00:00.000+02:00”
packageAttributes.packageRules. endDateTime. End date and time of cancellation penalty, e.g. “2021-04-
formattedDateTime 01T15:00:00.000+02:00”
Number of nights charged for as penalty.
packageAttributes.packageRules. chargeableUnit
Used only for properties.
packageAttributes.packageRules.
Fee amount
feeAmount.amount.intValue
Decimal points, e.g. 120.35:
packageAttributes.packageRules.
amount = 12035
feeAmount.amount.scale
scale = 2
packageAttributes.packageRules.
Currency of the amount object
feeAmount.currencyCode
Description of the package rule.
packageAttributes. packageRules.remark
Used only for experiences.
Description of this product's cancellation policy.
packageAttributes.packageRules. ruleFulltextRef
Used only for experiences.
Number of days prior to the product start time that this policy
* (Viator
packageAttributes.packageRules. dayRangeMin window ends.
only)
Used only for experiences.
Percentage of total price charged for as penalty (if cancelled
* (Viator
packageAttributes.packageRules. percent within the specified time window).
only)
Used only for experiences.

Copyright © 2024 JR Technologies, All Rights Reserved. Page 14 of 27


Confidential - Not for distribution

Array of the available language guides for this product option.


packageAttributes.mediaList
Used only for experiences.
Type of language guide; one of:
 “GUIDE” – human tour guide
* (Viator
packageAttributes.mediaList.title  “AUDIO” – audio guide
only)
 “WRITTEN” – printed guide
Used only for experiences.
Language code for this guide.
packageAttributes.mediaList. mediaList.type
Used only for experiences.
General structure that holds package's attributes. The array will
always contain one single item for ancillaries. Each
packageAttributes.attributes
ProductAttribute object is defined in the individual objects below
(ref )
Bed group information of the room. The array will always contain
packageAttributes.beds one single item for ancillaries.
Used only for properties.
packageAttributes.beds. bedGroupId Expedia’s Bed Group Id.
packageAttributes.beds.title Description of the bed group
packageAttributes.beds. configuration The bed configuration for a given room. Array of items.
packageAttributes.beds. configuration. type The type of bed, e.g. “FullBed”
packageAttributes.beds. configuration. size The size of the bed, e.g. “Full”
packageAttributes.beds. configuration. quantity The number of bed(s), e.g. 2
Price information for this price applicability. If there are several
packageTotalPrice *
groups, this is the total price of them. Array of items.
packageTotalPrice.priceId * Unique Price Id within an offer
Total amount.
packageTotalPrice. totalAmount.amount.intValue *
Sum of netAmount + taxes + markup + fees.
Decimal points, e.g. 120.35:
packageTotalPrice. totalAmount.amount.scale * amount = 12035
scale = 2
packageTotalPrice.totalAmount. currencyCode * Currency code
packageTotalPrice. baseAmount.amount.intValue Base amount
packageTotalPrice. baseAmount.amount.scale Decimal points, e.g. 120.35:
amount = 12035

Copyright © 2024 JR Technologies, All Rights Reserved. Page 15 of 27


Confidential - Not for distribution

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

Copyright © 2024 JR Technologies, All Rights Reserved. Page 16 of 27


Confidential - Not for distribution

packageTotalPrice.surcharges. amount.currencyCode Currency code


Loyalty points; to be used only in the case of a combined price e.g.
packageTotalPrice. loyaltyAmount.amount.intValue
EUR + Miles
Decimal points, e.g. 12035:
packageTotalPrice. loyaltyAmount.amount.scale amount = 12035
scale = 0
packageTotalPrice. loyaltyAmount. currencyCode For Amounts expressed in Miles 999 will be used as currency code
Loyalty points that will be collected/earned; usually when the
packageTotalPrice. earnedPoints.amount.intValue
payment option is full cash
Decimal points, e.g. 12035:
packageTotalPrice. earnedPoints.amount.scale amount = 12035
scale = 0
packageTotalPrice.earnedPoints. currencyCode For Amounts expressed in Miles 999 will be used as currency code

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"

attributePairs.attribute Attribute key


attributePairs.value Attribute value for experiences
 for “cancelIfBadWeather", "cancelIfInsufficientTravelers" and "pickupIncluded":

Copyright © 2024 JR Technologies, All Rights Reserved. Page 17 of 27


Confidential - Not for distribution

“true”, “false”
 for " ticketInfo": the respective description

Attribute value for vehicles


 for "unlimited_distance" and “under_age_fee_applied”: “true”, “false”
 for "distance_unit", "distance_covered", "distance_overage": the respective
value as a string

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

Copyright © 2024 JR Technologies, All Rights Reserved. Page 18 of 27


Confidential - Not for distribution

trucks according to size, axle numbers and type


vehicle.vehicleClassName The name of the vehicle class
vehicle.vehicleTransmission The transmission of the vehicle
offers.serviceList.vehicle.fuel Vehicle’s fuel, e.g. “Petrol”, “Diesel”
offers.serviceList.vehicle.attributeList Array of attributes
offers.serviceList.vehicle.attributeList. type Attribute type, for vehicles: {“features”, “capacity”, “size”}
List of attributes
 for type “features”:
"Smoke Free", "Air Conditioned", "Bluetooth
Equipped", "Internet/Network Access"
offers.serviceList.vehicle.attributeList. attribute  for type “capacity” e.g. :
"4 Doors", "7/8 Seats", "2 Large Suitcase(s)", "4 Small
Suitcase(s)"
 for type “size”:
“Small”, “Mid Size”, “Large”,”People Carriers”
Standard Interline Passenger Procedure (SIPP) code of the
vehicle.sippCode
vehicle
* (Viator The details of an experience service. Used only for
experience
only) experiences.
experience.productId * Unique identifier for this product as returned by Viator.
experience.name Name of this product
Language guides available for this product across all product
experience. languageGuides option codes. Array of items.
Used only for experiences in the getTravelOfferDetailsRS.
Type of language guide; one of:
 “GUIDE” – human tour guide
experience. languageGuides.title *  “AUDIO” – audio guide
 “WRITTEN” – printed guide
Used only for experiences in the getTravelOfferDetailsRS.
Array of language codes for this guide.
experience. languageGuides.mediaList *
Used only for experiences in the getTravelOfferDetailsRS.
Language code for this guide.
experience. languageGuides.mediaList.type *
Used only for experiences in the getTravelOfferDetailsRS.
experience.bookingQuestions Array of booking questions that need to be answered at the

Copyright © 2024 JR Technologies, All Rights Reserved. Page 19 of 27


Confidential - Not for distribution

creation of an order for this experience product.


Used only for experiences in the getTravelOfferDetailsRS.
experience.bookingQuestions.id Id of the booking question as returned by Viator, e.g.
"DATE_OF_BIRTH"
"HEIGHT"
Required unit type for the answer to the booking question as
returned by Viator. Values:
 "STRING"
experience.bookingQuestions.type  "NUMBER_AND_UNIT"
 "DATE"
 "TIME"
"LOCATION_REF_OR_FREE_TEXT"
Specifies whether the booking question must be answered
individually for each traveler or once per group of travelers
experience.bookingQuestions.group in each booking, as returned by Viator; one of:
 "PER_TRAVELER"
"PER_BOOKING"
experience.bookingQuestions.title Title of this booking question
Hint (tooltip) for this booking question. E.g. "E.g. 14 July
experience.bookingQuestions.hint
2024, 25 May 2026"
Specifies whether an answer must be provided to this
question if it is included in the product's description, as
returned by Viator.
Values:
 “MANDATORY” - it is always mandatory to provide
experience.bookingQuestions. answerIsRequired an answer to this question
 “OPTIONAL” - it is optional to provide an answer to
this question
“CONDITIONAL” - it is only mandatory to answer this
question if it is made so by the presence of a related booking
question.
Maximum allowable input length for the answer, measured
experience.bookingQuestions.maxLength
in characters (UTF-8)
experience.bookingQuestions.units Units that may be used when answering this booking

Copyright © 2024 JR Technologies, All Rights Reserved. Page 20 of 27


Confidential - Not for distribution

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.

Copyright © 2024 JR Technologies, All Rights Reserved. Page 21 of 27


Confidential - Not for distribution

Additional information and instructions.


experience.deliveryInstructions. instructions.remarks
Used only for experiences in the getTravelOfferDetailsRS.
Specifies whether travelers can choose a custom pick-up or
* (Viator
experience.deliveryInstructions. allowCustomTravelerPickup meeting location for this product.
only)
Used only for experiences in the getTravelOfferDetailsRS.
Specifies the type of traveler pickup option.
 "PICKUP_EVERYONE" (the supplier will pick up all
customers from their respective locations)
 "PICKUP_AND_MEET_AT_START_POINT" (the
supplier will pick up all customers from their
experience.deliveryInstructions. pickupOptionType
respective locations; or, customers can make their
own way to the start point)
 "MEET_EVERYONE_AT_START_POINT" (all customers
must make their own way to and meet at the start
point)
How long prior to the product departure time will traveler-
experience.deliveryInstructions.
pickup occur (in minutes).
minutesBeforeDepartureTimeFor Pickup
Used only for experiences in the getTravelOfferDetailsRS.
Array of pick-up and meeting points.
experience.deliveryInstructions. pickupLocations
Used only for experiences in the getTravelOfferDetailsRS.
Type of pick-up location; one of {"AIRPORT", "HOTEL",
experience.deliveryInstructions. pickupLocations.type "PORT", "OTHER"}.
Used only for experiences in the getTravelOfferDetailsRS.
Populated with values {"MEET_AT_DEPARTURE_POINT",
"CONTACT_SUPPLIER_LATER"} only when the location is
experience.deliveryInstructions. pickupLocations.description
specified as such.
Used only for experiences in the getTravelOfferDetailsRS.
Address details.
experience.deliveryInstructions. pickupLocations.address
Used only for experiences in the getTravelOfferDetailsRS.
experience.deliveryInstructions. pickupLocations.address.
State or province
stateOrProvince
experience.deliveryInstructions.
Street address. One item is expected for experiences.
pickupLocations.address.streetAddress
experience.deliveryInstructions. City name or administrative area

Copyright © 2024 JR Technologies, All Rights Reserved. Page 22 of 27


Confidential - Not for distribution

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

Copyright © 2024 JR Technologies, All Rights Reserved. Page 23 of 27


Confidential - Not for distribution

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

Copyright © 2024 JR Technologies, All Rights Reserved. Page 24 of 27


Confidential - Not for distribution

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

Copyright © 2024 JR Technologies, All Rights Reserved. Page 25 of 27


Confidential - Not for distribution

location.name * Name of this location


location.code Unique location code (of Avis/Budget)
phone.phoneNumber Phone number of the office
workingHours Operating hours of the office
type If this is an airport location, the type will be “airport”; otherwise it will not be returned
geoLocation Geographic coordinates (lattitude/longitude) for this location
geoLocation.latitude.intValue * Latitude of this location
geoLocation.latitude.scale * Decimal points
geoLocation.longitude.intValue * Longitude of this location
geoLocation.longitude.scale * Decimal points
description Description of the location

Copyright © 2024 JR Technologies, All Rights Reserved. Page 26 of 27


Confidential - Not for distribution

Copyright © 2024 JR Technologies, All Rights Reserved. Page 27 of 27

You might also like