Deriv API
Documentation
Payment Agent

Withdraw

PostAuth required

Withdraws funds from the authenticated client's account through a payment agent. Requires a 6-digit verification_code obtained from POST /payment-agents/v1/withdraw/verification_code. A withdrawal is initially requested (transaction_id is null at this stage), then pending, and finally complete, rejected, or failed. Supply an optional request_id to track status afterwards via GET /payment-agents/v1/withdraw/{request_id}.

Endpoint

Post/payment-agents/v1/withdraw

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

Status Codes

200OK - Withdrawal accepted. Returns the transaction status (typically pending).
400Bad request - One of: AgentIDInvalid, AgentInactive, AgentSelfWithdraw, AgentCurrencyUnsupported, WithdrawalAmountMinimum, WithdrawalAmountMaximum, WalletFundsInsufficient, VerificationCodeFormatInvalid, InvalidOTP, OTPValidationFailed, InvalidRequestIDFormat, RequestIDUsed.
401Unauthorized - Invalid or missing authentication.
403Forbidden - Valid token but insufficient scope (payment scope required).
500Internal server error.
504Gateway timeout - Upstream service unavailable.

Error Responses

400Bad request - invalid verification code
{
  "data": {},
  "errors": [
    {
      "status": 400,
      "code": "InvalidOTP",
      "detail": { "message": "Invalid OTP" }
    }
  ],
  "metadata": {
    "endpoint": "/payment-agents/v1/withdraw",
    "method": "POST",
    "timing": 19
  }
}
400Bad request - amount below minimum
{
  "data": {},
  "errors": [
    {
      "status": 400,
      "code": "WithdrawalAmountMinimum",
      "detail": { "message": "Amount is below the agent's minimum withdrawal limit" }
    }
  ],
  "metadata": {
    "endpoint": "/payment-agents/v1/withdraw",
    "method": "POST",
    "timing": 16
  }
}

About Withdraw

The POST /payment-agents/v1/withdraw endpoint: Withdraws funds from the authenticated client's account through a payment agent. Requires a 6-digit verification_code obtained from POST /payment-agents/v1/withdraw/verification_code. A withdrawal is initially requested (transaction_id is null at this stage), then pending, and finally complete, rejected, or failed. Supply an optional request_id to track status afterwards via GET /payment-agents/v1/withdraw/{request_id}.

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