Travel Request v1
This API has been deprecated.
Partners and customers using a deprecated API should contact SAP Concur and discuss moving to the latest versions.
Learn more in the API Lifecycle & Deprecation Policy.
Concur Travel Request is designed to help businesses control expenses by requiring employees to obtain approval before incurring expenses. The Travel Request resource provides the ability to view requests and update the workflow for travel requests.
Requests version 1.0 retrieves a list of up to 1000 travel requests. The request can include one or multiple search terms. This resource supports the following operations:
Version
1.0
Limitations
Access to this documentation does not provide access to the API.
Authentication
The Travel Request web service supports the OAuth 2.0 authentication model. Any additional required elements for the web service requests are covered in the function documentation. Company-level token is not supported.
Get a list of travel requests
Request
Parameters
Parameter | Description |
---|---|
requestslist | Required The requestslist keyword. |
?status={status} | The status search term specifies which travel request or approval status to return. If no status value is sent, the default status of Active will be used. For a list of all statuses see Status Values. |
?loginid={loginID} | The LoginID is the Concur login for a travel request owner that is not the OAuth consumer. This limits the response to travel requests owned by the specified user. If you use this with the TOAPPROVE or APPROVED Status search term, you should send the travel request approver’s login ID. |
?modifiedafterdate={date} | This returns travel requests in which the associated dependents (header, entries, segments, allocations, attendees, comments ) were modified after the specified date and time. This search term can be used along with other search terms to narrow the results. The date and time (if desired) should be in UTC. The format is: YYYY-MM-DDThh:mm:ss |
?modifiedbeforedate={date} | This returns travel requests in which the associated dependents (header, entries, segments, allocations, attendees, comments ) were modified before the specified date and time.This search term can be used along with other search terms to narrow the results. The date and time (if desired) should be in UTC. The format is: YYYY-MM-DDThh:mm:ss |
Status Values
Value | Description |
---|---|
ACTIVE | Returns all active travel requests. |
UNSUBMITTED | Returns unsubmitted travel requests. |
PENDING | Returns submitted travel requests pending approval. |
VALIDATED | Returns approved travel requests. |
CANCELED | Returns cancelled travel requests. |
CLOSED | Returns closed travel requests. |
SUBMITTED | Returns submitted travel requests. |
TOAPPROVE | Returns travel requests pending approval. If you use this search term with the Login ID search term, you should supply the approver’s login ID. |
APPROVED | Returns approved travel requests. If you use this search term with the Login ID search term, you should supply the approver’s login ID. |
Examples
https://www.concursolutions.com/api/travelrequest/v1.0/requestslist/
https://www.concursolutions.com/api/travelrequest/v1.0/requestslist?status={status}
https://www.concursolutions.com/api/travelrequest/v1.0/requestslist?loginid={loginID}
https://www.concursolutions.com/api/travelrequest/v1.0/requestslist?modifiedafterdate={date}
https://www.concursolutions.com/api/travelrequest/v1.0/requestslist?modifiedafterdate=2012-01-01T00:00:00
https://www.concursolutions.com/api/travelrequest/v1.0/requestslist?modifiedbeforedate={date}
https://www.concursolutions.com//api/travelrequest/v1.0/requestslist?modifiedbeforedate=2012-01-01T00:00:00
https://www.concursolutions.com/api/travelrequest/v1.0/requestslist?status={status}&loginid={loginID}
Headers
Authorization header
The authorization header must contain an OAuth token for a valid Concur user. The OAuth Consumer must have the following role: Web Services Administrator for Professional/Premium.
Accept header
application/xml
Response
This request will return a RequestsWithCount parent element with the RequestsList and TotalCount child elements. The RequestsList parent element contains a RequestSummary child element for each travel request. The RequestSummary elements will have the following child elements.
RequestSummary elements
Element Name | Description |
---|---|
RequestID | The unique identifier for the travel request, which appears in the Concur UI. |
RequestName | The name of the travel request. |
Purpose | The purpose of the travel request. |
RequestCurrency | The 3-letter ISO 4217 currency code for the travel request currency. |
RequestTotal | The total amount of the travel request. |
RequestDate | The create date of the travel request. |
StartDate | Start date of the travel request. |
EndDate | End date of the travel request. |
LastComment | The text of the most recent comment on the travel request. |
RequestDetailsURL | The URL to access the travel request details. |
RequestUserLoginID | The Login ID of the user this travel request belongs to. |
ApproverLoginID | The Login ID of the user’s travel request approver. |
EmployeeName | The name of the travel request owner. |
ApprovalStatus | The travel request’s approval status, in the OAuth consumer’s language. |
Get travel request details
Request
Retrieves the full set of information for the travel request. Includes the travel request Header, Segment, Entry, Allocation and Cash Advance details.
Parameters
requests/{requestKey}: The requests keyword and the identifier for the desired travel request. Required.
Example
https://www.concursolutions.com/api/travelrequest/v1.0/requests/{requestKey}
URI Source: The URI is provided in the ObjectURI element of the Event Notification request.
Headers
Authorization header
The authorization header must have an OAuth token for a valid Concur user. The OAuth consumer must have one of the following user roles in Concur: Company Administrator or Web Services Administrator for Professional, or Can Administer for Standard. These roles allow the user to manage data for the entire company.
Accept header
application/xml
Response
This request will return a TravelRequestDetails parent element with the following child elements.
TravelRequestDetails elements
Element Name | Description |
---|---|
LoginID | The Concur Login ID of the travel request owner. |
RequestID | The unique key for the travel request. |
RequestKey | The encrypted database key for the travel request. |
RequestName | The name of the travel request. |
Purpose | The information from the Purpose field. |
CurrencyCode | The 3-letter ISO 4217 currency code for the travel request currency. The travel request currency is defined as the travel request creator’s default reimbursement currency. |
CreationDate | The date the travel request was created. |
HasException | Whether the travel request has exceptions. Format: Y/N |
EverSentBack | Whether the travel request has ever been sent back to the employee. Format: Y/N |
EmployeeName | The first, middle (or middle initial), and last name of the employee who created the travel request. |
ApprovalStatusName | The approval status of the travel request . |
ApprovalStatusKey | The approval status key. |
AuthorizedDate | The date the travel request was authorized. This element has an attribute named i:nil. If the value for this element is null, the i:nil attribute will be set to true. Format: YYYY-MM-DDThh:mm:ss |
SubmitDate | The date the travel request was submitted. Format: YYYY-MM-DDThh:mm:ss |
LastModifiedDate | The date the travel request was last modified. Format: YYYY-MM-DDThh:mm:ss |
SegmentCount | The number of segments in the travel request. |
Custom1 through Custom20 | The details from the Custom fields. These may not have data, depending on configuration. If the custom field is a list field, the data will be returned as: (list item short code) list item name. List Field Example: <Custom1>(1234) Project 1234</Custom1> |
TravelRequestPolicyKey | The unique identifier for the policy that applies to the travel request. |
ExpensePolicyKey | The unique identifier of the Expense policy that is related to the travel request policy. |
RequestTotal | The total amount of the travel request. |
TotalApprovedAmount | The total amount of approved expenses in the travel request. |
TotalRemainingAmount | The total amount remaining in the travel request. |
ApprovalLimitDate | The date the travel request must be approved by. Appears only when integrated with Concur Travel. |
AgencyOfficeKey | The Agency Office key. |
AgencyOfficeName | The Agency Office name. |
StartDate | The start date for the travel request. |
EndDate | The end date for the travel request. |
StartTime | The start time for the travel request. |
EndTime | The end time for the travel request. |
ExtensionOf | The ID of the initial travel request that this travel request is an extension of or adendum to. |
WorkflowActionURL | The URL to post a workflow action to the travel request using the Post Request Workflow Action function. |
CommentCount | The number of comments associated with the travel request header. |
CommentsList | This parent element has a Count attribute indicating the number of comments that are included in the travel request header. It has a Comment child element for each comment. Refer to the Comment Child Elements table for the full list of child elements. |
ExceptionCount | The number of exceptions associated with the travel request header. |
ExceptionsList | This parent element has a Count attribute indicating the number of exceptions that are included in the travel request entry. It has an Exception child element for each exception. Refer to the Exception Child Elements table for the full list of child elements. |
EntriesList | This parent element has a Count attribute indicating the number of travel request entries that are included in the travel request. It has a RequestEntry child element for each entry. Refer to the RequestEntry Child Elements table for the full list of child elements. |
CashAdvancesList | This parent element has a Count attribute indicating the number of cash advances that are included in the travel request. It has a CashAdvance child element for each cash advance. Refer to the CashAdvance Child Elements table for the full list of child elements. |
Comment elements
Element Name | Description |
---|---|
Comment | The text of the travel request header comment. |
FirstName | The first name of the person who made the comment. |
LastName | The last name of the person who made the comment. |
DateTime | Time, in GMT, when the user made the comment. |
Exception elements
Element Name | Description |
---|---|
ExceptionCode | The system exception code defined for the exception. Example: BADCODE |
ExceptionMessage | The user-facing message defined for the exception. |
ExceptionLevel | The numeric level associated with the exception. Example: 99 |
RequestEntry elements
Element Name | Description |
---|---|
RequestEntryKey | The unique identifier for the travel request entry. |
EntryDescription | The text from the Description field for the entry. |
TransactionDate | The date of the travel request entry. |
RequestKey | The unique identifier for the travel request. |
FormKey | The unique identifier for the travel request entry form. |
ExpenseTypeKey | The unique identifier for the expense type. |
ExpenseTypeName | The expense type name. |
ExchangeRate | The exchange rate that applies to the entry. |
ForeignAmount | The foreign currency amount of the travel request entry. |
ForeignCurrencyName | The name of the currency for the foreign amount. |
PostedAmount | The posted amount of the travel request entry in the travel request currency. |
ApprovedAmount | The approved amount of the travel request entry in the travel request currency. |
RemainingAmount | The remaining amount of the travel request entry in the travel request currency. |
LastModifiedDate | The date the entry was last modified. Format: YYYY-MM-DDThh:mm:ss |
OrgUnit1 through OrgUnit6 | The details from the Org Unit custom fields. These may not have data, depending on configuration. |
Custom1 through Custom40 | The details from the Custom fields. These may not have data, depending on configuration. If the custom field is a list field, the data will be returned as: (list item short code) list item name. List Field Example: <Custom1>(1234) Project 1234</Custom1> |
AllocationsList | This parent element has an Allocation child element for each associated allocation. Refer to the Allocation child elements table for the full list of child elements. |
CommentCount | The number of comments associated with the travel request entry. |
CommentsList | This parent element has a Count attribute indicating the number of comments that are included in the travel request entry. It has a Comment child element for each comment. Refer to the Comment Child Elements table for the full list of child elements. |
ExceptionCount | The number of exceptions associated with the travel request entry. |
ExceptionsList | This parent element has a Count attribute indicating the number of exceptions that are included in the travel request entry. It has an Exception child element for each exception. Refer to the Exception Child Elements table for the full list of child elements. |
SegmentCount | The number of segments associated with the travel request entry. |
SegmentsList | This parent element contains a Segment child element for each segment associated with the travel request. Refer to the Segment Child Elements table for the full list of child elements. |
Allocation child elements
Element Name | Description |
---|---|
Custom1 through Custom20 | The custom fields associated with the allocation. These may not have data, depending on your configuration. If the custom field is a list field, the data will be returned as: (list item short code) list item name. List Field Example: <Custom1>(1234) Project 1234</Custom1> |
AllocationKey | The unique identifier for the allocation. |
Percentage | The percentage of the expense that is included in this allocation. |
Segment child elements
Element Name | Description |
---|---|
SegmentKey | The encrypted database primary key for the Segment table. The unique identifier for the segment. |
SegmentType | The type of itinerary segment. Format: air, car, hotel, rail, dining, event, limo, taxi, parking, other |
RecordLocator | Appears only when travel request is integrated with Concur Travel. |
DepartureDate | The departure date of the segment. |
DepartureTime | The departure time of the segment. |
ArrivalDate | The arrival date of the segment. |
ArrivalTime | The arrival time of the segment. |
FromLocationName | The name of the starting location. |
FromLocationDetail | The code of starting location. |
ToLocationName | The name of the ending location. |
ToLocationDetail | The code of the ending location. |
FlightNumber | The flight number for air segments. Appears only when travel request is integrated with Concur Travel. |
ClassOfServiceCode | The Class of Service Code from Concur Travel. Appears only when travel request is integrated with Concur Travel. |
TripLocator | The unique identifier for the Concur Travel trip associated with this segment. Appears only when travel request is integrated with Concur Travel. |
SegmentLocator | The unique identifier for Concur Travel segment associated with this segment. Appears only when travel request is integrated with Concur Travel. |
ExchangeRate | The exchange rate that applies to the segment. |
ForeignAmount | The foreign currency amount of the segment. |
ForeignCurrencyName | The name of the currency for the foreign amount of the segment. |
PostedAmount | The posted amount of the segment in the travel request currency. |
ApprovedAmount | The approved amount of the segment in the travel request currency. |
RemainingAmount | The remaining amount of the segment in the travel request currency. |
IsAgencyBooked | Whether the air segment was agency booked. Format: Y/N. |
IsSelfBooked | Whether the air segment was self booked. Format: Y/N |
LastModifiedDate | The date the segment was last modified. Format: YYYY-MM-DDThh:mm:ss |
Custom1 through Custom40 | The custom fields associated with the segment. These may not have data, depending on your configuration. If the custom field is a list field, the data will be returned as: (list item short code) list item name. List Field Example: <Custom1>(1234) Project 1234</Custom1> |
CommentCount | The number of comments associated with the segment. |
CommentsList | This parent element has a Count attribute indicating the number of comments that are included in the segment. It has a Comment child element for each comment. Refer to the Comment Child Elements table for the full list of child elements. |
ExceptionCount | The number of exceptions associated with the travel request segment. |
ExceptionsList | This parent element has a Count attribute indicating the number of exceptions that are included in the travel request segment. It has an Exception child element for each exception. Refer to the Exception Child Elements table for the full list of child elements. |
CashAdvance child elements
Element Name | Description |
---|---|
CashAdvanceKey | The unique identifier for the cash advance. |
AmountRequested | The amount requested in the cash advance, in the currency listed in the CurrencyCode element. |
CurrencyCode | The 3-letter ISO 4217 currency code for the cash advance currency. |
CurrencyName | The name of the currency for the cash advance. |
ExchangeRate | The exchange rate that applies to the cash advance. |
RequestDate | Date of cash advance request from the detailed cash advance record. |
IssueDate | The issue date for the cash advance. |
StartingBalance | The initial balance for the cash advance. |
ApprovalStatusName | The approval status of the cash advance. |
ApprovalStatusKey | The unique identifier for the approval status of the cash advance. |
EmployeeCurrencyCode | The 3-letter ISO 4217 currency code for the employee’s currency (“home currency”). |
EmployeeCurrencyName | The name of the employee’s currency (“home currency”). |
Examples
Example 1: Get list of travel requests
Request
GET api/travelrequest/v1.0/requestslist/?status=SUBMITTED HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
Response
<?xml version="1.0" encoding="utf-8"?>
<RequestsWithCount xmlns="http://www.concursolutions.com/api/travelrequest/2012/06" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<RequestsList>
<RequestSummary>
<ApprovalStatus>Submitted & Pending Approval</ApprovalStatus>
<ApproverLoginID>patdavis@example.com</ApproverLoginID>
<RequestCurrency>USD</RequestCurrency>
<EmployeeName>Chris Miller</EmployeeName>
<LastComment />
<Purpose>d</Purpose>
<RequestDate>2013-03-07T08:25:57</RequestDate>
<RequestDetailsUrl>https://www.concursolutions.com/api/travelrequest/v1.0/requests/nf0ma53XrNuqmoVSZesQZL99xN1xIg5dX</RequestDetailsUrl>
<RequestID>APXT</RequestID>
<RequestName>TVR-2861-2</RequestName>
<RequestTotal>10.00000000</RequestTotal>
<RequestUserLoginID>chrismiller@example.com</RequestUserLoginID>
</RequestSummary>
</RequestsList>
<TotalCount>1</TotalCount>
</RequestsWithCount>
Example 2: Get travel request details
Request
GET api/travelrequest/v1.0/requests/nxxKgLlnROz3zHJBCRksaas23dsfs HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
Response
<TravelRequestDetails xmlns="http://www.concursolutions.com/api/travelrequest/2012/06" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<AgencyOfficeKey>1</AgencyOfficeKey>
<AgencyOfficeName>Terrific Travel</AgencyOfficeName>
<ApprovalLimitDate>2012-06-09T23:59:00</ApprovalLimitDate>
<ApprovalStatusKey>Q_PEND</ApprovalStatusKey>
<ApprovalStatusName>Submitted & Pending Approval</ApprovalStatusName>
<AuthorizedDate i:nil="true" />
<LastModifiedDate>2012-06-08T16:35:20</LastModifiedDate>
<CashAdvancesList>
<CashAdvance>
<AmountRequested>400.000000</AmountRequested>
<ApprovalStatusKey>A_NOTF</ApprovalStatusKey>
<ApprovalStatusName>Not Submitted</ApprovalStatusName>
<CashAdvanceKey>nu1p4xwRqDVwWEcRN5kzNh1OXXfiZ1z06</CashAdvanceKey>
<CommentsList i:type="CommentsList" />
<CurrencyCode>USD</CurrencyCode>
<CurrencyName>US, Dollar</CurrencyName>
<EmployeeCurrencyCode>MXN</EmployeeCurrencyCode>
<EmployeeCurrencyName>Mexico, Peso</EmployeeCurrencyName>
<ExchangeRate>1.00000000000000</ExchangeRate>
<IssueDate i:nil="true" />
<RequestDate>2012-06-08T23:35:20</RequestDate>
<StartingBalance>0.0</StartingBalance>
</CashAdvance>
</CashAdvancesList>
<CommentCount>1</CommentCount>
<CommentsList>
<Comments>
<Comment>Trip for Sales meeting to Dallas</Comment>
<DateTime>2012-06-08T16:35:20</DateTime>
<FirstName>Chris</FirstName>
<LastName>Miller</LastName>
</Comments>
</CommentsList>
<CreationDate>2012-06-08T23:33:39</CreationDate>
<CurrencyCode>MXN</CurrencyCode>
<EmployeeName>Miller, Chris</EmployeeName>
<EndDate>9/25/2012</EndDate>
<EndTime>11:59 PM</EndTime>
<EntriesList>
<RequestEntry>
<AllocationCount>3</AllocationCount>
<AllocationsList>
<Allocation>
<AllocationKey>nG$p6tMeoepRby4MJptMA6$sf4ucfZW7d5y</AllocationKey>
<Percentage>33.33333334</Percentage>
<Custom1>(7732)VIAJAR</Custom1>
<Custom2>(881991)NUEVOS PROYECTOS</Custom2>
<Custom3 />
<Custom4 />
<Custom5>(1234)Project 1234</Custom5>
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
</Allocation>
<Allocation>
<AllocationKey>nG$p6tMeoepRcrg7jyl$slxYxm43LBgtr0b</AllocationKey>
<Percentage>33.33333333</Percentage>
<Custom1>(7112)INFRAESTRUCTURA</Custom1>
<Custom2>(223817)MODELO INFORMATICO</Custom2>
<Custom3 />
<Custom4 />
<Custom5>(1234)Project 1234</Custom5>
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
</Allocation>
<Allocation>
<AllocationKey>nG$p6tMeoepRTFxjeJUFHAw$sDhH$prHfL$sd</AllocationKey>
<Percentage>33.33333333</Percentage>
<Custom1>(8826)FINANZAS</Custom1>
<Custom2 />
<Custom3 />
<Custom4 />
<Custom5>(4321)Project 4321</Custom5>
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
</Allocation>
</AllocationsList>
<ApprovedAmount>8947.77000000</ApprovedAmount>
<CommentsList />
<Custom1 />
<Custom2 />
<Custom3 />
<Custom4 />
<Custom5 />
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom11 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
<Custom21 />
<Custom22 />
<Custom23 />
<Custom24 />
<Custom25 />
<Custom26 />
<Custom27 />
<Custom28 />
<Custom29 />
<Custom30 />
<Custom31 />
<Custom32 />
<Custom33 />
<Custom34 />
<Custom35 />
<Custom36 />
<Custom37 />
<Custom38 />
<Custom39 />
<Custom40 />
<EntryDescription />
<ExceptionsList />
<ExchangeRate>14.01220000000000</ExchangeRate>
<ExpenseTypeKey>AIRFR</ExpenseTypeKey>
<ExpenseTypeName>Boleto de Avion</ExpenseTypeName>
<ForeignAmount>638.57000000</ForeignAmount>
<ForeignCurrencyName>US, Dollar</ForeignCurrencyName>
<LastModifiedDate>2012-06-08T16:35:20</LastModifiedDate>
<PostedAmount>8947.77000000</PostedAmount>
<RemainingAmount>8947.77000000</RemainingAmount>
<RequestEntryKey>ntOaeqFud4aaO6NFSxH7X3TgNk3$pyqifM</RequestEntryKey>
<SegmentCount>2</SegmentCount>
<SegmentsList>
<Segment>
<ApprovedAmount />
<ArrivalDate>9/21/2012</ArrivalDate>
<ArrivalTime>8:55 AM</ArrivalTime>
<ClassOfServiceCode>S</ClassOfServiceCode>
<CommentsList />
<DepartureDate>9/21/2012</DepartureDate>
<DepartureTime>6:15 AM</DepartureTime>
<ExceptionsList />
<ExchangeRate />
<FlightNumber>1066</FlightNumber>
<ForeignAmount>638.57000000</ForeignAmount>
<ForeignCurrencyName>US, Dollar</ForeignCurrencyName>
<FromLocationDetail>Juarez Intl, MEXICO</FromLocationDetail>
<FromLocationName>Juarez Intl</FromLocationName>
<IsAgencyBooked>Y</IsAgencyBooked>
<IsSelfBooked>Y</IsSelfBooked>
<PostedAmount />
<RecordLocator />
<RemainingAmount />
<SegmentKey>nLY990POOA2TVhHrpTZH$sxmlZ1S4s5nVf</SegmentKey>
<SegmentLocator>1</SegmentLocator>
<SegmentType>Air Ticket</SegmentType>
<ToLocationDetail>Dallas Ft Worth Intl, Texas</ToLocationDetail>
<ToLocationName>Dallas Ft Worth Intl</ToLocationName>
<TripLocator>33519718</TripLocator>
<LastModifiedDate>2012-06-08T16:35:20</LastModifiedDate>
<Custom1 />
<Custom2 />
<Custom3 />
<Custom4 />
<Custom5 />
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom11 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
<Custom21 />
<Custom22 />
<Custom23 />
<Custom24 />
<Custom25 />
<Custom26 />
<Custom27 />
<Custom28 />
<Custom29 />
<Custom30 />
<Custom31 />
<Custom32 />
<Custom33 />
<Custom34 />
<Custom35 />
<Custom36 />
<Custom37 />
<Custom38 />
<Custom39 />
<Custom40 />
</Segment>
<Segment>
<ApprovedAmount />
<ArrivalDate>9/25/2012</ArrivalDate>
<ArrivalTime>7:50 PM</ArrivalTime>
<ClassOfServiceCode>S</ClassOfServiceCode>
<CommentsList />
<DepartureDate>9/25/2012</DepartureDate>
<DepartureTime>5:25 PM</DepartureTime>
<ExceptionsList />
<ExchangeRate />
<FlightNumber>481</FlightNumber>
<ForeignAmount>638.57000000</ForeignAmount>
<ForeignCurrencyName>US, Dollar</ForeignCurrencyName>
<FromLocationDetail>Dallas Ft Worth Intl, Texas</FromLocationDetail>
<FromLocationName>Dallas Ft Worth Intl</FromLocationName>
<IsAgencyBooked>Y</IsAgencyBooked>
<IsSelfBooked>Y</IsSelfBooked>
<PostedAmount />
<RecordLocator />
<RemainingAmount />
<SegmentKey>nLY990POOA2XfRkUq$sJqRGxKI3ZK0$pn54</SegmentKey>
<SegmentLocator>2</SegmentLocator>
<SegmentType>Air Ticket</SegmentType>
<ToLocationDetail>Juarez Intl, MEXICO</ToLocationDetail>
<ToLocationName>Juarez Intl</ToLocationName>
<TripLocator>33519718</TripLocator>
<LastModifiedDate>2012-06-08T16:35:20</LastModifiedDate>
<Custom1 />
<Custom2 />
<Custom3 />
<Custom4 />
<Custom5 />
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom11 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
<Custom21 />
<Custom22 />
<Custom23 />
<Custom24 />
<Custom25 />
<Custom26 />
<Custom27 />
<Custom28 />
<Custom29 />
<Custom30 />
<Custom31 />
<Custom32 />
<Custom33 />
<Custom34 />
<Custom35 />
<Custom36 />
<Custom37 />
<Custom38 />
<Custom39 />
<Custom40 />
</Segment>
</SegmentsList>
<TransactionDate>2012-09-21T06:15:00</TransactionDate>
</RequestEntry>
<RequestEntry>
<AllocationCount>3</AllocationCount>
<AllocationsList>
<Allocation>
<AllocationKey>nG$p6tMeoepROA$p19BXBVIKWPf6FyHoC2k</AllocationKey>
<Percentage>33.33333334</Percentage>
<Custom1>(7732)VIAJAR</Custom1>
<Custom2>(881991)NUEVOS PROYECTOS</Custom2>
<Custom3 />
<Custom4 />
<Custom5>(1234)Project 1234</Custom5>
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
</Allocation>
<Allocation>
<AllocationKey>nG$p6tMeoepRBwXZeblcbD8giw9LbZm2FT</AllocationKey>
<Percentage>33.33333333</Percentage>
<Custom1>(7112)INFRAESTRUCTURA</Custom1>
<Custom2>(223817)MODELO INFORMATICO</Custom2>
<Custom3 />
<Custom4 />
<Custom5>(1234)Project 1234</Custom5>
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
</Allocation>
<Allocation>
<AllocationKey>nG$p6tMeoepREmXR98pw3YLB4zFRxPasgE</AllocationKey>
<Percentage>33.33333333</Percentage>
<Custom1>(8826)FINANZAS</Custom1>
<Custom2 />
<Custom3 />
<Custom4 />
<Custom5>(4321)Project 4321</Custom5>
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
</Allocation>
</AllocationsList>
<ApprovedAmount>4764.15000000</ApprovedAmount>
<CommentsList />
<Custom1 />
<Custom2 />
<Custom3 />
<Custom4 />
<Custom5 />
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom11 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
<Custom21 />
<Custom22 />
<Custom23 />
<Custom24 />
<Custom25 />
<Custom26 />
<Custom27 />
<Custom28 />
<Custom29 />
<Custom30 />
<Custom31 />
<Custom32 />
<Custom33 />
<Custom34 />
<Custom35 />
<Custom36 />
<Custom37 />
<Custom38 />
<Custom39 />
<Custom40 />
<EntryDescription />
<ExceptionsList />
<ExchangeRate>14.01220000000000</ExchangeRate>
<ExpenseTypeKey>LODGE</ExpenseTypeKey>
<ExpenseTypeName>Hotel/Lodging</ExpenseTypeName>
<ForeignAmount>340.00000000</ForeignAmount>
<ForeignCurrencyName>US, Dollar</ForeignCurrencyName>
<LastModifiedDate>2012-06-08T16:35:20</LastModifiedDate>
<PostedAmount>4764.15000000</PostedAmount>
<RemainingAmount>4764.15000000</RemainingAmount>
<RequestEntryKey>ntOaeqFud4tA34CjqKY3$pQOsBXl6Q4Qtd</RequestEntryKey>
<SegmentCount>1</SegmentCount>
<SegmentsList>
<Segment>
<ApprovedAmount />
<ArrivalDate>9/25/2012</ArrivalDate>
<ArrivalTime>12:00 AM</ArrivalTime>
<ClassOfServiceCode />
<CommentsList />
<DepartureDate>9/21/2012</DepartureDate>
<DepartureTime>12:00 AM</DepartureTime>
<ExceptionsList />
<ExchangeRate />
<FlightNumber />
<ForeignAmount>340.00000000</ForeignAmount>
<ForeignCurrencyName>US, Dollar</ForeignCurrencyName>
<FromLocationDetail />
<FromLocationName />
<IsAgencyBooked>Y</IsAgencyBooked>
<IsSelfBooked>Y</IsSelfBooked>
<PostedAmount />
<RecordLocator />
<RemainingAmount />
<SegmentKey>nLY990POOA2Lqa0$pzpIwE6d0uU51z5DYo</SegmentKey>
<SegmentLocator>47244773465</SegmentLocator>
<SegmentType>Hotel Reservation</SegmentType>
<ToLocationDetail />
<ToLocationName />
<TripLocator>33519718</TripLocator>
<LastModifiedDate>2012-06-08T16:35:20</LastModifiedDate>
<Custom1 />
<Custom2 />
<Custom3 />
<Custom4 />
<Custom5 />
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom11 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
<Custom21 />
<Custom22 />
<Custom23 />
<Custom24 />
<Custom25 />
<Custom26 />
<Custom27 />
<Custom28 />
<Custom29 />
<Custom30 />
<Custom31 />
<Custom32 />
<Custom33 />
<Custom34 />
<Custom35 />
<Custom36 />
<Custom37 />
<Custom38 />
<Custom39 />
<Custom40 />
</Segment>
</SegmentsList>
<TransactionDate>2012-09-21T23:59:00</TransactionDate>
</RequestEntry>
</EntriesList>
<EntryCount>2</EntryCount>
<EverSentBack>N</EverSentBack>
<ExceptionsList />
<ExpensePolicyKey>nI6NfRt2Vq7zSzFFgqVGNjeYFXkAxVGGN</ExpensePolicyKey>
<ExtensionOf />
<HasException>N</HasException>
<LoginID>cmiller@example.com</LoginID>
<Purpose>Business trip to Dallas</Purpose>
<RequestID>337E</RequestID>
<RequestKey>nyc7eqM$pprGNOuRIDP6BkOiJ8BntYTrR3</RequestKey>
<RequestName>Trip from Mexico City to Dallas</RequestName>
<RequestTotal>13711.92000000</RequestTotal>
<StartDate>9/21/2012</StartDate>
<StartTime>6:15 AM</StartTime>
<SubmitDate>2012-06-08T23:36:10</SubmitDate>
<TotalApprovedAmount>13711.92000000</TotalApprovedAmount>
<TotalRemainingAmount>13711.92000000</TotalRemainingAmount>
<TravelRequestPolicyKey>n$snD$psI09k6NxQAgOnwgks76hOZdyLhDs</TravelRequestPolicyKey>
<WorkflowActionURL>https:/www.concursolutions.com/api/travelrequest/v1.0/requests/n3cC3I7NpBss5U2Aofqvxao5t3hvFEQo/WorkFlowAction</WorkflowActionURL>
<Custom1>(7732)VIAJAR</Custom1>
<Custom2>(881991)NUEVOS PROYECTOS</Custom2>
<Custom3 />
<Custom4 />
<Custom5 />
<Custom6 />
<Custom7 />
<Custom8 />
<Custom9 />
<Custom10 />
<Custom11 />
<Custom12 />
<Custom13 />
<Custom14 />
<Custom15 />
<Custom16 />
<Custom17 />
<Custom18 />
<Custom19 />
<Custom20 />
</TravelRequestDetails>
Post travel request header
Posts the travel request header information for a new or existing travel request for the user specified in the OAuth access token. The travel request header contains classification information for the travel request.
Request
Parameters
requests The requests keyword. Required.
Example:
https://www.concursolutions.com/api/travelrequest/v1.0/requests
{requestID}: The unique identifier for the desired travel request. Supplied when updating an existing travel request. Optional.
Example:
https://www.concursolutions.com/api/travelrequest/v1.0/requests/{requestID}
URI Source: The requestId value is returned by Get Request Details function, and the Request-Url element in this function.
Headers
Authorization header
Authorization header with OAuth token for valid Concur user. Required.
The OAuth consumer for this request must have the following role in Travel Request: Request User. This role allows the user to create travel requests.
Content-Type header
application/xml
Request body
This request should contain a Request parent element with the following child elements:
Element | Required (must contain value)? | Description |
---|---|---|
Name | Y | The travel request name. |
Purpose | Depends on configuration | The business purpose of the travel request. Maximum length: 2000. |
Comment | Depends on configuration | The travel request header comment. |
Custom1 through Custom20 | Depends on configuration | The custom fields on the travel request Header form. May be required depending on configuration. NOTE: If any of the custom fields are configured to contain list values, please refer to the Posting Custom List Items page for information on how to correctly submit list item values. |
StartDate | Depends on configuration | The start date for the travel request. Format: YYYY-MM-DD |
StartTime | Depends on configuration | The start time for the travel request. Format: hh:mm:ss |
EndDate | Depends on configuration | The end date for the travel request. Format: YYYY-MM-DD |
EndTime | Depends on configuration | The end time for the travel request. Format: hh:mm:ss |
NOTE: Refer to the Travel Request Admin user interface for the list of required fields and formats.
XML Example Request
POST /api/travelrequest/v1.0/requests HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
Content-Type: application/xml
<Request xmlns="http://www.concursolutions.com/api/travelrequest/2012/06">
<Name>Request for Trip to Seattle</Name>
<Purpose>Sales team meeting</Purpose>
<Comment>NW Regional Sales team</Comment>
<StartDate>2012-09-30</StartDate>
<StartTime>3:15</StartTime>
<EndDate>2012-10-05</EndDate>
<EndTime>15:25</EndTime>
</Request>
Response
Supported Content Types
application/xml
Response body root elements
This request will return a RequestStatus parent element with the following child elements:
Element | Description |
---|---|
Status | The status of the travel request. |
Request-Url | The URI to use when posting travel request header details to this travel request. |
If saving the travel request header triggers an exception, a RequestExceptions parent element will be provided, with a RequestException parent element for each exception. The RequestException element contains the following elements.
RequestException child elements
Element | Description |
---|---|
EventCode | The event that resulted in the exception. |
ExceptionCod | The company-defined exception code. |
ExceptionMessage | The company-defined exception message. In the case of the system MISREQFLD exception the message will list the required fields that are missing values. |
ExceptionVisibility | Which users are able to see the exception. |
IsCleared | Whether the exception has been cleared by the Request Processor. |
SeverityLevel | A numeric value indicating the severity level of the exception. The value threshold is configurable. |
XML Example of Response with Successful Travel Request Creation and Exception
<RequestStatus xmlns="http://www.concursolutions.com/api/travelrequest/2012/06" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Request-Details-Url>https://www.concursolutions.com/api/travelrequest/v1.0/requests/nf0ma53XrN$s6z5iKRRANn6eIsW89aTe3m</Request-Details-Url>
<Status>SUCCESS</Status>
<RequestExceptions>
<RequestException>
<EventCode />
<ExceptionCode>MISSREQFLD</ExceptionCode>
<ExceptionErrorCode />
<ExceptionVisibility>1</ExceptionVisibility>
<IsCleared>N</IsCleared>
<Message>Missing Required Fields:Custom 02,Custom 03,Cash Advance,</Message>
<SeverityLevel>2147483647</SeverityLevel>
<Type />
</RequestException>
</RequestExceptions>
</RequestStatus>
Post travel request workflow action
Posts a workflow action for the supplied travel request. The workflow action moves the travel request through the workflow process. The available actions are:
- Approve: The travel request is approved for the current workflow approver. The travel request will continue in the workflow, and may require additional approvals based on configuration.
- Send Back to Employee: The travel request is sent back to the employee for revision. This workflow action is used by the approvers and processors when they discover an error that must be corrected by the user. When the user resubmits the travel request, it goes through the entire workflow again.
- Recall to Employee: This workflow action is initiated by the employee, and is only available after the travel request has been submitted. This workflow action will rarely be used by developers, and may not be available to some clients due to configuration.
Two different workflow roles
Each workflow action is associated with a workflow role. The System role is used when the workflow actions do not require a particular user to perform the action. Developers who want to evaluate a travel request programatically then supply a workflow action use the System role.
The Approver role is used when the workflow step requires an individual to perform an action. Developers who want to present a list of travel requests to approve and send the workflow action when the travel requests have been evaluated by the approver use the Approver role. This role requires that a user with the correct Concur role (Request Approver, or Request Processor for Professional) authenticates using Standard OAuth before supplying the workflow action. The user must also have access (be a valid approver or processor) for the supplied Request Id.
Request
Request parameters
requests/{workflowstepId}/workflowaction: The requests and workflowaction keywords and the unique identifier for the desired workflow step. Required.
Example: https://www.concursolutions.com/api/travelrequest/v1.0/requests/{workflowstepId}/workflowaction
URI Source: The URI is the WorkflowStepURL element found in the response of the Get Request Details endpoint. The workflowstepId must match the current workflow step of the travel request. Use the Get Requests Details endpoint immediately prior to sending this request to guarantee that you have the current WorkflowStepURL.
Headers
Authorization header
Authorization header with OAuth token for valid Concur user. Required. The OAuth consumer must have one of the following user roles in Concur: Company Administrator or Web Services Administrator for Professional, or Can Administer for Standard.
Content-Type header
application/xml
Request body
This request should contain a WorkflowAction parent element with the following child elements:
Element | Required (must contain value)? | Description |
Action | Y | The name of the workflow action. Possible values are: Approve, ** Send Back to Employee, or **Recall to Employee. Must be one of the workflow actions available for the workflow step. Consult Request Admin, Workflow to learn details. |
Comment | Y, for Send Back to Employee | Must be used with the Send Back to Employee workflow action. This comment is visible wherever travel request comments are available to the employee, approver, and/or processor. |
XML Example Request
POST api/travelrequest/v1.0/requests/nx2WRNzp18$wjehk%wqEL6EDHRwi9r$paQS1UqyL6a4qQ/workflowaction HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
Content-Type: application/xml
<WorkflowAction xmlns="http://www.concursolutions.com/api/travelrequest/2012/06">
<Action>Approve</Action>
<Comment>Approved via SAP Concur</Comment>
</WorkflowAction>
Response
Supported Content Types
application/xml
Response body root elements
This request will return an ActionStatus parent element with the following child elements:
Element | Description |
---|---|
Message | The error message. Only appears if a workflow action error was generated |
Status | The status of the travel request workflow action. |
XML Example of Successful Response
<?xml version="1.0" encoding="utf-8"?>
<ActionStatus xmlns="http://www.concursolutions.com/api/travelrequest/2012/06" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Message>SUCCESS!</Message>
<Status>SUCCESS!</Status>
</ActionStatus>
XML Example of a Response with a Failure
<?xml version="1.0" encoding="utf-8"?>
<ActionStatus xmlns="http://www.concursolutions.com/api/travelrequest/2012/06" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Message>The action cannot be executed because the item has recently been changed. Please refresh your list and try again.</Message>
<Status>FAILURE</Status>
</ActionStatus>