SAP Concur

Use SAP Concur to manage expense reports, receipts, travel requests, cash advances, and related user and reference data. The actions below include report submission, approval, recall, and send-back operations.

Usage Instructions

Connect SAP Concur with an OAuth client ID and secret (client-credentials or password grant) — no account linking required. Manage expense reports and line items, allocations, attendees, comments, exceptions, quick expenses, receipts, travel requests and expected expenses, cash advances, itineraries, user identities, custom lists, budgets, exchange rates, and purchase requests across every Concur datacenter.

Actions

SAP Concur Approve Expense Report

Approve an expense report as a manager (PATCH /expensereports/v4/reports/{reportId}/approve). Optional body fields: comment, expenseRejectedComment (required if the report has rejected expenses), expectedStepCode, expectedStepSequence, statusId (default A_APPR).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
reportIdstringYesExpense report ID to approve
bodyjsonNoOptional request body. All fields are optional: comment (e.g., { "comment": "Approved" }), expenseRejectedComment (required only if the report contains rejected expenses), expectedStepCode, expectedStepSequence, statusId (defaults to "A_APPR").

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty (204 No Content)

SAP Concur Associate Attendees

Associate attendees with an expense (POST /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER or PROXY
reportIdstringYesExpense report ID
expenseIdstringYesExpense ID
bodyjsonYesAttendee association payload with exactly two top-level fields: "noShowAttendeeCount" (integer, default 0) and "expenseAttendeeList" (array). Each entry in expenseAttendeeList requires "attendeeId" (string) and "transactionAmount" (object: { "value": number, "currencyCode": string }), and optionally accepts "customData", "isAmountUserEdited" (boolean), "isTraveling" (boolean), "associatedAttendeeCount" (integer), and "versionNumber" (integer). Example: { "noShowAttendeeCount": 0, "expenseAttendeeList": [{ "attendeeId": "gWmMv2Ii5rGtEBTBhBqUw", "transactionAmount": { "value": 23, "currencyCode": "USD" } }] }. Note: the object form follows the request schema (Amount = value + currencyCode, both required), but the documented POST example sends a scalar "transactionAmount": 23 — the docs conflict here.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonConcur association response (201 Created with URI)
↳ uristringResource URI of the attendee associations collection

SAP Concur Create Cash Advance

Create a cash advance (POST /cashadvance/v4.1/cashadvances).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
bodyjsonYesCash advance payload. Required fields: amountRequested ({ currency, amount }), name, and userId. Optional fields: accountCode, comment, purpose. The Concur docs are inconsistent on casing — the reference request example and the API Explorer swagger both use userId, while the schema table spells it userID; if a request is rejected with a 400, retry with the other spelling.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCreated cash advance payload
↳ cashAdvanceIdstringUnique identifier of the created cash advance

SAP Concur Create Expected Expense

Create an expected expense on a travel request (POST /travelrequest/v4/requests/{requestUuid}/expenses).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
requestUuidstringYesTravel request UUID
userIdstringNoUser UUID acting on the request (required when using a Company JWT, optional otherwise)
bodyjsonYesExpected expense payload

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCreated expected expense payload
↳ idstringExpected expense identifier
↳ hrefstringSelf-link to the resource
↳ expenseTypejsonExpense type {id, name}
↳ transactionDatestringTransaction date
↳ transactionAmountjsonTransaction amount {value, currency}
↳ postedAmountjsonPosted amount {value, currency}
↳ approvedAmountjsonApproved amount {value, currency}
↳ remainingAmountjsonRemaining amount on the expected expense
↳ businessPurposestringBusiness purpose of the expense
↳ locationjsonLocation {id, name, city, countryCode, countrySubDivisionCode, iataCode, locationType}
↳ exchangeRatejsonExchange rate {value, operation}
↳ allocationsjsonBudget allocations array (allocationId, allocationAmount {value, currency}, approvedAmount {value, currency}, postedAmount {value, currency}, expenseId, percentEdited, systemAllocation, percentage)
↳ tripDatajsonTrip data {agencyBooked, selfBooked, tripType (ONE_WAY|ROUND_TRIP), legs[{id, returnLeg, startDate, startTime, startLocationDetail, startLocation, endLocation, class {code,value}, travelExceptionReasonCodes}], segmentType {category, code}}
↳ parentRequestjsonParent travel request resource link {href, id}
↳ commentsjsonComments sub-resource link {href, id}

SAP Concur Create Expense Report

Create an expense report (POST /expensereports/v4/users/{userId}/context/{contextType}/reports — supported contexts: TRAVELER, PROXY). Required body fields: name, policyId.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID who will own the report
contextTypestringYesAccess context: TRAVELER (creating own report) or PROXY (creating on behalf of another user)
bodyjsonYesReport payload — name and policyId are required. Optional fields: businessPurpose, comment, customData, countryCode, countrySubDivisionCode, etc.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCreated expense report (Concur returns 201 with a URI to the new report)
↳ uristringURI of the newly created expense report

SAP Concur Create List Item

Create a list item (POST /list/v4/items).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
bodyjsonYesList item payload. Required: listId, shortCode, value. Optional: parentId or parentCode (mutually exclusive). Note: Concur rejects shortCode/value containing hyphens.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCreated list item
↳ idstringList item UUID
↳ listIdstringUUID of the list that contains the list item
↳ codestringLong code format for the item
↳ shortCodestringShort code identifier
↳ valuestringDisplay value of the item
↳ parentIdstringParent item UUID (omitted for first-level items)
↳ levelnumberHierarchy level (1 for root items)
↳ isDeletedbooleanDeletion status across all containing lists
↳ listsarrayLists containing this item
↳ idstringList UUID
↳ hasChildrenbooleanWhether this item has children in the list

SAP Concur Create Purchase Request

Create a purchase request (POST /purchaserequest/v4/purchaserequests).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
bodyjsonYesPurchase request payload. Required: exactly one of userId, userEmail, or userLoginId; currencyCode (ISO 4217); and lineItems[]. Each line item requires purchaseType (GOODS or SERVICES), vendorCode, vendorAddressCode, description, quantity, and unitPrice.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCreated purchase request payload
↳ idstringIdentifier of the created purchase request
↳ uristringResource URI for the created purchase request
↳ errorsarrayValidation or processing errors returned by Concur
↳ errorCodestringError code
↳ errorMessagestringError message
↳ dataPathstringPath to the request data which has the error

SAP Concur Create Quick Expense

Create a quick expense (POST /quickexpense/v4/users/{userId}/context/{contextType}/quickexpenses). TRAVELER is the only supported context type.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID who owns the quick expense
contextTypestringYesAccess context: must be TRAVELER
bodyjsonYesQuick expense payload. Required: expenseTypeId, transactionAmount {currencyCode, value}, transactionDate (YYYY-MM-DD). Optional: comment, entryDetails, location {city, countryCode, countrySubDivisionCode, id, name}, paymentTypeId (CASHX | CPAID | PENDC), vendor.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCreated quick expense response (HTTP 201 Created)
↳ quickExpenseIdUristringURI of the created quick expense resource

SAP Concur Create Quick Expense With Image

Create a quick expense with an attached image (POST /quickexpense/v4/users/{userId}/context/{contextType}/quickexpenses/image).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: must be TRAVELER
receiptjsonYesReceipt image (UserFile). Allowed: PNG, PDF, TIFF, JPEG. Maximum size 50 MB
bodyjsonYesQuick expense payload. Required: expenseTypeId, transactionAmount {currencyCode, value}, transactionDate (YYYY-MM-DD). Optional: comment, entryDetails, location {city, countryCode, countrySubDivisionCode, id, name}, paymentTypeId (CASHX | CPAID | PENDC), vendor.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCreated quick expense response (HTTP 201 with attached receipt image)
↳ quickExpenseIdUristringURI of the created quick expense resource

SAP Concur Create Report Comment

Create a comment on a report (POST /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/comments).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER, MANAGER, or PROXY
reportIdstringYesExpense report ID
commentstringYesComment text to add

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCreated comment response (Concur returns 201 Created with URI)
↳ uristringResource URI of the created comment

SAP Concur Create Travel Request

Create a travel request (POST /travelrequest/v4/requests).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringNoConcur user UUID of the Request owner — required when using the default client_credentials (company) grant; omitting it returns 400 missingRequiredParam.
bodyjsonYesTravel request payload. Supported fields: name, businessPurpose, startDate/endDate (YYYY-MM-DD), startTime/endTime (HH:mm), mainDestination ({ city, countryCode, countrySubDivisionCode, name }), policy ({ id }), and custom1-custom20 ({ value } or { code, value }). An id field is not allowed.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCreated travel request payload
↳ idstringTravel request UUID
↳ hrefstringResource hyperlink
↳ requestIdstringPublic-facing request ID (4-6 alphanumeric characters)
↳ namestringRequest name
↳ businessPurposestringBusiness purpose
↳ commentstringLast attached comment
↳ creationDatestringCreation timestamp
↳ lastModifiedstringLast modification timestamp
↳ submitDatestringLast submission timestamp
↳ startDatestringTrip start date (ISO 8601)
↳ endDatestringTrip end date (ISO 8601)
↳ startTimestringTrip start time (HH:mm)
↳ endTimestringTrip end time (HH:mm)
↳ approvedbooleanWhether the request is approved
↳ pendingApprovalbooleanPending approval flag
↳ closedbooleanClosed flag
↳ everSentBackbooleanEver-sent-back flag
↳ canceledPostApprovalbooleanCanceled after approval flag
↳ approvalStatusjsonApproval status
↳ codestringStatus code (NOT_SUBMITTED, SUBMITTED, APPROVED, CANCELED, SENTBACK)
↳ namestringLocalized status name
↳ ownerjsonTravel request owner
↳ idstringUser UUID
↳ firstNamestringOwner first name
↳ lastNamestringOwner last name
↳ approverjsonApprover assigned to the request
↳ idstringUser UUID
↳ firstNamestringApprover first name
↳ lastNamestringApprover last name
↳ policyjsonResource link to the applicable policy
↳ idstringPolicy ID
↳ hrefstringPolicy hyperlink
↳ typejsonRequest type
↳ codestringRequest type code
↳ labelstringRequest type label
↳ mainDestinationjsonMain destination of the trip
↳ citystringCity
↳ countryCodestringISO country code
↳ countrySubDivisionCodestringISO country sub-division code
↳ namestringDestination name
↳ totalApprovedAmountjsonTotal approved amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ totalPostedAmountjsonTotal posted amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ totalRemainingAmountjsonTotal remaining amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ operationsarrayAvailable workflow actions
↳ relstringOperation name
↳ hrefstringOperation URL
↳ expensesarrayExpected expenses attached to the request
↳ highestExceptionLevelstringHighest exception level (NONE, WARNING, ERROR)
↳ travelAgencyjsonTravel agency reference
↳ idstringAgency identifier
↳ hrefstringAgency URL
↳ templatestringTemplate URL
↳ custom1jsonCustom field 1
↳ custom2jsonCustom field 2
↳ custom3jsonCustom field 3
↳ custom4jsonCustom field 4
↳ custom5jsonCustom field 5
↳ custom6jsonCustom field 6
↳ custom7jsonCustom field 7
↳ custom8jsonCustom field 8
↳ custom9jsonCustom field 9
↳ custom10jsonCustom field 10
↳ custom11jsonCustom field 11
↳ custom12jsonCustom field 12
↳ custom13jsonCustom field 13
↳ custom14jsonCustom field 14
↳ custom15jsonCustom field 15
↳ custom16jsonCustom field 16
↳ custom17jsonCustom field 17
↳ custom18jsonCustom field 18
↳ custom19jsonCustom field 19
↳ custom20jsonCustom field 20

SAP Concur Create User

Create a new user identity (POST /profile/identity/v4.1/Users).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
bodyjsonYesSCIM User payload. Required: schemas (include both "urn:ietf:params:scim:schemas:core:2.0:User" and "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"), userName, name.familyName, name.givenName, emails[].value, and companyId — which is required and immutable and must be set inside the "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" block, not at the top level. Optional: active, displayName, timezone, and other SCIM User attributes.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCreated SCIM User payload

SAP Concur Delete Expected Expense

Delete an expected expense (DELETE /travelrequest/v4/expenses/{expenseUuid}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
expenseUuidstringYesExpected expense UUID to delete
userIdstringNoUser UUID acting on the request (required when using a Company JWT, optional otherwise)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
databooleantrue when the expected expense was deleted

SAP Concur Delete Expense

Delete an expense (DELETE /expensereports/v4/reports/{reportId}/expenses/{expenseId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
reportIdstringYesExpense report ID
expenseIdstringYesExpense ID to delete

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty body on success (HTTP 204 No Content). Error details when status is non-2xx

SAP Concur Delete Expense Report

Delete an expense report (DELETE /expensereports/v4/reports/{reportId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
reportIdstringYesExpense report ID to delete

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty (204 No Content)

SAP Concur Delete List Item

Delete a list item from all lists that contain it (DELETE /list/v4/items/{itemId}). This is not scoped to a single list, and all children of that list item are also deleted.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
itemIdstringYesList item UUID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty body on success (HTTP 204 No Content). Error details when status is non-2xx

SAP Concur Delete Travel Request

Delete a travel request (DELETE /travelrequest/v4/requests/{requestUuid}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
requestUuidstringYesTravel request UUID to delete
userIdstringNoConcur user UUID of the Request owner — required when using the default client_credentials (company) grant; omitting it returns 400 missingRequiredParam.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
databooleanConcur delete response body — literally true on 200 OK

SAP Concur Delete User

Hard delete a user identity (DELETE /profile/identity/v4.1/Users/{id}). Not recommended: SAP restricts hard delete to users with no transaction history and governs it by the Concur Data Retention policy. To deactivate a user instead, use SAP Concur Update User with a PATCH replacing active with false.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userUuidstringYesUser UUID to delete

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonDeletion response — empty body on HTTP 204 No Content

SAP Concur Get Allocation

Get a single allocation (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/allocations/{allocationId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER or PROXY
reportIdstringYesExpense report ID
allocationIdstringYesAllocation ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonAllocation detail payload
↳ allocationIdstringUnique allocation identifier
↳ accountCodestringLedger account code
↳ overLimitAccountCodestringAccount code applied to amounts over the per-allocation limit
↳ percentagenumberAllocation percentage
↳ allocationAmountjsonAllocation amount (value, currencyCode)
↳ valuenumberAmount value
↳ currencyCodestringISO 4217 currency code
↳ approvedAmountjsonPro-rated approved amount (value, currencyCode)
↳ valuenumberAmount value
↳ currencyCodestringISO 4217 currency code
↳ claimedAmountjsonRequested reimbursement amount (value, currencyCode)
↳ valuenumberAmount value
↳ currencyCodestringISO 4217 currency code
↳ customDataarrayCustom field values (id, value, isValid)
↳ expenseIdstringAssociated expense identifier
↳ isSystemAllocationbooleanTrue when system-managed
↳ isPercentEditedbooleanTrue when the percentage was manually edited

SAP Concur Get Budget

Get a budget item header by ID (GET /budget/v4/budgetItemHeader/{id}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
budgetIdstringYesThe budget item header's key field (uuid)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonBudget header detail payload
↳ idstringBudget item header ID
↳ namestringAdmin-facing budget name
↳ descriptionstringUser-friendly display name
↳ budgetItemStatusTypestringStatus: OPEN, CLOSED, or REMOVED
↳ budgetTypestringType: PERSONAL_USE, BUDGET, RESTRICTED, or TEAM
↳ periodTypestringPeriod type: YEARLY, QUARTERLY, MONTHLY, or DATE_RANGE
↳ currencyCodestringISO 4217 currency code
↳ isTestbooleanTest budget flag
↳ activebooleanDisplay availability flag
↳ ownedbooleanCaller ownership flag
↳ annualBudgetnumberTotal annual budget amount
↳ createdDatestringUTC creation timestamp
↳ lastModifiedDatestringUTC modification timestamp
↳ fiscalYearjsonFiscal year reference (id, name, startDate, endDate, status)
↳ budgetAmountsjsonAggregate spend amounts (pendingAmount, spendAmount, unExpensedAmount, availableAmount, adjustedBudgetAmount, consumedPercent, threshold)
↳ ownerjsonOwner user (externalUserCUUID, employeeUuid, email, employeeId, name)
↳ budgetManagersarrayManager user objects
↳ budgetApproversarrayApprover user objects
↳ budgetViewersarrayViewer user objects
↳ budgetTeamMembersarrayTeam member entries (budgetPerson, startDate, endDate, active, status)
↳ budgetCategoryjsonLinked category (id, name, description, statusType)
↳ costObjectsarrayTracking field values (fieldDefinitionId, code, value, operator)
↳ budgetItemDetailsarrayPer-period detail entries (id, currencyCode, amount, budgetItemDetailStatusType, fiscalPeriod, budgetAmounts)
↳ dateRangejsonDate range for DATE_RANGE budgets (startDate, endDate)

SAP Concur Get Cash Advance

Get a cash advance (GET /cashadvance/v4.1/cashadvances/{cashAdvanceId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
cashAdvanceIdstringYesCash advance ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCash advance detail payload
↳ cashAdvanceIdstringUnique identifier of the cash advance
↳ namestringCash advance name
↳ purposestringPurpose for the cash advance
↳ commentstringComment recorded on the cash advance
↳ accountCodestringAccount code linked to the employee
↳ requestDatestringDatetime the cash advance was requested (UTC, YYYY-MM-DD hh:mm:ss)
↳ issuedDatestringDatetime the cash advance was issued (UTC, YYYY-MM-DD hh:mm:ss)
↳ lastModifiedDatestringDatetime the cash advance was last modified (UTC, YYYY-MM-DD hh:mm:ss)
↳ hasReceiptsbooleanWhether the cash advance has receipts
↳ reimbursementCurrencystringReimbursement currency (3-letter ISO 4217 currency code)
↳ amountRequestedjsonAmount requested for the cash advance
↳ amountstringRequested amount value
↳ currencystring3-letter ISO 4217 currency code
↳ availableBalancejsonUnsubmitted balance for the cash advance
↳ amountstringBalance amount
↳ currencystring3-letter ISO 4217 currency code
↳ exchangeRatejsonExchange rate that applies to the cash advance
↳ valuestringExchange rate value
↳ operationstringExchange rate operation (MULTIPLY)
↳ approvalStatusjsonApproval status of the cash advance
↳ codestringStatus code
↳ namestringStatus display name
↳ paymentTypejsonPayment type for the cash advance
↳ paymentCodestringPayment type code
↳ descriptionstringPayment method description

SAP Concur Upload Exchange Rates

Bulk upload up to 100 custom exchange rates (POST /exchangerate/v4/rates). Body contains a currency_sets array, each with from_crn_code, to_crn_code, start_date (YYYY-MM-DD), and rate.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
bodyjsonYesBulk upload body: { currency_sets: [{ from_crn_code, to_crn_code, start_date: "YYYY-MM-DD", rate }] } (max 100 entries)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonBulk-upload exchange rate response (Exchange Rate v4)
↳ overallStatusstringOverall result status for the bulk upload (e.g. SUCCESS, FAILURE)
↳ messagestringTop-level result message
↳ currencySetsjsonPer-row results: array of { from_crn_code, to_crn_code, start_date, rate, statusCode, statusMessage }

SAP Concur Get Expected Expense

Get an expected expense (GET /travelrequest/v4/expenses/{expenseUuid}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
expenseUuidstringYesExpected expense UUID
userIdstringNoUser UUID acting on the request (optional)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonExpected expense payload
↳ idstringExpected expense identifier
↳ hrefstringSelf-link
↳ expenseTypejsonExpense type {id, name}
↳ transactionDatestringTransaction date
↳ transactionAmountjsonTransaction amount {value, currency}
↳ postedAmountjsonPosted amount {value, currency}
↳ approvedAmountjsonApproved amount {value, currency}
↳ remainingAmountjsonRemaining amount on the expected expense
↳ businessPurposestringBusiness purpose of the expense
↳ locationjsonLocation {id, name, city, countryCode, countrySubDivisionCode, iataCode, locationType}
↳ exchangeRatejsonExchange rate {value, operation}
↳ allocationsjsonBudget allocations array
↳ tripDatajsonTrip data {agencyBooked, selfBooked, tripType (ONE_WAY|ROUND_TRIP), legs[{id, returnLeg, startDate, startTime, startLocationDetail, startLocation, endLocation, class {code,value}, travelExceptionReasonCodes}], segmentType {category, code}}
↳ parentRequestjsonParent travel request resource link {href, id}
↳ commentsjsonComments sub-resource link {href, id}

SAP Concur Get Expense

Get a single expense (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER, MANAGER, or PROXY
reportIdstringYesExpense report ID
expenseIdstringYesExpense ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonExpense detail (ReportExpenseDetail) payload
↳ expenseIdstringExpense identifier
↳ allocationSetIdstringIdentifier of the associated allocation set
↳ allocationStatestringFULLY_ALLOCATED, NOT_ALLOCATED, or PARTIALLY_ALLOCATED
↳ expenseTypejsonExpense type {id, name, code, isDeleted}
↳ paymentTypejsonPayment type {id, name, code}
↳ transactionDatestringTransaction date (YYYY-MM-DD)
↳ budgetAccrualDatestringBudget accrual date
↳ transactionAmountjsonTransaction amount {currencyCode, value}
↳ postedAmountjsonPosted amount in report currency {currencyCode, value}
↳ claimedAmountjsonNon-personal claimed amount {currencyCode, value}
↳ approvedAmountjsonApproved amount {currencyCode, value}
↳ approverAdjustedAmountjsonTotal amount adjusted by the approver
↳ exchangeRatejsonExchange rate {value, operation}
↳ vendorjsonVendor info {id, name, description}
↳ locationjsonLocation {id, name, city, countryCode, countrySubDivisionCode}
↳ businessPurposestringBusiness purpose
↳ isExpenseBillablebooleanBillable flag
↳ isPersonalExpensebooleanPersonal-expense flag
↳ isExpenseRejectedbooleanWhether the expense was rejected
↳ isExcludedFromCashAdvanceByUserbooleanWhether the user excluded this from cash advance
↳ isImageRequiredbooleanWhether a receipt image is required
↳ isPaperReceiptRequiredbooleanWhether a paper receipt is required
↳ isPaperReceiptReceivedbooleanWhether a paper receipt was received
↳ isAutoCreatedbooleanAuto-creation indicator
↳ hasBlockingExceptionsbooleanWhether submission-blocking exceptions exist
↳ hasExceptionsbooleanWhether any exceptions exist
↳ hasMissingReceiptDeclarationbooleanAffidavit declaration status
↳ attendeeCountnumberNumber of attendees
↳ receiptImageIdstringIdentifier of the attached receipt image
↳ ereceiptImageIdstringeReceipt image identifier
↳ receiptTypejsonReceipt {id, status}
↳ imageCertificationStatusstringReceipt image processing/certification status
↳ ticketNumberstringAssociated travel ticket number
↳ traveljsonTravel data (airline, car rental, hotel, etc.)
↳ travelAllowancejsonTravel allowance association data
↳ mileagejsonMileage details (odometerStart, odometerEnd, totalDistance, ...)
↳ expenseTaxSummaryjsonAggregated tax data for the expense
↳ taxRateLocationstringTax rate location: FOREIGN, HOME, or OUT_OF_PROVINCE
↳ fuelTypeListItemjsonFuel type list item {id, value, isValid}
↳ merchantTaxIdstringMerchant tax identifier
↳ customDatajsonArray of custom field values [{id, value, isValid}]
↳ parentExpenseIdstringIdentifier of the parent expense (for itemizations)
↳ authorizationRequestExpenseIdstringLinked travel-request expected expense identifier
↳ jptRouteIdstringJapan Public Transport route id
↳ invoiceIdstringInvoice identifier
↳ governmentInvoiceIdstringGovernment invoice identifier
↳ lastModifiedDatestringLast modified timestamp
↳ expenseSourceIdentifiersjsonSource reference identifiers
↳ linksarrayHATEOAS links for the expense

SAP Concur Get Expense Report

Retrieve a single expense report header by id via Expense Report v4 (/expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID who owns the report
contextTypestringYesAccess context: TRAVELER (own report), MANAGER (report under approval), PROCESSOR, or PROXY
reportIdstringYesExpense report ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonConcur expense report header (ReportDetails)
↳ reportIdstringUnique report identifier
↳ reportNumberstringReport number
↳ reportFormIdstringReport form ID
↳ policyIdstringPolicy ID applied to the report
↳ policystringPolicy name
↳ namestringReport name
↳ currencyCodestringISO currency code
↳ currencystringCurrency name
↳ approvalStatusstringApproval status name
↳ approvalStatusIdstringApproval status identifier
↳ paymentStatusstringPayment status name
↳ paymentStatusIdstringPayment status identifier
↳ ledgerstringLedger name
↳ ledgerIdstringLedger identifier
↳ userIdstringOwner user UUID
↳ reportDatestringReport date (YYYY-MM-DD)
↳ creationDatestringCreation timestamp (ISO 8601)
↳ submitDatestringSubmit timestamp (ISO 8601) or null
↳ startDatestringReport period start (YYYY-MM-DD)
↳ endDatestringReport period end (YYYY-MM-DD)
↳ approvedAmountjsonAmount approved { value, currencyCode }
↳ claimedAmountjsonAmount claimed { value, currencyCode }
↳ reportTotaljsonReport total { value, currencyCode }
↳ amountDueEmployeejsonAmount due employee
↳ amountDueCompanyjsonAmount due company
↳ amountDueCompanyCardjsonAmount due company card
↳ amountCompanyPaidjsonAmount company has paid
↳ personalAmountjsonPersonal portion of the report
↳ paymentConfirmedAmountjsonConfirmed payment amount
↳ amountNotApprovedjsonAmount not approved
↳ totalAmountPaidEmployeejsonTotal amount paid to employee
↳ concurAuditStatusstringConcur audit status
↳ isFinancialIntegrationEnabledbooleanWhether financial integration is enabled
↳ isSubmittedbooleanWhether the report has been submitted
↳ isSentBackbooleanWhether the report has been sent back
↳ isReopenedbooleanWhether the report was reopened
↳ isReportEverSentBackbooleanWhether the report was ever sent back
↳ canRecallbooleanWhether the report can be recalled
↳ canAddExpensebooleanWhether expenses can be added to the report
↳ canReopenbooleanWhether the report can be reopened
↳ isReceiptImageRequiredbooleanWhether receipt images are required
↳ isReceiptImageAvailablebooleanWhether receipt images are available
↳ isPaperReceiptsReceivedbooleanWhether paper receipts were received
↳ isPendingDelegatorReviewbooleanWhether pending delegator review
↳ isFundsAndGrantsIntegrationEligiblebooleanFunds and grants eligibility
↳ hasReceivedCashAdvanceReturnsbooleanWhether cash advance returns received
↳ analyticsGroupIdstringAnalytics group ID
↳ hierarchyNodeIdstringHierarchy node ID
↳ allocationFormIdstringAllocation form ID
↳ countryCodestringISO country code
↳ countrySubDivisionCodestringISO country subdivision code
↳ countrystringCountry name
↳ businessPurposestringBusiness purpose
↳ commentstringHeader-level comment on the report
↳ reportVersionnumberReport version number
↳ reportTypestringReport type identifier
↳ cardProgramStatementPeriodIdstringCard program statement period ID
↳ defaultFieldAccessstringDefault field access (HD/RO/RW)
↳ imageStatusstringImage status
↳ receiptContainerIdstringReceipt container ID
↳ receiptStatusstringReceipt status
↳ sponsorIdstringSponsor ID
↳ submitterIdstringSubmitter user ID
↳ taxConfigIdstringTax configuration ID
↳ redirectFundjsonRedirect fund object { amount, creditCardId }
↳ customDataarrayArray of custom data { id, value, isValid }. Responses may additionally carry a response-only listItemUrl, which can be null
↳ employeejsonEmployee object { employeeId, employeeUuid }
↳ linksarrayHATEOAS links

SAP Concur Get Expense Itemizations

Get expense itemizations (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/itemizations).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER (the only value the endpoint supports)
reportIdstringYesExpense report ID
expenseIdstringYesExpense ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
dataarrayArray of itemizations (ReportExpenseSummary[])
↳ expenseIdstringItemization expense id
↳ expenseTypejsonExpense type {id, name, code, isDeleted}
↳ transactionDatestringTransaction date (YYYY-MM-DD)
↳ transactionAmountjsonTransaction amount
↳ postedAmountjsonPosted amount
↳ approvedAmountjsonApproved amount
↳ claimedAmountjsonClaimed amount
↳ approverAdjustedAmountjsonApprover-adjusted amount
↳ paymentTypejsonPayment type
↳ vendorjsonVendor info
↳ locationjsonLocation info
↳ allocationStatestringAllocation state
↳ allocationSetIdstringAllocation set identifier
↳ attendeeCountnumberAttendee count
↳ businessPurposestringBusiness purpose
↳ hasBlockingExceptionsbooleanHas blocking exceptions
↳ hasExceptionsbooleanHas exceptions
↳ isPersonalExpensebooleanPersonal expense
↳ linksarrayHATEOAS links

SAP Concur Get Trip

Get a single trip/itinerary (GET /api/travel/trip/v1.1/{tripID}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
tripIdstringYesTrip ID
useridTypestringNoUser identifier type. The only value documented for Trips v1.1 is "login" (the value is the user login id); xmlsyncid and uuid are Travel Profile v2 identifier types and are not documented for this endpoint.
useridValuestringNoUser identifier value (paired with useridType)
systemFormatstringNoOptional response format. The only supported value is "Tripit", which returns a completely different XML document rooted at <Response><Trip> instead of the standard itinerary document.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datastringRaw XML trip document returned by Concur (Trips v1.1 emits application/xml only, so this is a string and not a parsed object). The document is rooted at <Itinerary> and contains id, ItinLocator, ClientLocator, ItinSourceName, BookedVia, TripName, Status, Description, Comments, CancelComments, ProjectName, StartDateUtc, EndDateUtc, StartDateLocal, EndDateLocal, DateCreatedUtc, DateModifiedUtc, DateBookedLocal, BookedByFirstName, BookedByLastName, IsPersonal, RuleViolations, and Bookings > Booking. When systemFormat=Tripit is passed the document is rooted at <Response><Trip> instead.

SAP Concur Get List

Get a single custom list (GET /list/v4/lists/{listId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
listIdstringYesList ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonList detail payload
↳ idstringUnique identifier (UUID) of the list
↳ valuestringName of the list
↳ levelCountnumberNumber of levels in the list
↳ searchCriteriastringSearch attribute (TEXT or CODE)
↳ displayFormatstringDisplay order ((CODE) TEXT or TEXT (CODE))
↳ categoryjsonList category
↳ idstringCategory UUID
↳ typestringCategory type
↳ isReadOnlybooleanWhether the list is read-only
↳ isDeletedbooleanWhether the list has been deleted
↳ managedBystringIdentifier of the managing application or service
↳ externalThresholdnumberThreshold from where the level starts being external

SAP Concur Get List Item

Get a single list item (GET /list/v4/items/{itemId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
itemIdstringYesList item ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonList item detail payload
↳ idstringList item UUID
↳ listIdstringUUID of the list that contains the list item
↳ codestringLong code format for the item
↳ shortCodestringShort code identifier
↳ valuestringDisplay value of the item
↳ parentIdstringParent item UUID (omitted for first-level items)
↳ levelnumberHierarchy level (1 for root items)
↳ isDeletedbooleanDeletion status across all containing lists
↳ listsarrayLists containing this item
↳ idstringList UUID
↳ hasChildrenbooleanWhether this item has children in the list

SAP Concur Get Purchase Request

Get a purchase request by ID (GET /purchaserequest/v4/purchaserequests/{id}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
purchaseRequestIdstringYesPurchase request ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonPurchase request detail payload
↳ purchaseRequestIdstringUnique identifier of the purchase request
↳ purchaseRequestNumberstringHuman-readable purchase request number
↳ purchaseRequestQueueStatusstringQueue status of the purchase request
↳ purchaseRequestWorkflowStatusstringWorkflow status of the purchase request
↳ purchaseOrdersarrayPurchase orders generated from the request
↳ purchaseOrderNumberstringPurchase order number
↳ purchaseRequestExceptionsarrayExceptions raised on the purchase request
↳ eventCodestringEvent code
↳ exceptionCodestringException code
↳ isClearedbooleanWhether the exception has been cleared
↳ prExceptionIdstringIdentifier of the exception record
↳ messagestringException message

SAP Concur Get Receipt

Get a single receipt by ID (GET /receipts/v4/{receiptId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
receiptIdstringYesReceipt ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonReceipt detail payload
↳ idstringReceipt identifier
↳ userIdstringOwning user UUID
↳ dateTimeReceivedstringTimestamp when the receipt was received (ISO 8601)
↳ receiptjsonParsed receipt JSON object
↳ imagestringReceipt image URL or data reference
↳ validationSchemastringSchema used to validate the receipt
↳ selfstringURL to this receipt resource
↳ templatestringURL template for receipts

SAP Concur Get Receipt Status

Get receipt processing status (GET /receipts/v4/status/{receiptId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
receiptIdstringYesReceipt ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonReceipt status payload
↳ statusstringProcessing status: ACCEPTED, PROCESSING, PROCESSED, or FAILED
↳ logsarrayArray of log entries
↳ logLevelstringLog level
↳ messagestringLog message
↳ timestampstringLog timestamp

SAP Concur Get Travel Profile

Get a travel profile (GET /api/travelprofile/v2.0/profile). Returns the calling user by default; pass userid_type and userid_value to impersonate.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
useridTypestringNoIdentifier type: login, xmlsyncid, or uuid
useridValuestringNoIdentifier value (login id, xml sync id, or UUID)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datastringRaw XML travel profile document returned by Concur (Travel Profile v2 emits application/xml only, per the TravelUserProfile.xsd schema, so this is a string and not a parsed object). The Profile root element contains General, EmergencyContact, Telephones, Addresses, NationalIDs, DriversLicenses, HasNoPassport, Passports, Visas, EmailAddresses, RatePreferences, DiscountCodes, Air, Rail, Car, Hotel, CustomFields, Roles, Sponsors, TSAInfo, UnusedTickets, SouthwestUnusedTickets, and AdvantageMemberships. LoginId is an attribute of the <ProfileResponse> element returned by create/update, not a child element; XmlProfileSyncID and ProfileLastModifiedUTC belong to the Travel Profile summaries (ProfileSummary) response, not to this document.

SAP Concur Get Travel Request

Get a single travel request (GET /travelrequest/v4/requests/{requestUuid}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
requestUuidstringYesTravel request UUID
userIdstringNoThe unique identifier of the user getting the content of the Request. If empty when using a Company token the default system user will be assumed to perform the action.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonTravel request detail payload
↳ idstringTravel request UUID
↳ hrefstringResource hyperlink
↳ requestIdstringPublic-facing request ID (4-6 alphanumeric characters)
↳ namestringRequest name
↳ businessPurposestringBusiness purpose
↳ commentstringLast attached comment
↳ creationDatestringCreation timestamp
↳ lastModifiedstringLast modification timestamp
↳ submitDatestringLast submission timestamp
↳ authorizedDatestringDate when approval was completed
↳ approvalLimitDatestringRequired approval deadline
↳ startDatestringTrip start date (ISO 8601)
↳ endDatestringTrip end date (ISO 8601)
↳ startTimestringTrip start time (HH:mm)
↳ endTimestringTrip end time (HH:mm)
↳ approvedbooleanWhether the request is approved
↳ pendingApprovalbooleanPending approval flag
↳ closedbooleanClosed flag
↳ everSentBackbooleanEver-sent-back flag
↳ canceledPostApprovalbooleanCanceled after approval flag
↳ highestExceptionLevelstringHighest exception level (WARNING, ERROR, NONE)
↳ approvalStatusjsonApproval status
↳ codestringStatus code (NOT_SUBMITTED, SUBMITTED, APPROVED, CANCELED, SENTBACK)
↳ namestringLocalized status name
↳ ownerjsonTravel request owner
↳ idstringUser UUID
↳ firstNamestringOwner first name
↳ lastNamestringOwner last name
↳ approverjsonApprover assigned to the request
↳ idstringUser UUID
↳ firstNamestringApprover first name
↳ lastNamestringApprover last name
↳ policyjsonResource link to the applicable policy
↳ idstringPolicy ID
↳ hrefstringPolicy hyperlink
↳ typejsonRequest type
↳ codestringRequest type code
↳ labelstringRequest type label
↳ mainDestinationjsonMain destination of the trip
↳ citystringCity
↳ countryCodestringISO country code
↳ countrySubDivisionCodestringISO country sub-division code
↳ namestringDestination name
↳ totalApprovedAmountjsonTotal approved amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ totalPostedAmountjsonTotal posted amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ totalRemainingAmountjsonTotal remaining amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ expensesarrayResource links to expected expenses
↳ cashAdvancesjsonResource link to cash advances
↳ idstringResource ID
↳ hrefstringResource hyperlink
↳ commentsjsonResource link to comments
↳ idstringResource ID
↳ hrefstringResource hyperlink
↳ exceptionsjsonResource link to exceptions
↳ idstringResource ID
↳ hrefstringResource hyperlink
↳ travelAgencyjsonResource link to travel agency
↳ idstringResource ID
↳ hrefstringResource hyperlink
↳ extensionOfjsonThe Request for which this Request is an extension of, or addendum to
↳ requestIdstringThe public key of the Request (unique per customer)
↳ idstringUnique identifier of the Request
↳ hrefstringHyperlink to the resource
↳ templatestringHyperlink template to the resource
↳ pnrstringThe value of the pnr provided within the agency proposals by the travel agency
↳ isParentRequestbooleanIndicates whether this Request is a Budget Request
↳ parentRequestIdstringRequired if a Child Request is created, corresponds to the unique identifier of the Budget Request the Child Request will be linked to
↳ allocationFormIdstringThe unique identifier of the allocation form
↳ parentRequestjsonIf the Request is a Child Request, reference to the corresponding Budget Request
↳ idstringUnique identifier of the related object
↳ hrefstringHyperlink to the resource
↳ templatestringHyperlink template to the resource
↳ eventRequestjsonThe parent Event Request to which this child Request is related
↳ idstringUnique identifier of the related object
↳ hrefstringHyperlink to the resource
↳ templatestringHyperlink template to the resource
↳ operationsarrayAvailable workflow actions
↳ relstringOperation name
↳ hrefstringOperation URL
↳ expensePolicyjsonExpense policy reference
↳ idstringPolicy identifier
↳ hrefstringPolicy URL
↳ custom1jsonCustom field 1
↳ custom2jsonCustom field 2
↳ custom3jsonCustom field 3
↳ custom4jsonCustom field 4
↳ custom5jsonCustom field 5
↳ custom6jsonCustom field 6
↳ custom7jsonCustom field 7
↳ custom8jsonCustom field 8
↳ custom9jsonCustom field 9
↳ custom10jsonCustom field 10
↳ custom11jsonCustom field 11
↳ custom12jsonCustom field 12
↳ custom13jsonCustom field 13
↳ custom14jsonCustom field 14
↳ custom15jsonCustom field 15
↳ custom16jsonCustom field 16
↳ custom17jsonCustom field 17
↳ custom18jsonCustom field 18
↳ custom19jsonCustom field 19
↳ custom20jsonCustom field 20

SAP Concur Get User

Get a single user by UUID (GET /profile/identity/v4.1/Users/{id}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userUuidstringYesUser UUID
attributesstringNoComma-separated SCIM attributes to include in the response
excludedAttributesstringNoComma-separated SCIM attributes to exclude from the response

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonSCIM User identity payload

SAP Concur Issue Cash Advance

Issue a cash advance (POST /cashadvance/v4.1/cashadvances/{cashAdvanceId}/issue).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
cashAdvanceIdstringYesCash advance ID to issue
bodyjsonNoOptional request body. All documented fields are optional: accountCode, comment, and exchangeRate.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonIssue cash advance result payload
↳ issuedDatestringDate the cash advance was issued (YYYY-MM-DD)
↳ statusjsonCash advance status after the issue action
↳ codestringStatus code
↳ namestringStatus display name

SAP Concur List Allocations

List allocations on an expense (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/allocations).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER or MANAGER
reportIdstringYesExpense report ID
expenseIdstringYesExpense ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
dataarrayBare array of allocation objects (ReportAllocationResponse[])
↳ allocationIdstringUnique allocation identifier
↳ accountCodestringLedger account code
↳ overLimitAccountCodestringAccount code applied to amounts over the per-allocation limit
↳ percentagenumberAllocation percentage
↳ allocationAmountjsonAllocation amount (value, currencyCode)
↳ valuenumberAmount value
↳ currencyCodestringISO 4217 currency code
↳ approvedAmountjsonPro-rated approved amount (value, currencyCode)
↳ valuenumberAmount value
↳ currencyCodestringISO 4217 currency code
↳ claimedAmountjsonRequested reimbursement amount (value, currencyCode)
↳ valuenumberAmount value
↳ currencyCodestringISO 4217 currency code
↳ customDataarrayCustom field values (id, value, isValid)
↳ idstringCustom field identifier
↳ valuestringCustom field value
↳ isValidbooleanWhether the value passes validation
↳ expenseIdstringAssociated expense identifier
↳ isSystemAllocationbooleanTrue when system-managed
↳ isPercentEditedbooleanTrue when the percentage was manually edited

SAP Concur List Attendee Associations

List attendees associated with an expense (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER or PROXY
reportIdstringYesExpense report ID
expenseIdstringYesExpense ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonAttendees list payload
↳ noShowAttendeeCountnumberNumber of unnamed/no-show attendees
↳ expenseAttendeeListarrayAttendees associated with the expense, including amounts
↳ attendeeIdstringUnique identifier of the attendee
↳ transactionAmountjsonExpense portion assigned to this attendee
↳ valuenumberNumeric amount
↳ currencyCodestringISO 4217 currency code
↳ approvedAmountjsonApproved amount in report currency
↳ valuenumberNumeric amount
↳ currencyCodestringISO 4217 currency code
↳ isAmountUserEditedbooleanWhether the amount was manually edited
↳ isTravelingbooleanWhether the attendee is traveling (affects tax calculations)
↳ associatedAttendeeCountnumberTotal attendee count; greater than 1 indicates unnamed attendees
↳ versionNumbernumberVersion number preserving previous attendee state
↳ customDataarrayCustom field values for the association
↳ idstringCustom field identifier
↳ valuestringCustom field value (max 48 characters)
↳ isValidbooleanWhether the value passes validation
↳ listItemUrlstringHATEOAS link for list items

SAP Concur List Budget Categories

List budget categories (GET /budget/v4/budgetCategory).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
dataarrayTop-level array of budget category objects
↳ idstringCategory ID
↳ namestringAdmin-facing category name
↳ descriptionstringFriendly name
↳ statusTypestringStatus: OPEN or REMOVED
↳ expenseTypesarrayExpense types in this category (id, featureTypeCode, expenseTypeCode, name)

SAP Concur List Budgets

List budget item headers (GET /budget/v4/budgetItemHeader).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
adminViewbooleanNoWhen true, returns all budgets the caller can administer (default false)
offsetnumberNoPage offset (Concur returns up to 50 budget headers per page)
responseSchemastringNoResponse schema variant: "COMPACT" returns a smaller payload. Defaults to the non-compact schema

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonBudget headers collection payload
↳ budgetItemHeadersarrayArray of budget item header summaries (id, name, description, budgetItemStatusType, budgetType, currencyCode, fiscalYear, budgetAmounts, owner, ...)
↳ totalRowsnumberTotal number of budget headers
↳ offsetnumberOffset of the current page
↳ limitnumberPage size (Concur returns up to 50)
↳ hrefstringURL of the current page
↳ previousjsonPrevious page link ({ href }); null on the first page
↳ hrefstringPrevious page URL
↳ nextjsonNext page link ({ href }); null when no results remain. This is the only forward cursor for paging
↳ hrefstringNext page URL

SAP Concur List Report Exceptions

List exceptions on a report (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/exceptions).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER, MANAGER, or PROXY
reportIdstringYesExpense report ID
excludeExpensesbooleanNoReturn only exceptions for the report header, excluding expense-level and allocation-level exceptions (default false)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
dataarrayArray of report header exception entries
↳ exceptionCodestringUnique exception code
↳ exceptionVisibilitystringVisibility scope: ALL, APPROVER_PROCESSOR, or PROCESSOR
↳ isBlockingbooleanWhether the exception prevents report submission
↳ messagestringHuman-readable description of the exception
↳ expenseIdstringRelated expense entry ID
↳ allocationIdstringRelated allocation ID, if any
↳ parentExpenseIdstringParent expense ID for itemized entries

SAP Concur List Expected Expenses

List expected expenses on a travel request (GET /travelrequest/v4/requests/{requestUuid}/expenses).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
requestUuidstringYesTravel request UUID
userIdstringNoUser UUID acting on the request (optional)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
dataarrayArray of expected expense objects
↳ idstringExpected expense identifier
↳ hrefstringSelf-link
↳ expenseTypejsonExpense type {id, name}
↳ transactionDatestringTransaction date
↳ transactionAmountjsonTransaction amount {value, currency}
↳ postedAmountjsonPosted amount {value, currency}
↳ approvedAmountjsonApproved amount {value, currency}
↳ remainingAmountjsonRemaining amount on the expected expense
↳ businessPurposestringBusiness purpose of the expense
↳ locationjsonLocation {id, name, city, countryCode, countrySubDivisionCode, iataCode, locationType}
↳ exchangeRatejsonExchange rate {value, operation}
↳ allocationsjsonBudget allocations array
↳ tripDatajsonTrip data {agencyBooked, selfBooked, tripType (ONE_WAY|ROUND_TRIP), legs[{id, returnLeg, startDate, startTime, startLocationDetail, startLocation, endLocation, class {code,value}, travelExceptionReasonCodes}], segmentType {category, code}}
↳ parentRequestjsonParent travel request resource link {href, id}. Documented on the single-expense GET, not on this list endpoint
↳ commentsjsonComments sub-resource link {href, id}. Documented on the single-expense GET, not on this list endpoint

SAP Concur List Expenses

List expenses on a report (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER (the only value the endpoint supports)
reportIdstringYesExpense report ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
dataarrayArray of expense summary entries (ReportExpenseSummary[])
↳ expenseIdstringExpense identifier
↳ expenseTypejsonExpense type {id, name, code, isDeleted}
↳ transactionDatestringTransaction date (YYYY-MM-DD)
↳ transactionAmountjsonTransaction amount {currencyCode, value}
↳ postedAmountjsonPosted amount
↳ approvedAmountjsonApproved amount
↳ claimedAmountjsonClaimed amount
↳ approverAdjustedAmountjsonApprover-adjusted amount
↳ paymentTypejsonPayment type {id, name, code}
↳ vendorjsonVendor info
↳ locationjsonLocation info
↳ allocationStatestringAllocation state
↳ allocationSetIdstringAllocation set identifier
↳ attendeeCountnumberAttendee count
↳ businessPurposestringBusiness purpose
↳ hasBlockingExceptionsbooleanHas submission-blocking exceptions
↳ hasExceptionsbooleanHas exceptions
↳ hasMissingReceiptDeclarationbooleanHas missing-receipt declaration
↳ isAutoCreatedbooleanAuto-created
↳ isPersonalExpensebooleanPersonal-expense flag
↳ isImageRequiredbooleanReceipt image required
↳ isPaperReceiptRequiredbooleanPaper receipt required
↳ imageCertificationStatusstringReceipt image certification status
↳ receiptImageIdstringReceipt image identifier
↳ ereceiptImageIdstringeReceipt image identifier
↳ ticketNumberstringTicket number
↳ exchangeRatejsonExchange rate
↳ fuelTypeListItemjsonFuel type list item {id, value, isValid}
↳ jptRouteIdstringJapan Public Transport route id
↳ travelAllowancejsonTravel allowance
↳ expenseSourceIdentifiersjsonExpense source identifiers
↳ linksarrayHATEOAS links

SAP Concur List Expense Reports

List expense reports (GET /api/v3.0/expense/reports). Returns a v3 envelope with Items and NextPage.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userstringNoFilter by a specific user (login id or user identifier).
submitDateBeforestringNoFilter to reports submitted on or before this date (YYYY-MM-DD)
submitDateAfterstringNoFilter to reports submitted on or after this date (YYYY-MM-DD)
paidDateBeforestringNoFilter to reports paid on or before this date (YYYY-MM-DD)
paidDateAfterstringNoFilter to reports paid on or after this date (YYYY-MM-DD)
modifiedDateBeforestringNoFilter to reports last modified on or before this date (YYYY-MM-DD)
modifiedDateAfterstringNoFilter to reports last modified on or after this date (YYYY-MM-DD)
createDateBeforestringNoFilter to reports created on or before this date (YYYY-MM-DD)
createDateAfterstringNoFilter to reports created on or after this date (YYYY-MM-DD)
approvalStatusCodestringNoFilter by approval status code (e.g. A_NOTF, A_PEND, A_APPR)
paymentStatusCodestringNoFilter by payment status code
currencyCodestringNoFilter by ISO currency code (e.g. USD, EUR)
approverLoginIDstringNoFilter by approver login ID
limitnumberNoNumber of records per page (default 25)
offsetstringNoPagination token. The previous response returns NextPage as a full URI — extract its offset query parameter and pass that value here, not the whole URI.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonConcur v3 expense reports envelope
↳ ItemsarrayArray of report header objects
↳ IDstringReport ID
↳ NamestringReport name
↳ OwnerLoginIDstringOwner login ID
↳ OwnerNamestringOwner display name
↳ TotalnumberReport total
↳ TotalApprovedAmountnumberTotal approved amount
↳ TotalClaimedAmountnumberTotal claimed amount
↳ AmountDueEmployeenumberAmount due employee
↳ CurrencyCodestringISO currency code
↳ ApprovalStatusNamestringApproval status name
↳ ApprovalStatusCodestringApproval status code
↳ PaymentStatusNamestringPayment status name
↳ PaymentStatusCodestringPayment status code
↳ ApproverLoginIDstringApprover login ID
↳ ApproverNamestringApprover display name
↳ HasExceptionbooleanWhether the report has any exception
↳ ReceiptsReceivedbooleanWhether paper receipts were received
↳ CreateDatestringCreation date
↳ SubmitDatestringSubmit date
↳ LastModifiedDatestringLast modified date
↳ PaidDatestringPaid date
↳ URIstringSelf URI
↳ NextPagestringFull URI of the next page — read its offset query parameter to page forward

SAP Concur List Trips

List travel trips/itineraries (GET /api/travel/trip/v1.1).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
startDatestringNoFilter trips starting on/after this date (YYYY-MM-DD)
endDatestringNoFilter trips ending on/before this date (YYYY-MM-DD)
bookingTypestringNoFilter by booking type. Supported values are capitalized: Air, Car, Dining, Hotel, Parking, Rail, Ride.
useridTypestringNoUser identifier type. The only value documented for Trips v1.1 is "login" (the value is the user login id); xmlsyncid and uuid are Travel Profile v2 identifier types and are not documented for this endpoint.
useridValuestringNoUser identifier value (paired with useridType)
itemsPerPagenumberNoItems per page. Concur only paginates when includeMetadata is also sent, so this tool sets includeMetadata automatically whenever itemsPerPage or page is provided.
pagenumberNo1-based page number. Concur only paginates when includeMetadata is also sent, so this tool sets includeMetadata automatically whenever page or itemsPerPage is provided.
includeMetadatabooleanNoInclude paging metadata in the response. Implied when page or itemsPerPage is set.
includeCanceledTripsbooleanNoInclude canceled trips in the result set
createdAfterDatestringNoOnly trips created after this date (YYYY-MM-DD)
createdBeforeDatestringNoOnly trips created before this date (YYYY-MM-DD)
lastModifiedDatestringNoOnly trips modified on/after this date (YYYY-MM-DD)
includeVirtualTripstringNoSet to "1" to include virtual trips, which carry the offline segments booked through Concur Request.
includeGuestBookingsbooleanNoInclude trips booked on behalf of guests. Defaults to false.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datastringRaw XML trips list returned by Concur (Trips v1.1 emits application/xml only, so this is a string and not a parsed object). By default the document is rooted at <ItineraryInfoList> containing one <ItineraryInfo> per trip (TripId, TripName, TripStatus, StartDateLocal, EndDateLocal, DateModifiedUtc, UserLoginId, id). When includeMetadata is sent — which this tool does automatically whenever page or itemsPerPage is supplied — the document is instead rooted at <ConnectResponse> with ConnectResponse > Metadata > Paging (TotalPages, TotalItems, Page, ItemsPerPage, PreviousPageURL, NextPageURL) and ConnectResponse > Data > ItineraryInfoList > ItineraryInfo.

SAP Concur List Lists

List custom lists (GET /list/v4/lists).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
pagenumberNoPage number (1-based; page size is fixed at 100)
sortBystringNoSort field: name, levelcount, or listcategory
sortDirectionstringNoSort direction: asc or desc
valuestringNoFilter by list name. Accepts an operator prefix: sw: (starts with), ew: (ends with), not:, cp: (contains) (e.g. "sw:Cost").
categoryTypestringNoFilter by category type (mapped to the category.type query param). Accepts an operator prefix: eq:, not:.
isDeletedstringNoFilter by deletion status. Pass "true" or "false" as a string because the filter also accepts the eq operator prefix (eq:true) — eq is the only operator this filter supports.
levelCountstringNoFilter by number of levels. Accepts an operator prefix: eq:, gt:, gte:, lt:, lte: (e.g. "eq:1", "gt:2", "lte:9").

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonPaginated lists collection
↳ contentarrayLists in the current page
↳ idstringList UUID
↳ valuestringName of the list
↳ levelCountnumberNumber of levels in the list
↳ searchCriteriastringSearch attribute (TEXT or CODE)
↳ displayFormatstringDisplay order ((CODE) TEXT or TEXT (CODE))
↳ categoryjsonList category
↳ idstringCategory UUID
↳ typestringCategory type
↳ isReadOnlybooleanWhether the list is read-only
↳ isDeletedbooleanWhether the list has been deleted
↳ managedBystringManaging application or service identifier
↳ externalThresholdnumberThreshold from where the level starts being external
↳ pagejsonPagination metadata
↳ numbernumberCurrent page number
↳ sizenumberItems per page
↳ totalElementsnumberTotal item count
↳ totalPagesnumberTotal page count
↳ linksarrayNavigation links (next, previous, first, last)
↳ relstringLink relation
↳ hrefstringLink URL

SAP Concur List List Items

List the top-level items (children) for a custom list (GET /list/v4/lists/{listId}/children).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
listIdstringYesList ID
pagenumberNoPage number (1-based; page size is fixed at 100)
sortBystringNoSort field: value or shortCode
sortDirectionstringNoSort direction: asc or desc
hasChildrenbooleanNoInclude only items that have children
isDeletedstringNoFilter by deletion status. Pass "true" or "false" as a string because the filter also accepts the eq operator prefix (eq:true) — eq is the only operator this filter supports.
shortCodestringNoFilter by short code
valuestringNoFilter by display value
shortCodeOrValuestringNoFilter by short code OR value

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonPaginated list items collection
↳ contentarrayList items in the current page
↳ idstringList item UUID
↳ listIdstringUUID of the list that contains the list item
↳ codestringLong code format for the item
↳ shortCodestringShort code identifier
↳ valuestringDisplay value of the item
↳ parentIdstringParent item UUID (omitted for first-level items)
↳ levelnumberHierarchy level (1 for root items)
↳ isDeletedbooleanDeletion status across all containing lists
↳ listsarrayLists containing this item
↳ idstringList UUID
↳ hasChildrenbooleanWhether this item has children in the list
↳ pagejsonPagination metadata
↳ numbernumberCurrent page number
↳ sizenumberItems per page
↳ totalElementsnumberTotal item count
↳ totalPagesnumberTotal page count
↳ linksarrayNavigation links (next, previous, first, last)
↳ relstringLink relation
↳ hrefstringLink URL

SAP Concur List Receipts

List receipts for a user (GET /receipts/v4/users/{userId}). Concur documents no query parameters for this endpoint, so page size and offset cannot be controlled; follow the "next" URL in the response to page forward.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonE-receipt collection wrapper
↳ receiptsarrayArray of e-receipt objects
↳ idstringReceipt id
↳ userIdstringOwner user UUID
↳ dateTimeReceivedstringTimestamp the receipt was received
↳ receiptjsonStructured receipt data
↳ imagestringReceipt image URL or reference
↳ validationSchemastringValidation schema URI
↳ selfstringSelf URL
↳ templatestringTemplate URL
↳ nextstringURL of the next page of receipts, if returned. Concur documents this cursor on the image-only-receipts endpoint rather than on this one

SAP Concur List Report Comments

List comments on a report (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/comments).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER, MANAGER, or PROXY
reportIdstringYesExpense report ID
includeAllCommentsbooleanNoInclude comments from all expenses in the report (default false)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
dataarrayArray of report comment entries
↳ commentstringComment text
↳ creationDatestringComment creation timestamp (ISO 8601)
↳ expenseIdstringRelated expense entry ID (null for report header comments)
↳ isAuditorCommentbooleanWhether the comment was added by an auditor
↳ isLatestbooleanWhether this is the latest comment
↳ createdForEmployeeIdstringEmployee ID the comment was created for
↳ authorjsonComment author
↳ employeeIdstringEmployee identifier
↳ employeeUuidstringEmployee UUID
↳ createdForEmployeejsonEmployee the comment was created for
↳ employeeIdstringEmployee identifier
↳ employeeUuidstringEmployee UUID
↳ stepInstanceIdstringWorkflow step instance identifier

SAP Concur List Reports To Approve

List expense reports awaiting approval (GET /expensereports/v4/users/{userId}/context/MANAGER/reportsToApprove).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesManager user UUID
contextTypestringNoAccess context: must be MANAGER (default)
sortstringNoReport field name to sort by (e.g., reportDate)
orderstringNoSort direction: asc or desc
includeDelegateApprovalsbooleanNoWhether to include reports the caller can approve as a delegate

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
dataarrayArray of reports awaiting approval (ReportToApprove[])
↳ reportIdstringUnique report identifier
↳ namestringReport name
↳ reportDatestringReport date (YYYY-MM-DD)
↳ reportNumberstringUser-friendly report number
↳ submitDatestringSubmission timestamp (ISO 8601 UTC)
↳ approverjsonApprover employee { employeeId, employeeUuid }
↳ employeejsonReport owner employee { employeeId, employeeUuid }
↳ amountDueEmployeejsonAmount due employee { value, currencyCode }
↳ claimedAmountjsonTotal claimed amount { value, currencyCode }
↳ totalApprovedAmountjsonTotal approved amount { value, currencyCode }
↳ hasExceptionsbooleanWhether the report has exceptions
↳ reportTypestringReport creation method identifier
↳ linksarrayHATEOAS links

SAP Concur Get Request Cash Advance

Get a single cash advance assigned to a travel request (GET /travelrequest/v4/cashadvances/{cashAdvanceUuid}). This endpoint exists for feature parity only and will be deprecated in the future — SAP recommends relying on the list of cash advances link available in the Request payload response instead.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
cashAdvanceUuidstringYesCash advance UUID (returned as part of a travel request)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonCash advance detail
↳ cashAdvanceIdstringUnique cash advance identifier
↳ amountRequestedjsonRequested amount
↳ amountnumberPreferred amount field — use this over value
↳ valuenumberLegacy amount value — will soon be deprecated in favor of amount
↳ currencystringCurrency code
↳ approvalStatusjsonApproval status
↳ codestringStatus code
↳ namestringStatus name
↳ requestDatestringRequest datetime (ISO 8601)
↳ issueDatestringDate the cash advance was issued (ISO 8601)
↳ commentstringComment attached to the cash advance
↳ exchangeRatejsonExchange rate
↳ valuenumberRate value
↳ operationstringMultiply or divide

SAP Concur List Travel Profiles Summary

List travel profile summaries (GET /api/travelprofile/v2.0/summary). LastModifiedDate is required by Concur.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
lastModifiedDatestringYesRequired UTC datetime in YYYY-MM-DDThh:mm:ss format
pagenumberNo1-based page number
itemsPerPagenumberNoItems per page (max 200)
travelConfigsstringNoComma-separated travel configuration ids
activestringNoFilter by user state: "1" returns active users, "0" returns inactive users.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datastringRaw XML travel profile summary list returned by Concur (Travel Profile v2 emits application/xml only, per the TravelProfileSummaryV2.xsd schema, so this is a string and not a parsed object). The document is rooted at <ConnectResponse> with ConnectResponse > Metadata > Paging (TotalPages, TotalItems, Page, ItemsPerPage, PreviousPageURL, NextPageURL) and ConnectResponse > Data > ProfileSummary, whose only child elements are Status, LoginID, XmlProfileSyncID, and ProfileLastModifiedUTC.

SAP Concur List Travel Request Comments

List comments on a travel request (GET /travelrequest/v4/requests/{requestUuid}/comments).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
requestUuidstringYesTravel request UUID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
dataarrayArray of comment entries
↳ authorjsonComment author
↳ firstNamestringAuthor first name
↳ lastNamestringAuthor last name
↳ creationDateTimestringComment creation timestamp (ISO 8601)
↳ isLatestbooleanWhether this is the latest comment
↳ valuestringComment text

SAP Concur List Travel Requests

List travel requests (GET /travelrequest/v4/requests).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
viewstringNoView filter: ALL, ACTIVE, ACTIVEAPPROVED, UNSUBMITTED, PENDING, VALIDATED, APPROVED, CANCELED, CLOSED, SUBMITTED, TOAPPROVE, PENDINGEBOOKING, PENDINGPROPOSAL, PROPOSALAPPROVED, or PROPOSALCANCELED. Defaults to ALL when omitted. The three TMC-agent views (PENDINGPROPOSAL, PROPOSALAPPROVED, PROPOSALCANCELED) require userId.
limitnumberNoRecords per page (default 10, maximum 100 — higher values return 400)
startnumberNoPage start cursor (offset)
userIdstringNoFor a traveler view, the unique identifier of the Request owner to search for. For an approver view, the unique identifier of the approver. For a TMC-agent view (PENDINGPROPOSAL, PROPOSALAPPROVED, PROPOSALCANCELED) this is required and is the unique identifier of the TMC agent.
approvedBeforestringNoISO 8601 date — return requests approved before this date
approvedAfterstringNoISO 8601 date — return requests approved after this date
modifiedBeforestringNoISO 8601 date — return requests modified before this date
modifiedAfterstringNoISO 8601 date — return requests modified after this date
sortFieldstringNoField to sort by: startDate, approvalStatus, or requestId (default startDate)
sortOrderstringNoSort order: ASC or DESC (default DESC)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonTravel requests list payload
↳ dataarrayArray of travel request summaries
↳ idstringTravel request UUID
↳ hrefstringResource hyperlink
↳ requestIdstringPublic-facing request ID
↳ namestringRequest name
↳ businessPurposestringBusiness purpose
↳ commentstringLast attached comment
↳ creationDatestringCreation timestamp
↳ submitDatestringLast submission timestamp
↳ startDatestringTrip start date (ISO 8601)
↳ endDatestringTrip end date (ISO 8601)
↳ startTimestringTrip start time (HH:mm)
↳ approvedbooleanWhether the request is approved
↳ pendingApprovalbooleanPending approval flag
↳ closedbooleanClosed flag
↳ everSentBackbooleanEver-sent-back flag
↳ canceledPostApprovalbooleanCanceled after approval flag
↳ approvalStatusjsonApproval status
↳ codestringStatus code (NOT_SUBMITTED, SUBMITTED, APPROVED, CANCELED, SENTBACK)
↳ namestringLocalized status name
↳ ownerjsonTravel request owner
↳ idstringUser UUID
↳ firstNamestringOwner first name
↳ lastNamestringOwner last name
↳ approverjsonApprover assigned to the request
↳ idstringUser UUID
↳ firstNamestringApprover first name
↳ lastNamestringApprover last name
↳ typejsonRequest type
↳ codestringRequest type code
↳ labelstringRequest type label
↳ totalApprovedAmountjsonTotal approved amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ totalPostedAmountjsonTotal posted amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ totalRemainingAmountjsonTotal remaining amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ expensesarrayResource links to expected expenses
↳ operationsarrayPagination links (next, prev, first, last)
↳ relstringLink relation
↳ hrefstringLink target

SAP Concur List Users

List Concur user identities (GET /profile/identity/v4.1/Users).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
countnumberNoMax number of users to return (default 100, max 1000)
cursorstringNoSCIM v4.1 pagination cursor — the nextCursor value returned by a prior call
attributesstringNoComma-separated list of attributes to include in the response
excludedAttributesstringNoComma-separated list of attributes to exclude from the response

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonSCIM ListResponse with Resources array

SAP Concur Move Travel Request

Move a travel request through workflow (POST /travelrequest/v4/requests/{requestUuid}/{action}). Valid actions: submit, recall, cancel, approve, sendback, close, reopen.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
requestUuidstringYesTravel request UUID
actionstringYesWorkflow action: submit, recall, cancel, approve, sendback, close, reopen
userIdstringNoThe unique identifier of the user performing the status transition. Required when connecting with a Company token for traveler and Non traveler actions only; not required for External system validation actions. If empty, a 400 missingRequiredParam error code is returned. For non-traveler actions, if not provided, "System, Concur" is displayed in the Audit Trail of the Request.
companyIDstringNoOptional company identifier for the workflow action (documented as companyID, distinct from the companyUuid auth field)
commentstringNoComment sent as a query parameter. Only works when the workflow action is sendback. This comment is visible wherever Request comments are available.
bodyjsonNoOptional payload — only the sendback action accepts one (e.g., { "comment": "..." }). Every other action takes no payload.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonThe full travel request having that requestUuid, after the workflow transition
↳ idstringTravel request UUID
↳ hrefstringResource hyperlink
↳ requestIdstringPublic-facing request ID (4-6 alphanumeric characters)
↳ namestringRequest name
↳ businessPurposestringBusiness purpose
↳ commentstringLast attached comment
↳ creationDatestringCreation timestamp
↳ lastModifiedstringLast modification timestamp
↳ submitDatestringLast submission timestamp
↳ authorizedDatestringDate when approval was completed
↳ approvalLimitDatestringRequired approval deadline
↳ startDatestringTrip start date (ISO 8601)
↳ endDatestringTrip end date (ISO 8601)
↳ startTimestringTrip start time (HH:mm)
↳ endTimestringTrip end time (HH:mm)
↳ approvedbooleanWhether the request is approved
↳ pendingApprovalbooleanPending approval flag
↳ closedbooleanClosed flag
↳ everSentBackbooleanEver-sent-back flag
↳ canceledPostApprovalbooleanCanceled after approval flag
↳ highestExceptionLevelstringHighest exception level (WARNING, ERROR, NONE)
↳ approvalStatusjsonApproval status after the workflow transition
↳ codestringStatus code (NOT_SUBMITTED, SUBMITTED, APPROVED, CANCELED, SENTBACK)
↳ namestringLocalized status name
↳ ownerjsonTravel request owner
↳ idstringUser UUID
↳ firstNamestringOwner first name
↳ lastNamestringOwner last name
↳ approverjsonApprover assigned after the transition
↳ idstringUser UUID
↳ firstNamestringApprover first name
↳ lastNamestringApprover last name
↳ policyjsonResource link to the applicable policy
↳ idstringPolicy ID
↳ hrefstringPolicy hyperlink
↳ typejsonRequest type
↳ codestringRequest type code
↳ labelstringRequest type label
↳ mainDestinationjsonMain destination of the trip
↳ citystringCity
↳ countryCodestringISO country code
↳ countrySubDivisionCodestringISO country sub-division code
↳ namestringDestination name
↳ totalApprovedAmountjsonTotal approved amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ totalPostedAmountjsonTotal posted amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ totalRemainingAmountjsonTotal remaining amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ expensesarrayResource links to expected expenses
↳ cashAdvancesjsonResource link to cash advances
↳ idstringResource ID
↳ hrefstringResource hyperlink
↳ commentsjsonResource link to comments
↳ idstringResource ID
↳ hrefstringResource hyperlink
↳ exceptionsjsonResource link to exceptions
↳ idstringResource ID
↳ hrefstringResource hyperlink
↳ travelAgencyjsonResource link to travel agency
↳ idstringResource ID
↳ hrefstringResource hyperlink
↳ extensionOfjsonThe Request for which this Request is an extension of, or addendum to
↳ requestIdstringThe public key of the Request (unique per customer)
↳ idstringUnique identifier of the Request
↳ hrefstringHyperlink to the resource
↳ templatestringHyperlink template to the resource
↳ expensePolicyjsonExpense policy reference
↳ idstringPolicy identifier
↳ hrefstringPolicy URL
↳ operationsarrayAvailable follow-up workflow actions
↳ relstringLink relation
↳ hrefstringLink target

SAP Concur Recall Expense Report

Recall a submitted expense report (PATCH /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/recall — supported contexts: TRAVELER, PROXY). Takes no request body. This operation supports user-level access tokens: set grantType to "password" with username and password, since the default client_credentials grant yields a company-level token.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password. Recall requires a user-level access token, so set this to "password" and supply username/password — client_credentials produces a company-level token that Concur rejects for this operation.
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID who owns the report
contextTypestringYesAccess context: TRAVELER or PROXY
reportIdstringYesExpense report ID to recall

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty (204 No Content)

SAP Concur Remove All Attendees

Remove all attendees from an expense (DELETE /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER or PROXY
reportIdstringYesExpense report ID
expenseIdstringYesExpense ID

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty response body (Concur returns 204 No Content)

SAP Concur Search Locations

Search Concur location reference data (GET /localities/v5/locations).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
searchTextstringNoFree-text for location search. Conditional — required if none of locationNameKey, locationNameId, or locCode is present.
locCodestringNoLocation code. Conditional — required if none of locationNameKey, locationNameId, or searchText is present.
locationNameIdstringNoUUID identifier of the location name. Conditional — required if none of locationNameKey, locCode, or searchText is present.
locationNameKeynumberNoUnique key for the location name. Conditional — required if none of locationNameId, locCode, or searchText is present.
countryCodestringNo2-letter ISO 3166-1 country code. Only valid together with searchText.
subdivisionCodestringNoISO 3166-2:2007 country subdivision (e.g. US-WA). Only valid together with searchText.
adminRegionIdstringNoAdministrative region ID. Only valid together with searchText.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonLocalities v5 search response
↳ locationsarrayArray of matching Location records
↳ idstringLocation ID (UUID)
↳ codestringIATA / location code
↳ legacyKeynumberLegacy numeric location key
↳ timeZoneOffsetnumberTime zone offset of the location, in minutes (e.g. 60)
↳ activebooleanWhether the location is active
↳ pointjsonGeographic coordinates
↳ latitudenumberLatitude
↳ longitudenumberLongitude
↳ namesarrayLocalized location names
↳ idstringName ID
↳ legacyKeynumberLegacy numeric name key
↳ langCodestringLanguage code
↳ namestringDisplay name
↳ activebooleanWhether the name is active
↳ administrativeRegionjsonAdministrative region (e.g., metro area)
↳ idstringUnique identifier of the admin region
↳ namesarrayLocalized region names
↳ countryCodestringISO 3166-1 country code of the region
↳ subDivCodestringISO 3166-2 subdivision code of the region
↳ linksarrayHATEOAS links
↳ countryjsonCountry reference (Code schema)
↳ codestringISO country code
↳ namesarrayLocalized country names
↳ linksarrayHATEOAS links
↳ subDivisionjsonCountry subdivision (state/province, Code schema)
↳ codestringISO subdivision code
↳ namesarrayLocalized subdivision names
↳ linksarrayHATEOAS links
↳ linksarrayHATEOAS links

SAP Concur Search Users

Search users via SCIM .search endpoint (POST /profile/identity/v4.1/Users/.search).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
bodyjsonYesSCIM search payload. Required: schemas: ["urn:ietf:params:scim:api:messages:concur:2.0:SearchRequest"] (Concur-specific URN, not the standard SearchRequest URN). Optional: filter, count (1-1000), attributes, excludedAttributes, cursor (the nextCursor value from a prior response). The startIndex request parameter is not supported (responses still return a startIndex value).

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonSCIM search ListResponse

SAP Concur Send Back Expense Report

Send back an expense report to the employee (PATCH /expensereports/v4/reports/{reportId}/sendBack). Required body field: comment.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
reportIdstringYesExpense report ID to send back
bodyjsonYesRequest body — comment is required by Concur (e.g., { "comment": "Missing receipt" }). Optional fields: expectedStepCode, expectedStepSequence.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty (204 No Content)

SAP Concur Submit Expense Report

Submit an expense report into the workflow via Expense Report v4 (PATCH /expensereports/v4/users/{userId}/reports/{reportId}/submit). Takes no request body.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID who owns the report
reportIdstringYesExpense report ID to submit

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty (204 No Content)

SAP Concur Update Allocation

Update an allocation (PATCH /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/allocations/{allocationId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID
contextTypestringYesAccess context: TRAVELER or PROXY (write requires expense.report.readwrite)
reportIdstringYesExpense report ID
allocationIdstringYesAllocation ID to update
bodyjsonYesJSON Merge Patch (RFC 7386) payload. Must be the two-key envelope { "allocation": { "customData": [{ "id": "custom9", "value": "...", "isValid": true }] }, "expenseIds": ["29EE..."] }.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty body on success (Concur returns 204 No Content)

SAP Concur Update Expected Expense

Update an expected expense (PUT /travelrequest/v4/expenses/{expenseUuid}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
expenseUuidstringYesExpected expense UUID to update
userIdstringNoUser UUID acting on the request (required when using a Company JWT, optional otherwise)
bodyjsonYesFields to update on the expected expense

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonUpdated expected expense payload
↳ idstringExpected expense identifier
↳ hrefstringSelf-link
↳ expenseTypejsonExpense type {id, name}
↳ transactionDatestringTransaction date
↳ transactionAmountjsonTransaction amount {value, currency}
↳ postedAmountjsonPosted amount {value, currency}
↳ approvedAmountjsonApproved amount {value, currency}
↳ remainingAmountjsonRemaining amount on the expected expense
↳ businessPurposestringBusiness purpose of the expense
↳ locationjsonLocation {id, name, city, countryCode, countrySubDivisionCode, iataCode, locationType}
↳ exchangeRatejsonExchange rate {value, operation}
↳ allocationsjsonBudget allocations array
↳ tripDatajsonTrip data {agencyBooked, selfBooked, tripType (ONE_WAY|ROUND_TRIP), legs[{id, returnLeg, startDate, startTime, startLocationDetail, startLocation, endLocation, class {code,value}, travelExceptionReasonCodes}], segmentType {category, code}}
↳ parentRequestjsonParent travel request resource link {href, id}
↳ commentsjsonComments sub-resource link {href, id}

SAP Concur Update Expense

Update an expense (PATCH /expensereports/v4/reports/{reportId}/expenses/{expenseId}). Only Company JWT authentication is allowed on this endpoint — the password grant is rejected. A submitted report cannot be updated once it has reached a Paid workflow status. Although the primary intent of this operation is for submitted report updates, it also works on unsubmitted reports, but with the same limited set of fields.

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
reportIdstringYesExpense report ID
expenseIdstringYesExpense ID to update
bodyjsonYesPATCH body. Allowed fields: businessPurpose (string, max 64), customData (CustomData[]), expenseSource (required: EA|MOB|OTHER|SE|TA|TR|UI), isExpenseRejected (boolean), isPaperReceiptReceived (boolean).

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty body on success (HTTP 204 No Content). Error details when status is non-2xx

SAP Concur Update Expense Report

Update an unsubmitted expense report (PATCH /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId} — supported contexts: TRAVELER, PROXY). The body must always include reportSource (EA, MOB, OTHER, SE, TR, or UI).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID who owns the report
contextTypestringYesAccess context: TRAVELER (own report) or PROXY (editing on behalf of another user)
reportIdstringYesExpense report ID to update
bodyjsonYesFields to update on the report. reportSource is REQUIRED by Concur on every update — one of "EA", "MOB", "OTHER", "SE", "TR", "UI" (use "OTHER" if unknown). Other updatable fields: businessPurpose, comment, country, countryCode, countrySubDivisionCode, customData, endDate, isCopyDownInherited, isPaperReceiptsReceived, name, policy, policyId, redirectFund, reportDate, startDate.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonEmpty (204 No Content)

SAP Concur Update List Item

Update a list item (PUT /list/v4/items/{itemId}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
itemIdstringYesList item UUID
bodyjsonYesList item payload. Required: shortCode, value. Other fields in the body are ignored.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonUpdated list item
↳ idstringList item UUID
↳ listIdstringUUID of the list that contains the list item
↳ codestringLong code format for the item
↳ shortCodestringShort code identifier
↳ valuestringDisplay value of the item
↳ parentIdstringParent item UUID (omitted for first-level items)
↳ levelnumberHierarchy level (1 for root items)
↳ isDeletedbooleanDeletion status across all containing lists
↳ listsarrayLists containing this item
↳ idstringList UUID
↳ hasChildrenbooleanWhether this item has children in the list

SAP Concur Update Travel Request

Update a travel request (PUT /travelrequest/v4/requests/{requestUuid}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
requestUuidstringYesTravel request UUID to update
userIdstringNoThe unique identifier of the user performing the update. Optional. Will be taken into account only if calling with a Company token. If not provided the update will be performed as "Concur System".
bodyjsonYesFields to update on the travel request. Partial update is supported. Only these fields are updatable: comment, startDate, startTime, endDate, endTime, expensePolicy, name, businessPurpose, mainDestination, travelAgency, and the custom1-custom20 fields — any other field is silently ignored. Pass an unquoted null to clear a field.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonUpdated travel request payload
↳ idstringTravel request UUID
↳ hrefstringResource hyperlink
↳ requestIdstringPublic-facing request ID (4-6 alphanumeric characters)
↳ namestringRequest name
↳ businessPurposestringBusiness purpose
↳ commentstringLast attached comment
↳ creationDatestringCreation timestamp
↳ lastModifiedstringLast modification timestamp
↳ submitDatestringLast submission timestamp
↳ startDatestringTrip start date (ISO 8601)
↳ endDatestringTrip end date (ISO 8601)
↳ startTimestringTrip start time (HH:mm)
↳ endTimestringTrip end time (HH:mm)
↳ approvedbooleanWhether the request is approved
↳ pendingApprovalbooleanPending approval flag
↳ closedbooleanClosed flag
↳ everSentBackbooleanEver-sent-back flag
↳ canceledPostApprovalbooleanCanceled after approval flag
↳ approvalStatusjsonApproval status
↳ codestringStatus code (NOT_SUBMITTED, SUBMITTED, APPROVED, CANCELED, SENTBACK)
↳ namestringLocalized status name
↳ ownerjsonTravel request owner
↳ idstringUser UUID
↳ firstNamestringOwner first name
↳ lastNamestringOwner last name
↳ approverjsonApprover assigned to the request
↳ idstringUser UUID
↳ firstNamestringApprover first name
↳ lastNamestringApprover last name
↳ policyjsonResource link to the applicable policy
↳ idstringPolicy ID
↳ hrefstringPolicy hyperlink
↳ typejsonRequest type
↳ codestringRequest type code
↳ labelstringRequest type label
↳ mainDestinationjsonMain destination of the trip
↳ citystringCity
↳ countryCodestringISO country code
↳ countrySubDivisionCodestringISO country sub-division code
↳ namestringDestination name
↳ totalApprovedAmountjsonTotal approved amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ totalPostedAmountjsonTotal posted amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ totalRemainingAmountjsonTotal remaining amount
↳ valuenumberAmount value
↳ currencystringCurrency code
↳ operationsarrayAvailable workflow actions

SAP Concur Update User

Patch a user identity (PATCH /profile/identity/v4.1/Users/{id}).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userUuidstringYesUser UUID to update
bodyjsonYesSCIM PATCH payload. Required: schemas: ["urn:ietf:params:scim:api:messages:2.0:PatchOp"] and Operations, an array of { op, path, value } where op is add, replace, or remove. If the target location is a multi-valued attribute and no filter is specified, the attribute and all values are replaced. Example: deactivate a user with { op: "replace", path: "active", value: false }.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonUpdated SCIM User payload

SAP Concur Upload Receipt Image

Upload an image-only receipt (POST /receipts/v4/users/{userId}/image-only-receipts).

Input

ParameterTypeRequiredDescription
datacenterstringNoConcur datacenter base URL (defaults to us.api.concursolutions.com)
grantTypestringNoOAuth grant type: client_credentials (default) or password
clientIdstringYesConcur OAuth client ID
clientSecretstringYesConcur OAuth client secret
usernamestringNoUsername (only for password grant)
passwordstringNoPassword (only for password grant)
companyUuidstringNoCompany UUID for multi-company access tokens
userIdstringYesConcur user UUID who owns the receipt
receiptjsonYesReceipt image file (UserFile reference). Supported formats: png, jpg, jpeg, tiff, tif, gif, pdf. TIFF/TIF files are converted to PDF server-side. Maximum size 25 MB.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by Concur
datajsonImage-only receipt upload response (HTTP 202 Accepted; Location and Link response headers exposed in body)
↳ locationstringLocation header URL for the new receipt image (e.g. /receipts/v4/images/{receiptId})
↳ linkstringRaw Link header value, forwarded verbatim — it is not a bare URL. Format: <https://{datacenter}/receipts/v4/status/{receiptId}>; rel="processing-status". Parse the href out of the angle brackets before using it.