Skip to main contentTransfers represent both the request and execution of fund transfers from a source to a target. They provide upfront fee quotes and track the complete lifecycle from initiation through completion, failure, or reversal.
Fee Quotes
Every transfer provides a comprehensive fee quote in the fees array. This allows you to show users exactly what they’ll pay before any money moves.
To review fees before execution:
- Create a transfer with
execute: false
- Review the
fees array in the response
- Call
POST /transfers/{transferId}/execute when ready to proceed
For automatic execution without fee review, create a transfer with execute: true.
Transfer Lifecycle
When you create a transfer, it will be in one of these statuses that determine what action you need to take:
draft - Transfer is ready but requires manual execution via the /execute endpoint
awaiting_funds - Transfer is waiting for manual funding (see sourceDepositInstructions for deposit details)
processing - Transfer is being executed (no action needed - poll for completion)
completed - Transfer completed successfully
failed - Transfer failed (see failureReason for details)
canceled - Transfer was canceled before processing
expired - Transfer fees are no longer valid after the expiration time (typically 10-15 minutes). Create a new transfer to get updated fees.
reversed - Transfer was reversed after completion (see reversalReason for details)
Execution Control
execute: true: Transfer will automatically attempt to execute
execute: false: Transfer will be created in draft status and you must call the /execute endpoint. Use this to obtain a fee quote or validate a transfer destination before deciding whether to execute the Transfer.
Sources and Targets
- A source can be an Account or a Payment Method
- A target can be an Account, Payment Method, Onchain Address, or Email Address
Transfer Execution
When a transfer reaches completed status, it contains the final execution details that delivered funds to the target and completion timestamps.
Fees
Transfer fees vary by source, target, and transfer type:
- Network fees - Gas costs for on-chain crypto transfers (e.g., ETH gas fees)
- Processing fees - Platform fees for transfer processing (typically 2.50−5.00)
- Wire fees - Traditional banking fees for wire transfers (typically $15.00)
- Exchange fees - Asset conversion fees (typically $1.00 plus spread)
- Spread fees - Market maker fees for crypto-to-crypto conversions
All fees are disclosed upfront in the fees array when you create a transfer.
Fee Expiration: Fee quotes are valid for a limited time (typically 10-15 minutes from creation). The expiresAt field shows exactly when the fee quote will expire. If you don’t execute before this time, the transfer will move to expired status and you’ll need to create a new transfer to get updated fees.