Flow overview
Prerequisites
- An API key (
sk_live_…/sk_test_…) for an account whose KYB covers the corridor. - A recipient with a fiat (bank) payment method in the destination currency. Save its
recipientId.
Step 1: Get a quote
Fetch the best available rate for your currency pair. PassrecipientId so the quote accounts for the recipient’s payment method:
quoteId (to poll status) and the opaque protocol route token (to pin this route at execution). Execute before expiresAt.
Step 2: Execute the payout
Re-send the corridor and amount, plus therouteProtocol token from the quote. Some corridors require a supporting document — pass it as supportingDocumentKey when needed (corridor requirements surface in GET /recipients/requirements).
transactionId and initial status. The payout begins processing immediately — there’s no separate “create” then “execute” step.
Step 3: Track status
Poll the status endpoint with yourquoteId, or subscribe to webhooks (recommended):
initiated → compliance_cleared → instructions_sent → collected → converting → settling → delivered (terminal: delivered or failed).
For production, subscribe to payout.status.updated instead of polling — see the Webhooks guide.