Skip to main content

CreateTransferRequest

Request to move funds between two wallets of the account in the same currency

fromWalletIdstring<uuid>required

Wallet to debit. Must belong to the account in the AccountId header

toWalletIdstring<uuid>required

Wallet to credit. Must belong to the same account and share the source wallet's currency

amountstringrequired

Amount to move, as a decimal string greater than zero in the wallets' currency, with at most two decimal places

Possible values: non-empty, Value must match regular expression ^(?!0+(\.0+)?$)[0-9]+(\.[0-9]{1,2})?$

Example: 250.00
currencystringrequired

ISO 4217 code of both wallets. A transfer between wallets of different currencies is rejected with validation_failed

Possible values: non-empty, Value must match regular expression [A-Z]{3}

Example: AED
referencestring | nullnullable

Reference shown on both wallets' entries

Possible values: <= 100 characters

Example: Sweep to pooled account
externalIdstring | nullnullable

Your own reference for the transfer. Unique per account: a repeat with the same externalId returns the existing transfer instead of creating another; a repeat with the same externalId and different fields is rejected with 409 conflict. Omit it to create a new transfer on every request

Possible values: non-empty and <= 36 characters, Value must match regular expression .*\S.*

Example: sweep-2026-10-16-42
CreateTransferRequest
{
"fromWalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"toWalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"amount": "250.00",
"currency": "AED",
"reference": "Sweep to pooled account",
"externalId": "sweep-2026-10-16-42"
}