Travel Profile v2 - Resource
The Travel Profile resource represents a Concur Travel profile that contains travel-related information about a user.
Detailed descriptions of requests and responses are available in the documentation for each HTTP method.
Limitations
Access to this documentation does not provide access to the API.
Get a Travel Profile
This endpoint provides travel profile information for the specified user. The travel profile includes information such as the user’s identity, contact information, rate preferences and discount codes, preferences by travel type, and custom fields.
URI
https://{InstanceURL}/api/travelprofile/v2.0/profile
Request parameters
All request parameters are optional. To identify a specific user by Login ID or XML Sync ID, you can specify the following request parameters:
Parameter Name | Parameter Type | Data Type | Description |
---|---|---|---|
userid_type |
Path |
string |
The type of user identification to use. Possible values are: login xmlsyncid and `uuid’ |
userid_value |
Path |
string |
The user’s Login ID, XML Sync ID, or UUID, depending on which user type is selected. This parameter must be provided in conjunction with the userid_type parameter. |
Headers
Content-Type header
application/xml
Authorization header
Authorization: OAuth {access_token}
Where access_token is the OAuth 2.0 access token of the user whose travel profile information you want to retrieve.
Create / Update Travel Profile
Creating/Updating a Profile uses the same model as what is retrieved.
Helpful Tips
- Minimum elements required to create a new user include:
FirstName
LastName
TravelConfigID
(used to verify agency and Company access to create user)LoginID
Password
(we will set a random, strong password if not provided)RuleClass
(uses default rule class if not provided)
- Omitted elements will be ignored and not updated
- Empty elements of datatype string will be cleared out; nillable elements will be cleared out if set as nil refer to XSD for nillable elements.
Headers
Content-Type header
application/xml
Authorization header
Authorization: OAuth {access_token}
Where access_token
is the OAuth 2.0 access token of the user whose travel profile information you want to retrieve or update.
Schema
The complete schema definition is available here: Travel Profile XSD.
SAP Concur reserves the right to change the XSD. Reading/writing strictly to the XSD will result in breakage as new XML elements are added.
The Profile root element contains:
- General
- EmergencyContact
- Telephones
- Addresses
- NationalIDs
- DriversLicenses
- HasNoPassport
- Passports
- Visas
- EmailAddresses
- RatePreferences
- DiscountCodes
- Air
- Rail
- Car
- Hotel
- CustomFields
- Roles
- Sponsors
- TSAInfo
- UnusedTickets
- SouthwestUnusedTickets
- AdvantageMemberships
General
- Some elements require specific scopes be enabled to receive the data, refer to the table below.
- Profile fields, such as cost center and division, must be enabled and populated in the Travel site for data to return.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
NamePrefix |
string |
The user’s name prefix. Format: nvarchar(60) | - | - | - |
FirstName |
string |
The user’s first name. Format: nvarchar(60) | - | Required | - |
MiddleName |
string |
The user’s middle name. Format: nvarchar(60) | - | - | - |
LastName |
string |
The user’s last name. Format: nvarchar(60) | - | Required | - |
NameSuffix |
string |
The user’s name suffix. Format: nvarchar(60) | - | - | - |
PreferredName |
string |
The user’s preferred name. Format: nvarchar(60) | - | - | - |
JobTitle |
string |
The user’s job title. Format: nvarchar(255) | - | - | - |
CostCenter |
string |
The user’s cost center. Format: nvarchar(25) | - | - | Requires Company Details scope. |
CompanyEmployeeID |
string |
The user’s employee ID. Format: nvarchar(48) | - | - | Requires Company Details scope. Must be unique in the company. |
Division |
string |
The user’s division. Format: nvarchar(60) | - | - | Requires Company Details scope. Must already be setup in the company configuration. |
AccountTerminationDate |
Date |
The user’s Termination Date | Cannot Update | - | Requires Company Details scope. |
PreferredLanguage |
string |
The user’s preferred language locale. Example: United States English is en-US. Format: varchar(20) | - | - | See list of allowed canonical values below. Values not on this list will write an empty string |
EReceiptOptIn |
boolean |
Whether the user has opted in to receive e-receipts. Format: true\false | - | - | |
HasOpenBooking |
boolean |
Whether the user has the TripLink User (formerly Open Booking User) permission. Format: true\false | Cannot Update | - | - |
CountryCode |
string |
The country code in from the ISO 3166-1 alpha-2 country code specification. Format: char(2) | Cannot Update | - | - |
CompanyName |
string |
The user’s company name. Format: nvarchar(255) | Cannot Update | - | - |
CompanyID |
string |
The user’s company ID. Format: varchar(255) | Cannot Update | - | Requires Company Details scope. |
RuleClass |
string |
The user’s rule class. Format: nvarchar(60) | - | - | Must already be setup in the company. |
TravelConfigID |
string |
The user’s TravelConfig. Format: varchar(255) | - | Required | - |
MedicalAlerts |
string |
The user’s medical alerts. Format: nvarchar(255) | - | - | Requires Medical Alerts Scope. |
AgencyNumber |
string |
The TravelConfig’s Agency IATA Number. Format: varchar(255) | Cannot Update | - | - |
SearchID |
string |
The user’s Search ID. Format: varchar(64) | - | - | - |
GDSProfileName |
string |
The user’s GDS profile name. Format: varchar(60) | - | - | Requires TMC Specific scope. |
SabreProfileId |
string |
The user’s Sabre Travel Profile Id. Format: varchar(60) | - | - | Requires TMC Specific scope. |
UUID |
string |
The user’s Unique Identifier. Format: GUID, 32 characters | Cannot Update | - | Requires TMC Specific scope. |
NOTE: If MiddleName is provided, the NoMiddleName flag in TSAInfo section is set to false.
Canonical List of Preferred Language Values
- “bg”
- “cs”
- “da”
- “de”
- “el”
- “en”
- “es”
- “fi”
- “fr”
- “hr”
- “hu”
- “id”
- “it”
- “ja”
- “ko”
- “nb”
- “nl”
- “nn”
- “no”
- “pl”
- “pt”
- “ro”
- “ru”
- “sk”
- “sv”
- “tr”
- “zh”
- “de-AT”
- “de-CH”
- “de-DE”
- “de-LU”
- “en-AU”
- “en-CA”
- “en-GB”
- “en-IE”
- “en-IN”
- “en-NZ”
- “en-US”
- “en-ZA”
- “es-AR”
- “es-BO”
- “es-CL”
- “es-CO”
- “es-CR”
- “es-DO”
- “es-EC”
- “es-ES”
- “es-GT”
- “es-HN”
- “es-MX”
- “es-NI”
- “es-PA”
- “es-PE”
- “es-PR”
- “es-PY”
- “es-SV”
- “es-UY”
- “es-VE”
- “fr-BE”
- “fr-CA”
- “fr-CH”
- “fr-FR”
- “fr-LU”
- “it-CH”
- “it-IT”
- “ja-JP”
- “nl-BE”
- “nl-NL”
- “no-NO”
- “pt-BR”
- “pt-PT”
- “sv-SE”
- “zh-CN”
- “zh-HK”
- “zh-TW”
EmergencyContact
The emergency contact information provided.
- Emergency Contact Information scope must be enabled to receive the data.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
Name |
string |
The emergency contact name Format: nvarchar(255) | - | - | - |
Relationship |
string |
The relationship to the user. Values are: Spouse, Brother, Parent, Sister, LifePartner, Other | - | - | - |
Phone |
list |
- | - | - | If multiple values of the same telephone type are provided, only the last one will be saved. See below for the list elements. |
Address |
Address |
Street Address. Format: nvarchar(max) | - | - | - |
Address
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
Street |
string |
Street Address. Format: nvarchar(max) | - | - | - |
City |
string |
The city name. Format: nvarchar(30) | - | - | - |
StateProvince |
string |
The state or province. Format: nvarchar(30) | - | - | - |
CountryCode |
string |
The country code in from the ISO 3166-1 alpha-2 country code specification. Format: char(2) | - | - | - |
PostalCode |
string |
The postal code. Format: nvarchar(20) | - | - | - |
Phone List
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
PhoneNumber |
string |
The emergency contact’s phone number. Format: nvarchar(60) | - | - | No unicode characters. |
Type |
string |
This contains a “type” attribute with values of DayTime or Alternate. | Required | Required | - |
Telephones
The Telephones parent element contains a Telephone child element for each included telephone. The Telephone element has the attributes shown in the Response Class section and contains the following child elements:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
Type attribute |
string |
Type of phone. Values are: Home, Work, Fax, Pager, Other, and Cell | required | required | - |
ContactOptIn attribute |
boolean |
Whether the user has opted in to being contacted on this phone. Only appears when the phone type is Cell. Format: true\false | - | - | - |
PrimaryMobile attribute |
boolean |
This is the user’s preferred mobile device. Format: true\false | - | - | - |
CountryCode |
string |
The country code in from the ISO 3166-1 alpha-2 country code specification. Format: Char(2) | - | - | - |
PhoneNumber |
string |
The phone number as entered by the user, which may contain characters such as () or -. For CellPhone, Number may only contain digits, dashes, parenthesis, and spaces. Format: nvarchar(60) |
required (Cell) | required (Cell) | Required for Cell types. |
Extension |
string |
The phone extension. Format: nvarchar(60) | - | - | - |
MobileDevice |
string |
This is deprecated as of December 2021 and will no longer be returned | - | - | - |
MobileName |
string |
This is deprecated as of December 2021 and will no longer be returned | - | - | - |
NOTES
- Telephone Types Other, Pager, Fax, Home, Work, Work2
- Ignores
CountryCode
,DeviceName
,DeviceType
,ContactOptIn
,IsPrimaryMobile
- Only Work (NOT Work2) uses Extension
- Only a single number can be kept for each of these types. If more than one of each type is provided, W016 warning message is returned.
- Ignores
- Multiple cell phones can be updated, but will sync to the list provided. Cell phones missing from that list that currently associate with the user will be deleted.
PrimaryMobile
:- If there is not exactly one (1)
PrimaryMobile
specified in changing cell phones, then all cell phone changes will be rejected. If only one (1) cell phone is provided, it is marked as primary.
- If there is not exactly one (1)
Addresses
The Addresses
parent element contains an address child element for each included address. The address element has the attributes shown in the response class section and contains the following child elements:
NOTE: The values returned for the Address child elements are as entered by the user. The fields do not enforce formatting and may have a wide variety of values.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
Type attribute |
string |
Address type. Values are: Home or Work | required | required | If multiple values are provided for either address type, the last one will be the one saved in the creation/update. |
Street |
string |
Street Address. Format: nvarchar(max) | - | - | - |
City |
string |
The city name. Format: nvarchar(30) | - | - | - |
StateProvince |
string |
The state or province. Format: nvarchar(30) | - | - | - |
CountryCode |
string |
The country code in from the ISO 3166-1 alpha-2 country code specification. Format: char(2) | - | - | - |
PostalCode |
string |
The postal code. Format: nvarchar(20) | - | - | - |
Longitude |
string |
Deprecated as of December 2021 and will no longer be returned | Cannot Update | - | - |
Latitude |
string |
Deprecated as of December 2021 and will no longer be returned | Cannot Update | - | - |
NationalIDs
The NationalIDs
parent element contains a NationalID
child element for each included National ID. The NationalID
element contains the following child elements:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
NationalIDNumber |
string |
The user’s national identification number. Format: nvarchar(100) | - | - | No unicode accepted. Only saves one national ID value. If multiple are provided, W016 warning message is returned. |
IssuingCountry |
string |
The country the national ID was issued in. Format: varchar(2) | - | - | - |
Expiration |
date |
The expiration date of the national ID. Format: YYYY-MM-DD |
- | - | Min - 01/01/1753, Max - 12/31/9999 |
NOTE: Only one National ID can be accepted.
DriversLicenses
The DriversLicenses
parent element contains a DriversLicense
child element for each included licenses.
- The
DriversLicense
element contains the following child elements:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
DriversLicenseNumber |
string |
The user’s driver license identification number. Format: nvarchar(100) | - | - | Only saves one Drivers License Number value. If multiple are provided, W016 warning message is returned. |
IssuingCountry |
string |
The country the license was issued in. Format: varchar(2) | - | - | - |
IssuingState |
string |
The state the license was issued in. Format: nvarchar(30) | - | - | - |
Expiration |
date |
The expiration date of the license. Format: YYYY-MM-DD |
- | - | Min - 01/01/1753, Max - 12/31/9999 |
NOTE: Only one Drivers License can be accepted.
HasNoPassport
A flag which is set when adding a new passport to a user.
- Passport Visa Information scope must be enabled to receive or update the data.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
HasNoPassport |
boolean |
Format: true\false. | - | If passport value added, then this value becomes false. | * If explicitely being set to false, passport information must exist in the user’s profile or be provided within the same API call. </br> * If explicitely set to true, no passport information must exist in the user’s profile. |
Passports
A list of passports in the user’s profile:
- Passport Visa Information scope must be enabled to receive the data.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
PassportNumber |
string |
The user’s passport number. Format: nvarchar(100) | Required | Required | - |
PassportNationality |
string |
The user’s passport nationality. Format: char(2) | Required | Required | - |
PassportExpiration |
date |
The date the user’s passport expires. Format: YYYY-MM-DD |
- | - | Min - 01/01/1900, Max - 06/06/2079 |
PassportDateIssued |
date |
The date the user’s passport was issued. Format: YYYY-MM-DD |
- | - | Min - 01/01/1900, Max - 06/06/2079 |
PassportCityIssued |
string |
The city the user’s passport was issued in. Format: nvarchar(60) | - | - | - |
PassportCountryIssued |
string |
The country code in from the ISO 3166-1 alpha-2 country code specification. Format: char(2) | - | - | - |
NOTE: there can only be 2 passports associated to a user. If more than two passports are provided, W016 warning message is returned.
Visas
A list of visas in the user’s profile.
- Passport Visa Information scope must be enabled to receive or update the data.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
VisaNationality |
string |
The user’s visa nationality. Format: char(2) | Required | Required | - |
VisaNumber |
string |
The user’s visa nationality. Format: nvarchar(100) | Required | Required | - |
VisaType |
string |
The user’s visa type. Values are Unknown, SingleEntry, DoubleEntry, MultiEntry, ESTA, ETA, and SchengenVisa. | - | - | - |
VisaDateIssued |
date |
The date the user’s visa was issued. Format: YYYY-MM-DD |
- | - | Min - 01/01/1900 Max - 06/06/2079 |
VisaExpiration |
date |
The date the user’s visa expires. Format: YYYY-MM-DD |
- | - | Min -01/01/1900 Max - 06/06/2079 |
VisaCityIssued |
string |
The city the user’s visa was issued in. Format: nvarchar(60) | - | - | - |
VisaCountryIssued |
string |
The country code in from the ISO 3166-1 alpha-2 country code specification. Format: char(2) | - | - | - |
NOTE: Visas will sync with existing visas. Any existing Visas not provided in the list will be deleted.
EmailAddresses
The EmailAddresses
parent element contains an EmailAddress
child element for each included email address. It contains the following child element:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
EmailAddress |
string |
The user’s email address. Format: Varchar(255) | - | - | - |
Contact attribute |
boolean |
The Contact attribute specifies whether the email address should be used for travel notifications. Format: true\false. | - | - | - |
Type attribute |
string |
The type of email address. Values are: Business, Personal, Supervisor, TravelArranger, Business2, Other1, and Other2. | Required | Required | Supervisor and TravelArranger cannot be updated. Only 1 of each type is allowed. W016 Error is returned |
RatePreferences
The RatePreferences parent element contains the following child element:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
AAARate |
boolean |
Whether the user is eligible for the AAA rate. Format: true\false | - | - | - |
AARPRate |
boolean |
Whether the user is eligible for the AARP rate. Format: true\false | - | - | - |
GovtRate |
boolean |
Whether the user is eligible for the Government rate. Format: true\false | - | - | - |
MilitaryRate |
boolean |
Whether the user is eligible for the Military rate. Format: true\false | - | - | - |
DiscountCodes
The DiscountCodes
parent element contains a DiscountCode
child element for each included discount code.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
DiscountCode |
string |
The discount code for the specified vendor. | - | - | unable to update |
Vendor attribute |
string |
Specifies the name of the vendor for the discount code. | - | - | unable to update |
NOTE: Discount code elements are not available to create or update.
Air
The Air
parent element contains the user’s air travel preferences and contains the following child elements:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
AirMemberships |
- | The AirMemberships element only appears if the request came from a travel supplier for this travel type, or from a TMC. This element contains AirMembership child elements. | - | - | - |
Seat |
- | This element contains air seat child elements. | - | - | - |
Meals |
string |
This parent element contains the MealCode child element that indicates the meal preference of the traveler. See Reference for possible values. | - | - | Defaults to Regular Meal |
HomeAirport |
string |
The user’s home airport. varchar(3) | - | - | Must be an existing IATA code. |
AirOther |
string |
Other Air related description | - | - | - |
Air Memberships
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
VendorCode |
string |
The code for the vendor that manages the loyalty program. varchar(2) | Required | Required | Must be a valid VendorCode for the membership type. This list can be made available upon request. |
AccountNo |
string |
The user’s account identifier in the loyalty program. varchar(60) | Required | Required | - |
Status |
string |
Name of the user’s current level in the loyalty program. varchar (100) | - | - | - |
StatusBenefits |
string |
Description of a benefit of the loyalty program at the current status. | - | - | - |
PointTotal |
string |
The user’s total number of points in the loyalty program. | - | - | - |
SegmentTotal |
string |
The user’s total segments in the loyalty program. | - | - | - |
NextStatus |
string |
Name or description of next higher status level in the loyalty program. | - | - | - |
PointsUntilNextStatus |
string |
Loyalty points required to next status level. | - | - | - |
SegmentsUntilNextStatus |
string |
Booking segments to next status level. | - | - | - |
IsSenator |
boolean |
Lufthansa specific field. Format: true\false | - | - | - |
Seat
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
InterRowPositionCode |
string |
Preferred position in an airplane row. Format: Window , Aisle , Middle , DontCare . |
- | - | - |
SectionPositionCode |
string |
Preference for position in plane. Format: Bulkhead , Forward , Rear , ExitRow , DontCare . |
- | - | - |
Rail
The Rail
parent element contains the user’s rail travel preferences and contains the following child elements:
Name | Data Type | Description | Update | Create | Comments | |
---|---|---|---|---|---|---|
Seat |
string |
This element contains seat preferences. Format: Aisle , Window , DontCare |
- | - | - | |
Coach |
string |
This element contains coach preferences. Format: Compartment , Coach , CoachWithTable , DontCare |
- | - | - | |
NoiseComfort |
string |
This element contains noise comfort preferences. Format: QuietSpace , MobileSpace , DontCare |
- | - | - | |
Bed |
string |
This element contains bed preferences. Format: Lower , Upper , Middle , DontCare |
- | - | - | |
BedCategory |
string |
This element contains bed category preferences. Format: WomenOnly , MenOnly , DontCare |
- | - | - | |
Berth |
string |
This element contains berth preferences. Format: Lower , Upper , Middle , DontCare |
- | - | - | |
Deck |
string |
This element contains deck preferences. Format: Lower , Upper , DontCare |
- | - | - | |
SpaceType |
string |
This element contains space type preferences. Format: Panorama , SeatWithTable , Solo , Salon , Kiosk , InclineSeat , DuoSideBySide , DuoFaceToFace , Club6 , Club4 , Carre , DisabledCompanionSpace , DontCare |
- | - | - | |
FareSpaceComfort |
string |
This element contains fare space comfort preferences. Format: DedicatedBusiness , Business , IntermediateLeisure , Leisure , StandardLeisure , DontCare |
- | - | - | |
SpecialMeals |
string |
This element contains special meal preferences. Format: LowFat , LowSalt , GlutenFree , Diabetic , Muslim , Kosher , Vegetarian , VegetarianLactoOvo , DontCare |
- | - | - | |
Contingencies |
string |
This element contains contingencies preferences. Format: Bike , WomenOnly , WheelchairSpace , DontCare |
- | - | - | |
RailMemberships |
- | This element contains RailMembership child elements | - | - | - | - |
Rail Membership
Name | Data Type | Description | Update | Create | Comments | |
---|---|---|---|---|---|---|
VendorCode |
string |
The code for the vendor that manages the loyalty program. varchar(2) | Required | Required | Must be a Valid Vendor Code for the Membership Type. This list can be made available upon request. | |
AccountNo |
string |
The user’s account identifier in the loyalty program. varchar(60) | Required | Required | See Below. | |
Status |
string |
Name of the user’s current level in the loyalty program. varchar (100) | - | - | - | |
StatusBenefits |
string |
Description of a benefit of the loyalty program at the current status. | - | - | - | |
PointTotal |
string |
The user’s total number of points in the loyalty program. | - | - | - | |
SegmentTotal |
string |
The user’s total segments in the loyalty program. | - | - | - | |
Expiration |
DateTime |
The user’s expiration date in the loyalty program. Min - 01/01/1753, Max - 12/31/9999 | - | - | - | - |
NextStatus |
string |
Name or description of next higher status level in the loyalty program. | - | - | - | |
PointsUntilNextStatus |
string |
Loyalty points required to next status level. | - | - | - | |
SegmentsUntilNextStatus |
string |
Booking segments to next status level. | - | - | - | |
BahnCardClass |
string |
Bahn card class. Valid values are First and Second. | - | - | - | |
BahnCardType |
string |
Bahn card type. Valid values include NA (for non-rail programs), Card25, Card50, Card100, Business25, and Business50. | - | - | - |
Car
The Car
parent element contains the user’s car travel preferences. It contains the following child elements:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
CarSmokingCode |
string |
Smoking car preferred. Format: DontCare , NonSmoking , Smoking |
- | - | - |
CarGPS |
boolean |
Car GPS preference. Format: true\false. | - | - | - |
CarType |
string |
Car type preference. Values are: DontCare Mini Economy EconomyHybrid Compact CompactHybrid Intermediate IntermediateHybrid Standard StandardHybrid FullSize FullSizeHybrid MiniVan Luxury Premium StandardSUV IntermediateSUV FullSizeSUV FullSizePickup Specialized |
- | - | - |
CarMemberships |
- | The CarMemberships element only appears if the request came from a travel supplier for this travel type, or from a TMC. This element contains CarMembership child elements for each included membership. | - | - | - |
CarOther |
string |
Other Car related description. Format: varchar(30) | - | - | - |
CarSkiRack |
boolean |
Car ski rack preference. Format: true\false. | - | - | |
CarTransmission |
string |
Car transmission type. Values are: DontCare , Automatic , Manual |
- | - | - |
Car Memberships
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
VendorCode |
string |
The code for the vendor that manages the loyalty program. varchar(2) | Required | Required | Must be a Valid Vendor Code for the Membership Type. This list can be made available upon request. |
AccountNo |
string |
The user’s account identifier in the loyalty program. varchar(60) | Required | Required | See Below. |
Status |
string |
Name of the user’s current level in the loyalty program. varchar (100) | - | - | - |
StatusBenefits |
string |
Description of a benefit of the loyalty program at the current status. | - | - | - |
PointTotal |
string |
The user’s total number of points in the loyalty program. | - | - | - |
SegmentTotal |
string |
The user’s total segments in the loyalty program. | - | - | - |
Expiration |
DateTime |
The user’s expiration date in the loyalty program. | - | - | Min - 01/01/1753, Max - 12/31/9999 |
NextStatus |
string |
Name or description of next higher status level in the loyalty program. | - | - | - |
PointsUntilNextStatus |
string |
Loyalty points required to next status level. | - | - | - |
SegmentsUntilNextStatus |
string |
Booking segments to next status level. | - | - | - |
Hotel
The Hotel
parent element contains the user’s hotel travel preferences. It contains the following child elements:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
SmokingCode |
string |
Smoking room preference. Values: DontCare , NonSmoking ,Smoking |
- | - | - |
HotelMemberships |
- | This parent element only appears if the request came from a travel supplier for this travel type, or from a TMC. This element contains HotelMembership child elements for each included membership. | - | - | - |
RoomType |
string |
Hotel room preference. Values are: DontCare , King , Queen , Double , Twin , Single , Disability |
- | - | - |
HotelOther |
string |
Other Hotel related description. Format: varchar(30) | - | - | - |
PreferFoamPillows |
boolean |
Whether the user prefers foam pillows. Format: true\false. | - | - | - |
PreferCrib |
boolean |
Whether the user prefers to have a crib. Format:true\false. | - | - | - |
PreferRollawayBed |
boolean |
Whether the user prefers to have a rollaway bed. Format:true\false. | - | - | - |
PreferGym |
boolean |
Whether the user prefers a hotel with a gym. Format:true\false. | - | - | - |
PreferPool |
boolean |
Whether the user prefers a hotel with a pool. Format:true\false. | - | - | - |
PreferRestaraunt |
boolean |
Whether the user prefers a hotel with a restaurant. Format:true\false. | - | - | - |
PreferWheelchairAccess |
boolean |
Whether the user requires wheelchair access. Format: true\false. | - | - | - |
PreferAccessForBlind |
boolean |
Whether the user requires a room with access for blind guests. Format:true\false. | - | - | - |
PreferRoomService |
boolean |
Whether the user prefers a hotel with room service. Format:true\false. | - | - | - |
PreferEarlyCheckIn |
boolean |
Whether the user prefers a hotel with early check in. Format:true\false. | - | - | - |
Hotel Memberships
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
VendorCode |
string |
The code for the vendor that manages the loyalty program. varchar(2) | Required | Required | Must be a Valid Vendor Code for the Membership Type. This list can be made available upon request. |
AccountNo |
string |
The user’s account identifier in the loyalty program. varchar(60) | Required | Required | See Below. |
Status |
string |
Name of the user’s current level in the loyalty program. varchar (100) | - | - | - |
StatusBenefits |
string |
Description of a benefit of the loyalty program at the current status. | - | - | - |
PointTotal |
string |
The user’s total number of points in the loyalty program. | - | - | - |
SegmentTotal |
string |
The user’s total segments in the loyalty program. | - | - | - |
Expiration |
DateTime |
The user’s expiration date in the loyalty program. | - | - | Min - 01/01/1753, Max - 12/31/9999 |
CustomFields
The CustomFields
parent element contains a CustomField
child element for each field.
- Company Details scope must be enabled to receive the data.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
CustomField |
string |
The value of the custom field. Format: varchar(255) | - | - | - |
Name attribute |
string |
The name of the custom field. Format: varchar(255) | Required | Required | - |
Roles
A list of users associated to a user:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
FirstName |
string |
The Arranger/Manager’s first name. Format: varchar(60) | Cannot Update | - | - |
LastName |
string |
The Arranger/Manager’s last name. Format: varchar(60) | Cannot Update | - | - |
EmailAddress |
string |
The Arranger/Manager’s email address. Format: varchar(255) | Cannot Update | - | - |
LoginId |
string |
The Login Id for Arranger/Manager | Required | Required | - |
Type attribute |
string |
The Arranger/Manager’s role. Values are: Arranger, Manager | Required | Required | - |
PrimaryIndicatorFlag attribute |
boolean |
For Arrangers type, denotes the primary arranger. Format: true\false. | - | - | - |
NOTES:
FirstName
,LastName
, andEmail
cannot be updated.Managers
andArrangers
must be in the same company of the user to be assigned.- If the
PrimaryIndicatorFlag
is sent in as true, the arranger will be marked as primary. - New arrangers will be marked as travel arrangers only.
- If multiple primary arrangers are provided, W016 warning message is returned.
- If multiple managers are provided, W016 warning message is returned.
Sponsors
A list of sponsors associated to a user:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
NonEmployeeUserType |
string |
The non-employee’s user type. Values are: Contractor , Student/Intern , Candidate for Hire , Invitational Traveler , Dependent/Spouse , Board Member , Other |
Required | Required | - |
SponsorName |
string |
The sponsor’s name. Format: varchar(255) | Cannot Update | - | - |
SponsorshipStartDate |
date |
The sponsorship start date. Format: YYYY-MM-DD |
Required | Required | - |
SponsorshipEndDate |
date |
The sponsorship end date. Format: YYYY-MM-DD |
Required | Required | - |
LoginID |
string |
The sponsor’s name. Format: varchar(255) | Required | Required | - |
NOTES:
- The company must allow sponsored users, and the sponsoring user must have the “Sponsor” role to be added to the list of sponsors
- The sponsoring user must be associated with the same company as the sponsored user.
- If the association to the sponsoring user already exists, than the data will be updated
SponsorshipEndDate
must be afterSponsorshipStartDate
TSAInfo
The Transportation Security Administration (TSA) details provided.
- TSA information scope must be enabled to receive the data.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
Gender |
string |
The user’s gender. Values are: Male , Female |
- | - | - |
DateOfBirth |
date |
The user’s date of birth. Format: YYYY-MM-DD . Min - 01/01/1900, Max - 06/06/2079 |
- | - | - |
NoMiddleName |
boolean |
Format: true/false |
- | - | - |
PreCheckNumber |
string |
The user’s pre-check number. Format: varchar(255) | - | - | - |
RedressNumber |
string |
The user’s redress number. Format: varchar(255) | - | - | - |
NOTE: NoMiddleName
: If the profile has a middle name, NoMiddleName
overrides to false
UnusedTickets
A list of unused tickets associated to a user
- Unused tickets scope must be enabled to receive the data.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
Carrier |
string |
The vendor’s name. Format: Varchar(255) | Required | Required | - |
TicketNumber |
string |
The unused ticket number. Format: Varchar(255) | Required | Required | - |
RecordLocator |
string |
The unused ticket record locator. Format: Varchar(6) | - | - | - |
BaseFare |
string |
The base fare of the unused ticket. Format: Varchar(255) | - | - | - |
Taxes |
string |
The taxes for the unused ticket. Format: Varchar(255) | - | - | - |
Fees |
string |
The fees for the unused ticket. Format: Varchar(255) | - | - | - |
Currency |
string |
The currency of the unused ticket. Format: Varchar(3) | - | - | - |
TicketType |
string |
The type of unused ticket. Format: Varchar(1) | - | - | - |
IssueDate |
date |
The date of issue for the unused ticket. Format: YYYY-MM-DD . |
- | - | Min - 01/01/1753, Max - 12/31/9999 |
ExpirationDate |
date |
The date of expiration for the unused ticket. Format: YYYY-MM-DD . |
- | - | Min - 01/01/1753, Max - 12/31/9999 |
Notes |
string |
Notes associated to the unused ticket. Format: Varchar(255) | - | - | - |
SouthwestUnusedTickets
A list of unused Southwest tickets associated to a user.
- Unused tickets scope must be enabled to receive the data.
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
RecordLocator |
string |
The unused ticket record locator. Format: Varchar(255) | Required | - | - |
TicketAmount |
string |
The amount of the unused ticket. Format: Varchar(255) | - | - | - |
Currency |
string |
The currency of the unused ticket. Format: Varchar(3) | - | - | - |
ExpirationDate |
date |
The date of expiration for the unused ticket. Format: YYYY-MM-DD . |
- | - | Min - 01/01/1753, Max - 12/31/9999 |
AdvantageMemberships
A list of advantage memberships associated to a user:
Name | Data Type | Description | Update | Create | Comments |
---|---|---|---|---|---|
VendorCode |
string |
The code for the vendor that manages the membership program. Format: Varchar(2) | Required | Required | - |
VendorType |
string |
The vendor type. Values are: Air , Rail , Car , Hotel |
Required | Required | - |
ProgramNumber |
string |
The membership program number. Format: Varchar(20) | Required | Required | - |
OriginCode |
string |
The origin code. Format: Varchar(12) | - | - | - |
DestinationCode |
string |
The destination code. Format: Varchar(12) | - | - | - |
ProgramCode |
string |
The program code. Format: Varchar(20) | Required | Required | - |
ExpirationDate |
date |
Expiration date. Format: YYYY-MM-DD . Min - 01/01/1900, Max - 06/06/2079 |
- | - | - |
OptionCode |
string |
The option code. Format: Varchar(20) | - | - | - |
ProgramName |
string |
The program name. Format: Varchar(20) | Cannot Update | - | - |
NOTES:
- For List of available advantage memberships See Reference
- Multiple memberships for the same
VendorType
,VendorCode
,ProgramCode
, andCardNumber
are identified and a warning is thrown. OriginStationCode
andDestinationStationCode
fields are deprecated and should no longer be used. UseOriginCode
andDestinationCode
instead.
Possible Warnings and Error Messages
Error in XML Document
This error message occurs, when the XML is not formatted in such a way that it can be read.
<Error>
<Message>There is an error in XML document (1, 147).</Message>
<Server-Time>2017-06-22T16:51:37</Server-Time>
<Id>3BDBC49E-8793-4515-BA0E-F9C71ADA7330</Id>
</Error>
The best way to find the cause of the error is by taking the body of your message and comparing it against the Travel Profile XSD. You can use free online sites to validate such as https://www.freeformatter.com/xml-validator-xsd.html
Standard Error Codes
The codes and types of messages that can be returned on updates and creates:
CODE | Message Type | Notes | Example |
---|---|---|---|
S001 | Success | Process completed successfully. | Success, no errors or warnings reported. |
E001 | No Access | No access to user data. | - |
E002 | Required Field Missing | The field noted is required for updates or creates, no changes were made. | - |
W001 | Invalid Regex | The given data does not match the expected regex. | - |
W002 | Invalid Length | The given data is too long or too short. | - |
W003 | Not Found In Company | The given user was not found in the company. | - |
W004 | Duplicate Entry | The given data is duplicated and not allowed. | - |
W005 | Duplicate LoginId | The given LoginID is duplicated. |
- |
W006 | Out of Range | The given data is out of range. | - |
W007 | Field is Required | The given field cannot be cleared. | - |
W009 | Invalid Account Number | Account number check failed due to length, Luhn, etc. | - |
W010 | Invalid Vendor Code | Vendor code given is invalid. | - |
W011 | Cannot Change | The given field cannot be altered. | - |
W012 | Primary Cell Number Error | Data violates one primary cell phone requirement. | - |
W013 | Invalid Custom Field | The data provided is invalid for the custom field. | - |
W014 | Invalid Date Range | The data provided is outside of acceptable date range. | - |
W015 | Invalid GUID | The GUID is invalid. | - |
W016 | Too Many Items | There are too many items in the given list. | - |
W017 | No Access to VendorCode | The user lacks access to the given vendor code. | - |
If incorrect API credentials are provided, the service will return the standard response, e.g. 403 Forbidden. In some cases, the API will return additional information when producing a 400, Bad Request, response. It may contain the following codes in the response’s body:
- EC1 : The user was not found in database.
- EC2: The user is not a company admin, or the company ID does not match the user’s company ID.
- EC3: The user is not an agency admin, the agency company ID is null, or if agency company ID does not match the user’s agency company ID.
- EC4: If the application’s UUID is null, or if the application is configured not to have access to the input travel config.
Examples for Travel Suppliers
Example 1: Get the travel profile for the user associated with the specified OAuth 2.0 access token
Request
GET {InstanceURI}/api/travelprofile/v2.0/profile HTTP/1.1
Authorization: OAuth {access token}
Example 2: Get the travel profile for a user with a specific login ID
Request
GET https://www.concursolutions.com/api/travelprofile/v2.0/profile?userid_type=login&userid_value=cm@example.com HTTP/1.1
Authorization: OAuth {access token}
Examples for TMCs
Example 3: Get the travel profile for the user associated with the specified OAuth 2.0 access token
Request
GET {InstanceURI}/api/travelprofile/v2.0/profile HTTP/1.1
Authorization: OAuth {access token}
Example 4: Get the travel profile for a user with a specific login ID
Request
GET https://www.concursolutions.com/api/travelprofile/v2.0/profile?userid_type=login&userid_value=cm@example.com HTTP/1.1
Authorization: OAuth {access token}
Example 5: Create a new user
Request
POST https://www.concursolutions.com/api/travelprofile/v2.0/profile HTTP/1.1
Authorization: OAuth {access token}
Body
<ProfileResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Action="Create" LoginId="william.never@email.com">
<General>
<FirstName>William</FirstName>
<LastName>Never</LastName>
<RuleClass>Default Rule Class</RuleClass>
<TravelConfigID>555</TravelConfigID>
</General>
<Password>password123</Password>
</ProfileResponse>
Example 6: Update a user
Request
POST https://www.concursolutions.com/api/travelprofile/v2.0/profile HTTP/1.1
Authorization: OAuth {access token}
Body
<ProfileResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Action="Update" LoginId="william.never@email.com">
<General>
<FirstName>Bill</FirstName>
</General>
</ProfileResponse>
Get a list of travel profile summaries
This endpoint provides a list of travel profile summaries that have been updated since the specified date. The response is separated into pages.
Request
GET {InstanceURI}/api/travelprofile/v2.0/summary?LastModifiedDate=2020-01-01T01:00:00&travelConfigs=100,200,3000&Active=1 HTTP/1.1
Authorization: OAuth {access token}
Request parameters
LastModifiedDate is required. All other request parameters are optional. Available request parameters are as follows:
Parameter Name | Required/Optional | Parameter Type | Data Type | Description |
---|---|---|---|---|
LastModifiedDate |
Required | path | string |
The date and time, in UTC, that the profiles must be updated after to be included in the response. Format: YYYY-MM-DDThh:mm:ss |
Page |
Optional | path | string |
The number of pages to retrieve. If the page is outside the number of existing pages, the response elements will be empty. |
ItemsPerPage |
Optional | path | string |
The number of travel profiles per page. The maximum value is 200. The default value is 200. |
travelConfigs |
Optional | path | string |
One or more Config IDs, separated by commas. |
Active |
Optional | path | 0 or 1 |
Active Status. 1 = Active Users. 0 = Inactive Users. |
Headers
Accept header
application/xml
Authorization header
Authorization: OAuth {access_token}
Where access_token
is the OAuth 2.0 access token of the user whose travel profile summaries you want to retrieve. If you want to access company-wide travel profile information, the user account associated with the OAuth 2.0 access token must have an SAP Concur account with one of these roles: Web Services Administrator for Professional or Can Administer for Standard.
Schema
The data model of the response for the GET operation. The complete schema definition is also available here: Travel Profile Summary V2 XSD
<ConnectResponse>
<Metadata>
<Paging>
<TotalPages />
<TotalItems />
<Page />
<ItemsPerPage />
<PreviousPageURL />
<NextPageURL />
</Paging>
</Metadata>
<Data>
<ProfileSummary>
<Status />
<LoginID />
<XmlProfileSyncID />
<ProfileLastModifiedUTC />
</ProfileSummary>
</Data>
</ConnectResponse>
Response
ConnectResponse root element
The ConnectResponse
root element contains the General
, Telephones
, Addresses
, DriversLicenses
, EmailAddresses
, RatePreferences
, DiscountCodes
, Air
, Car
, Hotel
, and CustomFields
child elements. It has the attributes shown in the response class section.
Metadata element
The Metadata
parent element contains the Paging
child element.
Paging elements
The Paging
parent element contains contains the paging information for the response and it contains the following child elements:
Element Name | Data Type | Description |
---|---|---|
TotalPages | string |
The total number of pages to return. |
TotalItems | string |
The total number of profiles the query returned. |
Page | string |
The page number for the set of results in the current response. |
ItemsPerPage | string |
The number of items set to display per page. |
PreviousPageURL | string |
The URI to the previous page of results. This element will be empty when there are no previous pages. |
NextPageURL | string |
The URI to the next set of results. This element will be empty when there are no next pages |
Data element
The Data parent element contains a ProfileSummary
child element for each included travel profile.
ProfileSummary
The ProfileSummary
element contains the profile information for the response and it contains the following child elements:
Element Name | Data Type | Description |
---|---|---|
Status | string |
Current status of the user: Active or Inactive. |
LoginID | string |
The SAP Concur user login ID. |
XMLProfileSyncID | string |
The user’s XML Profile Sync ID, if available. |
ProfileLastModifiedUTC | string |
The date, in UTC, when the travel profile was last modified. Format: YYYY-MM-DDThh:mm:ss. |
Example
This example gets the list of travel profile summaries modified after January 1 2015.
Request
GET {InstanceURI}/api/travelprofile/v2.0/summary?LastModifiedDate=2015-01-01T01:00:00 HTTP/1.1
Authorization: OAuth {access token}
Response
HTTP/1.1 200 OK
Content-Type: application/xml
<ConnectResponse>
<Metadata>
<Paging>
<TotalPages>1</TotalPages>
<TotalItems>2</TotalItems>
<Page>1</Page>
<ItemsPerPage>200</ItemsPerPage>
<PreviousPageURL />
<NextPageURL />
</Paging>
</Metadata>
<Data>
<ProfileSummary>
<Status>Active</Status>
<LoginID>mariab@company1.com</LoginID>
<XmlProfileSyncID>`string`123</XmlProfileSyncID>
<ProfileLastModifiedUTC>2015-01-01T01:00:00</ProfileLastModifiedUTC>
</ProfileSummary>
<ProfileSummary>
<Status>Inactive</Status>
<LoginID>peterk@company1.com</LoginID>
<XmlProfileSyncID>`string`456</XmlProfileSyncID>
<ProfileLastModifiedUTC>2015-01-01T01:00:00</ProfileLastModifiedUTC>
</ProfileSummary>
</Data>
</ConnectResponse>