Concur Request Event
Overview
This page will host the documentation for all the Concur Request related events that are publicly available on the public.concur.request
topic in the Event Subscription Service (ESS). Subscribers will be able to subscribe to these events by following the steps described on the Event Subscription Service v4 page.
Concur Request related events are relevant for applications that are interacting with travelers before they book their trip, such as applications that context to the traveler regarding company policy, preferences, or general compliance requirements for booking travel.
Limitations
Access to this documentation does not provide access to the subscription.
Scope Usage
Name | Description |
---|---|
travelrequest.write |
Read and write Requests. |
Events
This section lists all the publicly available events.
Request Status Changed Event
The statusChanged
event is intended to publish a message whenever the status of a Request changes as it traverses the approval workflow during its life cycle. Subscribers of the event are able to leverage the data in the message to perform synchronous or asynchronous actions depending on their business processes. For example, this could trigger an application to make API calls to Concur Request or start of a process in a third party application.
The statusChanged
event will always be published for the following status changes without any additional configuration:
- Whenever a Request is submitted.
- Whenever a Request is sent back to the employee by an approver/processor.
- Whenever a Request is recalled by the employee.
- Whenever a Request is closed.
- Whenever a Request is reopened.
- Whenever a Request is cancelled.
- Whenever a Request is approved.
- Whenever a Request stops in the legacy external validation step that is. configured using the application connector.
In addition to the above, any workflow step configured for notifications by the administrator will also be published. Please refer to the Procedure: Creating External Validations and Workflow Event Notifications section of the Workflow General - Setup Guide for more information on how the events can be configured and optimized.
Schema
status Changed Event Payload Schema
Name | Type | Format | Description |
---|---|---|---|
id |
string |
UUID |
Randomly generated unique identifier of this the event. |
correlationId |
string |
UUID |
SAP Concur unique identifier used for logging/traceability. |
eventType |
string |
- | statusChange for Request workflow updates. Approved: statusChange.APPROVED Canceled: statusChange.CANCELED Sent Back / Recalled: statusChange.SENTBACK TMC agent (REQ_PROCESSOR1): statusChange.PENDING.TMC Request Manager (REQ_MANAGER): statusChange.PENDING.RequestManager Request Auditor (REQ_PROCESSOR3): statusChange.PENDING.RequestAuditor Cost Object Approver (CO_APPROVE): statusChange.PENDING.CostObjectApprover Authorized Approver (AUTH_APPROVE): statusChange.PENDING.AuthorizedApprover Budget approver/manager (BDGT_APPROVE): statusChange.PENDING.BudgetManager Risk Manager (RISK_PROCESSOR): statusChange.PENDING.RiskManager Request Administrator (REQ_PROCESSOR_2): statusChange.PENDING.RequestAdministrator External validation: statusChange.PENDING.ExternalValidation Custom status: statusChange.PENDING .role (part of workflow roles) |
topic |
string |
- | Topic name for subscription. Supported value: public.concur.request |
subTopic |
string |
- | Do not use. |
timeStamp |
string |
date/time |
The date the event was generated in UTC. |
groups |
string |
UUID |
travelAgencyUuid linked to the Request. |
scopes |
string |
- | Supported value: travelrequest.write |
facts |
map |
Request Facts |
Key-value pairs providing the content of the event. |
Status Changed Facts Schema
Name | Type | Format | Description |
---|---|---|---|
href |
string |
- | Hyperlink to the v4 API resource for this Request (based on datacenter). |
id |
string |
- | Unique identifier of the Request. |
requestId |
string |
- | Public key of the Request (unique per customer). This corresponds to the short ID of the Request (alphanumeric). |
companyId |
string |
- | Unique identifier of the company of the traveler, from the profile service. |
role |
string |
- | TMC agent: TMC Request Manager: RequestManager Request Auditor: RequestAuditor Cost Object Approver (COA): CostObjectApprover Authorized Approver: AuthorizedApprover Budget approver/manager: BudgetManager Risk Manager: RiskManager Request Administrator: RequestAdministrator External validation: ExternalValidation |
currentApprovalStatus |
string |
- | Pending TMC agent: numerical (example 002003) Pending Request Manager: Q_PEND Pending Request Auditor: Q_PEND Pending Cost Object Approver: Q_PECO Pending Authorized Approver: Q_PEND Pending Budget approver/manager: Q_PBDG Pending Risk Manager: Q_PEND Pending Request Administrator: Q_PEND Pending External validation: Q_EXTV Pending Custom step: numerical |
policyId |
string |
- | Unique identifier of the policy that applies to the Request. |
actingUserId |
string |
- | Unique identifier of the user performing the action. This is not displayed if the action is performed by the Request owner. |
userId |
string |
- | Unique identifier of the owner of the Request. |
recipientId |
string |
- | Unique identifier of the user to whom the Request is pending approval. This is not displayed if the Request is, for example, approved or pending a generic step such as TMC step. |
isClosed |
boolean |
true /false |
If true , the Request is at the CLOSED status. |
isTest |
boolean |
true /false |
If true , the user is a test user. |
isRecall |
boolean |
true /false |
Is true only if the Request is at the SENDBACK status related to a recalled action from the traveler/delegate. |
status |
string |
enum |
Approved: APPROVED Canceled: CANCELED Sent Back / Recalled: SENTBACK Pending TMC agent: PendingTMCApproval Pending Request Manager: PendingRequestManagerApproval Request Auditor: PendingRequestAuditorApproval Pending Cost Object Approver: PendingCostObjectApproverApproval Pending Authorized Approver: PendingAuthorizedApproverApproval Pending Budget approver/manager: PendingBudgetManagerApproval Pending Risk Manager: PendingRiskManagerApproval Pending Request Administrator: PendingRequestAdministratorApproval Pending External validation: PendingExternalValidation |
stepCode |
String |
enum |
Code provided by the admin that the client can use to differentiate between the steps. Request Submit: if the target step (the next workflow step that the request stops at) is not configured for notifications, then step code will be NULL . Request Send Back or Request Recall - SENDBACK Legacy External validation post submit - EXTVAL Legacy External validation pre-extract - EXTVAL All other cases code step code as configured by admin in workflow configuration will be populated. |
entityId |
String |
alphanumeric |
Unique Identifier of the Concur Entity. A valid EntityID pattern is [pdt][a-zA-Z0-9] {5,31}. It starts with p - production / d - demo/ t- test. It consists of a-zA-Z0-9 with length at least 5 but no more than 31 characters. |
isPaymentCardRelated |
boolean |
true /false |
Is true only if the Request has at least one of its expected expense entry with the field isPaymentCardRelated selected by the end user. |
Sample Events
{
"id":"c19290aa-6eba-4f22-9736-ffc9ddfa8e7b",
"correlationId":"800832c2-9467-4bb8-9c5b-3977d12975e7",
"eventType":"statusChange.PENDING.RequestManager",
"topic":"public.concur.request",
"timeStamp":"2019-01-04T14:06:07.117Z",
"data":null,
"subtopic":null,
"facts":{
"companyId":"cef1dee9-c4d9-4bd0-9237-01a3978bfda4",
"isClosed":"false",
"isTest":"false",
"isRecall":"false",
"recipientId":"55b671dd-ee55-4817-a228-90f5077ec61c",
"requestId":"LLU9",
"actingUserId":"ee4a3a2a-2f7a-482c-abd6-82435c9b20c4",
"id":"61BA94410046F747910760EA925A7CE6",
"href":"https://emea.api.concursolutions.com/travelrequest/v4/requests/61BA94410046F747910760EA925A7CE6",
"userId":"6136f053-0cfc-49a4-80d2-e20383c27215",
"entityId":"p006zecvr9",
"policyId":"F4C8BD31CA9D4D6292795BE687EB9B2A",
"status":"PendingRequestManagerApproval",
"role":"RequestManager",
"currentApprovalStatus":"Q_PEND",
"stepCode":"PENDMGRA",
"isPaymentCardRelated":"true"
}
}
{
"id":"87087aa8-6729-4d8a-804c-85294ab038fc",
"correlationId":"5ee7f56c-95f8-4bec-8cc4-536161411c74",
"eventType":"statusChange.APPROVED",
"topic":"public.concur.request",
"timeStamp":"2019-01-04T14:06:07.934Z",
"data":null,
"subtopic":null,
"facts":{
"companyId":"39d88963-dd68-4be2-9a2d-b5843e6247bd",
"isClosed":"false",
"isTest":"false",
"isRecall":"false",
"requestId":"CN4T",
"actingUserId":"55b671dd-ee55-4817-a228-90f5077ec61c",
"id":"E1D6A41596D5B04F87F991E66CFBD3F9",
"href":"https://emea.api.concursolutions.com/travelrequest/v4/requests/E1D6A41596D5B04F87F991E66CFBD3F9",
"userId":"6136f053-0cfc-49a4-80d2-e20383c27215",
"entityId":"p006zecvr9",
"policyId":"F4C8BD31CA9D4D6292795BE687EB9B2A",
"status":"APPROVED",
"role":"",
"currentApprovalStatus":"",
"stepCode":"REQAPPR",
"isPaymentCardRelated":"false"
}
}
{
"id":"5880f720-c615-46bc-82cf-dda4e17801eb",
"correlationId":"6ca7794c-bd91-44ae-86ac-d0f59e1f38c7",
"eventType":"statusChange.PENDING.TMC",
"topic":"public.concur.request",
"timeStamp":"2019-02-28T12:26:58.049Z",
"data":null,
"subtopic":null,
"facts":{
"companyId":"39d88963-dd68-4be2-9a2d-b5843e6247bd",
"isClosed":"false",
"isTest":"false",
"isRecall":"false",
"requestId":"3334",
"actingUserId":"6136f053-0cfc-49a4-80d2-e20383c27215",
"id":"E3DB373BA8A52341AFCA01860B4FC9B6",
"href":"https://emea.api.concursolutions.com/travelrequest/v4/requests/E3DB373BA8A52341AFCA01860B4FC9B6",
"userId":"6136f053-0cfc-49a4-80d2-e20383c27215",
"entityId":"p006zecvr9",
"policyId":"F4C8BD31CA9D4D6292795BE687EB9B2A",
"status":"PendingTMCApproval",
"role":"TMC",
"currentApprovalStatus":"002003",
"stepCode":"PENDTMCA",
"isPaymentCardRelated":"false"
}
}