Trips

The Trips resource represents itineraries in the Concur Travel system. TripLink suppliers use this resource to display a subset of the full booking fields.

Version

1.1

URI

/travel/trip/v1.1/{query_parameters}

Scope

In order to obtain itinerary data when making Itinerary API calls, the value of the OAuth scope parameter must be set to: ITINER

Operations

Get Trip Summaries

The Get Itinerary Summaries endpoint is used for retrieving trip summaries for the traveler whose account is associated with the OAuth access token used to make the API call. This endpoint can also be used to get trip summaries for a different user or the whole company. This is usually done when a Travel Management Company (TMC) needs to get trip summaries on behalf of a user or company.

Best Practices

  • When extracting past data:
    • Extract a month of trip summaries to gauge volume. If hundreds are returned, then adjust extraction to weekly.
    • Do not extract more than a year of data at any given time regardless of the volume. For longer look backs, extract 6 month segments maximum at a time.
    • Do not multi-thread requests to retrieve multiple pages of data. Concurrent requests will impact your application’s performance.
  • Itineraries change frequently. Changes do not necessarily indicate that the traveler modified their trip. If your application works with upcoming or in progress trips, be aware that you must evaluate the individual segments to determine whether it is a material change for your application.
  • This API will only return itineraries that have been sent to Concur Travel; this includes travel booked within Concur Travel, TripIt, on TripLink supplier sites, and most bookings from your travel agency. Some customers may have multiple booking options which may mean not all employee trips are available via this API. A good rule of thumb: if the traveler sees the itinerary in their “trips” list, then you can retrieve it from this API.

Request

GET /travel/trip/v1.1/{query_parameters}

Query Parameters

All query parameters are optional.

To identify a specific user by login ID or XMLSyncID, you can specify the following request parameters:

Parameter Name Parameter Type Data Type Description
startDate date dateTime The URL-encoded start date (in Coordinated Universal Time, or UTC) for the trip. Format: YYYY-MM-DD. If no query parameters are provided, the start date is set to today’s date - 30 days. The request will only return trips that are ongoing during the provided dates, either starting on the date, or starting before the date and ongoing during the provided date.
endDate date dateTime The URL-encoded UTC end date for the trip. Format: YYYY-MM-DD. If no query parameters are provided, the end date is set to today’s date + 12 months. The request will only return trips that are ongoing during the provided dates, either ending on the date, or starting before the date and ongoing during the provided date.
createdAfterDate date dateTime The URL-encoded UTC date for when the trip was created. The query string will return trips created on or after this date. Used with the createdBeforeDate for finding trips created during a date range. Format: YYYY-MM-DD.
createdBeforeDate date dateTime The URL-encoded UTC date for when the trip was created. The query string will return trips created on or before this date. Used with the createdAfterDate for finding trips created during a date range. Format: YYYY-MM-DD.
lastModifiedDate date dateTime The last modified UTC date of the trips and their associated bookings. This query string will return only the trips where the trip or any of its associated bookings have a last modified date that is greater or equal to the supplied time. The provided date/time can be anytime between now and the first date of trip creation in the database. The format is either the date or the date and time combined.
bookingType type string The trip includes at least one booking of this type. Format: Air, Car, Dining, Hotel, Parking, Rail, or Ride
userid_type=login userid string The loginID is the user’s SAP Concur login ID. This parameter can only be used if the OAuth consumer has one of the user roles listed above.
userid_value userid string The userid_value of ALL can be sent to get trip summaries for all users at the company. This parameter can only be used if the OAuth consumer has one of the user roles listed above.
includeMetadata true/false string The includeMetadata query parameter combined with the ItemsPerPage and Page query parameters cause the response to be divided into pages. The response is wrapped in a ConcurResponse parent element, with both the response details and the paging metadata included. If the ItemsPerPage query parameter is not sent, the response will default to 200 if the Page query parameter is sent, or 1000 if the Page query parameter is not set. If the Page query parameter is not sent, the response will default to page 1.
ItemsPerPage number integer The includeMetadata query parameter combined with the ItemsPerPage and Page query parameters will cause the response to be divided into pages. The response will be wrapped in a ConcurResponse parent element, with both the response details and the paging metadata included. If the ItemsPerPage query parameter is not sent, the response will default to 200 if the Page query parameter is sent, or 1000 if the Page query parameter is not set. If the Page query parameter is not sent, the response will default to page 1.
includeVirtualTrip flag integer Virtual trips are segments booked offline through the Concur Request product. Set the includeVirtualTrip query parameter to 1 to include those trips in the list.
includeCanceledTrips true/false string The includeCanceledTrips query parameter will cause the request to also return trips with a status of Canceled. When this query parameter is set to true, the response will include the TripStatus element.
includeGuestBookings true/false string The includeGuestBookings query parameter will cause the request to show guest bookings if set to true. It is set to false by default.

Here are some examples of how to format GET requests using a combination of these query parameters:

  • To get trip summaries for the entire company:
https://www.concursolutions.com/api/travel/trip/v1.1/?startDate={_startdate_}&endDate={_enddate_}_&_createdAfterDate={_date_}&createdBeforeDate={_date_}&lastModifiedDate={_date_}&bookingType={_type_}&userid_type=login&userid_value=ALL

The access token used to make the API call must be associated with an account that has the Admin user role.

  • To get trip summaries for the account associated with the app making the call:
https://www.concursolutions.com/api/travel/trip/v1.1/?startDate={_startdate_}&endDate={_enddate_}_&_createdAfterDate={_date_}&createdBeforeDate={_date_}&lastModifiedDate={_date_}&bookingType={_type_}

The access token used to make the API call is associated with the account for the app making the call.

  • To get trip summaries for a user with the specified login credentials:
https://www.concursolutions.com/api/travel/trip/v1.1/?startDate={_startdate_}&endDate={_enddate_}_&_createdAfterDate={_date_}&createdBeforeDate={_date_}&lastModifiedDate={_date_}&bookingType={_type_}&userid_type=login_id&userid_value={_loginID_}

The access token used to make the API call is associated with the SAP Concur account with the specified login credentials.

Headers

Authorization Header (Required)

Authorization: OAuth {access_token} Where access_token is the OAuth 2.0 access token of the user whose itinerary information you want to retrieve. If you want to access company-wide itinerary information, the SAP Concur user account associated with the OAuth 2.0 access token must have one of these roles: Web Services Administrator for Professional or Can Administer for Standard.

Accept header (optional)

application/xml

Response

The response returns an ItineraryInfoList parent element with with an ItineraryInfo child element for each trip summary for the specified traveler. If the includeMetadata and ItemsPerPage query parameters are included in the request, the response will include a ConnectResponse parent element which contains a MetaData element with paging information and a Data element with an ItineraryInfoList child element. The response for this operation can be divided into pages for easier processing.

Data Elements

Element Name Data Type Description
ItineraryInfoList element Parent element with an ItineraryInfo child element for each trip summary for the specified traveler.

ItineraryInfoList Elements

Element Name Data Type Description
ItineraryInfo element Parent element with the information about an itinerary for the specified user.

ItineraryInfo Elements

Element Name Data Type Description
TripId string Encrypted trip identifier value.
TripName string Name of the trip.
TripStatus string The status of the trip. This element only appears if the includeCanceledTrips query parameter is used in the request.
StartDateLocal dateTime The start date of the trip in the starting location’s timezone. Format: YYYY-MM-DDThh:mm:ss.
EndDateLocal dateTime The end date of the trip in the ending location’s timezone. Format: YYYY-MM-DDThh:mm:ss.
DateModifiedUtc dateTime The UTC date that this trip was last modified. Format: YYYY-MM-DDThh:mm:ss.
UserLoginId string The user’s login to SAP Concur. This element appears in the response of the GET /api/travel/trip/v1.1 operation when the OAuth 2.0 is access token is associated with an SAP Concur account with one of these roles: Web Services Administrator for Professional or Can Administer for Standard.
id string Trip ID URI with encrypted ID.

Metadata Element

The parent element of the paging information.

Paging Elements

Element Name Data Type Description
TotalPages integer The total number of pages the query returned.
TotalItems integer The total number of itineraries the query returned.
CurrentPage integer The page number for the set of results in the current response.
ItemsPerPage integer 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.

Examples

Example 1: Get Trip Summaries by Start and End Date

Request

GET /api/travel/trip/v1.1/?startDate=2012%2F02%2F01&endDate=2013%2F12%2F31 HTTP/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
...

Response

HTTP/1.1 200 OK
Content-Type: application/xml
...

<?xml version="1.0" encoding="utf-8"?>
<ItineraryInfoList xmlns="http://www.concursolutions.com/api/travel/trip/2010/06" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <ItineraryInfo>
        <TripId>naIzQJ0y2DBWjCIQOb2SHTsozwBsHDkdP</TripId>
        <TripName>Trip from Baltimore to New York</TripName>
        <StartDateLocal>2012-02-15T09:00:00</StartDateLocal>
        <EndDateLocal>2012-02-21T17:30:00</EndDateLocal>
        <UserLoginId>cm@example.com</UserLoginId>
        <DateModifiedUtc>2012-02-14T17:13:07</DateModifiedUtc>
        <id>https://www.concursolutions.com/api/travel/trip/v1.1/naIzQJ0y2DBWjCIQOb2SHTsozwBsHDkdP</id>
    </ItineraryInfo>
    <ItineraryInfo>
        <TripId>I2uwiJJw8r7Owl3IWlSie9WIelxhAhwiL</TripId>
        <TripName>Trip from Baltimore to Seattle</TripName>
        <StartDateLocal>2012-03-26T09:00:00</StartDateLocal>
        <EndDateLocal>2012-03-29T17:30:00</EndDateLocal>
        <DateModifiedUtc>2012-03-24T19:00:00</DateModifiedUtc>
        <UserLoginId>cm@example.com</UserLoginId>
        <id>https://www.concursolutions.com/api/travel/trip/v1.1/I2uwiJJw8r7Owl3IWlSie9WIelxhAhwiL</id>
    </ItineraryInfo>
</ItineraryInfoList>

Example 2: Get Trip Summary by Booking Type and Start Date Request

This request returns trip summaries for trips that started by the specified date for the specified booking type.

Request

GET /api/travel/trip/v1.1/?startDate=2015%2F01%2F01&bookingType=Air HTTP/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
...

Response

HTTP/1.1 200 OK
Content-Type: application/xml
...

<?xml version="1.0" encoding="utf-8"?>
<ItineraryInfoList xmlns="http://www.concursolutions.com/api/travel/trip/2010/06" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <ItineraryInfo>
        <TripId>I2uwiJJw8r7OwCIQOb2SHTsozwBsSie9W</TripId>
        <TripName>Trip by air from Seattle to San Francisco</TripName>
        <StartDateLocal>2015-01-01T12:30:00</StartDateLocal>
        <EndDateLocal>2015-01-05T10:30:00</EndDateLocal>
        <UserLoginId>cm@example.com</UserLoginId>
        <DateModifiedUtc>2014-12-23T11:10:00</DateModifiedUtc>
        <id>https://www.concursolutions.com/api/travel/trip/
        v1.1/I2uwiJJw8r7OwCIQOb2SHTsozwBsSie9W</id>
    </ItineraryInfo>
</ItineraryInfoList>

Example 3: Get Trip Summary by Created Date

This requests returns trip summaries created after the specified date.

Request

GET /api/travel/trip/v1.1/?createdAfterDate=2015%2F02%2F13 HTTP/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}

Response

HTTP/1.1 200 OK
Content-Type: application/xml
...

<?xml version="1.0" encoding="utf-8"?>
<ItineraryInfoList xmlns="http://www.concursolutions.com/api/travel/trip/2010/06" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <ItineraryInfo>
        <TripId>BWjCIJJw8r7OwCIQOb2SHTsozwBsWlSie9</TripId>
        <TripName>Trip by air from Los Angeles to Mexico City</TripName>
        <StartDateLocal>2015-03-09T18:45:00</StartDateLocal>
        <EndDateLocal>2015-03-30T08:00:00</EndDateLocal>
        <UserLoginId>cm@example.com</UserLoginId>
        <DateModifiedUtc>2015-01-28T09:30:00</DateModifiedUtc>
        <id>https://www.concursolutions.com/api/travel/trip/
        v1.1/BWjCIJJw8r7OwCIQOb2SHTsozwBsWlSie9</id>
    </ItineraryInfo>
</ItineraryInfoList>

Example 4: Get Trip Summary with Paging

This request is used for dividing the response into pages for easier processing.

Request

GET /api/travel/trip/v1.1/?createdAfterDate=2012%2F02%2F01&includeMetadata=true&ItemsPerPage=2&Page=1 HTTP/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}

Response

The response returns a ConnectResponse parent element which contains a MetaData element with paging information and a Data element with an ItineraryInfoList child element.

HTTP/1.1 200 OK
Content-Type: application/xml
...

<ConnectResponse>
    <Metadata>
        <Paging>
            <TotalPages>38</TotalPages>
            <TotalItems>187</TotalItems>
            <CurrentPage>2</CurrentPage>
            <ItemsPerPage>2</ItemsPerPage>
            <PreviousPageURL>https://www.concursolutions.com/api/travel/trip/v1.1/?
                createdAfterDate=2012%2F02%2F01&amp;
                itemsPerPage=5&amp;page=3&amp;includeMetaData=true</PreviousPageURL>
            <NextPageURL>https://www.concursolutions.com/api/travel/trip/v1.1/?
                createdAfterDate=2012%2F02%2F01&amp;
                itemsPerPage=5&amp;page=1&amp;includeMetaData=true</NextPageURL>
        </Paging>
    </Metadata>
    <Data>
        <ItineraryInfoList xmlns="http://www.concursolutions.com/api/travel/trip/2010/06" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <ItineraryInfo>
                <TripId>naIzQJ0y2DBWjCIQOb2SHTsozwBsHDkdP</TripId>
                <TripName>Trip from Baltimore to New York</TripName>
                <StartDateLocal>2012-02-15T09:00:00</StartDateLocal>
                <EndDateLocal>2012-02-21T17:30:00</EndDateLocal>
                <UserLoginId>cm@example.com</UserLoginId>
                <DateModifiedUtc>2012-02-14T17:13:07</DateModifiedUtc>
                <id>https://www.concursolutions.com/api/travel/trip/v1.1/naIzQJ0y2DBWjCIQOb2SHTsozwBsHDkdP</id>
            </ItineraryInfo>
            <ItineraryInfo>
                <TripId>I2uwiJJw8r7Owl3IWlSie9WIelxhAhwiL</TripId>
                <TripName>Trip from Baltimore to Seattle</TripName>
                <StartDateLocal>2012-03-26T09:00:00</StartDateLocal>
                <EndDateLocal>2012-03-29T17:30:00</EndDateLocal>
                <DateModifiedUtc>2012-03-24T19:00:00</DateModifiedUtc>
                <UserLoginId>cm@example.com</UserLoginId>
                <id>https://www.concursolutions.com/api/travel/trip/v1.1/I2uwiJJw8r7Owl3IWlSie9WIelxhAhwiL</id>
            </ItineraryInfo>
        </ItineraryInfoList>
    </Data>
</ConnectResponse>

Get Trip Details

The Get Itinerary Details endpoint is used for getting details for the specified trip. The elements included in the response vary as follows:

  • Some elements, such as AirlineTickets or RailPayments, appear only for bookings of the appropriate type. For example AirlineTickets appears in the response only for air bookings and RailPayments, for rail bookings.
  • Amount values, such as Rate or Tax, appear only if the requestor is the source of the booking. All other suppliers will not receive the amount elements associated with the bookings.
  • Some elements, such as SabreDKNumber, appear only if the booking was created by the relevant GDS.
  • Some elements are vendor-specific and appear only in responses for the associated vendor.

This topic describes the full set of possible elements that can be returned. No itinerary can contain all of the possible elements, so the response will always be a subset of all the possible returned values.

By default, when calling this API, the SAP Concur account associated with the OAuth access token used to make the API call should be the owner of the trip. This endpoint can also be used to get details for trips that the OAuth consumer does not own. This is most often done when a TMC needs to get trip details on behalf of a user. The TMC must be registered with SAP Concur and have an SAP Concur account that has one of the following user roles: Web Services Administrator for Professional, or Can Administer for Standard.

Request

GET /travel/trip/v1.1/trip_ID?[systemFormat=system_format|&userid_type=login|&user_id=login_ID]

Path Parameters

Parameter Name Data Type Description
trip_ID string Required: The identifier for the desired trip. This identifier is returned as the value of the ID element when getting trip summaries. For example, if the returned value of the ID element is I2uwiJJw8r7Owl3IWlSie9WIelxhAhwiL, then the URI for the request is /travel/trip/v1.1/I2uwiJJw8r7Owl3IWlSie9WIelxhAhwi.

Query Parameters

Parameter Name Data Type Description
systemFormat string Optional: Format of the response for a different system. The supported value is Tripit. The format for the request URI using this query parameter is /travel/trip/v1.1/trip_ID?systemFormat=Tripit.
userid_type string Optional: The type of user identification to use. Possible value is: login.
userid_value string Optional: The user’s login ID. This parameter must be provided in conjunction with the userid_type parameter. The userid_type and userid_value parameters can only be used if 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. The format for the request URI using the userid_type and userid_value query parameters is /travel/trip/v1.1/trip_ID?userid_type=login&userid_value=login_ID.

Headers

Authorization Header (Required)

Authorization: OAuth {access_token}
Where access_token is the OAuth 2.0 access token of the user whose itinerary information you want to retrieve. If you want to access company-wide itinerary 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.

Accept Header (Optional)

application/xml

Response

The response returns subset of the elements described in the following tables depending on the parameters used in the request and the status and details for the itinerary. The response can be formatted for TripIt, using the systemformat query string.

Parent Elements

Element Name Data Type Description
id string Trip ID URI with encrypted ID.
ItinLocator string The itinerary locator. This element is now deprecated and only supported for backward compatibility.
ClientLocator string Represents the unique identifier of the trip in an external (non-Concur) system. Maximum length 32 characters.
ItinSourceName string The itinerary source. Format: TravelSupplier.
TripName string Name of the trip. Maximum length 255 characters.
Comments string Comments for this itinerary. Maximum length 512 characters.
StartDateLocal dateTime The start date of the trip in the starting location’s timezone. Format: YYYY-MM-DDThh:mm:ss.
EndDateLocal dateTime The end date of the trip in the ending location’s timezone. Format: YYYY-MM-DDThh:mm:ss.
DateCreatedUtc dateTime The date that this trip was created, in UTC. Format: YYYY-MM-DDThh:mm:ss.
DateModifiedUtc dateTime The UTC date that this trip was last modified. Format: YYYY-MM-DDThh:mm:ss.
BookedVia string The booking method for the trip.
BookedByFirstName string The first name of the person who booked the trip.
BookedByLastName string The last name of the person who booked the trip.
DateBookedLocal dateTime The date the trip was booked, in the local time of the booking location. Format: YYYY-MM-DDThh:mm:ss.
CancelComments string The comments provided if the itinerary is cancelled. Maximum length: 256 characters.
Description string The trip description. Maximum length: 512 characters.
EndDateUtc dateTime The end date of the trip, in UTC. Format: YYYY-MM-DDThh:mm:ss.
IsPersonal boolean Whether the trip is a Business or Leisure trip. Format: true/false.
ProjectName string The associated project name for the trip. Maximum length: 255 characters.
StartDateUtc dateTime The start date of the trip, in UTC. Format: YYYY-MM-DDThh:mm:ss.
RuleViolations array The list of rule violations associated with the itinerary. This parent element contains a RuleViolation child element for each associated rule violation.
Status string The status of the itinerary. One of the following: 0- Confirmed; 1- Ticketed by agent; 2- Canceled.
Bookings array A parent element that contains a Booking child element for each booking associated with this itinerary.

Booking Element

Element Name Data Type Description
Segments array List of segments in this booking. The child elements included in this element vary depending on whether a TMC, third-party developer, or TripLink supplier is requesting the itinerary details: For TMCs and third-party developers, the Segments element contains one or more Air, Car, Hotel, Dining, Ride, Rail, Parking, or Travel parent elements. For TripLink suppliers, the Segments element contains one or more Air, Car, Hotel, or Ride parent element.
Passengers array Contains a Passenger child element for each included passenger. For more information on the Passengers element, see Create a New Trip.
RecordLocator string The unique identifier for a booking. This is often six alphanumeric characters, but can have other formats depending on the booking source.
BookingSource string The name of the booking source for this booking. A booking source is a textual name the system uses to track where a booking took place.
DateModifiedUtc dateTime The date the booking was last modified, in UTC. Format: YYYY-MM-DDThh:mm:ss.
DateBookedLocal dateTime The date the booking was created, in the booking location’s local time. Format: YYYY-MM-DDThh:mm:ss.
ItinSourceName string The itinerary source. Format: TravelSupplier.
PassengerCount integer The number of passengers included in the booking.

Examples

Example 1: Get Trip Details for a Trip ID

Request

GET /api/travel/trip/v1.1/CNQR1234567890 HTTP/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
...

Response

HTTP/1.1 200 OK
Content-Type: application/xml
...

<?xml version="1.0" encoding="utf-8"?>
<Itinerary xmlns="http://www.concursolutions.com/api/travel/trip/2010/06">
    <id>https://www.concursolutions.com/api/travel/trip/v1.1/CNQR1234567890</id>
    <ItinLocator>CNQR1234567890</ItinLocator>
    <ClientLocator>KK-CNQ-1M1P6-5HJ</ClientLocator>
    <ItinSourceName>ConcurTravel</ItinSourceName>
    <TripName>Trip from Dallas to Seattle</TripName>
    <Comments />
    <StartDateLocal>2013-12-21T07:25:00</StartDateLocal>
    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
    <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
    <BookedVia>EveryGDS</BookedVia>
    <BookedByFirstName>Chris</BookedByFirstName>
    <BookedByLastName>Miller</BookedByLastName>
    <DateBookedLocal>2012-07-24T19:15:52</DateBookedLocal>
    <Bookings>
        <Booking>
            <Segments>
                <Car>
                    <Vendor>CQ</Vendor>
                    <Status>HK</Status>
                    <StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T12:00:00</EndDateLocal>
                    <ConfirmationNumber>F1672664579</ConfirmationNumber>
                    <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
                    <StartCityCode>SEA</StartCityCode>
                    <EndCityCode>SEA</EndCityCode>
                    <StartLocation>SEA</StartLocation>
                    <EndLocation>SEA</EndLocation>
                    <Class>E</Class>
                    <Body>C</Body>
                    <Transmission>M</Transmission>
                    <AirCondition>R</AirCondition>
                    <NumCars>1</NumCars>
                    <DiscountCode>346660</DiscountCode>
                    <DailyRate>44.0000</DailyRate>
                    <TotalRate>44.0000</TotalRate>
                    <RateType>D</RateType>
                    <Currency>USD</Currency>
                    <Charges>
                        <Fixed>
                            <Description>Dropoff Fee</Description>
                            <Currency>USD</Currency>
                            <Amount>0.0000</Amount>
                            <IsPrimary>false</IsPrimary>
                            <SemanticsCode>DROPOFFFEE</SemanticsCode>
                            <SemanticsVendorType>C</SemanticsVendorType>
                        </Fixed>
                        <RateWithAllowance>
                            <Currency>USD</Currency>
                            <Amount>44.0000</Amount>
                            <StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
                            <IsPrimary>true</IsPrimary>
                            <SemanticsCode>DAYS</SemanticsCode>
                            <SemanticsVendorType>C</SemanticsVendorType>
                            <PerUnit>DAY</PerUnit>
                            <NumUnits>1.0000</NumUnits>
                            <AllowanceNumUnits>250.0000</AllowanceNumUnits>
                            <AllowanceAmount>0.2400</AllowanceAmount>
                            <AllowanceIsUnlimited>false</AllowanceIsUnlimited>
                        </RateWithAllowance>
                    </Charges>
                </Car>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>C123456789</RecordLocator>
            <BookingSource>ConcurCars</BookingSource>
            <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
            <ItinSourceName>TravelSupplier</ItinSourceName>
            <PassengerCount>1</PassengerCount>
        </Booking>
        <Booking>
            <Segments>
                <Hotel>
                    <Vendor>CQ</Vendor>
                    <Status>GK</Status>
                    <StartDateLocal>2013-12-21T23:59:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
                    <ConfirmationNumber>3364214265</ConfirmationNumber>
                    <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
                    <RateCode>LV4</RateCode>
                    <Name>CONCUR HOTEL</Name>
                    <HotelPropertyId>CONQ</HotelPropertyId>
                    <CheckinTime>00:00</CheckinTime>
                    <CheckoutTime>00:00</CheckoutTime>
                    <NumPersons>1</NumPersons>
                    <NumRooms>1</NumRooms>
                    <CancellationPolicy>Cxl 1 day prior to Arrival</CancellationPolicy>
                    <DailyRate>240.3500</DailyRate>
                    <Currency>USD</Currency>
                    <RoomDescription>1 KING BED ACCESSIBLE ROOM - K1RRC</RoomDescription>
                    <Charges>
                        <Rate>
                            <Currency>USD</Currency>
                            <Amount>240.3500</Amount>
                            <StartDateLocal>2013-12-21T23:59:00</StartDateLocal>
                            <IsPrimary>false</IsPrimary>
                            <SemanticsCode>ROOMRATE</SemanticsCode>
                            <SemanticsVendorType>H</SemanticsVendorType>
                            <PerUnit>DAY</PerUnit>
                            <NumUnits>3.0000</NumUnits>
                        </Rate>
                    </Charges>
                </Hotel>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>0987654321</RecordLocator>
            <BookingSource>ConcurHotel</BookingSource>
            <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
            <OriginalItinLocator>33491211</OriginalItinLocator>
            <ItinSourceName>ConcurTravel</ItinSourceName>
            <PassengerCount>1</PassengerCount>
        </Booking>
    </Bookings>
</Itinerary>

Example 2: Get Trip Details in TripIt Format

Request

GET /travel/trip/v1.1/73014481752?systemFormat=Tripit HTTP/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
...

Response

<?xml version="1.0" encoding="utf-8"?>
<Response>
    <Trip>
        <id>73014481752</id>
        <relative_url>/api/travel/trip/v1.1/73014481752</relative_url>
        <start_date>2013-08-21</start_date>
        <end_date>2013-08-24</end_date>
        <display_name>Strategy Team meeting</display_name>
        <is_private>true</is_private>
    </Trip>
    <AirObject>
        <booking_site_conf_num>RL10001005</booking_site_conf_num>
        <booking_site_name>Concur Travel</booking_site_name>
        <booking_site_phone></booking_site_phone>
        <booking_site_url>https://www.concursolutions.com</booking_site_url>
        <record_locator>4294993825</record_locator>
        <supplier_conf_num>CN10001005</supplier_conf_num>
        <supplier_contact></supplier_contact>
        <supplier_email_address></supplier_email_address>
        <supplier_name></supplier_name>
        <supplier_phone></supplier_phone>
        <supplier_url></supplier_url>
        <is_purchased>1</is_purchased>
        <notes></notes>
        <restrictions></restrictions>
        <total_cost></total_cost>
        <Segment>
            <StartDateTime>
                <date>2013-08-21</date>
                <time>07:45:00</time>
            </StartDateTime>
            <EndDateTime>
                <date>2013-08-21</date>
                <time>13:03:00</time>
            </EndDateTime>
            <start_airport_code>PHX</start_airport_code>
            <start_gate>A11</start_gate>
            <start_terminal>4</start_terminal>
            <end_airport_code>ORD</end_airport_code>
            <end_gate>F8</end_gate>
            <end_terminal>2</end_terminal>
            <marketing_airline>US</marketing_airline>
            <marketing_flight_number>1</marketing_flight_number>
            <aircraft>320</aircraft>
            <duration></duration>
            <distance>1433</distance>
            <notes></notes>
            <seats></seats>
            <service_class>Economy</service_class>
            <stops>Nonstop</stops>
        </Segment>
        <Segment>
            <StartDateTime>
                <date>2013-08-24</date>
                <time>13:55:00</time>
            </StartDateTime>
            <EndDateTime>
                <date>2013-08-24</date>
                <time>16:58:00</time>
            </EndDateTime>
            <start_airport_code>ORD</start_airport_code>
            <start_gate></start_gate>
            <start_terminal></start_terminal>
            <end_airport_code>PHX</end_airport_code>
            <end_gate></end_gate>
            <end_terminal></end_terminal>
            <marketing_airline>US</marketing_airline>
            <marketing_flight_number>1728</marketing_flight_number>
            <aircraft>A320</aircraft>
            <duration></duration>
            <distance></distance>
            <notes></notes>
            <seats></seats>
            <service_class>Economy</service_class>
            <stops> stops</stops>
        </Segment>
        <Traveler>
            <first_name>William</first_name>
            <middle_name></middle_name>
            <last_name>Never</last_name>
            <frequent_traveler_num></frequent_traveler_num>
            <frequent_traveler_supplier></frequent_traveler_supplier>
            <ticket_num></ticket_num>
        </Traveler>
    </AirObject>
</Response>  

Create a New Trip

This endpoint is used for creating a new trip. To create a new trip, the specified dates in the content body can only span the trip to be created and cannot span an existing trip. To create or update a trip on behalf of a user, the OAuth access token used to make the API call should be associated with the SAP Concur account of that user. The TripLink supplier or TMC must be registered with SAP Concur and have an SAP Concur account that has one of the following user roles: Web Services Administrator for Professional, or Can Administer for Standard.

Request

POST /travel/trip/v1.1?[userid_type=login&user_id=login_ID]

Request Parameters

Parameter Name Data Type Description
userid_type string Optional: The type of user identification to use. Possible value is: login_id.
userid_value string Optional: The value for the user identification type. Currently the only available type is login_id so the value is the login credentials. This parameter must be provided in conjunction with the userid_type parameter. The userid_type and userid_value parameters can only be used if the user account associated with the OAuth 2.0 access token is associated with an SAP Concur account with one of these roles: Web Services Administrator for Professional or Can Administer for Standard. The format for the request URI using the userid_type and userid_value query parameters is /travel/trip/v1.1/trip_ID?userid_type=login&userid_value=login_ID.

Headers

Authorization Header (required)

Authorization: OAuth {access_token}

Where access_token is the OAuth 2.0 access token of the user whose trip you want to create or update. If you want to access company-wide itinerary 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.

Request

Element Name Required or Optional TripLink Data Type Description
Itinerary required Y ItineraryType The root element for a trip. For this endpoint, it contains the following elements: ClientLocator, ItinSourceName, TripName, Comments, StartDateLocal, EndDateLocal, BookedByFirstName, BookedByLastName, Bookings.
TripName required Y string Name of the trip. Maximum length: 255 characters.
TripStatus required Y unsignedByte The status of the trip. One of the following: 0 - Confirmed; 1 - Ticketed; 2 - Canceled; 6 - Proposal; 7 - Booked Proposal. This element only appears if the includeCanceledTrips query parameter is used in the request.
RecordLocator required Y string The unique identifier for a booking. This is often six alphanumeric characters, but can have other formats depending on the booking source.
BookingSource required Y string The name of the booking source for this booking. A booking source is a textual name the system uses to track where a booking took place. This could be a GDS, OTA, Vendor code for a Supplier website, or Supplier Direct Connect API. For TripLink suppliers, this is the supplier’s name.
StartDateLocal optional Y dateTime The start date of the trip in the starting location’s timezone. Format: YYYY-MM-DDThh:mm:ss.
EndDateLocal optional Y dateTime The end date of the trip in the ending location’s timezone. Format: YYYY-MM-DDThh:mm:ss.
BookedByFirstName optional Y string The first name of the person who booked the trip.
BookedByLastName optional Y string The last name of the person who booked the trip.
Bookings optional Y array A parent element that contains a Booking child element for each booking associated with this itinerary.
Booking optional Y array A child element of the Bookings element which in turn contains the following child elements: Segments, Passengers, RecordLocator, BookingSource, DateModifiedUtc, DateBookedLocal, ItinSourceName, and PassengerCount.
Segments optional Y array List of segments in this booking. The child elements included in this element vary depending on whether a TMC, third-party developer, or TripLink supplier is requesting the itinerary details: For TMCs and third-party developers, the Segments element contains one or more Air, Car, Hotel, Dining, Ride, Rail, Parking, or Travel parent elements. For TripLink suppliers, the Segments element contains one or more Air, Car, Hotel, or Ride parent element.
Comments optional Y string Comments for the itinerary. Maximum length: 512 characters.
ItinSourceName optional N string The itinerary source. Format: TravelSupplier.
BookingOwner optional Y string Indicates the tool that supplied the booking to Concur Travel.
Source optional N/A string This element is obsolete. It is supported for backward compatibility only.
DateBookedLocal optional Y dateTime The date the booking was created, in the booking location’s local time. Format: YYYY-MM-DDThh:mm:ss.
FormOfPaymentName optional - string The name of the form of payment for the booking.
FormOfPaymentType optional - string The type of the form of payment.
TicketMailingAddress optional - - The mailing address for the booked ticket, if available.
TicketPickupLocation optional - - The pickup location for the booked ticket, if available.
TicketPickupNumber optional - - The confirmation number for the booked ticket, if available.
AirfareQuotes optional - array List of stored airfare quotes for this booking.
Airline Tickets optional - array List of airline tickets for this booking.
Charges optional - array List of charges for this booking.
MiscChargeOrders optional - array List of miscellaneous air charges for this booking.
Passengers optional Y array Contains a Passenger child element for each included passenger. The Passenger child element in turn contains the following required child elements: NameFirst, NameLast, and the following optional elements: NameMiddle, NamePrefix, NameRemark, NameSuffix, NameTitle, TextName, and FrequentTravelerProgram.
PassPrograms optional - array List of pass programs for this booking. This parent element has a PassProgram child element for each pass program associated with the booking. The PassProgram parent element has the following child elements: Amount, Name, Type, UserFirstName, and UserLastname.
PhoneNumbers optional - array List of phone numbers associated with this booking. This parent element has a PhoneNumberData child element for each phone number associated with the booking. The PhoneNumberData parent element has the following child elements: PassengerRPH, PhoneNumber, Type, and Description.
RailPayments optional - array List of rail payments associated with rail segments in this booking. It has the following child elements: RailPayment that represents the payment information for a rail booking and RailAdjustment for the amount adjusted for a rail booking.
Segments optional Y array List of segments in this booking. The child elements included in this element vary depending on whether a TMC, third-party developer, or TripLink supplier is requesting the itinerary details: For TMCs and third-party developers, the Segments element contains one or more Air, Car, Hotel, Dining, Ride, Rail, Parking, or Travel parent elements. For TripLink suppliers, the Segments element contains one or more Air, Car, Hotel, or Ride parent element.
Delivery optional - - The method this booking was delivered.
WaitListSegments optional - - The segments that the traveler is waitlisted for this booking.
Warning optional - - The warnings associated with the booking.
WebAddresses optional - - List of web addresses such as emails, pick-up URLs, and so on associated with this booking.

Response

The response returns an HTTP status code and if the trip is created successfully, it also returns the full posted trip details with the following additional elements inside the Itinerary parent element:

Element Name Data Type TripLink Description
id string Y The URI including the trip ID.
ItinLocator string Y The Itinerary Locator value (trip ID without the URL). The ItinLocator value is used when updating an existing trip.
DateModifiedUtc dateTime Y The UTC formatted date that this booking was last modified.
BookedVia string Y The booking method or the GDS the itinerary was booked in.
DateBookedLocal dateTime Y The date, in the traveler’s local time, that the booking was made.

Examples

Example 1: TMC Creates a Trip for User Using Their Login Credentials

This example shows how to create a trip for a user using their login credentials.

Request

POST /api/travel/trip/v1.1?userid_type=login_id&userid_value=cm@example.com HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
Content-Type: application/xml
...

<Itinerary xmlns="http://www.concursolutions.com/api/travel/trip/2010/06">
    <ClientLocator>KK-CNQ-1M1P6-5HJ</ClientLocator>
    <ItinSourceName>ConcurConnectAPI</ItinSourceName>
    <TripName>Trip from Dallas to Seattle</TripName>
    <Comments />
    <StartDateLocal>2013-12-21T07:25:00</StartDateLocal>
    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
    <BookedByFirstName>Chris</BookedByFirstName>
    <BookedByLastName>Miller</BookedByLastName>
    <Bookings>
        <Booking>
            <Segments>
                <Car>
                    <Vendor>CQ</Vendor>
                    <Status>HK</Status>
                    <StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T12:00:00</EndDateLocal>
                    <ConfirmationNumber>F1672664579</ConfirmationNumber>
                    <StartCityCode>SEA</StartCityCode>
                    <EndCityCode>SEA</EndCityCode>
                    <StartLocation>SEA</StartLocation>
                    <EndLocation>SEA</EndLocation>
                    <Class>E</Class>
                    <Body>C</Body>
                    <Transmission>M</Transmission>
                    <AirCondition>R</AirCondition>
                    <NumCars>1</NumCars>
                    <DiscountCode>346660</DiscountCode>
                    <DailyRate>44.0000</DailyRate>
                    <TotalRate>44.0000</TotalRate>
                    <RateType>D</RateType>
                    <Currency>USD</Currency>
                    <Charges>
                        <Fixed>
                            <Description>Dropoff Fee</Description>
                            <Currency>USD</Currency>
                            <Amount>0.0000</Amount>
                            <IsPrimary>false</IsPrimary>
                            <SemanticsCode>DROPOFFFEE</SemanticsCode>
                            <SemanticsVendorType>C</SemanticsVendorType>
                        </Fixed>
                        <RateWithAllowance>
                            <Currency>USD</Currency>
                            <Amount>44.0000</Amount>
                            <StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
                            <IsPrimary>true</IsPrimary>
                            <SemanticsCode>DAYS</SemanticsCode>
                            <SemanticsVendorType>C</SemanticsVendorType>
                            <PerUnit>DAY</PerUnit>
                            <NumUnits>1.0000</NumUnits>
                            <AllowanceNumUnits>250.0000</AllowanceNumUnits>
                            <AllowanceAmount>0.2400</AllowanceAmount>
                            <AllowanceIsUnlimited>false</AllowanceIsUnlimited>
                        </RateWithAllowance>
                    </Charges>
                </Car>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>C123456789</RecordLocator>
            <BookingSource>TravelBookings.com</BookingSource>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
            <ItinSourceName>ConcurConnectAPI</ItinSourceName>
            <PassengerCount>1</PassengerCount>
        </Booking>
        <Booking>
            <Segments>
                <Hotel>
                    <Vendor>CQ</Vendor>
                    <Status>GK</Status>
                    <StartDateLocal>2013-12-21T23:59:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
                    <ConfirmationNumber>3364214265</ConfirmationNumber>
                    <RateCode>LV4</RateCode>
                    <Name>CONCUR HOTEL</Name>
                    <HotelPropertyId>CONQ</HotelPropertyId>
                    <CheckinTime>03:00 PM</CheckinTime>
                    <CheckoutTime>12:00 PM</CheckoutTime>
                    <NumPersons>1</NumPersons>
                    <NumRooms>1</NumRooms>
                    <CancellationPolicy>Cxl 1 day prior to Arrival</CancellationPolicy>
                    <DailyRate>240.3500</DailyRate>
                    <Currency>USD</Currency>
                    <RoomDescription>1 KING BED ACCESSIBLE ROOM - K1RRC</RoomDescription>
                    <Charges>
                        <Rate>
                            <Currency>USD</Currency>
                            <Amount>240.3500</Amount>
                            <StartDateLocal>2013-12-21T23:59:00</StartDateLocal>
                            <IsPrimary>false</IsPrimary>
                            <SemanticsCode>ROOMRATE</SemanticsCode>
                            <SemanticsVendorType>H</SemanticsVendorType>
                            <PerUnit>DAY</PerUnit>
                            <NumUnits>3.0000</NumUnits>
                        </Rate>
                    </Charges>
                </Hotel>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>0987654321</RecordLocator>
            <BookingSource>TravelBookings.com</BookingSource>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
            <OriginalItinLocator>33491211</OriginalItinLocator>
            <ItinSourceName>ConcurConnectAPI</ItinSourceName>
            <PassengerCount>1</PassengerCount>
        </Booking>
    </Bookings>
</Itinerary>

Response

<Itinerary xmlns="http://www.concursolutions.com/api/travel/trip/2010/06">
    <id>https://www.concursolutions.com/api/travel/trip/v1.1/CNQR1234567890</id>
    <ItinLocator>CNQR1234567890</ItinLocator>
    <ClientLocator>KK-CNQ-1M1P6-5HJ</ClientLocator>
    <ItinSourceName>ConcurTravel</ItinSourceName>
    <TripName>Trip from Dallas to Seattle</TripName>
    <Comments />
    <StartDateLocal>2013-12-21T07:25:00</StartDateLocal>
    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
    <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
    <BookedVia>EveryGDS</BookedVia>
    <BookedByFirstName>Chris</BookedByFirstName>
    <BookedByLastName>Miller</BookedByLastName>
    <DateBookedLocal>2012-07-24T19:15:52</DateBookedLocal>
    <Bookings>
        <Booking>
            <Segments>
                <Car>
                    <Vendor>CQ</Vendor>
                    <Status>HK</Status>
                    <StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T12:00:00</EndDateLocal>
                    <ConfirmationNumber>F1672664579</ConfirmationNumber>
                    <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
                    <StartCityCode>SEA</StartCityCode>
                    <EndCityCode>SEA</EndCityCode>
                    <StartLocation>SEA</StartLocation>
                    <EndLocation>SEA</EndLocation>
                    <Class>E</Class>
                    <Body>C</Body>
                    <Transmission>M</Transmission>
                    <AirCondition>R</AirCondition>
                    <NumCars>1</NumCars>
                    <DiscountCode>346660</DiscountCode>
                    <DailyRate>44.0000</DailyRate>
                    <TotalRate>44.0000</TotalRate>
                    <RateType>D</RateType>
                    <Currency>USD</Currency>
                    <Charges>
                        <Fixed>
                            <Description>Dropoff Fee</Description>
                            <Currency>USD</Currency>
                            <Amount>0.0000</Amount>
                            <IsPrimary>false</IsPrimary>
                            <SemanticsCode>DROPOFFFEE</SemanticsCode>
                            <SemanticsVendorType>C</SemanticsVendorType>
                        </Fixed>
                        <RateWithAllowance>
                            <Currency>USD</Currency>
                            <Amount>44.0000</Amount>
                            <StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
                            <IsPrimary>true</IsPrimary>
                            <SemanticsCode>DAYS</SemanticsCode>
                            <SemanticsVendorType>C</SemanticsVendorType>
                            <PerUnit>DAY</PerUnit>
                            <NumUnits>1.0000</NumUnits>
                            <AllowanceNumUnits>250.0000</AllowanceNumUnits>
                            <AllowanceAmount>0.2400</AllowanceAmount>
                            <AllowanceIsUnlimited>false</AllowanceIsUnlimited>
                        </RateWithAllowance>
                    </Charges>
                </Car>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>C123456789</RecordLocator>
            <BookingSource>ConcurCars</BookingSource>
            <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
            <ItinSourceName>TravelSupplier</ItinSourceName>
            <PassengerCount>1</PassengerCount>
        </Booking>
        <Booking>
            <Segments>
                <Hotel>
                    <Vendor>CQ</Vendor>
                    <Status>GK</Status>
                    <StartDateLocal>2013-12-21T23:59:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
                    <ConfirmationNumber>3364214265</ConfirmationNumber>
                    <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
                    <RateCode>LV4</RateCode>
                    <Name>CONCUR HOTEL</Name>
                    <HotelPropertyId>CONQ</HotelPropertyId>
                    <CheckinTime>00:00</CheckinTime>
                    <CheckoutTime>00:00</CheckoutTime>
                    <NumPersons>1</NumPersons>
                    <NumRooms>1</NumRooms>
                    <CancellationPolicy>Cxl 1 day prior to Arrival</CancellationPolicy>
                    <DailyRate>240.3500</DailyRate>
                    <Currency>USD</Currency>
                    <RoomDescription>1 KING BED ACCESSIBLE ROOM - K1RRC</RoomDescription>
                    <Charges>
                        <Rate>
                            <Currency>USD</Currency>
                            <Amount>240.3500</Amount>
                            <StartDateLocal>2013-12-21T23:59:00</StartDateLocal>
                            <IsPrimary>false</IsPrimary>
                            <SemanticsCode>ROOMRATE</SemanticsCode>
                            <SemanticsVendorType>H</SemanticsVendorType>
                            <PerUnit>DAY</PerUnit>
                            <NumUnits>3.0000</NumUnits>
                        </Rate>
                    </Charges>
                </Hotel>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>0987654321</RecordLocator>
            <BookingSource>ConcurHotel</BookingSource>
            <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
            <OriginalItinLocator>33491211</OriginalItinLocator>
            <ItinSourceName>ConcurTravel</ItinSourceName>
            <PassengerCount>1</PassengerCount>
        </Booking>
    </Bookings>
</Itinerary>

This example shows how a TripLink supplier creates a trip.

Request

POST /api/travel/trip/v1.1/ HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
Content-Type: application/xml
...

<Itinerary xmlns="http://www.concursolutions.com/api/travel/trip/2010/06">
    <TripName>Trip from Dallas to Seattle</TripName>
    <TripStatus>HK</TripStatus>
    <Comments />
    <StartDateLocal>2013-12-21T07:25:00</StartDateLocal>
    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
    <BookedByFirstName>Chris</BookedByFirstName>
    <BookedByLastName>Miller</BookedByLastName>
    <Bookings>
        <Booking>
            <Segments>
                <Car>
                    <StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T12:00:00</EndDateLocal>
                    <StartCityCode>SEA</StartCityCode>
                    <EndCityCode>SEA</EndCityCode>
                </Car>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>C123456789</RecordLocator>
            <BookingSource>TravelBookings.com</BookingSource>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
        </Booking>
        <Booking>
            <Segments>
                <Hotel>
                    <Status>GK</Status>
                    <StartCityCode>SEA</StartCityCode>
                    <StartDateLocal>2013-12-21T23:59:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
                    <TimeZoneId>Pacific</TimeZoneId>
                    <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
                    <StartCity>Seattle</StartCity>
                    <StartCountry>US</StartCountry>
                </Hotel>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>0987654321</RecordLocator>
            <BookingSource>TravelBookings.com</BookingSource>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
        </Booking>
    </Bookings>
</Itinerary>

Response

<Itinerary xmlns="http://www.concursolutions.com/api/travel/trip/2010/06">
    <id>https://www.concursolutions.com/api/travel/trip/v1.1/CNQR1234567890</id>
    <ItinLocator>CNQR1234567890</ItinLocator>
    <TripName>Trip from Dallas to Seattle</TripName>
    <TripStatus>HK</TripStatus>
    <Comments />
    <StartDateLocal>2013-12-21T07:25:00</StartDateLocal>
    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
    <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
    <BookedVia>EveryGDS</BookedVia>
    <BookedByFirstName>Chris</BookedByFirstName>
    <BookedByLastName>Miller</BookedByLastName>
    <DateBookedLocal>2012-07-24T19:15:52</DateBookedLocal>
    <Bookings>
        <Booking>
            <Segments>
                <Car>
                    <StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T12:00:00</EndDateLocal>
                    <StartCityCode>SEA</StartCityCode>
                    <EndCityCode>SEA</EndCityCode>
                </Car>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>C123456789</RecordLocator>
            <BookingSource>TravelBookings.com</BookingSource>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
        </Booking>
        <Booking>
            <Segments>
                <Hotel>
                    <Status>GK</Status>
                    <StartCityCode>SEA</StartCityCode>
                    <StartDateLocal>2013-12-21T23:59:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
                    <TimeZoneId>Pacific</TimeZoneId>
                    <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
                    <StartCity>Seattle</StartCity>
                    <StartCountry>US</StartCountry>
                </Hotel>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>0987654321</RecordLocator>
            <BookingSource>TravelBookings.com</BookingSource>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
        </Booking>
    </Bookings>
</Itinerary>

Example 3: Third-Party Developer Creates a Trip Using the Access Token Used to Make the API Call

This example shows how to create a trip for a user whose account is associated with the access token used to make the API call.

Request

POST https://www.concursolutions.com/api/travel/trip/v1.1 HTTPS/1.1
Authorization: OAuth {access token}
Content-Type: application/xml
...

<Itinerary xmlns="http://www.concursolutions.com/api/travel/trip/2010/06">
    <ClientLocator>KK-CNQ-1M1P6-5HJ</ClientLocator>
    <ItinSourceName>ConcurConnectAPI</ItinSourceName>
    <TripName>Trip from Dallas to Seattle</TripName>
    <Comments />
    <StartDateLocal>2013-12-21T07:25:00</StartDateLocal>
    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
    <BookedByFirstName>Chris</BookedByFirstName>
    <BookedByLastName>Miller</BookedByLastName>
    <TripStatus>7</TripStatus>
    <TravelRequestId>3339</TravelRequestId>
    <CustomAttributes>
        <CustomAttribute>
            <ExternalId />
            <DataType>Numeric</DataType>
            <Name>ProposalBatchSize</Name>
            <DisplayTitle />
            <Data>3</Data>
            <DisplayOnItinerary>true</DisplayOnItinerary>
        </CustomAttribute>
        <CustomAttribute>
            <ExternalId />
            <DataType>Numeric</DataType>
            <Name>ProposalSequenceIndex</Name>
            <DisplayTitle />
            <Data>1</Data>
            <DisplayOnItinerary>true</DisplayOnItinerary>
        </CustomAttribute>
    </CustomAttributes>
    <Bookings>
        <Booking>
            <Segments>
                <Car>
                    <Vendor>CQ</Vendor>
                    <Status>HK</Status>
                    <StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T12:00:00</EndDateLocal>
                    <ConfirmationNumber>F1672664579</ConfirmationNumber>
                    <StartCityCode>SEA</StartCityCode>
                    <EndCityCode>SEA</EndCityCode>
                    <StartLocation>SEA</StartLocation>
                    <EndLocation>SEA</EndLocation>
                    <Class>E</Class>
                    <Body>C</Body>
                    <Transmission>M</Transmission>
                    <AirCondition>R</AirCondition>
                    <NumCars>1</NumCars>
                    <DiscountCode>346660</DiscountCode>
                    <DailyRate>44.0000</DailyRate>
                    <TotalRate>44.0000</TotalRate>
                    <RateType>D</RateType>
                    <Currency>USD</Currency>
                    <Charges>
                        <Fixed>
                            <Description>Dropoff Fee</Description>
                            <Currency>USD</Currency>
                            <Amount>0.0000</Amount>
                            <IsPrimary>false</IsPrimary>
                            <SemanticsCode>DROPOFFFEE</SemanticsCode>
                            <SemanticsVendorType>C</SemanticsVendorType>
                        </Fixed>
                        <RateWithAllowance>
                            <Currency>USD</Currency>
                            <Amount>44.0000</Amount>
                            <StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
                            <IsPrimary>true</IsPrimary>
                            <SemanticsCode>DAYS</SemanticsCode>
                            <SemanticsVendorType>C</SemanticsVendorType>
                            <PerUnit>DAY</PerUnit>
                            <NumUnits>1.0000</NumUnits>
                            <AllowanceNumUnits>250.0000</AllowanceNumUnits>
                            <AllowanceAmount>0.2400</AllowanceAmount>
                            <AllowanceIsUnlimited>false</AllowanceIsUnlimited>
                        </RateWithAllowance>
                    </Charges>
                </Car>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>C123456789</RecordLocator>
            <BookingSource>TravelBookings.com</BookingSource>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
            <ItinSourceName>ConcurConnectAPI</ItinSourceName>
            <PassengerCount>1</PassengerCount>
        </Booking>
        <Booking>
            <Segments>
                <Hotel>
                    <Vendor>CQ</Vendor>
                    <Status>GK</Status>
                    <StartDateLocal>2013-12-21T23:59:00</StartDateLocal>
                    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
                    <ConfirmationNumber>3364214265</ConfirmationNumber>
                    <RateCode>LV4</RateCode>
                    <Name>CONCUR HOTEL</Name>
                    <HotelPropertyId>CONQ</HotelPropertyId>
                    <CheckinTime>03:00 PM</CheckinTime>
                    <CheckoutTime>12:00 PM</CheckoutTime>
                    <NumPersons>1</NumPersons>
                    <NumRooms>1</NumRooms>
                    <CancellationPolicy>Cxl 1 day prior to Arrival</CancellationPolicy>
                    <DailyRate>240.3500</DailyRate>
                    <Currency>USD</Currency>
                    <RoomDescription>1 KING BED ACCESSIBLE ROOM - K1RRC</RoomDescription>
                    <Charges>
                        <Rate>
                            <Currency>USD</Currency>
                            <Amount>240.3500</Amount>
                            <StartDateLocal>2013-12-21T23:59:00</StartDateLocal>
                            <IsPrimary>false</IsPrimary>
                            <SemanticsCode>ROOMRATE</SemanticsCode>
                            <SemanticsVendorType>H</SemanticsVendorType>
                            <PerUnit>DAY</PerUnit>
                            <NumUnits>3.0000</NumUnits>
                        </Rate>
                    </Charges>
                </Hotel>
            </Segments>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>0987654321</RecordLocator>
            <BookingSource>TravelBookings.com</BookingSource>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
            <OriginalItinLocator>33491211</OriginalItinLocator>
            <ItinSourceName>ConcurConnectAPI</ItinSourceName>
            <PassengerCount>1</PassengerCount>
        </Booking>
    </Bookings>
</Itinerary>

Response

The response is the same as in Example 1.

Update a Trip

Creates a new trip or updates an existing trip. A new trip will be created if the trip dates span no existing trip and the request doesn’t include a tripId. If a tripId is included in the URI it will update the specified trip. The full trip information is included in the update request, which replaces the existing trip.

This endpoint can be used to create trips for a user that is not the OAuth consumer. This is most often done when a travel supplier or TMC needs to create a trip on behalf of a user. The supplier or TMC must be registered with SAP Concur and have an SAP Concur account that has one of the following user roles: Web Services Administrator for Professional, or Can Administer for Standard.

Cancel a Trip

This endpoint can be used to cancel all segments in a trip. To cancel a trip on behalf of a user, the OAuth access token used to make the API call should be associated with the SAP Concur account of that user. The TripLink supplier or TMC must be registered with SAP Concur and have an SAP Concur account that has one of the following user roles: Web Services Administrator for Professional, or Can Administer for Standard.

Request

POST /travel/trip/v1.1/cancel?tripid=trip_ID[&userid_type=login&userid_value=login_ID]

Path Parameters

Parameter Name Data Type Description  
cancel required string The URI path modifier for canceling a trip. The format for the request is /travel/trip/v1.1/cancel?tripid=trip_ID[&userid_type=login&userid_value=login_ID].

Request Parameters

Parameter Name Data Type Description
tripid string Optional: The identifier for the trip to be updated. For example, if the value of tripid is I2uwiJJw8r7Owl3IWlSie9WIelxhAhwiL, then the request is POST /travel/trip/v1.1?tripid=I2uwiJJw8r7Owl3IWlSie9WIelxhAhwiL.
userid_type string Optional: The type of user identification to use. Possible value is: login_id.
userid_value string Optional: The user’s login ID. This parameter must be provided in conjunction with the userid_type parameter. The userid_type and userid_value parameters can only be used if 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. The format for the request URI using the userid_type and userid_value query parameters is /travel/trip/v1.1/trip_ID?userid_type=login&userid_value=login_ID.

Headers

Authorization Header (Required)

Authorization: OAuth {access_token}

Where access_token is the OAuth 2.0 access token of the user whose trip you want to create or update. If you want to access company-wide itinerary 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.

Request Content Body

None.

Response

The request returns the full trip details for the cancelled trip. If the request is successful, the response trip will not contain any segments because they have been cancelled. The response includes the following additional elements inside the Itinerary parent element:

Parameter Name Data Type Description
id string The URI including the trip ID.
ItinLocator string The itinerary locator value (trip ID without the URL). The ItinLocator value is used when updating an existing trip.
DateModifiedUtc dateTime The UTC formatted date that this booking was last modified.
BookedVia string The GDS the itinerary was booked in.
DateBookedLocal dateTime The date, in the traveler’s local time, that the booking was made.

Examples

Example: Cancel a Trip with a Specific Trip ID

Request

POST /api/travel/trip/v1.1/cancel?tripId=CNQR1234567890 HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
...

Response

<Itinerary xmlns="http://www.concursolutions.com/api/travel/trip/2010/06">
    <id>https://www.concursolutions.com/api/travel/trip/v1.1/CNQR1234567890</id>
    <ItinLocator>CNQR1234567890</ItinLocator>
    <ClientLocator>KK-CNQ-1M1P6-5HJ</ClientLocator>
    <ItinSourceName>ConcurTravel</ItinSourceName>
    <TripName>Trip from Dallas to Seattle</TripName>
    <Comments />
    <StartDateLocal>2013-12-21T07:25:00</StartDateLocal>
    <EndDateLocal>2013-12-24T23:59:00</EndDateLocal>
    <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
    <BookedVia>EveryGDS</BookedVia>
    <BookedByFirstName>Chris</BookedByFirstName>
    <BookedByLastName>Miller</BookedByLastName>
    <DateBookedLocal>2012-07-24T19:15:52</DateBookedLocal>
    <Bookings>
        <Booking>
            <Segments/>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>C123456789</RecordLocator>
            <BookingSource>ConcurCars</BookingSource>
            <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
            <ItinSourceName>TravelSupplier</ItinSourceName>
            <PassengerCount>1</PassengerCount>
        </Booking>
        <Booking>
            <Segments/>
            <Passengers>
                <Passenger>
                    <NameFirst>Chris</NameFirst>
                    <NameLast>Miller</NameLast>
                </Passenger>
            </Passengers>
            <RecordLocator>0987654321</RecordLocator>
            <BookingSource>ConcurHotel</BookingSource>
            <DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
            <DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
            <OriginalItinLocator>33491211</OriginalItinLocator>
            <ItinSourceName>ConcurTravel</ItinSourceName>
            <PassengerCount>1</PassengerCount>
        </Booking>
    </Bookings>
</Itinerary>