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; callers normally do not provide quoteId.
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.
Optional. ID of a quote returned by POST /api/quotes. Reserved for future use; same-asset transfers do not require one and generate a 1:1 quote internally.
"d4e5f6a7-b8c9-0123-defa-2345678901bc"
Response
Transfer accepted. The operation is in REQUESTED status.
A created operation. Withdrawals, swaps, deposits, and transfers share this shape; intent.type identifies which. The quote field is always present — transfers take no quoteId and get a 1:1 quote generated internally.
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
Reference to the quote consumed by the operation.
A single entry in an operation's state history. Carries a status, optional reason, and the time the state was entered.
Full state history of the operation, oldest first. The last entry equals currentState.
System-managed labels stamped onto the operation when it is created. Inherited from the account's propagating tags.
[
{ "key": "psp", "value": "Amazon" },
{ "key": "compliance-tier", "value": "high" }
]