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

Access to this documentation does not provide access to the API.

Process Flow

A process flow diagram of the Expense Configuration API

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
expense.config.attendeetypes.restricted.read Get a list of all attendee types applicable to a user. GET
expense.config.groups.restricted.read Get group information applicable to a user/company. 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

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

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

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
  }
]

Retrieve a List of Attendee Types

Retrieves a list of attendee types applicable to a user’s expense group

Scopes

expense.config.attendeetypes.restricted.read - Refer to Scope Usage for full details.

Request

URI Template

https://{datacenterURI}/expenseconfig/v4/users/{userID}/attendeetypes

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

Response

Status Codes

Payload

Example

Request

curl --location --request GET 'https://us.api.concursolutions.com/expenseconfig/v4/users/32C2FCC3-B2E8-4907-9672-5B3F49B1C643/attendeetypes' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json'

Response

200 OK

[
  {
    "attendeeTypeCode": "BUSGUEST",
    "attendeeTypeName": "Business Guest"
  },
  {
    "attendeeTypeCode": "SPOUSE",
    "attendeeTypeName": "Spouse"
  }
]

Retrieve an Expense Group applicable to a user

Retrieves an expense group applicable to a user

Scopes

expense.config.groups.restricted.read - Refer to Scope Usage for full details.

Request

URI Template

https://{datacenterURI}/expenseconfig/v4/users/{userID}/groupconfigs

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

Response

Status Codes

Payload

Example

Request

curl --location --request GET 'https://us.api.concursolutions.com/expenseconfig/v4/users/32C2FCC3-B2E8-4907-9672-5B3F49B1C643/groupconfigs' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json'

Response

200 OK

{
  "hierarchyNodeId": "40D435A25DAE45A093AF455A93702A02",
  "groupName": "Global",
  "allowUserDigitalTaxInvoice": true,
  "allowUserRegisterYodlee": true,
  "attendeeListFormId": "5717E29E031346ACB36502AE5E6852BA",
  "attendeeListFormName": "Attendee List Default Form",
  "cashAdvance": {
    "allowUserCarryBalance": true,
    "allowUserLinkMultiple": true,
    "allowUserUpdateExchangeRate": true,
    "name": "Default Cash Advance Workflow",
    "workflowId": "3A2AADC26EE84A1E9833C431FCBB16AC"
  },
  "policies": [
    {
      "policyId": "B3173DEE4434427293ED0286992452E3",
      "policyName": "US Expense Policy",
      "isDefault": true,
      "isInheritable": true
    }
  ],
  "paymentTypes": [
    {
      "paymentTypeId": "CASH",
      "paymentTypeName": "Cash",
      "isDefault": true
    }
  ],
  "attendeeTypes": [
    {
      "attendeeTypeCode": "SPOUSE",
      "attendeeTypeName": "Spouse"
    }
  ]
}

Retrieve all Expense Groups applicable to a company

Retrieves all expense groups applicable to a company

Scopes

expense.config.groups.restricted.read - Refer to Scope Usage for full details.

Request

URI Template

https://{datacenterURI}/expenseconfig/v4/companies/{companyId}/groupconfigs

Parameters

Name Type Format Description
companyId string - Required The unique identifier of the SAP Concur Company. Use Identity v4 API to retrieve the companyId.

Headers

Response

Status Codes

Payload

Example

Request

 curl --location --request GET 'https://us.api.concursolutions.com/expenseconfig/v4/company/32C2FCC3-B2E8-4907-9672-5B3F49B1C643/groupconfigs' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json'

Response

200 OK

{
  "hierarchyNodeId": "40D435A25DAE45A093AF455A93702A02",
  "groupName": "Global",
  "allowUserDigitalTaxInvoice": true,
  "allowUserRegisterYodlee": true,
  "attendeeListFormId": "5717E29E031346ACB36502AE5E6852BA",
  "attendeeListFormName": "Attendee List Default Form",
  "cashAdvance": {
    "allowUserCarryBalance": true,
    "allowUserLinkMultiple": true,
    "allowUserUpdateExchangeRate": true,
    "name": "Default Cash Advance Workflow",
    "workflowId": "3A2AADC26EE84A1E9833C431FCBB16AC"
  }
}

Retrieve an Expense Group by ID

Company level API to retrieve an expense group by Id, including policies, payment types and attendee types linked to the group

Scopes

expense.config.groups.restricted.read - Refer to Scope Usage for full details.

Request

URI Template

https://{datacenterURI}/expenseconfig/v4/companies/{companyId}/groupconfigs/{hierarchyNodeId}

Parameters

Name Type Format Description
companyId string - Required The unique identifier of the SAP Concur Company. Use Identity v4 API to retrieve the companyId.
hierarchyNodeId string - Required The unique identifier of a node within the expense group hierarchy. Use Company Groups v4 API to retrieve the hierarchyNodeId
applicableConfigs `string - Optional Query parameter to include applicable configurations for the group. For example, applicableConfigs=attendeeTypes,paymentTypes,policies.

Headers

Response

Status Codes

Payload

Example

Request

 curl --location --request GET 'https://us.api.concursolutions.com/expenseconfig/v4/company/32C2FCC3-B2E8-4907-9672-5B3F49B1C643/groupconfigs/40D435A25DAE45A093AF455A93702A02?applicableConfigs=attendeeTypes,paymentTypes,policies' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json'

Response

200 OK

{
  "hierarchyNodeId": "40D435A25DAE45A093AF455A93702A02",
  "groupName": "Global",
  "allowUserDigitalTaxInvoice": true,
  "allowUserRegisterYodlee": true,
  "attendeeListFormId": "5717E29E031346ACB36502AE5E6852BA",
  "attendeeListFormName": "Attendee List Default Form",
  "cashAdvance": {
    "allowUserCarryBalance": true,
    "allowUserLinkMultiple": true,
    "allowUserUpdateExchangeRate": true,
    "name": "Default Cash Advance Workflow",
    "workflowId": "3A2AADC26EE84A1E9833C431FCBB16AC"
  },
  "policies": [
    {
      "policyId": "B3173DEE4434427293ED0286992452E3",
      "policyName": "US Expense Policy",
      "isDefault": true,
      "isInheritable": true
    }
  ],
  "paymentTypes": [
    {
      "paymentTypeId": "CASH",
      "paymentTypeName": "Cash",
      "isDefault": true
    }
  ],
  "attendeeTypes": [
    {
      "attendeeTypeCode": "SPOUSE",
      "attendeeTypeName": "Spouse"
    }
  ]
}

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.

Attendee Type

Name Type Format Description
attendeeTypeCode string - Required The unique identifier of an attendee type.
attendeeTypeName string - Required Name of an attendee type.

Group

Name Type Format Description
hierarchyNodeId string - Required The unique identifier of a node within the expense group hierarchy.
groupName string - Required Name of an expense group.
allowUserDigitalTaxInvoice boolean true/false Allow user to upload digital tax invoice (Allow Xml Receipt Import)
allowUserRegisterYodlee boolean true/false Allow user to register Yodlee credit cards (Allow Personal Card Integration)
attendeeListFormId string - The unique identifier of an Attendee list form
attendeeListFormName string - Attendee list form name
cashAdvance Cash Advance - Cash advance configuration

Group Config

Name Type Format Description
hierarchyNodeId string - Required The unique identifier of a node within the expense group hierarchy.
groupName string - Required Name of an expense group.
allowUserDigitalTaxInvoice boolean true/false Allow user to upload digital tax invoice (Allow Xml Receipt Import)
allowUserRegisterYodlee boolean true/false Allow user to register Yodlee credit cards (Allow Personal Card Integration)
attendeeListFormId string - The unique identifier of an Attendee list form
attendeeListFormName string - Attendee list form name
cashAdvance Cash Advance - Cash advance configuration
policies Expense Policy - List of Expense Policies applicable to the expense group
paymentTypes Payment Type - List of Payment Types applicable to the expense group
attendeeTypes Attendee Type - List of Attendee Types applicable to the expense group

Cash Advance

Name Type Format Description
workflowId string - Unique identifier for the cash advance workflow. Null means there is no such workflow.
name string - Name of the cash advance workflow
allowUserCarryBalance boolean true/false Allow user to carry a cash advance balance from one report to another.
allowUserLinkMultiple boolean true/false Allow user to link multiple cash advances to one expense report.
allowUserUpdateExchangeRate boolean true/false Allow user to update the currency exchange rate for expense entries.

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.

On this page