Skip to main content
POST
Move funds between two of an account’s virtual accounts in the same currency — for example, sweeping collections into an operating account. Transfers are book transfers: the source virtual account is debited and the destination credited together — both balance changes take effect at once, so the transfer settles synchronously. Creates a same-account, same-currency book transfer between two virtual accounts. The operation is idempotent on Idempotency-Key — replaying the same key returns the existing transfer’s id.
Validation: A 422 is returned when any business rule fails: source must differ from destination; amount > 0; both virtual accounts must belong to this account; currencies must match; both virtual accounts must be active; and the source balance must cover the amount (otherwise an insufficient-funds error is returned).

Path Parameters

string
required
Account id. Both virtual accounts in the transfer must belong to this account.

Headers

string
required
Idempotency key. Replaying the same key returns the previously created transfer instead of creating a new one.

Request Body

string
required
Source virtual account id (va_…).
string
required
Destination virtual account id (va_…). Must differ from the source.
decimal
required
Transfer amount. Must be greater than 0; maximum 18 digits with 6 decimal places.
string | null
Client/bank-visible reference. Maximum 40 characters.
string | null
Internal note. Maximum 500 characters.

Response

Returns 200 with the new transfer’s id. Use Get Transfer to retrieve the full object.
string
Transfer id (atx_…).