Skip to main content

Overview

Transfers move funds between two accounts owned by the same customer. They are same-asset — the same value is debited from the source account and credited to the target account, with no FX conversion. The system generates a 1:1 quote internally and returns it on the response; you do not need to create a quote first. To move between assets, execute a swap and then transfer.

Prerequisites

Steps

1

Create the transfer

Reference the source account, the target account, and the amount to move. Source and target must differ; the target account must be in ACTIVE status with the requested asset enabled.
Returns 201 immediately with the operation in REQUESTED status. Settlement happens asynchronously.
2

Track the transfer

Subscribe to OPERATION_COMPLETED and OPERATION_FAILED to receive the terminal outcome — both deliver the same payload as OPERATION_REQUESTED, with currentState.status set to the new status (and currentState.reason populated on failure). The intermediate PROCESSING status is not published as a webhook; poll GET /v1/operations/{operationId} if you need to surface it in your UI.
Cross-customer transfers are not supported — both accounts must belong to the same customer. If the target account belongs to another customer, the API returns 404 RESOURCE_NOT_FOUND.

What happens next