Transfer types
Most integrations use
cross_border and internal heavily and touch the others via higher-level stream APIs.
Lifecycle
pending— queued, not yet submitted to settlementprocessing— submitted, awaiting on-chain or rail confirmationcompleted— finalized; funds settled at destinationfailed— settlement rejected (insufficient funds, rail error, compliance block)cancelled— withdrawn before submission (only frompending)
Create a transfer
Watch it settle
Three options: 1. Poll the transfertransfer.created, transfer.completed, transfer.failed, transfer.refunded. See webhooks.
3. Open an SSE connection — agents with sess_* tokens receive transfer_completed events pushed to their persistent channel.
Cross-border transfers
Cross-border transfers need a quote for the FX rate. Quote first, then use thequote_id on the transfer:
Batch transfers
For payroll, mass disbursements, or marketplace payouts:Refunds and disputes
- Refunds — full or partial reversal of a completed transfer. See
/v1/refunds. - Disputes — chargeback-style workflow for cards. See
/v1/disputes.