Deriv API
Documentation
Wallet

Transfer Between Wallets

PostAuth requiredBeta

Moves funds between two wallets owned by the authenticated client, in the same currency. Any applicable fee is deducted from the amount before execution, so validate the transfer first to preview the fee and the net amount. request_id is the idempotency key: resubmitting one you have already used does not create a duplicate transfer.

Endpoint

Post/wallet/v1/transfers

Base URL: https://api.derivws.com

Status Codes

200OK - The transfer was executed, with the request_id echoed back.
400Bad request - The transfer breaks a transfer rule, or the body failed validation.
401Unauthorized - Missing or invalid Bearer token.
403Forbidden - Valid token but insufficient scope (payment scope required).
429Too many requests - Rate limit exceeded.
500Internal server error - errors[0].code will be InternalServerError.
503Service unavailable - Request rejected by the gateway circuit breaker.
504Gateway timeout - The service did not respond in time.

Error Responses

400Validation error
{
  "errors": [
    {
      "status": 400,
      "code": "ValidationError",
      "message": "source_wallet_id must be a UUID",
      "field": "source_wallet_id"
    }
  ]
}
400Insufficient balance
{
  "errors": [
    {
      "status": 400,
      "code": "BadRequest",
      "message": "The source wallet does not hold enough funds for this transfer"
    }
  ]
}

About Transfer Between Wallets

The POST /wallet/v1/transfers endpoint: Moves funds between two wallets owned by the authenticated client, in the same currency. Any applicable fee is deducted from the amount before execution, so validate the transfer first to preview the fee and the net amount. request_id is the idempotency key: resubmitting one you have already used does not create a duplicate transfer.

Click to open live chat support. Get instant help from our support team.