Manage expense reports, travel requests, cash advances, and more in SAP Concur
SAP Concur is a Sim integration in the Productivity category. Sim is the AI workspace where teams build and deploy AI agents. Sim's SAP Concur integration provides 70 tools that AI agents can use inside Sim's visual workflow builder. SAP Concur connects with an API key. Free to start at sim.ai.
Last updated
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.
Sign up at sim.ai in seconds. No credit card required. Your workspace is ready immediately.
Open your workspace, drag a SAP Concur block onto the workflow builder, and paste in your SAP Concur API key.
Pick the tool you need, wire in an AI agent for reasoning or data transformation, and run. Your SAP Concur automation is live.
Ready-to-use templates featuring SAP Concur. Click any to build it instantly.
70 SAP Concur tools available to Sim agents.
List expense reports (GET /api/v3.0/expense/reports). Returns a v3 envelope with Items and NextPage.
Retrieve a single expense report header by id via Expense Report v4 (/expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}).
Create an expense report (POST /expensereports/v4/users/{userId}/context/{contextType}/reports — supported contexts: TRAVELER, PROXY). Required body fields: name, policyId.
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).
Delete an expense report (DELETE /expensereports/v4/reports/{reportId}).
Submit an expense report into the workflow via Expense Report v4 (PATCH /expensereports/v4/users/{userId}/reports/{reportId}/submit). Takes no request body.
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.
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).
Send back an expense report to the employee (PATCH /expensereports/v4/reports/{reportId}/sendBack). Required body field: comment.
List expense reports awaiting approval (GET /expensereports/v4/users/{userId}/context/MANAGER/reportsToApprove).
List expenses on a report (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses).
Get a single expense (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}).
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.
Delete an expense (DELETE /expensereports/v4/reports/{reportId}/expenses/{expenseId}).
Get expense itemizations (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/itemizations).
List allocations on an expense (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/allocations).
Get a single allocation (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/allocations/{allocationId}).
Update an allocation (PATCH /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/allocations/{allocationId}).
List attendees associated with an expense (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).
Associate attendees with an expense (POST /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).
Remove all attendees from an expense (DELETE /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/expenses/{expenseId}/attendees).
List comments on a report (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/comments).
Create a comment on a report (POST /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/comments).
List exceptions on a report (GET /expensereports/v4/users/{userId}/context/{contextType}/reports/{reportId}/exceptions).
Create a quick expense (POST /quickexpense/v4/users/{userId}/context/{contextType}/quickexpenses). TRAVELER is the only supported context type.
Create a quick expense with an attached image (POST /quickexpense/v4/users/{userId}/context/{contextType}/quickexpenses/image).
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.
Get a single receipt by ID (GET /receipts/v4/{receiptId}).
Get receipt processing status (GET /receipts/v4/status/{receiptId}).
Upload an image-only receipt (POST /receipts/v4/users/{userId}/image-only-receipts).
List travel requests (GET /travelrequest/v4/requests).
Get a single travel request (GET /travelrequest/v4/requests/{requestUuid}).
Create a travel request (POST /travelrequest/v4/requests).
Update a travel request (PUT /travelrequest/v4/requests/{requestUuid}).
Delete a travel request (DELETE /travelrequest/v4/requests/{requestUuid}).
Move a travel request through workflow (POST /travelrequest/v4/requests/{requestUuid}/{action}). Valid actions: submit, recall, cancel, approve, sendback, close, reopen.
List comments on a travel request (GET /travelrequest/v4/requests/{requestUuid}/comments).
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.
Create an expected expense on a travel request (POST /travelrequest/v4/requests/{requestUuid}/expenses).
List expected expenses on a travel request (GET /travelrequest/v4/requests/{requestUuid}/expenses).
Get an expected expense (GET /travelrequest/v4/expenses/{expenseUuid}).
Update an expected expense (PUT /travelrequest/v4/expenses/{expenseUuid}).
Delete an expected expense (DELETE /travelrequest/v4/expenses/{expenseUuid}).
Create a cash advance (POST /cashadvance/v4.1/cashadvances).
Get a cash advance (GET /cashadvance/v4.1/cashadvances/{cashAdvanceId}).
Issue a cash advance (POST /cashadvance/v4.1/cashadvances/{cashAdvanceId}/issue).
List travel trips/itineraries (GET /api/travel/trip/v1.1).
Get a single trip/itinerary (GET /api/travel/trip/v1.1/{tripID}).
List Concur user identities (GET /profile/identity/v4.1/Users).
Get a single user by UUID (GET /profile/identity/v4.1/Users/{id}).
Create a new user identity (POST /profile/identity/v4.1/Users).
Patch a user identity (PATCH /profile/identity/v4.1/Users/{id}).
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.
Search users via SCIM .search endpoint (POST /profile/identity/v4.1/Users/.search).
List custom lists (GET /list/v4/lists).
Get a single custom list (GET /list/v4/lists/{listId}).
List the top-level items (children) for a custom list (GET /list/v4/lists/{listId}/children).
Get a single list item (GET /list/v4/items/{itemId}).
Create a list item (POST /list/v4/items).
Update a list item (PUT /list/v4/items/{itemId}).
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.
List budget item headers (GET /budget/v4/budgetItemHeader).
Get a budget item header by ID (GET /budget/v4/budgetItemHeader/{id}).
List budget categories (GET /budget/v4/budgetCategory).
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.
Create a purchase request (POST /purchaserequest/v4/purchaserequests).
Get a purchase request by ID (GET /purchaserequest/v4/purchaserequests/{id}).
Get a travel profile (GET /api/travelprofile/v2.0/profile). Returns the calling user by default; pass userid_type and userid_value to impersonate.
List travel profile summaries (GET /api/travelprofile/v2.0/summary). LastModifiedDate is required by Concur.
Search Concur location reference data (GET /localities/v5/locations).
Sim's SAP Concur integration adds 70 tools to the AI agents you build in Sim's visual workflow builder. Manage expense reports, travel requests, cash advances, and more in SAP Concur.