Obtain an OAuth 2.0 token using the Concur Authentication API; v4 APIs require the new auth framework and do not accept v1 tokens
POST to the Reports v4 endpoint to create a new expense report header with fields such as name, business purpose, policy ID, and the traveler's login ID
Add individual expense entries to the report by POSTing to the report entries sub-resource, including amount, currency, expense type code, and transaction date
Attach receipt images by calling the Receipts v4 API separately and linking the returned receipt URL to the expense entry
Submit the report for approval by PATCHing the report status to Submitted; confirm the transition via the workflow status field in the response
Subscribe to the Concur Event Subscription Service for report status change events to track approval, rejection, and payment progression asynchronously
Known gotchas
Policy ID and expense type codes are company-specific configuration values that must be fetched from the List API at setup time; hardcoding them will break when client configuration changes
The v3 Reports API is a separate older surface; mixing v3 and v4 calls on the same report can produce inconsistent state — use one version end-to-end
Company-level access tokens are required for some administrative operations; user-delegated tokens may lack permissions to submit on behalf of other travelers
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp