Field Descriptions

Note: This page has not yet been converted to the new developer portal format. Please use Swagger to test this API.

Data Models

Field Descriptions

NameTypeValueDescriptionValidationValidation Message
externalItineraryIdStringe.g. 134808153The external id of the itinerary set by the client.Not Required.
Max length is 100 characters.
Field ['externalItineraryId'] length is 164, exceeds the limit of 100 characters
pnrStringe.g. DWKURT(Passenger Name Record): the unique identifier of one (or many) passenger’s itineraries.
Record Locator of the PNR.
Required.
Max length is 100 characters.
◊ Field ["pnr"] is empty.
◊ Field ['pnr'] length is 164, exceeds the limit of 100 characters
itineraryStatusString◊ Canceled
◊ Custom Status(e.g. Active)
◊ etc.
The status of the itinerary.
The Canceled Status of the itinerary in our platform means we will not generate segments(itineraries) and expected locations for the itinerary or remove the existing itinerary and expected locations with the same pnr or planId.
Required.
Max length is 30 characters.
◊ Field ["itineraryStatus"] is empty.
◊ Field ['itineraryStatus'] length is 64, exceeds the limit of 30 characters
itinerarySourceStringThe source of the itinerary.Not Required.
Max length is 30 characters.
◊ Field ['itinerarySource'] length is 64, exceeds the limit of 30 characters
createdDateString2020-11-22 T08:45:00ZThe date that the itinerary was created, in UTC, ISO date format.Not Required.◊ Field ['createdDate'] value 2017-05-22T08:45:00 is invalid!
lastModifiedDateString2020-11-30 T08:45:00ZThe date that the itinerary was last modified, in UTC, ISO date format.Not Required.◊ Field ['lastModifiedDate'] value 2017-07-22T08:45:00 is invalid!
extendedInfo
ObjectExtended information at the itinerary level.

All fields inside the object are optional as extra information for the system. It does not impact the existing ones.
Not Required.
segmentsArrayList of segments in this itinerary.Required for the itinerary without "Canceled" status.
◊ If all segments of the itinerary are invalid, the API request will be rejected.
◊ If only some of the segments are invalid, the API request will still be successful but the system only generates expected locations based on the valid segments data.
◊ The itinerary does not contain any segments
◊ All segments of the itinerary are invalid, PNR creation failed
passengersArrayList of passengers in this itinerary.Required for the itinerary without "Canceled" status. The system will verify if there is a contact matching with the provided passengers.◊ Field [‘passengers’] is empty!
◊ Travel matching error, no contact matching.
travelArrangerObjectThe travel arranger for this itinerary.Not Required.

Itinerary ExtendedInfo

Field NameData TypeValuesDescriptionValidation
startDateString2021-11-22
T08:45:00Z
Itinerary start date, in UTC, ISO date format.Not Required.
endDateString2021-11-22
T08:45:00Z
Itinerary end date, in UTC, ISO date format.Not Required.
diTypeString◊ D
◊ I
Domestic/International type of the itinerary, which should be calculated based on the number of the itinerary segment countries.
If there are multiple countries within the trip, it is International (I), otherwise Domestic (D).
Not Required.
bookedByStringe.g. Jim GreenThe person who booked the itinerary.Not Required.
isTicketedBoolean◊ true
◊ false
◊ null
Flag indicating whether the itinerary is already ticketed, or null for unknown.Not Required.
reasonDescStringe.g. Business TravelTravel reason description.Not Required.
approverStringe.g. Alice BrownApprover of the travel.Not Required.
costCenterStringe.g. A123Cost center for the travel.Not Required.
travelAuthCodeStringe.g. ABCD123456Travel authorization code.Not Required.
emailAddressesArraye.g. ["[email protected]",
"[email protected]"]
Email address list associated with itinerary.Not Required.
travelAgencyInfoObjectTravel agency info.Not Required.

TravelAgencyInfo

Field NameData TypeValuesDescriptionValidation
externalAgencyIdIntegere.g. 123The external id of the travel agency, for tracking purposes.Not Required.
agencyNameStringe.g. Universal Travel AgencyAgency name.Not Required.
agencyContactStringe.g. Tom MillerAgency contact person name.Not Required.
agencyEmailStringe.g. [email protected]Agency contact email.Not Required.
agencyTel1Stringe.g. +13317987654Agency telephone number 1.Not Required.
agencyTel2Stringe.g. +13317987655Agency telephone number 2.Not Required.
gdsNameStringe.g. SabreGDS name.Not Required.

Segments

NameTypeValueDescriptionValidationValidation Message
typeStringe.g. AirThe type of segment.Required and should be any value listed here:
◊ Car
◊ Hotel
◊ Rail
◊ Air
◊ Field ['segments.type'] is empty!
◊ Field ['segments.type'] value Mobile is invalid!
supplierCodeStringe.g. SQThe code of the vendor.Not Required.
Max length is 256 characters.
◊ "Field ['segments.supplierCode'] length is 300, exceeds the limit of 256 characters"
supplierNameStringe.g. Singapore AirlinesThe name of the vendor like the Airline, Railway, Hotel, or Car Renting Company Name.Not Required.
Max length 1024 characters.
◊ "Field ['segments.supplierName'] length is 1500, exceeds the limit of 1024 characters"
airRailNumberStringe.g. 301Flight Or Rail Number.Required for the segment of Air/Rail type. The value must not be blank or all zeros."Field ['segments.airRailNumber'] value 00000 is invalid"
fromIataCodeStringe.g. DFWThree-letter code of the departure IATA location.
Our platform can get the location name, country, city, state, time zone, latitude, longitude by this IATA code.
For Air/Rail, it's recommended to provide it. Refer to more details in "Address And Timezone Adoption Rule"
toIataCodeStringe.g. IADThree-letter code of the destination IATA location.
Our platform can get the location name, country, city, state, time zone, latitude, longitude by this IATA code.
For Air/Rail, it's recommended to provide it. Refer to more details "Address And Timezone Adoption Rule"
fromDateTimeString2020-12-03
T10:15:30Z
The starting date-time for this segment, in UTC. ISO Date Format: YYYY-MM-DDThh:mm:ssZ.See "Date Time Adoption Rule"◊ Field ['segments.fromDateTime'] and ['segments.fromDateTimeLocal'] is empty
◊ Field ['segments.fromDateTime'] value 2018-07-21T00:00:00 is invalid
◊ "Field ['segments.fromDateTime'] and Field ['segments.fromTimeZone'] is empty"
toDateTimeString2020-12-03
T10:15:30Z
The ending date-time for this segment, in UTC. Format: YYYY-MM-DDThh:mm:ssZ.See "Date Time Adoption Rule"◊ Field ['segments.toDateTime'] and ['segments.toDateTimeLocal'] is empty
◊ Field ['segments.toDateTime'] value 2018-07-31T00:00:00 is invalid
◊ "Field ['segments.fromDateTime'] and Field ['segments.fromTimeZone'] is empty"
fromDateTime
Local
String2020-12-03
T02:15:30
The starting date-time for this segment in the departure location's time zone. Format: YYYY-MM-DDThh:mm:ssSee "Date Time Adoption Rule"◊ Field ['segments.fromDateTime'] and ['segments.fromDateTimeLocal'] are empty
◊ Field ['segments.fromDateTimeLocal'] value 2017/07/21T16:50:00 is invalid
toDateTime
Local
String2020-12-03
T02:15:30
The starting date-time for this segment in the destination location's time zone. Format: YYYY-MM-DDThh:mm:ssSee "Date Time Adoption Rule"◊ Field ['segments.toDateTime'] and ['segments.toDateTimeLocal'] are empty
◊ Field ['segments.toDateTimeLocal'] value 2017/07/21T16:50:00 is invalid
fromTimeZoneStringe.g. Asia
/Shanghai EST
The time zone for this segment in the departure location. The TZ database name is supported.The time zone is required when there is a local date time string (fromDateTimeLocal) but no UTC date time (fromDateTime), or IATA location's (fromIataCode).◊ Field ['segments.fromTimeZone'] is empty!
◊ Field [‘segments.fromTimeZone’] value Asia/Chongqing111 is invalid!
toTimeZoneStringe.g. Asia/
Shanghai EST
The time zone for this segment in the destination location. The TZ database name is supported.The time zone is required when there is a local date time string (toDateTimeLocal) but no UTC date time (toDateTime), or IATA location's (toIataCode).◊ Field ['segments.toTimeZone'] is empty!
◊ Field [‘segments.toTimeZone’] value Asia/Chongqing111 is invalid!
extendedInfoObjectExtended information at the segment level.

All fields inside the object are optional, as extra information for the system. It does not impact the existing ones.
Not required.
fromAddressObjectThe address info for this segment in the departure location.See "Address And Timezone Adoption Rule"
toAddressObjectThe address info for this segment in the destination location.See "Address And Timezone Adoption Rule"

Segment ExtendedInfo

Field NameData TypeValuesDescriptionValidation
externalSegmentIdIntegere.g. 232028393The external id of the segment for tracking purposes.Not Required.
externalSegmentIndexIntegere.g. 1The sequence of the current segment in all same type segments of the itinerary, based on time ASC. The earliest segment would have the smallest index.Not Required.
carHotelExtraInfoObjectOnly available for the segment with type Car or Hotel.Not Required.Not Required.

CarHotelExtraInfo

Field NameData TypeValuesDescriptionValidation
telephoneNoStringe.g.+13729302030Common info for Car and Hotel type.
The telephone number for the Car rental vendor or Hotel.
Not Required.
confirmationNoStringe.g. 729123Common info for Car and Hotel type.
The confirmation number for the reservation.
Not Required.
rateInfoStringe.g.100Common info for Car and Hotel type.
Rate info for car rental or hotel room rate per night.
Not Required.
currencyCodeStringe.g. 840Hotel only. Not applicable for Car.
Currency code for rate info.
Not Required.
chainCodeStringe.g. amHotel only. Not applicable for Car.
Hotel chain code.
Not Required.
guestCountIntegere.g. 2Hotel only. Not applicable for Car.
Guest count of hotel reservations.
Not Required.
noOfNightsIntegere.g. 2Hotel only. Not applicable for Car.
The number of nights of hotel reservations, which should be calculated based on the check-in and check-out dates of the hotel segments. This is optional information that can be provided as input. The system does not do the automatic calculation to override the input value, nor does the validation against it.
Not Required.
noOfRoomsIntegere.g. 1Hotel only. Not applicable for Car.
The number of rooms of hotel reservations.
Not Required.
roomTypeStringe.g. Single roomHotel only. Not applicable for Car.
Room type of hotel reservation.
Not Required.

Address

NameTypeValueDescriptionValidationValidation Message
locationNameStringe.g. Hilton New York Fashion District HotelThe location name of the departure or destination location like the airport name, the railway station name, the hotel name.Not required.
For the Hotel/Car segment, it's recommended to provide it because it will be used as the expected location's name.
For Air/Rail segment, If not provided, the system will use IATA location's name.
Max length is 1024 characters.
◊ Field ['fromAddress.locationName'] length is 1055, exceeds the limit of 1024 characters
countryStringe.g. FR
e.g. France
The country's short name or two-letter code of the departure or destination location.
The country’s short name comes from ISO_3166-2. https://://en.wikipedia.org/wiki/ISO_3166-2
Required if there is no IATA code or the system can't locate a valid IATA location based on the IATA code.
It's recommended to provide a two-letter code of the country.
◊ Field ['fromAddress.country'] is empty
◊ Field ['fromAddress.country'] value AB is invalid
cityStringe.g. ParisThe city name of the departure or destination location.Not Required.
If there is no IATA code or the system can't locate a valid IATA location based on the IATA code, it's required to provide a city or a street address or a geo-location.
Field ['fromAddress.latitude'], Field ['fromAddress.longitude'], Field ['fromAddress.streetAddress'] and Field ['fromAddress.city'] are empty
stateStringe.g. New York
e.g. NY
The state name or US state code of the departure or destination location.Not Required.◊ Field ['fromAddress.state'] value New York11 is invalid
streetAddressStringe.g. 152 West 26th StreetThe street or address info of the departure or destination location.If there is no IATA code or the system can't locate a valid IATA location based on the IATA code, it's required to provide a city or a street address or a geo-location.
Max length is 1024 characters.
◊ Field ['fromAddress.streetAddress'] length is 1505, exceeds the limit of 1024 characters
postalCodeStringe.g. 10001The postal code of the departure or destination location.Not Required.
latitudeNumbere.g. 35.60A decimal degrees latitude value of the departure or destination location. [-90,+90]Not Required.
If there is no IATA code or the system can't locate a valid IATA location based on the IATA code, it's required to provide a city or a street address or a geo-location.
◊ "Field ['fromAddress.latitude'] value 99.745529 is invalid
longitudeNumbere.g -112.432A decimal degrees longitude value of the departure or destination location. [-180,+180]If there is no IATA code or the system can't locate a valid IATA location based on the IATA code, it's required to provide a city or a street address or a geo-location.◊ Field ['fromAddress.longitude'] value -199.745529 is invalid".

Passengers/TravelArranger

NameTypeValueDescriptionValidationValidation Message
contactIdString2419011The contact Id from EB Suite.Not Required.
Max length is 20 characters.
Field ['passengers.contactId'] length is 30, exceeds the limit of 20 characters.
employeeIdStringe.g. E 001The employee Id of the passenger.
The client can set the value as the contact external id from EB Suite.
Not Required.
Max length is 50 characters.
Field ['passengers.employeeId'] length is 72, exceeds the limit of 50 characters
firstNameStringe.g. JackThe first name of the passenger.Not Required.
Max length is 40 characters.
Field ['passengers.firstName'] length is 72, exceeds the limit of 40 characters
middleNameStringe.g. B.The middle name of the passenger.Not Required.
Max length is 40 characters.
Field ['passengers.middleName'] length is 72, exceeds the limit of 40 characters!
lastNameStringe.g. WilliamThe last name of the passenger.Not Required.
Max length is 40 characters.
Field ['passengers.lastName'] length is 72, exceeds the limit of 40 characters!
phoneNumbersArrayThe list of the phone numbers of the passenger.Not Required.
emailAddressesArray of String["[email protected]", "[email protected]"]The list of the email addresses of the passenger.Not Required.
Max length is 80 characters for each email address.
◊ Field passengers.emailAddresses length is 91, exceeds the limit of 80 characters
◊ Field passengers.emailAddresses value [email protected] is invalid
extendedInfoObjectExtended information at the passenger level.

All fields inside the object are optional, as extra information for the system. It does not impact the existing ones.

Please note that even though it's also available for the travel arrangers, it is not intended for them, so just ignore the extended info for travel arrangers.
Not required.

Passenger ExtendedInfo

Field NameData TypeValuesDescriptionValidation
externalTravelerIdIntegere.g. 10001The external id of the passenger for tracking purposes.Not Required.
isExpatBoolean◊ true

◊ false

◊ null
Expat flag for the passenger. When the input value is True, it means the passenger is an Expatriate.Not Required.
vipStatusCodeStringe.g. vipVIP status code for the passenger.Not Required.
jobBandStringe.g. PB8Job band.Not Required.
jobTitleStringe.g. Senior EngineerJob title.Not Required.
clusterTagStringe.g. EngineeringCluster tag, which can be used to categorize the passenger.Not Required.
emergencyContactsArrayList of emergency contacts for the passenger.Not Required.

Passenger EmergencyContact

Field NameData TypeValuesDescriptionValidation
externalNextOfKinIdIntegere.g. 10001Emergency contacts themselves do not have to travel.

The external id of the emergency contact, for tracking purposes.
Not Required.
relationshipStringe.g. partnerEmergency Contact's relationship with the passenger.Not Required.
firstNameStringe.g. AliceEmergency Contact's first name.Not Required.
lastNameStringe.g. WilliamsEmergency Contact's last name.Not Required.
telHomeStringe.g. +15712345678Emergency Contact's home phone.Not Required.
telWorkStringe.g. +15712345677Emergency Contact's work phone.Not Required.
telCellStringe.g. +15712345676Emergency Contact's cell phone.Not Required.
emailAddressStringe.g. [email protected]Emergency Contact's email.Not Required.
addressStringe.g.

152 West 26th Street
Emergency Contact's address info.Not Required.

PhoneNumber

Field NameData TypeValuesDescriptionValidationValidation Message
phoneNumberNumbere.g. 1571634908
e.g. +861571634 9087
The phone number .phoneNumber with calling country code, e.g. +8615716349087
{ "phoneNumber": "+8615716349087" }
phoneNumber without calling country code but with countryName. e.g.: {"phoneNumber": "15716349087", "countryName": "CN"}
Field ['passengers.pho neNumbers'] length is 23, exceeds the limit of 20 characters
countryNameStringe.g. CN, ChinaThe country's short name or two- letter code of the phone number.Not Required. The non-blank value must be a valid value.

Notes

Date Time Adoption Rule

The system will regard the UTC date-time string (fromDateTime and toDateTime) as a higher priority than the local date-time string (fromDateTimeLocal and toDateTimeLocal).

  • If the UTC date time string is provided with a valid format and the from date-time is before the to date-time, the system will use it and make validation of the travel segment's date-time pass.

  • If the UTC date time string is not provided, the local date-time string (fromDateTimeLocal and toDateTimeLocal) is provided with a valid format, and there is a timezone from the timezone field (fromTimeZone and toTimeZone) or from the IATA Location's timezone, the system will use it and make the validation pass. Otherwise, this segment data will be ignored and the system will not generate the expected locations for it.

Address And Timezone Adoption Rule

In order for a segment and expected locations to be created successfully, the system need an address (for geolocation) and a time zone (to calculate the local time).
The address can be either provided using the address field (fromAddress and toAddress) OR using the IATA code (fromIataCode and toIataCode).
Time zone can be calculated from the IATA code, however, it cannot be calculated from the address.

Depending on the segment type, the address or the IATA code will be taken in priority.

For segments of the Air/Rail type:

The system will regard the IATA code (fromIataCode and toIataCode) as a higher priority than the address field (fromAddress and toAddress) when setting address, geolocation and time zone.

• If the IATA code is provided and the system can locate an IATA location based on the IATA code, then the system will set the created expected location's name, country, state, city, latitude, longitude and the local time zone from the IATA location's name, country, state, city, latitude, longitude, and timezone. The IATA location's name will be used to set the expected location's street address.

• If the IATA code is not provided or the system can't locate an IATA location based on the IATA code, then the system will try to set the Country, State, City, Address and time zone from the provided information. If there is a valid country and a valid street address, city or geo-location, then the segment data will be ingested successfully.

Note: if the country is United States, a valid State must be provided.
If there is a valid latitude and longitude provided, it will be used otherwise, to calculate the latitude and longitude, the system will try to use the address information from the address field (fromAddress and toAddress) if provided.

For segments of the Car/Hotel type:

The system will regard the address fields (fromAddress and toAddress) as a higher priority than the IATA code (fromIataCode and toIataCode) when setting address and time zone.
If there is a valid country and a valid street address, city or geo-location (Note: if the country is United States, a valid State must be provided), OR valid IATA code the segment data will be ingested successfully.

• Address and Geolocation calculation:
If some address information is provided, in the address field (fromAddress and toAddress) then the system will try to set the Country, State, City, Address and time zone from the provided information.
If a valid Latitude and longitude is provided it will be used, otherwise geolocation will be calculated from the provided address.
If no information is provided in the address fields (fromAddress and toAddress) the system will attempt to use the IATA code. The system will set the created expected location's name, country, state, city, latitude, longitude and the local time zone from the IATA location's name, country, state, city, latitude, longitude, and timezone.

• Time zone Calculation:
If the address information (fromAddress and toAddress) is provided,

  • If Date/Time (fromDateTime and toDateTime) is provided, it will be used. No other fields are required.
  • If Date/Time (fromDateTime and toDateTime) is not provided, Date Time Local (fromDateTimeLocal and toDateTimeLocal) AND time zone (fromTimeZone and toTimeZone) are required.

If the address information (fromAddress and toAddress) is not provided and the IATA code is used, then the system will adopt the IATA location's name, country, state, city, latitude, longitude, and timezone and use them as the expected location's location name, country, state, city, latitude, longitude and the local time zone of the arrival date and expired date.
The Date/Time (fromDateTime and toDateTime) OR the Date Time Local (fromDateTimeLocal and toDateTimeLocal) must also be provided