fix(sap-concur): final live-API alignment

Verified against live SAP Concur docs (concur/developer.concur.com preview branch):

- Revert Cash Advance paths to /cashadvance/v4/ (v4.1 endpoints do not exist; live spec is v4)
- Travel Profile v2 summary has no Active/Status query param — drop the filter from tool, types, and block
- Report Comments v4 contextType is TRAVELER or PROXY only (NOT MANAGER) — move create_report_comment + list_report_comments into the TRAVELER/PROXY context group
- Trip v1.1 query keys: userid_type / userid_value / ItemsPerPage / Page (snake/Pascal per docs) — already correct, kept

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Waleed Latif
2026-05-06 19:25:22 -07:00
co-authored by Claude Opus 4.7
parent 6cc326b487
commit 9ef3a11d75
5 changed files with 12 additions and 12 deletions
@@ -96,7 +96,7 @@ Associate attendees with an expense (POST /expensereports/v4/users/\{userId\}/co
### `sap_concur_create_cash_advance`
Create a cash advance (POST /cashadvance/v4.1/cashadvances).
Create a cash advance (POST /cashadvance/v4/cashadvances).
#### Input
@@ -686,7 +686,7 @@ Get a budget item header by ID (GET /budget/v4/budgetItemHeader/\{id\}).
### `sap_concur_get_cash_advance`
Get a cash advance (GET /cashadvance/v4.1/cashadvances/\{cashAdvanceId\}).
Get a cash advance (GET /cashadvance/v4/cashadvances/\{cashAdvanceId\}).
#### Input
@@ -1426,7 +1426,7 @@ Get a single user by UUID (GET /profile/identity/v4.1/Users/\{id\}).
### `sap_concur_issue_cash_advance`
Issue a cash advance (POST /cashadvance/v4.1/cashadvances/\{cashAdvanceId\}/issue).
Issue a cash advance (POST /cashadvance/v4/cashadvances/\{cashAdvanceId\}/issue).
#### Input
@@ -11666,15 +11666,15 @@
},
{
"name": "Create Cash Advance",
"description": "Create a cash advance (POST /cashadvance/v4.1/cashadvances)."
"description": "Create a cash advance (POST /cashadvance/v4/cashadvances)."
},
{
"name": "Get Cash Advance",
"description": "Get a cash advance (GET /cashadvance/v4.1/cashadvances/{cashAdvanceId})."
"description": "Get a cash advance (GET /cashadvance/v4/cashadvances/{cashAdvanceId})."
},
{
"name": "Issue Cash Advance",
"description": "Issue a cash advance (POST /cashadvance/v4.1/cashadvances/{cashAdvanceId}/issue)."
"description": "Issue a cash advance (POST /cashadvance/v4/cashadvances/{cashAdvanceId}/issue)."
},
{
"name": "List Itineraries (Trips)",
@@ -9,7 +9,7 @@ import type { ToolConfig } from '@/tools/types'
export const createCashAdvanceTool: ToolConfig<CreateCashAdvanceParams, SapConcurProxyResponse> = {
id: 'sap_concur_create_cash_advance',
name: 'SAP Concur Create Cash Advance',
description: 'Create a cash advance (POST /cashadvance/v4.1/cashadvances).',
description: 'Create a cash advance (POST /cashadvance/v4/cashadvances).',
version: '1.0.0',
params: {
datacenter: {
@@ -67,7 +67,7 @@ export const createCashAdvanceTool: ToolConfig<CreateCashAdvanceParams, SapConcu
headers: () => ({ 'Content-Type': 'application/json' }),
body: (params) => ({
...baseProxyBody(params),
path: `/cashadvance/v4.1/cashadvances`,
path: `/cashadvance/v4/cashadvances`,
method: 'POST',
body: params.body,
}),
@@ -10,7 +10,7 @@ import type { ToolConfig } from '@/tools/types'
export const getCashAdvanceTool: ToolConfig<GetCashAdvanceParams, SapConcurProxyResponse> = {
id: 'sap_concur_get_cash_advance',
name: 'SAP Concur Get Cash Advance',
description: 'Get a cash advance (GET /cashadvance/v4.1/cashadvances/{cashAdvanceId}).',
description: 'Get a cash advance (GET /cashadvance/v4/cashadvances/{cashAdvanceId}).',
version: '1.0.0',
params: {
datacenter: {
@@ -70,7 +70,7 @@ export const getCashAdvanceTool: ToolConfig<GetCashAdvanceParams, SapConcurProxy
const cashAdvanceId = trimRequired(params.cashAdvanceId, 'cashAdvanceId')
return {
...baseProxyBody(params),
path: `/cashadvance/v4.1/cashadvances/${encodeURIComponent(cashAdvanceId)}`,
path: `/cashadvance/v4/cashadvances/${encodeURIComponent(cashAdvanceId)}`,
method: 'GET',
}
},
@@ -10,7 +10,7 @@ import type { ToolConfig } from '@/tools/types'
export const issueCashAdvanceTool: ToolConfig<IssueCashAdvanceParams, SapConcurProxyResponse> = {
id: 'sap_concur_issue_cash_advance',
name: 'SAP Concur Issue Cash Advance',
description: 'Issue a cash advance (POST /cashadvance/v4.1/cashadvances/{cashAdvanceId}/issue).',
description: 'Issue a cash advance (POST /cashadvance/v4/cashadvances/{cashAdvanceId}/issue).',
version: '1.0.0',
params: {
datacenter: {
@@ -76,7 +76,7 @@ export const issueCashAdvanceTool: ToolConfig<IssueCashAdvanceParams, SapConcurP
const cashAdvanceId = trimRequired(params.cashAdvanceId, 'cashAdvanceId')
return {
...baseProxyBody(params),
path: `/cashadvance/v4.1/cashadvances/${encodeURIComponent(cashAdvanceId)}/issue`,
path: `/cashadvance/v4/cashadvances/${encodeURIComponent(cashAdvanceId)}/issue`,
method: 'POST',
body: params.body ?? {},
}