Create Transfer
POST
/web/v1/transfer/command/create JWTInitiates a wallet-to-wallet transfer. The transfer is processed asynchronously; the response contains the created order with a PENDING status.
This endpoint supports idempotency via the idempotentKey field. Duplicate requests with the same key within 30 seconds return the original response.
Authentication
Requires a valid JWT token and Turnstile verification.
Request Parameters
| Name | Type | Required | In | Description |
|---|---|---|---|---|
idempotentKey | string | Required | body | Client-provided idempotency key max 128 characters |
fromWalletId | string | Required | body | Source wallet ID max 64 characters |
toWalletId | string | Required | body | Target wallet ID max 64 characters |
currency | string | Required | body | Currency code (ISO format, e.g. "USD") 3-5 characters |
amount | number | Required | body | Transfer amount in major units (e.g. 100.50) must be positive |
remark | string | Optional | body | Optional memo or note max 256 characters |
Success Response
Validation Error 400
{
"code": "4000",
"message": "Amount must be positive",
"data": null
}Error Responses
| HTTP Status | Code | Description |
|---|---|---|
| 400 | 4000 | Validation error (missing or invalid fields) |
| 401 | 4010 | Unauthorized (invalid or expired JWT) |
| 409 | 4090 | Idempotent request conflict |
Notes
- The transfer executes asynchronously. Poll the order status endpoint to check completion.
- The
feeAmountis calculated based on the wallet tariff configuration. - The
totalAmountequalsamount + feeAmount.