Create a transfer
Moves funds between two accounts of the same customer using a locked quote.
Authorizations
JWT bearer token. Include as Authorization: Bearer <token>. See the Authentication guide for how to obtain one.
Headers
Unique key to ensure idempotent request processing. Required on all POST, PUT, and PATCH requests.
API version. Omit to use the default version.
"1"
Body
Same-asset transfer between two accounts of the same customer. The asset on amount must be enabled on both accounts. No FX is performed — sourceAmount and targetAmount on the response are equal to amount. The system generates a 1:1 quote internally and returns it on quote.
Source account that will be debited.
"a1b2c3d4-5e6f-7890-abcd-ef1234567890"
Target account that will be credited. Must belong to the same customer as the source account, must be in ACTIVE status, and must have amount.asset enabled. Cannot equal sourceAccountId.
"b2c3d4e5-6f70-8901-bcde-f12345678901"
Amount to move. The same value is debited from the source and credited to the target.
Your own identifier for the operation. Stored as given and returned on every read and every webhook. Free-form: it is not deduplicated, and the same value may appear on more than one operation. null when none was sent, and on a deposit credited from an incoming payment nobody requested.
1 - 255"order-2026-0043"
Response
Transfer accepted. The operation is in REQUESTED status.
A created operation. Withdrawals, swaps, deposits, and transfers share this shape; intent.type identifies which.
Your own identifier for the operation. Stored as given and returned on every read and every webhook. Free-form: it is not deduplicated, and the same value may appear on more than one operation. null when none was sent, and on a deposit credited from an incoming payment nobody requested.
1 - 255"order-2026-0043"
Reference to the customer that owns the operation.
Reference to a customer account, including the registered owner name.
Monetary amount expressed as a decimal string in the asset's canonical scale. Use a decimal-precision library (BigDecimal, Decimal) for arithmetic — never JavaScript Number. Request bodies use the scalar AmountValue instead.
Monetary amount expressed as a decimal string in the asset's canonical scale. Use a decimal-precision library (BigDecimal, Decimal) for arithmetic — never JavaScript Number. Request bodies use the scalar AmountValue instead.
Operation intent. Discriminated by type.
- Withdrawal
- Swap
- Deposit
- Transfer
Consumed quote. null for deposits created without a prior quote; present for all other operations.
The refund you asked for on this deposit. null on every operation nobody asked back, and on a return the payer's bank issued on its own.
Rail-level transactions for the operation. Only confirmed transactions are included; pending or failed rail movements are omitted.
What compliance is waiting on for this operation, read live at request time. All four groups are empty for an operation that never went through a compliance review. An operation in ACTION_REQUIRED is waiting on whatever is in currentlyDue and errors.
The operation's current state. Carries a status, optional reason, and the time the state was entered.
System-managed labels stamped onto the operation when it is created. Inherited from the account's propagating tags.