Overview
This page will host the documentation for the travel search information related events that are publicly available on concur.travel.search
topic in the Event Subscription Service (ESS).
Subscribers to these events will receive search criteria for travel searches performed within SAP Concur.
These events are relevant for applications that are interacting with travelers before they book their trip such as applications that context to the traveler regarding company policy, preferences, or general compliance requirements for booking travel.
Subscribers will be able to subscribe to these events by following the steps described on the Event Subscription Service v4 page.
Limitations
Access to this documentation does not provide access to the subscription.
Scope Usage
Scopes required to interact with this topic:
Name | Description |
---|---|
travelrequest.write |
Read and write Requests and Search Information. |
events.topic.read |
Read events. |
Events
The topic concur.travel.search
contains events for air and hotel searches.
Schema
Schema for Air Search Event
Name | Type | Format | Description |
---|---|---|---|
id |
string |
GUID |
Uniquely identifies the event. |
correlationId |
string |
GUID |
Uniquely identifies the air search request. |
eventType |
string |
- | Identifies the search event type. Supported values: travelSearchAir |
topic |
string |
- | Topic for subscription. Supported values: concur.travel.search |
timeStamp |
string |
YYYY-MM-DDTHH:MM:SS.fZ |
Search event time in UTC. |
facts |
object |
Air Search Facts | Facts for air search. |
Schema for Air Search Facts
Name | Type | Format | Description |
---|---|---|---|
companyId |
string |
GUID |
Uniquely identifies the company of the traveler. |
userId |
string |
GUID |
Uniquely identifies the user performing the search. Note: If the travel is booked by an arranger, this will be the traveler’s ID. In cases where a profiled user is booking on behalf of a nonprofiled guest, this will be the user performing the search. |
arrangerUserId |
string |
GUID |
If the user is also the traveler, this value will be the same as the userID above. If an arranger is booking on behalf of the traveler, this will uniquely identify the user arranging the trip. |
searchLegs |
string |
- | Type of air search. Supported values: RoundTrip , MultiSeg , OneWay |
isGuestBooking |
boolean |
- | Identifies if the booking is a guest. |
isFlexFaring |
boolean |
- | Identifies if search is for flex faring. |
segments |
array |
Air Search Segment | List of segments for search. |
numberOfTravelers |
integer |
- | Number of travelers. |
classOfTrip |
string |
- | Selected cabin class. Supported values: F = First Class, C = Business Class, W = Premium Economy, Y = Economy Class |
airCarriers |
array |
- | If the user filters for individual carriers, this list will be populated with the IATA airline carrier codes. Example: AA, VA, LH |
Schema for Air Search Segment
Name | Type | Format | Description |
---|---|---|---|
departures |
array |
City | List of departure airports selected by the user. A user can select a city area/hub as point of departure, which will result in an array of multiple airports. |
arrivals |
array |
City | List of arrival airports selected by the user. A user can select a city area/hub as point of arrival, which will result in an array of multiple airports. |
departureDate |
string |
MM/DD/YYYY |
Date traveler will depart from the point of departure, local time. Either the departure date/time or the arrival date/time will be populated. |
departureTime |
string |
HH:MM AM/PM |
Departure time, in local time. Either the departure date/time or the arrival date/time will be populated. |
departureTimeWindow |
integer |
- | Time window (+/-) around selected departure time, in hours. Either the departure date/time or the arrival date/time will be populated. |
arrivalDate |
string |
MM/DD/YYYY |
Date on which the traveler will arrive at the destination, in local time. Either the departure date/time or the arrival date/time will be populated. |
arrivalTime |
string |
HH:MM AM/PM |
Time at which the traveler will arrive at the destination, in local time. Either the departure date/time or the arrival date/time will be populated. |
arrivalTimeWindow |
integer |
- | Time window (+/-) around selected arrival time, in hours. Either the departure date/time or the arrival date/time will be populated. |
Schema for Air Search City
Name | Type | Format | Description |
---|---|---|---|
cityName |
string |
- | Name of the city. Example: Frankfurt |
cityIATACode |
string |
- | IATA code of the city. Example: FRA. Note: If the user searches for a group of airports (e.g. Los Angeles area airports), this code will not be IATA standard. In this case, the city name should be used. |
Schema for Hotel Search Event
Name | Type | Format | Description |
---|---|---|---|
id |
string |
GUID |
Uniquely identifies the event. |
correlationId |
string |
GUID |
Uniquely identifies the hotel search request. |
eventType |
string |
- | Identifies the search event type. Supported values: travelSearchHotel |
topic |
string |
- | Topic for subscription. Supported values: concur.travel.search |
timeStamp |
string |
YYYY-MM-DDTHH:MM:SS.fZ |
Search event time in UTC. |
facts |
object |
Hotel Search Facts | Facts for hotel search. |
Schema for Hotel Search Facts
Name | Type | Format | Description |
---|---|---|---|
companyId |
string |
GUID |
Uniquely identifies the company of the traveler. |
userId |
string |
GUID |
Uniquely identifies the user performing the search. Note: If the travel is booked by an arranger, this will be the traveler’s ID. In cases where a profiled user is booking on behalf of a nonprofiled guest, this will be the user performing the search. |
refPointLatitude |
number |
double |
Reference point for the search latitude. |
refPointLongitude |
number |
double |
Reference point for the search longitude. |
refPointName |
string |
- | Reference point for the search name. |
radiusDistance |
integer |
- | Distance around the reference point as selected by the user. |
distanceUnit |
string |
- | Unit for radius distance. Supported values: Mile , Kilometer |
checkInDate |
string |
YYYY-MM-DD |
Check in date, in local time. |
checkOutDate |
string |
YYYY-MM-DD |
Check out date, in local time. |
Sample Events
Sample Air Search Event
Sample roundtrip air search
{
"id": "00e4aeb3-d181-4881-89b1-0d0b5418968f",
"correlationId": "51AB4E74-1287-4B20-87FB-98A93CE4CEEB",
"eventType": "travelSearchAir",
"topic": "concur.travel.search",
"timeStamp": "2018-10-15T14:19:06.395349006Z",
"data": null,
"facts": {
"companyId": "0af6e6ec-c0e6-427e-b397-a38d70276fb1",
"userId": "5040b878-da00-47c7-8676-e0f6c67885b5",
"arrangerUserId": "5040b878-da00-47c7-8676-e0f6c67885b5",
"searchLegs": "RoundTrip",
"isGuestBooking": null,
"isFlexFaring": null,
"segments": [
{
"departures": [
{
"cityName": "Las Vegas",
"cityIATACode": "LAS"
}
],
"arrivals": [
{
"cityName": "Los Angeles",
"cityIATACode": "LAX"
}
],
"departureDate": "01/15/2019",
"departureTime": "09:00 AM",
"departureTimeWindow": 3,
"arrivalDate": null,
"arrivalTime": null,
"arrivalTimeWindow": null
},
{
"departures": [
{
"cityName": "Los Angeles",
"cityIATACode": "LAX"
}
],
"arrivals": [
{
"cityName": "Las Vegas",
"cityIATACode": "LAS"
}
],
"departureDate": "01/16/2019",
"departureTime": "03:00 PM",
"departureTimeWindow": 3,
"arrivalDate": null,
"arrivalTime": null,
"arrivalTimeWindow": null
}
],
"numberOfTravelers": 1,
"classOfTrip": "Y",
"airCarriers": null
},
"groups":null,
"scopes":null
}
Sample Hotel Search Event
{
"id": "a48e8dc1-86ad-40bc-87c3-23249936c079",
"correlationId": "66a89237-4681-4439-94a1-61d8a1ccd304",
"eventType": "travelSearchHotel",
"topic": "concur.travel.search",
"data": null,
"timeStamp": "2024-10-28T13:41:19.671878713Z",
"facts": {
"companyId": "c49c6381-bac2-4a90-9738-cd358576d68a",
"userId": "a2ebdf99-4fad-414e-b60f-d963c4e7eed4",
"refPointLatitude": null,
"refPointLongitude": null,
"refPointName": null,
"radiusDistance": 5,
"distanceUnit": "MILE",
"checkInDate": "2025-01-27",
"checkOutDate": "2025-01-28"
},
"groups":null,
"scopes":null
}