Create a transfer
Send funds from a customer’s wallet to an external address:Request fields
| Field | Type | Required | Description |
|---|---|---|---|
customerId | string | Yes | Customer initiating the transfer |
amount | string | Yes | Amount to send (decimal string) |
destinationCurrency | string | Yes | Currency to deliver (e.g. usdc) |
destinationPaymentRail | string | Yes | Network to send on (e.g. solana, ethereum) |
destinationAddress | string | Yes | Recipient address |
sourceCurrency | string | No | Source currency (defaults to usdc) |
clientReferenceId | string | No | Your own reference ID |
Onchain vs fiat transfers
The transfer endpoint handles both crypto and fiat rails:| Destination Rail | Type | KYC Required |
|---|---|---|
solana, ethereum, polygon, arbitrum, base, optimism, tron | Onchain transfer | No |
ach, sepa, faster_payments | Fiat transfer | Yes |
Tracking transfers
After creating a transfer, track its progress via:GET /v1/transactions/{id}to poll the status- Subscribe to
transaction.updatedwebhooks for real-time updates
destinationTxHash field populates once the transfer is settled onchain.