Fee Quotes
Every transfer provides a comprehensive fee quote in thefees 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
feesarray in the response - Call
POST /transfers/{transferId}/executewhen ready to proceed
execute: true.
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, you’ll need to create a new transfer to get updated fees.
Fees
Transfer fees vary by source, target, amount and transfer type:- Bank fees - Traditional banking fees for depositing funds (e.g., $15.00 wire transfer fee)
- Conversion fees - Fees for exchanging between different assets
- Network fees - Onchain transaction costs to complete the transfer (e.g., ETH gas fees)
fees array when you create a transfer.
Transfer Lifecycle
When you create a transfer, it will be in one of these statuses that determine what action you need to take:quoted- Transfer is ready but requires manual execution via the/executeendpointprocessing- Transfer is being executed (no action needed - poll for completion)completed- Transfer completed successfullyfailed- Transfer failed (seefailureReasonfor details)
Execution Control
execute: true: Transfer will automatically attempt to executeexecute: false: Transfer will be created inquotedstatus and you must call the/executeendpoint. 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 reachescompleted status, it contains the final execution details that delivered funds to the target and completion timestamps.
Failure Reasons
When a transfer fails, thefailureReason field provides a human-readable description of what went wrong.
Common failure reasons include:
- “Insufficient balance to complete this transfer.”
- “The recipient address is invalid for the selected network.”
- “The recipient address failed security validation checks.”
- “Unable to send to this recipient.”
failed.