Authenticate: POST /v2/authenticate/api with login_id and api_key to receive an auth_token valid for 30 minutes; include it as X-Auth-Token in subsequent requests
Get a conversion quote: POST /v2/conversions/create with buy_currency, sell_currency, fixed_side ('buy' or 'sell'), amount, reason, and term_agreement: true to lock the exchange rate and receive a conversion_id
Create a beneficiary if not already stored: POST /v2/beneficiaries/create with bank_account_holder_name, bank_country, currency, and the required routing details for the destination country
Create the payment: POST /v2/payments/create with currency, beneficiary_id, amount, reason, reference, and conversion_id to link the locked conversion rate to this payment
Poll GET /v2/payments/{id} or use webhook callbacks to monitor status transitions (ready_to_send → completed or failed)
Known gotchas
The auth_token expires after 30 minutes of inactivity; implement token refresh logic rather than storing a long-lived token
Conversion and payment are separate steps; failing to link the conversion_id to the payment may result in the payment being funded at a spot rate rather than the locked rate
Beneficiary validation rules differ by country; use GET /v2/reference/beneficiary_required_details to retrieve required fields per currency/country before creating beneficiaries
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