Workflows v4

The Workflows v4 APIs are used to Approve or Send Back or Recall an expense report that is in the workflow. These APIs are used only for normal approval steps and not for Cost Object Approval steps.

Prior Versions

  • Report Workflow Action v1.1 documentation is available here.


These APIs are only available to partners who have been granted access by SAP Concur. Access to this documentation does not provide access to the APIs.

Products and Editions

  • Concur Expense Professional Edition
  • Concur Expense Standard Edition

Scope Usage

Required Scope:

Name Description Endpoint Approve or Send Back or Recall the Report in the workflow PATCH


SAP Concur clients must purchase Concur Expense in order to use this API. These APIs requires the identity v4 API which is currently only available to approved early access partners. Please contact your SAP Concur representative for more information.

Access Token Usage

Approve and Send Back short URL (i.e. with no userId and contextType) APIs supports company level access token. Approve, Send Back and Recall long URL (i.e. with userId and contextType) APIs supports user level access token.

Approve or Send Back or Recall a Report

  • The Approve function advances the specified report to the next step (use short URL Approve API if the report is in a system step).
  • The Send Back function sends back the specified report to report owner.
  • The Recall function moves the specified report to an unsubmitted state.

Scopes - Refer to Scope Usage for full details.


URI Template



Name Type Format Description
userId string - Required The unique identifier of the SAP Concur user. Use Identity v4 API to retrieve the userId.
contextType string - Required The access level of the SAP Concur user, which determines the form fields they can view/modify. Supported value for Recall API: TRAVELER, PROXY. Supported value for Approve and Send Back API: MANAGER
reportId string - Required The unique identifier of the report that is being approved or sent back or recalled.


REST Design Specification

PATCH operations in Expense Reports v4 conform to the JSON Merge Patch specification:



Status Codes



Sample Requests (short and long URL)

curl --location --request PATCH '' \
--header 'Authorization: Bearer {access_token}' 
--header 'Content-Type: application/json' 
--data-raw '{

curl --location --request PATCH '' \
--header 'Authorization: Bearer {access_token}' 
--header 'Content-Type: application/json'
--data-raw '{
"expenseRejectedComment":"Expense rejected"


204 No Content



Name Type Format Description
comment string - Required Comments for sending back the report.


Name Type Format Description
comment string - Approver comments.
expenseRejectedComment string - This comment identifies why some of the expense is rejected on this report. Required if the report has rejected expense(s)


Name Type Format Description
customResponseData object - The custom parameters related to error.
errorId string - The unique identifier of the error associated with the response.
errorMessage string - Required The detailed error message.
httpStatus string - Required The http response code and phrase for the response.
path string - Required The URI of the attempted request.
timestamp string date-time Required The time when the error was captured.
validationErrors ValidationError - The validation error messages.


Name Type Format Description
id string - The ID of the validation error.
message string - The detailed message of the validation error.
source string - The type of validation which failed.

On this page