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.
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.
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).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens reportIdstring Yes Expense report ID to approve bodyjson No Optional 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").
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty (204 No Content)
Associate attendees with an expense (POST /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER or PROXY reportIdstring Yes Expense report ID expenseIdstring Yes Expense ID bodyjson Yes Attendee 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Concur association response (201 Created with URI) ↳ uri string Resource URI of the attendee associations collection
Create a cash advance (POST /cashadvance/v4.1/cashadvances).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens bodyjson Yes Cash 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Created cash advance payload ↳ cashAdvanceId string Unique identifier of the created cash advance
Create an expected expense on a travel request (POST /travelrequest/v4/requests/{requestUuid}/expenses).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens requestUuidstring Yes Travel request UUID userIdstring No User UUID acting on the request (required when using a Company JWT, optional otherwise) bodyjson Yes Expected expense payload
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Created expected expense payload ↳ id string Expected expense identifier ↳ href string Self-link to the resource ↳ expenseType json Expense type {id, name} ↳ transactionDate string Transaction date ↳ transactionAmount json Transaction amount {value, currency} ↳ postedAmount json Posted amount {value, currency} ↳ approvedAmount json Approved amount {value, currency} ↳ remainingAmount json Remaining amount on the expected expense ↳ businessPurpose string Business purpose of the expense ↳ location json Location {id, name, city, countryCode, countrySubDivisionCode, iataCode, locationType} ↳ exchangeRate json Exchange rate {value, operation} ↳ allocations json Budget allocations array (allocationId, allocationAmount {value, currency}, approvedAmount {value, currency}, postedAmount {value, currency}, expenseId, percentEdited, systemAllocation, percentage) ↳ tripData json Trip data {agencyBooked, selfBooked, tripType (ONE_WAY|ROUND_TRIP), legs[{id, returnLeg, startDate, startTime, startLocationDetail, startLocation, endLocation, class {code,value}, travelExceptionReasonCodes}], segmentType {category, code}} ↳ parentRequest json Parent travel request resource link {href, id} ↳ comments json Comments sub-resource link {href, id}
Create an expense report (POST /expensereports/v4/users/{userId}/context/{contextType}/reports — supported contexts: TRAVELER, PROXY). Required body fields: name, policyId.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID who will own the report contextTypestring Yes Access context: TRAVELER (creating own report) or PROXY (creating on behalf of another user) bodyjson Yes Report payload — name and policyId are required. Optional fields: businessPurpose, comment, customData, countryCode, countrySubDivisionCode, etc.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Created expense report (Concur returns 201 with a URI to the new report) ↳ uri string URI of the newly created expense report
Create a list item (POST /list/v4/items).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens bodyjson Yes List item payload. Required: listId, shortCode, value. Optional: parentId or parentCode (mutually exclusive). Note: Concur rejects shortCode/value containing hyphens.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Created list item ↳ id string List item UUID ↳ listId string UUID of the list that contains the list item ↳ code string Long code format for the item ↳ shortCode string Short code identifier ↳ value string Display value of the item ↳ parentId string Parent item UUID (omitted for first-level items) ↳ level number Hierarchy level (1 for root items) ↳ isDeleted boolean Deletion status across all containing lists ↳ lists array Lists containing this item ↳ id string List UUID ↳ hasChildren boolean Whether this item has children in the list
Create a purchase request (POST /purchaserequest/v4/purchaserequests).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens bodyjson Yes Purchase 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Created purchase request payload ↳ id string Identifier of the created purchase request ↳ uri string Resource URI for the created purchase request ↳ errors array Validation or processing errors returned by Concur ↳ errorCode string Error code ↳ errorMessage string Error message ↳ dataPath string Path to the request data which has the error
Create a quick expense (POST /quickexpense/v4/users/{userId}/context/{contextType}/quickexpenses). TRAVELER is the only supported context type.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID who owns the quick expense contextTypestring Yes Access context: must be TRAVELER bodyjson Yes Quick 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Created quick expense response (HTTP 201 Created) ↳ quickExpenseIdUri string URI of the created quick expense resource
Create a quick expense with an attached image (POST /quickexpense/v4/users/{userId}/context/{contextType}/quickexpenses/image).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: must be TRAVELER receiptjson Yes Receipt image (UserFile). Allowed: PNG, PDF, TIFF, JPEG. Maximum size 50 MB bodyjson Yes Quick 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Created quick expense response (HTTP 201 with attached receipt image) ↳ quickExpenseIdUri string URI of the created quick expense resource
Create a comment on a report (POST /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/comments).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER, MANAGER, or PROXY reportIdstring Yes Expense report ID commentstring Yes Comment text to add
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Created comment response (Concur returns 201 Created with URI) ↳ uri string Resource URI of the created comment
Create a travel request (POST /travelrequest/v4/requests).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring No Concur user UUID of the Request owner — required when using the default client_credentials (company) grant; omitting it returns 400 missingRequiredParam. bodyjson Yes Travel 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Created travel request payload ↳ id string Travel request UUID ↳ href string Resource hyperlink ↳ requestId string Public-facing request ID (4-6 alphanumeric characters) ↳ name string Request name ↳ businessPurpose string Business purpose ↳ comment string Last attached comment ↳ creationDate string Creation timestamp ↳ lastModified string Last modification timestamp ↳ submitDate string Last submission timestamp ↳ startDate string Trip start date (ISO 8601) ↳ endDate string Trip end date (ISO 8601) ↳ startTime string Trip start time (HH:mm) ↳ endTime string Trip end time (HH:mm) ↳ approved boolean Whether the request is approved ↳ pendingApproval boolean Pending approval flag ↳ closed boolean Closed flag ↳ everSentBack boolean Ever-sent-back flag ↳ canceledPostApproval boolean Canceled after approval flag ↳ approvalStatus json Approval status ↳ code string Status code (NOT_SUBMITTED, SUBMITTED, APPROVED, CANCELED, SENTBACK) ↳ name string Localized status name ↳ owner json Travel request owner ↳ id string User UUID ↳ firstName string Owner first name ↳ lastName string Owner last name ↳ approver json Approver assigned to the request ↳ id string User UUID ↳ firstName string Approver first name ↳ lastName string Approver last name ↳ policy json Resource link to the applicable policy ↳ id string Policy ID ↳ href string Policy hyperlink ↳ type json Request type ↳ code string Request type code ↳ label string Request type label ↳ mainDestination json Main destination of the trip ↳ city string City ↳ countryCode string ISO country code ↳ countrySubDivisionCode string ISO country sub-division code ↳ name string Destination name ↳ totalApprovedAmount json Total approved amount ↳ value number Amount value ↳ currency string Currency code ↳ totalPostedAmount json Total posted amount ↳ value number Amount value ↳ currency string Currency code ↳ totalRemainingAmount json Total remaining amount ↳ value number Amount value ↳ currency string Currency code ↳ operations array Available workflow actions ↳ rel string Operation name ↳ href string Operation URL ↳ expenses array Expected expenses attached to the request ↳ highestExceptionLevel string Highest exception level (NONE, WARNING, ERROR) ↳ travelAgency json Travel agency reference ↳ id string Agency identifier ↳ href string Agency URL ↳ template string Template URL ↳ custom1 json Custom field 1 ↳ custom2 json Custom field 2 ↳ custom3 json Custom field 3 ↳ custom4 json Custom field 4 ↳ custom5 json Custom field 5 ↳ custom6 json Custom field 6 ↳ custom7 json Custom field 7 ↳ custom8 json Custom field 8 ↳ custom9 json Custom field 9 ↳ custom10 json Custom field 10 ↳ custom11 json Custom field 11 ↳ custom12 json Custom field 12 ↳ custom13 json Custom field 13 ↳ custom14 json Custom field 14 ↳ custom15 json Custom field 15 ↳ custom16 json Custom field 16 ↳ custom17 json Custom field 17 ↳ custom18 json Custom field 18 ↳ custom19 json Custom field 19 ↳ custom20 json Custom field 20
Create a new user identity (POST /profile/identity/v4.1/Users).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens bodyjson Yes SCIM 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Created SCIM User payload
Delete an expected expense (DELETE /travelrequest/v4/expenses/{expenseUuid}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens expenseUuidstring Yes Expected expense UUID to delete userIdstring No User UUID acting on the request (required when using a Company JWT, optional otherwise)
Parameter Type Description statusnumber HTTP status code returned by Concur databoolean true when the expected expense was deleted
Delete an expense (DELETE /expensereports/v4/reports/{reportId}/expenses/{expenseId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens reportIdstring Yes Expense report ID expenseIdstring Yes Expense ID to delete
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty body on success (HTTP 204 No Content). Error details when status is non-2xx
Delete an expense report (DELETE /expensereports/v4/reports/{reportId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens reportIdstring Yes Expense report ID to delete
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty (204 No Content)
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.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens itemIdstring Yes List item UUID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty body on success (HTTP 204 No Content). Error details when status is non-2xx
Delete a travel request (DELETE /travelrequest/v4/requests/{requestUuid}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens requestUuidstring Yes Travel request UUID to delete userIdstring No Concur user UUID of the Request owner — required when using the default client_credentials (company) grant; omitting it returns 400 missingRequiredParam.
Parameter Type Description statusnumber HTTP status code returned by Concur databoolean Concur delete response body — literally true on 200 OK
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.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userUuidstring Yes User UUID to delete
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Deletion response — empty body on HTTP 204 No Content
Get a single allocation (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/allocations/{allocationId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER or PROXY reportIdstring Yes Expense report ID allocationIdstring Yes Allocation ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Allocation detail payload ↳ allocationId string Unique allocation identifier ↳ accountCode string Ledger account code ↳ overLimitAccountCode string Account code applied to amounts over the per-allocation limit ↳ percentage number Allocation percentage ↳ allocationAmount json Allocation amount (value, currencyCode) ↳ value number Amount value ↳ currencyCode string ISO 4217 currency code ↳ approvedAmount json Pro-rated approved amount (value, currencyCode) ↳ value number Amount value ↳ currencyCode string ISO 4217 currency code ↳ claimedAmount json Requested reimbursement amount (value, currencyCode) ↳ value number Amount value ↳ currencyCode string ISO 4217 currency code ↳ customData array Custom field values (id, value, isValid) ↳ expenseId string Associated expense identifier ↳ isSystemAllocation boolean True when system-managed ↳ isPercentEdited boolean True when the percentage was manually edited
Get a budget item header by ID (GET /budget/v4/budgetItemHeader/{id}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens budgetIdstring Yes The budget item header's key field (uuid)
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Budget header detail payload ↳ id string Budget item header ID ↳ name string Admin-facing budget name ↳ description string User-friendly display name ↳ budgetItemStatusType string Status: OPEN, CLOSED, or REMOVED ↳ budgetType string Type: PERSONAL_USE, BUDGET, RESTRICTED, or TEAM ↳ periodType string Period type: YEARLY, QUARTERLY, MONTHLY, or DATE_RANGE ↳ currencyCode string ISO 4217 currency code ↳ isTest boolean Test budget flag ↳ active boolean Display availability flag ↳ owned boolean Caller ownership flag ↳ annualBudget number Total annual budget amount ↳ createdDate string UTC creation timestamp ↳ lastModifiedDate string UTC modification timestamp ↳ fiscalYear json Fiscal year reference (id, name, startDate, endDate, status) ↳ budgetAmounts json Aggregate spend amounts (pendingAmount, spendAmount, unExpensedAmount, availableAmount, adjustedBudgetAmount, consumedPercent, threshold) ↳ owner json Owner user (externalUserCUUID, employeeUuid, email, employeeId, name) ↳ budgetManagers array Manager user objects ↳ budgetApprovers array Approver user objects ↳ budgetViewers array Viewer user objects ↳ budgetTeamMembers array Team member entries (budgetPerson, startDate, endDate, active, status) ↳ budgetCategory json Linked category (id, name, description, statusType) ↳ costObjects array Tracking field values (fieldDefinitionId, code, value, operator) ↳ budgetItemDetails array Per-period detail entries (id, currencyCode, amount, budgetItemDetailStatusType, fiscalPeriod, budgetAmounts) ↳ dateRange json Date range for DATE_RANGE budgets (startDate, endDate)
Get a cash advance (GET /cashadvance/v4.1/cashadvances/{cashAdvanceId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens cashAdvanceIdstring Yes Cash advance ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Cash advance detail payload ↳ cashAdvanceId string Unique identifier of the cash advance ↳ name string Cash advance name ↳ purpose string Purpose for the cash advance ↳ comment string Comment recorded on the cash advance ↳ accountCode string Account code linked to the employee ↳ requestDate string Datetime the cash advance was requested (UTC, YYYY-MM-DD hh:mm:ss) ↳ issuedDate string Datetime the cash advance was issued (UTC, YYYY-MM-DD hh:mm:ss) ↳ lastModifiedDate string Datetime the cash advance was last modified (UTC, YYYY-MM-DD hh:mm:ss) ↳ hasReceipts boolean Whether the cash advance has receipts ↳ reimbursementCurrency string Reimbursement currency (3-letter ISO 4217 currency code) ↳ amountRequested json Amount requested for the cash advance ↳ amount string Requested amount value ↳ currency string 3-letter ISO 4217 currency code ↳ availableBalance json Unsubmitted balance for the cash advance ↳ amount string Balance amount ↳ currency string 3-letter ISO 4217 currency code ↳ exchangeRate json Exchange rate that applies to the cash advance ↳ value string Exchange rate value ↳ operation string Exchange rate operation (MULTIPLY) ↳ approvalStatus json Approval status of the cash advance ↳ code string Status code ↳ name string Status display name ↳ paymentType json Payment type for the cash advance ↳ paymentCode string Payment type code ↳ description string Payment method description
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.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens bodyjson Yes Bulk upload body: { currency_sets: [{ from_crn_code, to_crn_code, start_date: "YYYY-MM-DD", rate }] } (max 100 entries)
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Bulk-upload exchange rate response (Exchange Rate v4) ↳ overallStatus string Overall result status for the bulk upload (e.g. SUCCESS, FAILURE) ↳ message string Top-level result message ↳ currencySets json Per-row results: array of { from_crn_code, to_crn_code, start_date, rate, statusCode, statusMessage }
Get an expected expense (GET /travelrequest/v4/expenses/{expenseUuid}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens expenseUuidstring Yes Expected expense UUID userIdstring No User UUID acting on the request (optional)
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Expected expense payload ↳ id string Expected expense identifier ↳ href string Self-link ↳ expenseType json Expense type {id, name} ↳ transactionDate string Transaction date ↳ transactionAmount json Transaction amount {value, currency} ↳ postedAmount json Posted amount {value, currency} ↳ approvedAmount json Approved amount {value, currency} ↳ remainingAmount json Remaining amount on the expected expense ↳ businessPurpose string Business purpose of the expense ↳ location json Location {id, name, city, countryCode, countrySubDivisionCode, iataCode, locationType} ↳ exchangeRate json Exchange rate {value, operation} ↳ allocations json Budget allocations array ↳ tripData json Trip data {agencyBooked, selfBooked, tripType (ONE_WAY|ROUND_TRIP), legs[{id, returnLeg, startDate, startTime, startLocationDetail, startLocation, endLocation, class {code,value}, travelExceptionReasonCodes}], segmentType {category, code}} ↳ parentRequest json Parent travel request resource link {href, id} ↳ comments json Comments sub-resource link {href, id}
Get a single expense (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER, MANAGER, or PROXY reportIdstring Yes Expense report ID expenseIdstring Yes Expense ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Expense detail (ReportExpenseDetail) payload ↳ expenseId string Expense identifier ↳ allocationSetId string Identifier of the associated allocation set ↳ allocationState string FULLY_ALLOCATED, NOT_ALLOCATED, or PARTIALLY_ALLOCATED ↳ expenseType json Expense type {id, name, code, isDeleted} ↳ paymentType json Payment type {id, name, code} ↳ transactionDate string Transaction date (YYYY-MM-DD) ↳ budgetAccrualDate string Budget accrual date ↳ transactionAmount json Transaction amount {currencyCode, value} ↳ postedAmount json Posted amount in report currency {currencyCode, value} ↳ claimedAmount json Non-personal claimed amount {currencyCode, value} ↳ approvedAmount json Approved amount {currencyCode, value} ↳ approverAdjustedAmount json Total amount adjusted by the approver ↳ exchangeRate json Exchange rate {value, operation} ↳ vendor json Vendor info {id, name, description} ↳ location json Location {id, name, city, countryCode, countrySubDivisionCode} ↳ businessPurpose string Business purpose ↳ isExpenseBillable boolean Billable flag ↳ isPersonalExpense boolean Personal-expense flag ↳ isExpenseRejected boolean Whether the expense was rejected ↳ isExcludedFromCashAdvanceByUser boolean Whether the user excluded this from cash advance ↳ isImageRequired boolean Whether a receipt image is required ↳ isPaperReceiptRequired boolean Whether a paper receipt is required ↳ isPaperReceiptReceived boolean Whether a paper receipt was received ↳ isAutoCreated boolean Auto-creation indicator ↳ hasBlockingExceptions boolean Whether submission-blocking exceptions exist ↳ hasExceptions boolean Whether any exceptions exist ↳ hasMissingReceiptDeclaration boolean Affidavit declaration status ↳ attendeeCount number Number of attendees ↳ receiptImageId string Identifier of the attached receipt image ↳ ereceiptImageId string eReceipt image identifier ↳ receiptType json Receipt {id, status} ↳ imageCertificationStatus string Receipt image processing/certification status ↳ ticketNumber string Associated travel ticket number ↳ travel json Travel data (airline, car rental, hotel, etc.) ↳ travelAllowance json Travel allowance association data ↳ mileage json Mileage details (odometerStart, odometerEnd, totalDistance, ...) ↳ expenseTaxSummary json Aggregated tax data for the expense ↳ taxRateLocation string Tax rate location: FOREIGN, HOME, or OUT_OF_PROVINCE ↳ fuelTypeListItem json Fuel type list item {id, value, isValid} ↳ merchantTaxId string Merchant tax identifier ↳ customData json Array of custom field values [{id, value, isValid}] ↳ parentExpenseId string Identifier of the parent expense (for itemizations) ↳ authorizationRequestExpenseId string Linked travel-request expected expense identifier ↳ jptRouteId string Japan Public Transport route id ↳ invoiceId string Invoice identifier ↳ governmentInvoiceId string Government invoice identifier ↳ lastModifiedDate string Last modified timestamp ↳ expenseSourceIdentifiers json Source reference identifiers ↳ links array HATEOAS links for the expense
Retrieve a single expense report header by id via Expense Report v4 (/expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID who owns the report contextTypestring Yes Access context: TRAVELER (own report), MANAGER (report under approval), PROCESSOR, or PROXY reportIdstring Yes Expense report ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Concur expense report header (ReportDetails) ↳ reportId string Unique report identifier ↳ reportNumber string Report number ↳ reportFormId string Report form ID ↳ policyId string Policy ID applied to the report ↳ policy string Policy name ↳ name string Report name ↳ currencyCode string ISO currency code ↳ currency string Currency name ↳ approvalStatus string Approval status name ↳ approvalStatusId string Approval status identifier ↳ paymentStatus string Payment status name ↳ paymentStatusId string Payment status identifier ↳ ledger string Ledger name ↳ ledgerId string Ledger identifier ↳ userId string Owner user UUID ↳ reportDate string Report date (YYYY-MM-DD) ↳ creationDate string Creation timestamp (ISO 8601) ↳ submitDate string Submit timestamp (ISO 8601) or null ↳ startDate string Report period start (YYYY-MM-DD) ↳ endDate string Report period end (YYYY-MM-DD) ↳ approvedAmount json Amount approved { value, currencyCode } ↳ claimedAmount json Amount claimed { value, currencyCode } ↳ reportTotal json Report total { value, currencyCode } ↳ amountDueEmployee json Amount due employee ↳ amountDueCompany json Amount due company ↳ amountDueCompanyCard json Amount due company card ↳ amountCompanyPaid json Amount company has paid ↳ personalAmount json Personal portion of the report ↳ paymentConfirmedAmount json Confirmed payment amount ↳ amountNotApproved json Amount not approved ↳ totalAmountPaidEmployee json Total amount paid to employee ↳ concurAuditStatus string Concur audit status ↳ isFinancialIntegrationEnabled boolean Whether financial integration is enabled ↳ isSubmitted boolean Whether the report has been submitted ↳ isSentBack boolean Whether the report has been sent back ↳ isReopened boolean Whether the report was reopened ↳ isReportEverSentBack boolean Whether the report was ever sent back ↳ canRecall boolean Whether the report can be recalled ↳ canAddExpense boolean Whether expenses can be added to the report ↳ canReopen boolean Whether the report can be reopened ↳ isReceiptImageRequired boolean Whether receipt images are required ↳ isReceiptImageAvailable boolean Whether receipt images are available ↳ isPaperReceiptsReceived boolean Whether paper receipts were received ↳ isPendingDelegatorReview boolean Whether pending delegator review ↳ isFundsAndGrantsIntegrationEligible boolean Funds and grants eligibility ↳ hasReceivedCashAdvanceReturns boolean Whether cash advance returns received ↳ analyticsGroupId string Analytics group ID ↳ hierarchyNodeId string Hierarchy node ID ↳ allocationFormId string Allocation form ID ↳ countryCode string ISO country code ↳ countrySubDivisionCode string ISO country subdivision code ↳ country string Country name ↳ businessPurpose string Business purpose ↳ comment string Header-level comment on the report ↳ reportVersion number Report version number ↳ reportType string Report type identifier ↳ cardProgramStatementPeriodId string Card program statement period ID ↳ defaultFieldAccess string Default field access (HD/RO/RW) ↳ imageStatus string Image status ↳ receiptContainerId string Receipt container ID ↳ receiptStatus string Receipt status ↳ sponsorId string Sponsor ID ↳ submitterId string Submitter user ID ↳ taxConfigId string Tax configuration ID ↳ redirectFund json Redirect fund object { amount, creditCardId } ↳ customData array Array of custom data { id, value, isValid }. Responses may additionally carry a response-only listItemUrl, which can be null ↳ employee json Employee object { employeeId, employeeUuid } ↳ links array HATEOAS links
Get expense itemizations (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/itemizations).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER (the only value the endpoint supports) reportIdstring Yes Expense report ID expenseIdstring Yes Expense ID
Parameter Type Description statusnumber HTTP status code returned by Concur dataarray Array of itemizations (ReportExpenseSummary[]) ↳ expenseId string Itemization expense id ↳ expenseType json Expense type {id, name, code, isDeleted} ↳ transactionDate string Transaction date (YYYY-MM-DD) ↳ transactionAmount json Transaction amount ↳ postedAmount json Posted amount ↳ approvedAmount json Approved amount ↳ claimedAmount json Claimed amount ↳ approverAdjustedAmount json Approver-adjusted amount ↳ paymentType json Payment type ↳ vendor json Vendor info ↳ location json Location info ↳ allocationState string Allocation state ↳ allocationSetId string Allocation set identifier ↳ attendeeCount number Attendee count ↳ businessPurpose string Business purpose ↳ hasBlockingExceptions boolean Has blocking exceptions ↳ hasExceptions boolean Has exceptions ↳ isPersonalExpense boolean Personal expense ↳ links array HATEOAS links
Get a single trip/itinerary (GET /api/travel/trip/v1.1/{tripID}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens tripIdstring Yes Trip ID useridTypestring No User 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. useridValuestring No User identifier value (paired with useridType) systemFormatstring No Optional 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datastring Raw 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.
Get a single custom list (GET /list/v4/lists/{listId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens listIdstring Yes List ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson List detail payload ↳ id string Unique identifier (UUID) of the list ↳ value string Name of the list ↳ levelCount number Number of levels in the list ↳ searchCriteria string Search attribute (TEXT or CODE) ↳ displayFormat string Display order ((CODE) TEXT or TEXT (CODE)) ↳ category json List category ↳ id string Category UUID ↳ type string Category type ↳ isReadOnly boolean Whether the list is read-only ↳ isDeleted boolean Whether the list has been deleted ↳ managedBy string Identifier of the managing application or service ↳ externalThreshold number Threshold from where the level starts being external
Get a single list item (GET /list/v4/items/{itemId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens itemIdstring Yes List item ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson List item detail payload ↳ id string List item UUID ↳ listId string UUID of the list that contains the list item ↳ code string Long code format for the item ↳ shortCode string Short code identifier ↳ value string Display value of the item ↳ parentId string Parent item UUID (omitted for first-level items) ↳ level number Hierarchy level (1 for root items) ↳ isDeleted boolean Deletion status across all containing lists ↳ lists array Lists containing this item ↳ id string List UUID ↳ hasChildren boolean Whether this item has children in the list
Get a purchase request by ID (GET /purchaserequest/v4/purchaserequests/{id}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens purchaseRequestIdstring Yes Purchase request ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Purchase request detail payload ↳ purchaseRequestId string Unique identifier of the purchase request ↳ purchaseRequestNumber string Human-readable purchase request number ↳ purchaseRequestQueueStatus string Queue status of the purchase request ↳ purchaseRequestWorkflowStatus string Workflow status of the purchase request ↳ purchaseOrders array Purchase orders generated from the request ↳ purchaseOrderNumber string Purchase order number ↳ purchaseRequestExceptions array Exceptions raised on the purchase request ↳ eventCode string Event code ↳ exceptionCode string Exception code ↳ isCleared boolean Whether the exception has been cleared ↳ prExceptionId string Identifier of the exception record ↳ message string Exception message
Get a single receipt by ID (GET /receipts/v4/{receiptId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens receiptIdstring Yes Receipt ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Receipt detail payload ↳ id string Receipt identifier ↳ userId string Owning user UUID ↳ dateTimeReceived string Timestamp when the receipt was received (ISO 8601) ↳ receipt json Parsed receipt JSON object ↳ image string Receipt image URL or data reference ↳ validationSchema string Schema used to validate the receipt ↳ self string URL to this receipt resource ↳ template string URL template for receipts
Get receipt processing status (GET /receipts/v4/status/{receiptId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens receiptIdstring Yes Receipt ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Receipt status payload ↳ status string Processing status: ACCEPTED, PROCESSING, PROCESSED, or FAILED ↳ logs array Array of log entries ↳ logLevel string Log level ↳ message string Log message ↳ timestamp string Log timestamp
Get a travel profile (GET /api/travelprofile/v2.0/profile). Returns the calling user by default; pass userid_type and userid_value to impersonate.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens useridTypestring No Identifier type: login, xmlsyncid, or uuid useridValuestring No Identifier value (login id, xml sync id, or UUID)
Parameter Type Description statusnumber HTTP status code returned by Concur datastring Raw 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.
Get a single travel request (GET /travelrequest/v4/requests/{requestUuid}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens requestUuidstring Yes Travel request UUID userIdstring No The 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Travel request detail payload ↳ id string Travel request UUID ↳ href string Resource hyperlink ↳ requestId string Public-facing request ID (4-6 alphanumeric characters) ↳ name string Request name ↳ businessPurpose string Business purpose ↳ comment string Last attached comment ↳ creationDate string Creation timestamp ↳ lastModified string Last modification timestamp ↳ submitDate string Last submission timestamp ↳ authorizedDate string Date when approval was completed ↳ approvalLimitDate string Required approval deadline ↳ startDate string Trip start date (ISO 8601) ↳ endDate string Trip end date (ISO 8601) ↳ startTime string Trip start time (HH:mm) ↳ endTime string Trip end time (HH:mm) ↳ approved boolean Whether the request is approved ↳ pendingApproval boolean Pending approval flag ↳ closed boolean Closed flag ↳ everSentBack boolean Ever-sent-back flag ↳ canceledPostApproval boolean Canceled after approval flag ↳ highestExceptionLevel string Highest exception level (WARNING, ERROR, NONE) ↳ approvalStatus json Approval status ↳ code string Status code (NOT_SUBMITTED, SUBMITTED, APPROVED, CANCELED, SENTBACK) ↳ name string Localized status name ↳ owner json Travel request owner ↳ id string User UUID ↳ firstName string Owner first name ↳ lastName string Owner last name ↳ approver json Approver assigned to the request ↳ id string User UUID ↳ firstName string Approver first name ↳ lastName string Approver last name ↳ policy json Resource link to the applicable policy ↳ id string Policy ID ↳ href string Policy hyperlink ↳ type json Request type ↳ code string Request type code ↳ label string Request type label ↳ mainDestination json Main destination of the trip ↳ city string City ↳ countryCode string ISO country code ↳ countrySubDivisionCode string ISO country sub-division code ↳ name string Destination name ↳ totalApprovedAmount json Total approved amount ↳ value number Amount value ↳ currency string Currency code ↳ totalPostedAmount json Total posted amount ↳ value number Amount value ↳ currency string Currency code ↳ totalRemainingAmount json Total remaining amount ↳ value number Amount value ↳ currency string Currency code ↳ expenses array Resource links to expected expenses ↳ cashAdvances json Resource link to cash advances ↳ id string Resource ID ↳ href string Resource hyperlink ↳ comments json Resource link to comments ↳ id string Resource ID ↳ href string Resource hyperlink ↳ exceptions json Resource link to exceptions ↳ id string Resource ID ↳ href string Resource hyperlink ↳ travelAgency json Resource link to travel agency ↳ id string Resource ID ↳ href string Resource hyperlink ↳ extensionOf json The Request for which this Request is an extension of, or addendum to ↳ requestId string The public key of the Request (unique per customer) ↳ id string Unique identifier of the Request ↳ href string Hyperlink to the resource ↳ template string Hyperlink template to the resource ↳ pnr string The value of the pnr provided within the agency proposals by the travel agency ↳ isParentRequest boolean Indicates whether this Request is a Budget Request ↳ parentRequestId string Required if a Child Request is created, corresponds to the unique identifier of the Budget Request the Child Request will be linked to ↳ allocationFormId string The unique identifier of the allocation form ↳ parentRequest json If the Request is a Child Request, reference to the corresponding Budget Request ↳ id string Unique identifier of the related object ↳ href string Hyperlink to the resource ↳ template string Hyperlink template to the resource ↳ eventRequest json The parent Event Request to which this child Request is related ↳ id string Unique identifier of the related object ↳ href string Hyperlink to the resource ↳ template string Hyperlink template to the resource ↳ operations array Available workflow actions ↳ rel string Operation name ↳ href string Operation URL ↳ expensePolicy json Expense policy reference ↳ id string Policy identifier ↳ href string Policy URL ↳ custom1 json Custom field 1 ↳ custom2 json Custom field 2 ↳ custom3 json Custom field 3 ↳ custom4 json Custom field 4 ↳ custom5 json Custom field 5 ↳ custom6 json Custom field 6 ↳ custom7 json Custom field 7 ↳ custom8 json Custom field 8 ↳ custom9 json Custom field 9 ↳ custom10 json Custom field 10 ↳ custom11 json Custom field 11 ↳ custom12 json Custom field 12 ↳ custom13 json Custom field 13 ↳ custom14 json Custom field 14 ↳ custom15 json Custom field 15 ↳ custom16 json Custom field 16 ↳ custom17 json Custom field 17 ↳ custom18 json Custom field 18 ↳ custom19 json Custom field 19 ↳ custom20 json Custom field 20
Get a single user by UUID (GET /profile/identity/v4.1/Users/{id}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userUuidstring Yes User UUID attributesstring No Comma-separated SCIM attributes to include in the response excludedAttributesstring No Comma-separated SCIM attributes to exclude from the response
Parameter Type Description statusnumber HTTP status code returned by Concur datajson SCIM User identity payload
Issue a cash advance (POST /cashadvance/v4.1/cashadvances/{cashAdvanceId}/issue).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens cashAdvanceIdstring Yes Cash advance ID to issue bodyjson No Optional request body. All documented fields are optional: accountCode, comment, and exchangeRate.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Issue cash advance result payload ↳ issuedDate string Date the cash advance was issued (YYYY-MM-DD) ↳ status json Cash advance status after the issue action ↳ code string Status code ↳ name string Status display name
List allocations on an expense (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/allocations).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER or MANAGER reportIdstring Yes Expense report ID expenseIdstring Yes Expense ID
Parameter Type Description statusnumber HTTP status code returned by Concur dataarray Bare array of allocation objects (ReportAllocationResponse[]) ↳ allocationId string Unique allocation identifier ↳ accountCode string Ledger account code ↳ overLimitAccountCode string Account code applied to amounts over the per-allocation limit ↳ percentage number Allocation percentage ↳ allocationAmount json Allocation amount (value, currencyCode) ↳ value number Amount value ↳ currencyCode string ISO 4217 currency code ↳ approvedAmount json Pro-rated approved amount (value, currencyCode) ↳ value number Amount value ↳ currencyCode string ISO 4217 currency code ↳ claimedAmount json Requested reimbursement amount (value, currencyCode) ↳ value number Amount value ↳ currencyCode string ISO 4217 currency code ↳ customData array Custom field values (id, value, isValid) ↳ id string Custom field identifier ↳ value string Custom field value ↳ isValid boolean Whether the value passes validation ↳ expenseId string Associated expense identifier ↳ isSystemAllocation boolean True when system-managed ↳ isPercentEdited boolean True when the percentage was manually edited
List attendees associated with an expense (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER or PROXY reportIdstring Yes Expense report ID expenseIdstring Yes Expense ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Attendees list payload ↳ noShowAttendeeCount number Number of unnamed/no-show attendees ↳ expenseAttendeeList array Attendees associated with the expense, including amounts ↳ attendeeId string Unique identifier of the attendee ↳ transactionAmount json Expense portion assigned to this attendee ↳ value number Numeric amount ↳ currencyCode string ISO 4217 currency code ↳ approvedAmount json Approved amount in report currency ↳ value number Numeric amount ↳ currencyCode string ISO 4217 currency code ↳ isAmountUserEdited boolean Whether the amount was manually edited ↳ isTraveling boolean Whether the attendee is traveling (affects tax calculations) ↳ associatedAttendeeCount number Total attendee count; greater than 1 indicates unnamed attendees ↳ versionNumber number Version number preserving previous attendee state ↳ customData array Custom field values for the association ↳ id string Custom field identifier ↳ value string Custom field value (max 48 characters) ↳ isValid boolean Whether the value passes validation ↳ listItemUrl string HATEOAS link for list items
List budget categories (GET /budget/v4/budgetCategory).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens
Parameter Type Description statusnumber HTTP status code returned by Concur dataarray Top-level array of budget category objects ↳ id string Category ID ↳ name string Admin-facing category name ↳ description string Friendly name ↳ statusType string Status: OPEN or REMOVED ↳ expenseTypes array Expense types in this category (id, featureTypeCode, expenseTypeCode, name)
List budget item headers (GET /budget/v4/budgetItemHeader).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens adminViewboolean No When true, returns all budgets the caller can administer (default false) offsetnumber No Page offset (Concur returns up to 50 budget headers per page) responseSchemastring No Response schema variant: "COMPACT" returns a smaller payload. Defaults to the non-compact schema
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Budget headers collection payload ↳ budgetItemHeaders array Array of budget item header summaries (id, name, description, budgetItemStatusType, budgetType, currencyCode, fiscalYear, budgetAmounts, owner, ...) ↳ totalRows number Total number of budget headers ↳ offset number Offset of the current page ↳ limit number Page size (Concur returns up to 50) ↳ href string URL of the current page ↳ previous json Previous page link ({ href }); null on the first page ↳ href string Previous page URL ↳ next json Next page link ({ href }); null when no results remain. This is the only forward cursor for paging ↳ href string Next page URL
List exceptions on a report (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/exceptions).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER, MANAGER, or PROXY reportIdstring Yes Expense report ID excludeExpensesboolean No Return only exceptions for the report header, excluding expense-level and allocation-level exceptions (default false)
Parameter Type Description statusnumber HTTP status code returned by Concur dataarray Array of report header exception entries ↳ exceptionCode string Unique exception code ↳ exceptionVisibility string Visibility scope: ALL, APPROVER_PROCESSOR, or PROCESSOR ↳ isBlocking boolean Whether the exception prevents report submission ↳ message string Human-readable description of the exception ↳ expenseId string Related expense entry ID ↳ allocationId string Related allocation ID, if any ↳ parentExpenseId string Parent expense ID for itemized entries
List expected expenses on a travel request (GET /travelrequest/v4/requests/{requestUuid}/expenses).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens requestUuidstring Yes Travel request UUID userIdstring No User UUID acting on the request (optional)
Parameter Type Description statusnumber HTTP status code returned by Concur dataarray Array of expected expense objects ↳ id string Expected expense identifier ↳ href string Self-link ↳ expenseType json Expense type {id, name} ↳ transactionDate string Transaction date ↳ transactionAmount json Transaction amount {value, currency} ↳ postedAmount json Posted amount {value, currency} ↳ approvedAmount json Approved amount {value, currency} ↳ remainingAmount json Remaining amount on the expected expense ↳ businessPurpose string Business purpose of the expense ↳ location json Location {id, name, city, countryCode, countrySubDivisionCode, iataCode, locationType} ↳ exchangeRate json Exchange rate {value, operation} ↳ allocations json Budget allocations array ↳ tripData json Trip data {agencyBooked, selfBooked, tripType (ONE_WAY|ROUND_TRIP), legs[{id, returnLeg, startDate, startTime, startLocationDetail, startLocation, endLocation, class {code,value}, travelExceptionReasonCodes}], segmentType {category, code}} ↳ parentRequest json Parent travel request resource link {href, id}. Documented on the single-expense GET, not on this list endpoint ↳ comments json Comments sub-resource link {href, id}. Documented on the single-expense GET, not on this list endpoint
List expenses on a report (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER (the only value the endpoint supports) reportIdstring Yes Expense report ID
Parameter Type Description statusnumber HTTP status code returned by Concur dataarray Array of expense summary entries (ReportExpenseSummary[]) ↳ expenseId string Expense identifier ↳ expenseType json Expense type {id, name, code, isDeleted} ↳ transactionDate string Transaction date (YYYY-MM-DD) ↳ transactionAmount json Transaction amount {currencyCode, value} ↳ postedAmount json Posted amount ↳ approvedAmount json Approved amount ↳ claimedAmount json Claimed amount ↳ approverAdjustedAmount json Approver-adjusted amount ↳ paymentType json Payment type {id, name, code} ↳ vendor json Vendor info ↳ location json Location info ↳ allocationState string Allocation state ↳ allocationSetId string Allocation set identifier ↳ attendeeCount number Attendee count ↳ businessPurpose string Business purpose ↳ hasBlockingExceptions boolean Has submission-blocking exceptions ↳ hasExceptions boolean Has exceptions ↳ hasMissingReceiptDeclaration boolean Has missing-receipt declaration ↳ isAutoCreated boolean Auto-created ↳ isPersonalExpense boolean Personal-expense flag ↳ isImageRequired boolean Receipt image required ↳ isPaperReceiptRequired boolean Paper receipt required ↳ imageCertificationStatus string Receipt image certification status ↳ receiptImageId string Receipt image identifier ↳ ereceiptImageId string eReceipt image identifier ↳ ticketNumber string Ticket number ↳ exchangeRate json Exchange rate ↳ fuelTypeListItem json Fuel type list item {id, value, isValid} ↳ jptRouteId string Japan Public Transport route id ↳ travelAllowance json Travel allowance ↳ expenseSourceIdentifiers json Expense source identifiers ↳ links array HATEOAS links
List expense reports (GET /api/v3.0/expense/reports). Returns a v3 envelope with Items and NextPage.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userstring No Filter by a specific user (login id or user identifier). submitDateBeforestring No Filter to reports submitted on or before this date (YYYY-MM-DD) submitDateAfterstring No Filter to reports submitted on or after this date (YYYY-MM-DD) paidDateBeforestring No Filter to reports paid on or before this date (YYYY-MM-DD) paidDateAfterstring No Filter to reports paid on or after this date (YYYY-MM-DD) modifiedDateBeforestring No Filter to reports last modified on or before this date (YYYY-MM-DD) modifiedDateAfterstring No Filter to reports last modified on or after this date (YYYY-MM-DD) createDateBeforestring No Filter to reports created on or before this date (YYYY-MM-DD) createDateAfterstring No Filter to reports created on or after this date (YYYY-MM-DD) approvalStatusCodestring No Filter by approval status code (e.g. A_NOTF, A_PEND, A_APPR) paymentStatusCodestring No Filter by payment status code currencyCodestring No Filter by ISO currency code (e.g. USD, EUR) approverLoginIDstring No Filter by approver login ID limitnumber No Number of records per page (default 25) offsetstring No Pagination token. The previous response returns NextPage as a full URI — extract its offset query parameter and pass that value here, not the whole URI.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Concur v3 expense reports envelope ↳ Items array Array of report header objects ↳ ID string Report ID ↳ Name string Report name ↳ OwnerLoginID string Owner login ID ↳ OwnerName string Owner display name ↳ Total number Report total ↳ TotalApprovedAmount number Total approved amount ↳ TotalClaimedAmount number Total claimed amount ↳ AmountDueEmployee number Amount due employee ↳ CurrencyCode string ISO currency code ↳ ApprovalStatusName string Approval status name ↳ ApprovalStatusCode string Approval status code ↳ PaymentStatusName string Payment status name ↳ PaymentStatusCode string Payment status code ↳ ApproverLoginID string Approver login ID ↳ ApproverName string Approver display name ↳ HasException boolean Whether the report has any exception ↳ ReceiptsReceived boolean Whether paper receipts were received ↳ CreateDate string Creation date ↳ SubmitDate string Submit date ↳ LastModifiedDate string Last modified date ↳ PaidDate string Paid date ↳ URI string Self URI ↳ NextPage string Full URI of the next page — read its offset query parameter to page forward
List travel trips/itineraries (GET /api/travel/trip/v1.1).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens startDatestring No Filter trips starting on/after this date (YYYY-MM-DD) endDatestring No Filter trips ending on/before this date (YYYY-MM-DD) bookingTypestring No Filter by booking type. Supported values are capitalized: Air, Car, Dining, Hotel, Parking, Rail, Ride. useridTypestring No User 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. useridValuestring No User identifier value (paired with useridType) itemsPerPagenumber No Items per page. Concur only paginates when includeMetadata is also sent, so this tool sets includeMetadata automatically whenever itemsPerPage or page is provided. pagenumber No 1-based page number. Concur only paginates when includeMetadata is also sent, so this tool sets includeMetadata automatically whenever page or itemsPerPage is provided. includeMetadataboolean No Include paging metadata in the response. Implied when page or itemsPerPage is set. includeCanceledTripsboolean No Include canceled trips in the result set createdAfterDatestring No Only trips created after this date (YYYY-MM-DD) createdBeforeDatestring No Only trips created before this date (YYYY-MM-DD) lastModifiedDatestring No Only trips modified on/after this date (YYYY-MM-DD) includeVirtualTripstring No Set to "1" to include virtual trips, which carry the offline segments booked through Concur Request. includeGuestBookingsboolean No Include trips booked on behalf of guests. Defaults to false.
Parameter Type Description statusnumber HTTP status code returned by Concur datastring Raw 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.
List custom lists (GET /list/v4/lists).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens pagenumber No Page number (1-based; page size is fixed at 100) sortBystring No Sort field: name, levelcount, or listcategory sortDirectionstring No Sort direction: asc or desc valuestring No Filter by list name. Accepts an operator prefix: sw: (starts with), ew: (ends with), not:, cp: (contains) (e.g. "sw:Cost"). categoryTypestring No Filter by category type (mapped to the category.type query param). Accepts an operator prefix: eq:, not:. isDeletedstring No Filter 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. levelCountstring No Filter by number of levels. Accepts an operator prefix: eq:, gt:, gte:, lt:, lte: (e.g. "eq:1", "gt:2", "lte:9").
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Paginated lists collection ↳ content array Lists in the current page ↳ id string List UUID ↳ value string Name of the list ↳ levelCount number Number of levels in the list ↳ searchCriteria string Search attribute (TEXT or CODE) ↳ displayFormat string Display order ((CODE) TEXT or TEXT (CODE)) ↳ category json List category ↳ id string Category UUID ↳ type string Category type ↳ isReadOnly boolean Whether the list is read-only ↳ isDeleted boolean Whether the list has been deleted ↳ managedBy string Managing application or service identifier ↳ externalThreshold number Threshold from where the level starts being external ↳ page json Pagination metadata ↳ number number Current page number ↳ size number Items per page ↳ totalElements number Total item count ↳ totalPages number Total page count ↳ links array Navigation links (next, previous, first, last) ↳ rel string Link relation ↳ href string Link URL
List the top-level items (children) for a custom list (GET /list/v4/lists/{listId}/children).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens listIdstring Yes List ID pagenumber No Page number (1-based; page size is fixed at 100) sortBystring No Sort field: value or shortCode sortDirectionstring No Sort direction: asc or desc hasChildrenboolean No Include only items that have children isDeletedstring No Filter 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. shortCodestring No Filter by short code valuestring No Filter by display value shortCodeOrValuestring No Filter by short code OR value
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Paginated list items collection ↳ content array List items in the current page ↳ id string List item UUID ↳ listId string UUID of the list that contains the list item ↳ code string Long code format for the item ↳ shortCode string Short code identifier ↳ value string Display value of the item ↳ parentId string Parent item UUID (omitted for first-level items) ↳ level number Hierarchy level (1 for root items) ↳ isDeleted boolean Deletion status across all containing lists ↳ lists array Lists containing this item ↳ id string List UUID ↳ hasChildren boolean Whether this item has children in the list ↳ page json Pagination metadata ↳ number number Current page number ↳ size number Items per page ↳ totalElements number Total item count ↳ totalPages number Total page count ↳ links array Navigation links (next, previous, first, last) ↳ rel string Link relation ↳ href string Link URL
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.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson E-receipt collection wrapper ↳ receipts array Array of e-receipt objects ↳ id string Receipt id ↳ userId string Owner user UUID ↳ dateTimeReceived string Timestamp the receipt was received ↳ receipt json Structured receipt data ↳ image string Receipt image URL or reference ↳ validationSchema string Validation schema URI ↳ self string Self URL ↳ template string Template URL ↳ next string URL of the next page of receipts, if returned. Concur documents this cursor on the image-only-receipts endpoint rather than on this one
List comments on a report (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/comments).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER, MANAGER, or PROXY reportIdstring Yes Expense report ID includeAllCommentsboolean No Include comments from all expenses in the report (default false)
Parameter Type Description statusnumber HTTP status code returned by Concur dataarray Array of report comment entries ↳ comment string Comment text ↳ creationDate string Comment creation timestamp (ISO 8601) ↳ expenseId string Related expense entry ID (null for report header comments) ↳ isAuditorComment boolean Whether the comment was added by an auditor ↳ isLatest boolean Whether this is the latest comment ↳ createdForEmployeeId string Employee ID the comment was created for ↳ author json Comment author ↳ employeeId string Employee identifier ↳ employeeUuid string Employee UUID ↳ createdForEmployee json Employee the comment was created for ↳ employeeId string Employee identifier ↳ employeeUuid string Employee UUID ↳ stepInstanceId string Workflow step instance identifier
List expense reports awaiting approval (GET /expensereports/v4/users/{userId}/context/MANAGER/reportsToApprove).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Manager user UUID contextTypestring No Access context: must be MANAGER (default) sortstring No Report field name to sort by (e.g., reportDate) orderstring No Sort direction: asc or desc includeDelegateApprovalsboolean No Whether to include reports the caller can approve as a delegate
Parameter Type Description statusnumber HTTP status code returned by Concur dataarray Array of reports awaiting approval (ReportToApprove[]) ↳ reportId string Unique report identifier ↳ name string Report name ↳ reportDate string Report date (YYYY-MM-DD) ↳ reportNumber string User-friendly report number ↳ submitDate string Submission timestamp (ISO 8601 UTC) ↳ approver json Approver employee { employeeId, employeeUuid } ↳ employee json Report owner employee { employeeId, employeeUuid } ↳ amountDueEmployee json Amount due employee { value, currencyCode } ↳ claimedAmount json Total claimed amount { value, currencyCode } ↳ totalApprovedAmount json Total approved amount { value, currencyCode } ↳ hasExceptions boolean Whether the report has exceptions ↳ reportType string Report creation method identifier ↳ links array HATEOAS links
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.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens cashAdvanceUuidstring Yes Cash advance UUID (returned as part of a travel request)
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Cash advance detail ↳ cashAdvanceId string Unique cash advance identifier ↳ amountRequested json Requested amount ↳ amount number Preferred amount field — use this over value ↳ value number Legacy amount value — will soon be deprecated in favor of amount ↳ currency string Currency code ↳ approvalStatus json Approval status ↳ code string Status code ↳ name string Status name ↳ requestDate string Request datetime (ISO 8601) ↳ issueDate string Date the cash advance was issued (ISO 8601) ↳ comment string Comment attached to the cash advance ↳ exchangeRate json Exchange rate ↳ value number Rate value ↳ operation string Multiply or divide
List travel profile summaries (GET /api/travelprofile/v2.0/summary). LastModifiedDate is required by Concur.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens lastModifiedDatestring Yes Required UTC datetime in YYYY-MM-DDThh:mm:ss format pagenumber No 1-based page number itemsPerPagenumber No Items per page (max 200) travelConfigsstring No Comma-separated travel configuration ids activestring No Filter by user state: "1" returns active users, "0" returns inactive users.
Parameter Type Description statusnumber HTTP status code returned by Concur datastring Raw 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.
List comments on a travel request (GET /travelrequest/v4/requests/{requestUuid}/comments).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens requestUuidstring Yes Travel request UUID
Parameter Type Description statusnumber HTTP status code returned by Concur dataarray Array of comment entries ↳ author json Comment author ↳ firstName string Author first name ↳ lastName string Author last name ↳ creationDateTime string Comment creation timestamp (ISO 8601) ↳ isLatest boolean Whether this is the latest comment ↳ value string Comment text
List travel requests (GET /travelrequest/v4/requests).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens viewstring No View 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. limitnumber No Records per page (default 10, maximum 100 — higher values return 400) startnumber No Page start cursor (offset) userIdstring No For 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. approvedBeforestring No ISO 8601 date — return requests approved before this date approvedAfterstring No ISO 8601 date — return requests approved after this date modifiedBeforestring No ISO 8601 date — return requests modified before this date modifiedAfterstring No ISO 8601 date — return requests modified after this date sortFieldstring No Field to sort by: startDate, approvalStatus, or requestId (default startDate) sortOrderstring No Sort order: ASC or DESC (default DESC)
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Travel requests list payload ↳ data array Array of travel request summaries ↳ id string Travel request UUID ↳ href string Resource hyperlink ↳ requestId string Public-facing request ID ↳ name string Request name ↳ businessPurpose string Business purpose ↳ comment string Last attached comment ↳ creationDate string Creation timestamp ↳ submitDate string Last submission timestamp ↳ startDate string Trip start date (ISO 8601) ↳ endDate string Trip end date (ISO 8601) ↳ startTime string Trip start time (HH:mm) ↳ approved boolean Whether the request is approved ↳ pendingApproval boolean Pending approval flag ↳ closed boolean Closed flag ↳ everSentBack boolean Ever-sent-back flag ↳ canceledPostApproval boolean Canceled after approval flag ↳ approvalStatus json Approval status ↳ code string Status code (NOT_SUBMITTED, SUBMITTED, APPROVED, CANCELED, SENTBACK) ↳ name string Localized status name ↳ owner json Travel request owner ↳ id string User UUID ↳ firstName string Owner first name ↳ lastName string Owner last name ↳ approver json Approver assigned to the request ↳ id string User UUID ↳ firstName string Approver first name ↳ lastName string Approver last name ↳ type json Request type ↳ code string Request type code ↳ label string Request type label ↳ totalApprovedAmount json Total approved amount ↳ value number Amount value ↳ currency string Currency code ↳ totalPostedAmount json Total posted amount ↳ value number Amount value ↳ currency string Currency code ↳ totalRemainingAmount json Total remaining amount ↳ value number Amount value ↳ currency string Currency code ↳ expenses array Resource links to expected expenses ↳ operations array Pagination links (next, prev, first, last) ↳ rel string Link relation ↳ href string Link target
List Concur user identities (GET /profile/identity/v4.1/Users).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens countnumber No Max number of users to return (default 100, max 1000) cursorstring No SCIM v4.1 pagination cursor — the nextCursor value returned by a prior call attributesstring No Comma-separated list of attributes to include in the response excludedAttributesstring No Comma-separated list of attributes to exclude from the response
Parameter Type Description statusnumber HTTP status code returned by Concur datajson SCIM ListResponse with Resources array
Move a travel request through workflow (POST /travelrequest/v4/requests/{requestUuid}/{action}). Valid actions: submit, recall, cancel, approve, sendback, close, reopen.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens requestUuidstring Yes Travel request UUID actionstring Yes Workflow action: submit, recall, cancel, approve, sendback, close, reopen userIdstring No The 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. companyIDstring No Optional company identifier for the workflow action (documented as companyID, distinct from the companyUuid auth field) commentstring No Comment sent as a query parameter. Only works when the workflow action is sendback. This comment is visible wherever Request comments are available. bodyjson No Optional payload — only the sendback action accepts one (e.g., { "comment": "..." }). Every other action takes no payload.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson The full travel request having that requestUuid, after the workflow transition ↳ id string Travel request UUID ↳ href string Resource hyperlink ↳ requestId string Public-facing request ID (4-6 alphanumeric characters) ↳ name string Request name ↳ businessPurpose string Business purpose ↳ comment string Last attached comment ↳ creationDate string Creation timestamp ↳ lastModified string Last modification timestamp ↳ submitDate string Last submission timestamp ↳ authorizedDate string Date when approval was completed ↳ approvalLimitDate string Required approval deadline ↳ startDate string Trip start date (ISO 8601) ↳ endDate string Trip end date (ISO 8601) ↳ startTime string Trip start time (HH:mm) ↳ endTime string Trip end time (HH:mm) ↳ approved boolean Whether the request is approved ↳ pendingApproval boolean Pending approval flag ↳ closed boolean Closed flag ↳ everSentBack boolean Ever-sent-back flag ↳ canceledPostApproval boolean Canceled after approval flag ↳ highestExceptionLevel string Highest exception level (WARNING, ERROR, NONE) ↳ approvalStatus json Approval status after the workflow transition ↳ code string Status code (NOT_SUBMITTED, SUBMITTED, APPROVED, CANCELED, SENTBACK) ↳ name string Localized status name ↳ owner json Travel request owner ↳ id string User UUID ↳ firstName string Owner first name ↳ lastName string Owner last name ↳ approver json Approver assigned after the transition ↳ id string User UUID ↳ firstName string Approver first name ↳ lastName string Approver last name ↳ policy json Resource link to the applicable policy ↳ id string Policy ID ↳ href string Policy hyperlink ↳ type json Request type ↳ code string Request type code ↳ label string Request type label ↳ mainDestination json Main destination of the trip ↳ city string City ↳ countryCode string ISO country code ↳ countrySubDivisionCode string ISO country sub-division code ↳ name string Destination name ↳ totalApprovedAmount json Total approved amount ↳ value number Amount value ↳ currency string Currency code ↳ totalPostedAmount json Total posted amount ↳ value number Amount value ↳ currency string Currency code ↳ totalRemainingAmount json Total remaining amount ↳ value number Amount value ↳ currency string Currency code ↳ expenses array Resource links to expected expenses ↳ cashAdvances json Resource link to cash advances ↳ id string Resource ID ↳ href string Resource hyperlink ↳ comments json Resource link to comments ↳ id string Resource ID ↳ href string Resource hyperlink ↳ exceptions json Resource link to exceptions ↳ id string Resource ID ↳ href string Resource hyperlink ↳ travelAgency json Resource link to travel agency ↳ id string Resource ID ↳ href string Resource hyperlink ↳ extensionOf json The Request for which this Request is an extension of, or addendum to ↳ requestId string The public key of the Request (unique per customer) ↳ id string Unique identifier of the Request ↳ href string Hyperlink to the resource ↳ template string Hyperlink template to the resource ↳ expensePolicy json Expense policy reference ↳ id string Policy identifier ↳ href string Policy URL ↳ operations array Available follow-up workflow actions ↳ rel string Link relation ↳ href string Link target
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.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth 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. clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID who owns the report contextTypestring Yes Access context: TRAVELER or PROXY reportIdstring Yes Expense report ID to recall
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty (204 No Content)
Remove all attendees from an expense (DELETE /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER or PROXY reportIdstring Yes Expense report ID expenseIdstring Yes Expense ID
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty response body (Concur returns 204 No Content)
Search Concur location reference data (GET /localities/v5/locations).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens searchTextstring No Free-text for location search. Conditional — required if none of locationNameKey, locationNameId, or locCode is present. locCodestring No Location code. Conditional — required if none of locationNameKey, locationNameId, or searchText is present. locationNameIdstring No UUID identifier of the location name. Conditional — required if none of locationNameKey, locCode, or searchText is present. locationNameKeynumber No Unique key for the location name. Conditional — required if none of locationNameId, locCode, or searchText is present. countryCodestring No 2-letter ISO 3166-1 country code. Only valid together with searchText. subdivisionCodestring No ISO 3166-2:2007 country subdivision (e.g. US-WA). Only valid together with searchText. adminRegionIdstring No Administrative region ID. Only valid together with searchText.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Localities v5 search response ↳ locations array Array of matching Location records ↳ id string Location ID (UUID) ↳ code string IATA / location code ↳ legacyKey number Legacy numeric location key ↳ timeZoneOffset number Time zone offset of the location, in minutes (e.g. 60) ↳ active boolean Whether the location is active ↳ point json Geographic coordinates ↳ latitude number Latitude ↳ longitude number Longitude ↳ names array Localized location names ↳ id string Name ID ↳ legacyKey number Legacy numeric name key ↳ langCode string Language code ↳ name string Display name ↳ active boolean Whether the name is active ↳ administrativeRegion json Administrative region (e.g., metro area) ↳ id string Unique identifier of the admin region ↳ names array Localized region names ↳ countryCode string ISO 3166-1 country code of the region ↳ subDivCode string ISO 3166-2 subdivision code of the region ↳ links array HATEOAS links ↳ country json Country reference (Code schema) ↳ code string ISO country code ↳ names array Localized country names ↳ links array HATEOAS links ↳ subDivision json Country subdivision (state/province, Code schema) ↳ code string ISO subdivision code ↳ names array Localized subdivision names ↳ links array HATEOAS links ↳ links array HATEOAS links
Search users via SCIM .search endpoint (POST /profile/identity/v4.1/Users/.search).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens bodyjson Yes SCIM 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).
Parameter Type Description statusnumber HTTP status code returned by Concur datajson SCIM search ListResponse
Send back an expense report to the employee (PATCH /expensereports/v4/reports/{reportId}/sendBack). Required body field: comment.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens reportIdstring Yes Expense report ID to send back bodyjson Yes Request body — comment is required by Concur (e.g., { "comment": "Missing receipt" }). Optional fields: expectedStepCode, expectedStepSequence.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty (204 No Content)
Submit an expense report into the workflow via Expense Report v4 (PATCH /expensereports/v4/users/{userId}/reports/{reportId}/submit). Takes no request body.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID who owns the report reportIdstring Yes Expense report ID to submit
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty (204 No Content)
Update an allocation (PATCH /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/allocations/{allocationId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID contextTypestring Yes Access context: TRAVELER or PROXY (write requires expense.report.readwrite) reportIdstring Yes Expense report ID allocationIdstring Yes Allocation ID to update bodyjson Yes JSON Merge Patch (RFC 7386) payload. Must be the two-key envelope { "allocation": { "customData": [{ "id": "custom9", "value": "...", "isValid": true }] }, "expenseIds": ["29EE..."] }.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty body on success (Concur returns 204 No Content)
Update an expected expense (PUT /travelrequest/v4/expenses/{expenseUuid}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens expenseUuidstring Yes Expected expense UUID to update userIdstring No User UUID acting on the request (required when using a Company JWT, optional otherwise) bodyjson Yes Fields to update on the expected expense
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Updated expected expense payload ↳ id string Expected expense identifier ↳ href string Self-link ↳ expenseType json Expense type {id, name} ↳ transactionDate string Transaction date ↳ transactionAmount json Transaction amount {value, currency} ↳ postedAmount json Posted amount {value, currency} ↳ approvedAmount json Approved amount {value, currency} ↳ remainingAmount json Remaining amount on the expected expense ↳ businessPurpose string Business purpose of the expense ↳ location json Location {id, name, city, countryCode, countrySubDivisionCode, iataCode, locationType} ↳ exchangeRate json Exchange rate {value, operation} ↳ allocations json Budget allocations array ↳ tripData json Trip data {agencyBooked, selfBooked, tripType (ONE_WAY|ROUND_TRIP), legs[{id, returnLeg, startDate, startTime, startLocationDetail, startLocation, endLocation, class {code,value}, travelExceptionReasonCodes}], segmentType {category, code}} ↳ parentRequest json Parent travel request resource link {href, id} ↳ comments json Comments sub-resource link {href, id}
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.
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens reportIdstring Yes Expense report ID expenseIdstring Yes Expense ID to update bodyjson Yes PATCH body. Allowed fields: businessPurpose (string, max 64), customData (CustomData[]), expenseSource (required: EA|MOB|OTHER|SE|TA|TR|UI), isExpenseRejected (boolean), isPaperReceiptReceived (boolean).
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty body on success (HTTP 204 No Content). Error details when status is non-2xx
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).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID who owns the report contextTypestring Yes Access context: TRAVELER (own report) or PROXY (editing on behalf of another user) reportIdstring Yes Expense report ID to update bodyjson Yes Fields 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Empty (204 No Content)
Update a list item (PUT /list/v4/items/{itemId}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens itemIdstring Yes List item UUID bodyjson Yes List item payload. Required: shortCode, value. Other fields in the body are ignored.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Updated list item ↳ id string List item UUID ↳ listId string UUID of the list that contains the list item ↳ code string Long code format for the item ↳ shortCode string Short code identifier ↳ value string Display value of the item ↳ parentId string Parent item UUID (omitted for first-level items) ↳ level number Hierarchy level (1 for root items) ↳ isDeleted boolean Deletion status across all containing lists ↳ lists array Lists containing this item ↳ id string List UUID ↳ hasChildren boolean Whether this item has children in the list
Update a travel request (PUT /travelrequest/v4/requests/{requestUuid}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens requestUuidstring Yes Travel request UUID to update userIdstring No The 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". bodyjson Yes Fields 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Updated travel request payload ↳ id string Travel request UUID ↳ href string Resource hyperlink ↳ requestId string Public-facing request ID (4-6 alphanumeric characters) ↳ name string Request name ↳ businessPurpose string Business purpose ↳ comment string Last attached comment ↳ creationDate string Creation timestamp ↳ lastModified string Last modification timestamp ↳ submitDate string Last submission timestamp ↳ startDate string Trip start date (ISO 8601) ↳ endDate string Trip end date (ISO 8601) ↳ startTime string Trip start time (HH:mm) ↳ endTime string Trip end time (HH:mm) ↳ approved boolean Whether the request is approved ↳ pendingApproval boolean Pending approval flag ↳ closed boolean Closed flag ↳ everSentBack boolean Ever-sent-back flag ↳ canceledPostApproval boolean Canceled after approval flag ↳ approvalStatus json Approval status ↳ code string Status code (NOT_SUBMITTED, SUBMITTED, APPROVED, CANCELED, SENTBACK) ↳ name string Localized status name ↳ owner json Travel request owner ↳ id string User UUID ↳ firstName string Owner first name ↳ lastName string Owner last name ↳ approver json Approver assigned to the request ↳ id string User UUID ↳ firstName string Approver first name ↳ lastName string Approver last name ↳ policy json Resource link to the applicable policy ↳ id string Policy ID ↳ href string Policy hyperlink ↳ type json Request type ↳ code string Request type code ↳ label string Request type label ↳ mainDestination json Main destination of the trip ↳ city string City ↳ countryCode string ISO country code ↳ countrySubDivisionCode string ISO country sub-division code ↳ name string Destination name ↳ totalApprovedAmount json Total approved amount ↳ value number Amount value ↳ currency string Currency code ↳ totalPostedAmount json Total posted amount ↳ value number Amount value ↳ currency string Currency code ↳ totalRemainingAmount json Total remaining amount ↳ value number Amount value ↳ currency string Currency code ↳ operations array Available workflow actions
Patch a user identity (PATCH /profile/identity/v4.1/Users/{id}).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userUuidstring Yes User UUID to update bodyjson Yes SCIM 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 }.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Updated SCIM User payload
Upload an image-only receipt (POST /receipts/v4/users/{userId}/image-only-receipts).
Inputs and outputsParameter Type Required Description datacenterstring No Concur datacenter base URL (defaults to us.api.concursolutions.com) grantTypestring No OAuth grant type: client_credentials (default) or password clientIdstring Yes Concur OAuth client ID clientSecretstring Yes Concur OAuth client secret usernamestring No Username (only for password grant) passwordstring No Password (only for password grant) companyUuidstring No Company UUID for multi-company access tokens userIdstring Yes Concur user UUID who owns the receipt receiptjson Yes Receipt 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.
Parameter Type Description statusnumber HTTP status code returned by Concur datajson Image-only receipt upload response (HTTP 202 Accepted; Location and Link response headers exposed in body) ↳ location string Location header URL for the new receipt image (e.g. /receipts/v4/images/{receiptId}) ↳ link string Raw 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.