Expense Configuration v4
The Expense Configuration v4 API can be used to read expense configuration associated with expense groups.
Prior Versions
- Expense Group Configuration v3 documentation is available here
Limitations
This API is only available to partners who have been granted access by SAP Concur. Access to this documentation does not provide access to the API.
Process Flow
Products and Editions
- Concur Expense Professional Edition
- Concur Expense Standard Edition
Scope Usage
Required Scopes:
Name | Description | Endpoint |
---|---|---|
expense.config.policies.restricted.read |
Get a list of all expense policies applicable to a user. | GET |
expense.config.expensetypes.restricted.read |
Get a list of expense types applicable to a user based on a policy. | GET |
expense.config.paymenttypes.restricted.read |
Get a list of all payment types applicable to a user. | GET |
user.read |
Get User Information, necessary for userID . |
GET |
Dependencies
SAP Concur clients must purchase Concur Expense in order to use this API. This API requires the Identity v4 API. Please contact your SAP Concur representative for more information.
Access Token Usage
This API supports both company level and user level access tokens.
Retrieve a List of Policies
Retrieves a list of policies applicable to a user
Scopes
expense.config.policies.restricted.read
- Refer to Scope Usage for full details.
Request
URI Template
https://{datacenterURI}/expenseconfig/v4/users/{userID}/policies
Parameters
Name | Type | Format | Description |
---|---|---|---|
userID |
string |
- | Required The unique identifier of the SAP Concur user. Use Identity v4 API to retrieve the userID . |
Headers
- RFC 7231 Accept-Language
- RFC 7231 Content-Type
- RFC 7231 Content-Encoding
- RFC 7234 Cache-Control
- RFC 7232 If-Modified-Since
- RFC 7231 Accept-Encoding
- RFC 7235 Authorization - Bearer Token that identifies the caller. This is the Company or User access token.
Response
Status Codes
Payload
Example
Request
curl --location --request GET 'https://us.api.concursolutions.com/expenseconfig/v4/users/32C2FCC3-B2E8-4907-9672-5B3F49B1C643/policies' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json'
Response
200 OK
[
{
"policyId": "B3173DEE4434427293ED0286992452E3",
"policyName": "US Expense Policy",
"isDefault": true,
"isInheritable": false
},
{
"policyId": "4A0A51AF6F244476B65F9FF06E82AF2F",
"policyName": "CA Expense Policy",
"isDefault": false,
"isInheritable": false
}
]
Retrieve a List of Expense Types for a Policy
Retrieves a list of expense types applicable to a user based on a policy
Scopes
expense.config.expensetypes.restricted.read
- Refer to Scope Usage for full details.
expense.config.policies.restricted.read
- Refer to Scope Usage for full details.
Request
URI Template
https://{datacenterURI}/expenseconfig/v4/users/{userID}/policies/{policyId}/expensetypes
Parameters
Name | Type | Format | Description |
---|---|---|---|
userID |
string |
- | Required The unique identifier of the SAP Concur user. Use Identity v4 API to retrieve the userID . |
policyId |
string |
- | Required The unique identifier of an expense policy. Use Expense Policies v4 API to retrieve the policyId . |
Headers
- RFC 7231 Accept-Language
- RFC 7231 Content-Type
- RFC 7231 Content-Encoding
- RFC 7234 Cache-Control
- RFC 7232 If-Modified-Since
- RFC 7231 Accept-Encoding
- RFC 7235 Authorization - Bearer Token that identifies the caller. This is the Company or User access token.
Response
Status Codes
Payload
Example
Request
curl --location --request GET 'https://us.api.concursolutions.com/expenseconfig/v4/users/32C2FCC3-B2E8-4907-9672-5B3F49B1C643/policies/B3173DEE4434427293ED0286992452E3/expensetypes' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json'
Response
200 OK
[
{
"expenseTypeId": "TRAVL",
"expenseTypeName": "01. Travel",
"spendCategoryCode": "OTHER",
"spendCategoryName": "Other",
"isCategory": true
},
{
"expenseTypeId": "TRANS",
"expenseTypeName": "02. Transportation",
"spendCategoryCode": "OTHER",
"spendCategoryName": "Other",
"isCategory": true
},
{
"expenseTypeId": "MLENT",
"expenseTypeName": "03. Meals and Entertainment",
"spendCategoryCode": "OTHER",
"spendCategoryName": "Other",
"isCategory": true
},
{
"expenseTypeId": "OFFIC",
"expenseTypeName": "04. Office Expenses",
"spendCategoryCode": "OTHER",
"spendCategoryName": "Other",
"isCategory": true
},
{
"expenseTypeId": "AIRFR",
"expenseTypeName": "Airfare",
"spendCategoryCode": "OTHER",
"spendCategoryName": "Other",
"isCategory": false,
"parentExpenseTypeId": "TRAVL",
"parentName": "01. Travel"
},
{
"expenseTypeId": "AIRTX",
"expenseTypeName": "Airfare Ticket Tax",
"spendCategoryCode": "OTHER",
"spendCategoryName": "Other",
"isCategory": false,
"parentExpenseTypeId": "TRAVL",
"parentName": "01. Travel"
},
{
"expenseTypeId": "AIRFE",
"expenseTypeName": "Airline Fees",
"spendCategoryCode": "OTHER",
"spendCategoryName": "Other",
"isCategory": false,
"parentExpenseTypeId": "TRAVL",
"parentName": "01. Travel"
}
]
Retrieve a List of Payment Types
Retrieves a list of payment types applicable to a user
Scopes
expense.config.paymenttypes.restricted.read
- Refer to Scope Usage for full details.
Request
URI Template
https://{datacenterURI}/expenseconfig/v4/users/{userID}/paymenttypes
Parameters
Name | Type | Format | Description |
---|---|---|---|
userID |
string |
- | Required The unique identifier of the SAP Concur user. Use Identity v4 API to retrieve the userID . |
Headers
- RFC 7231 Accept-Language
- RFC 7231 Content-Type
- RFC 7231 Content-Encoding
- RFC 7234 Cache-Control
- RFC 7232 If-Modified-Since
- RFC 7231 Accept-Encoding
- RFC 7235 Authorization - Bearer Token that identifies the caller. This is the Company or User access token.
Response
Status Codes
Payload
Example
Request
curl --location --request GET 'https://us.api.concursolutions.com/expenseconfig/v4/users/32C2FCC3-B2E8-4907-9672-5B3F49B1C643/paymenttypes' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json'
Response
200 OK
[
{
"paymentTypeId": "CASH",
"paymentTypeName": "Cash",
"isDefault": true
},
{
"paymentTypeId": "PERS",
"paymentTypeName": "Personal",
"isDefault": false
},
{
"paymentTypeId": "PCCD",
"paymentTypeName": "Pending Card Transaction",
"isDefault": false
}
]
Schema
Expense Policy
Name | Type | Format | Description |
---|---|---|---|
policyId |
string |
- | Required The unique identifier of a policy. |
policyName |
string |
- | Required Name of a policy. |
isDefault |
boolean |
true /false |
Required Indicates whether this policy is the default for user’s group. |
isInheritable |
boolean |
true /false |
Required Indicates whether this policy is inheritable for user’s group. |
Expense Type
Name | Type | Format | Description |
---|---|---|---|
expenseTypeId |
string |
- | Required The unique identifier of an expense type. |
expenseTypeName |
string |
- | Required Name of an expense type. |
spendCategoryCode |
string |
- | Required The unique identifier of a spend category. |
spendCategoryName |
string |
- | Required Name of a spend category. |
isCategory |
boolean |
true /false |
Required Is Expense Type a category? Expenses cannot be created from category expense types. |
parentExpenseTypeId |
string |
- | The unique identifier on a parent expense type. |
parentName |
string |
- | Parent expense type name. |
Payment Type
Name | Type | Format | Description |
---|---|---|---|
paymentTypeId |
string |
- | Required The unique identifier of a payment type. |
paymentTypeName |
string |
- | Required Name of a payment type. |
isDefault |
boolean |
true /false |
Required Indicates whether this payment type is the default for user’s group. |
ErrorMessage
Name | Type | Format | Description |
---|---|---|---|
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. |
ValidationError
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. |