Execute transfer
Executes a transfer which was created using the Create a transfer endpoint.
Authorizations
A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Generate Bearer Token section of our Authentication docs for information on how to generate your Bearer Token.
Headers
An optional string request header for making requests safely retryable. When included, duplicate requests with the same key will return identical responses. Refer to our Idempotency docs for more information on using idempotency keys.
1 - 128Path Parameters
The ID of the transfer.
^transfer_[a-f0-9\-]{36}$Response
Successfully committed a transfer.
A Transfer represents all the information needed to execute a transfer and tracks the lifecycle of a transfer from initiation through completion or failure.
The source of the transfer.
- Account
- Payment Method
- Onchain Address
- Originating Bank Account (US)
{
"accountId": "account_af2937b0-9846-4fe7-bfe9-ccc22d935114",
"asset": "usd"
}The target of the transfer.
- Account
- Payment Method
- Onchain Address
- Email Instrument
{
"accountId": "account_af2937b0-9846-4fe7-bfe9-ccc22d935114",
"asset": "usd"
}The ID of the transfer. Required when validateOnly is false.
"transfer_af2937b0-9846-4fe7-bfe9-ccc22d935114"
The current status of the transfer, indicating what action you need to take next. Required when validateOnly is false.
quoted, processing, completed, failed "quoted"
The amount of the source asset that will be transferred out, as a decimal string in standard unit denomination.
"103.50"
The asset symbol of the source amount.
1 - 42"usd"
The amount of the target asset that will be received, as a decimal string in standard unit denomination.
"100.00"
The asset symbol of the target amount.
1 - 42"usdc"
Exchange rate information for currency conversion. The rate indicates how much of the target asset is equivalent to one unit of the source asset.
{
"sourceAsset": "usd",
"targetAsset": "usdc",
"rate": "1"
}The fees associated with this transfer. Different transfer types have different fee structures.
NOTE: These examples are not exhaustive.
Common examples:
- Crypto transfers: Network fees (gas) paid in the native token
- Fiat conversions: Processing fees + exchange fees in USD
- Wire transfers: Wire fees ($15) + processing fees ($5) in USD
- Crypto conversions: Spread fees paid in the source asset.
[
{
"type": "bank",
"amount": "20",
"asset": "usd"
},
{
"type": "conversion",
"amount": "1.00",
"asset": "usdc"
},
{
"type": "network",
"amount": "0.01",
"asset": "usdc"
}
]A point-in-time snapshot of estimated values for a transfer where exact amounts cannot be locked in at quote time (e.g., when the executed rate is determined at execution time and moves with the market).
Present in both pre-execution and post-execution states:
-
Quoted state: top-level fields whose values cannot be guaranteed are absent;
estimateholds their estimated values. -
Completed state: top-level fields contain the actual executed values;
estimateis retained as an immutable audit snapshot of the pre-execution estimate.
{
"exchangeRate": {
"sourceAsset": "usdc",
"targetAsset": "eur",
"rate": "0.85"
},
"targetAmount": "85.00",
"targetAsset": "eur",
"fees": [
{
"type": "conversion",
"amount": "0.01",
"asset": "usdc"
}
],
"estimatedAt": "2023-10-08T14:30:00Z"
}The date and time the transfer was completed.
"2025-01-01T00:05:00Z"
The reason for failure, if the transfer failed. Only present when status is failed.
"Insufficient balance to complete this transfer."
The date and time when this transfer will expire if not executed. Only present for quoted status. A new transfer must be created to obtain an updated quote after expiration. Required when validateOnly is false.
"2025-01-01T00:15:00Z"
The date and time the transfer was executed and moved to processing. Only present when status has progressed beyond quoted.
"2025-01-01T00:01:30Z"
The date and time the transfer was created. Required when validateOnly is false.
"2025-01-01T00:00:00Z"
The date and time the transfer was last updated. Required when validateOnly is false.
"2025-01-01T00:00:00Z"
Optional metadata as key-value pairs. Use this to store additional structured information on a resource, such as customer IDs, order references, or any application-specific data. Up to 10 key/value pairs may be provided. Keys and values are both strings. Keys must be ≤ 40 characters; values must be ≤ 500 characters.
{
"customer_id": "cust_12345",
"order_reference": "order-67890"
}Additional details about the transfer. For example, if the transfer was sent to a deposit destination, the information about that destination will be included in this field.
{
"depositDestination": {
"id": "depositDestination_af2937b0-9846-4fe7-bfe9-ccc22d935114"
},
"onchainTransactions": [
{
"transactionHash": "0x363cd3b3d4f49497cf5076150cd709307b90e9fc897fdd623546ea7b9313cecb",
"network": "base"
}
]
}