Register an application in the Ramp developer portal and complete OAuth 2.0 authorization at https://app.ramp.com/v1/authorize; request scopes including 'transactions:read' and 'receipts:read'.
Exchange the authorization code for tokens at https://api.ramp.com/developer/v1/token; store both the access token and refresh token — access tokens have a limited lifetime.
List transactions with GET https://api.ramp.com/developer/v1/transactions; use query parameters 'from_date', 'to_date', and 'state' (e.g., 'CLEARED') to filter; responses are paginated via 'next' cursor in the response body.
To retrieve receipts associated with a transaction, GET /developer/v1/transactions/{transaction_id}/receipts; each receipt object includes a 'receipt_url' for the file download.
Upload a receipt to match to a transaction by POSTing to /developer/v1/transactions/{transaction_id}/receipts with a multipart/form-data body containing the receipt file.
For bulk exports, use the accounting sync endpoints (/developer/v1/accounting/sync) which batch transaction and GL-coding data in formats suited for downstream accounting systems.
Known gotchas
Ramp's API versioning is actively evolving; the 'developer/v1' path reflects their public API tier, but some endpoints in their internal documentation refer to different path structures — always check the official developer docs for the current canonical path.
Receipt URLs returned by the API are pre-signed and time-limited; download them immediately rather than storing the URL for later use.
OAuth tokens issued for one Ramp account cannot access a different account's data even if the same user exists in both — each Ramp entity requires its own OAuth authorization flow.
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