Transfer (Deposit)
PostAuth required
Lets an authenticated payment agent deposit funds directly into a client's Deriv wallet, identified by their account nickname (to_nickname). On success, returns a transaction status with status "complete" and a transaction_id. Transfers complete synchronously in the same response.
Endpoint
Post
/payment-agents/v1/transferBase URL: https://api.derivws.com
Status Codes
200OK - Transfer completed. Returns the transaction status.
400Bad request - One of: AgentIDInvalid, AgentInactive, AgentSelfTransfer, AgentCurrencyUnsupported, NicknameNotFound, NoClientWallet, ClientCountryUnsupported, WalletFundsInsufficient, 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 - insufficient funds
{
"data": {},
"errors": [
{
"status": 400,
"code": "WalletFundsInsufficient",
"detail": { "message": "The agent's wallet does not hold enough funds for this transfer" }
}
],
"metadata": {
"endpoint": "/payment-agents/v1/transfer",
"method": "POST",
"timing": 38
}
}400Bad request - duplicate request_id
{
"data": {},
"errors": [
{
"status": 400,
"code": "RequestIDUsed",
"detail": { "message": "The request_id has already been used" }
}
],
"metadata": {
"endpoint": "/payment-agents/v1/transfer",
"method": "POST",
"timing": 14
}
}Authentication Required
This endpoint requires the
Deriv-App-ID header to identify your application. OAuth2 Scope: paymentAbout Transfer (Deposit)
The POST /payment-agents/v1/transfer endpoint: Lets an authenticated payment agent deposit funds directly into a client's Deriv wallet, identified by their account nickname (to_nickname). On success, returns a transaction status with status "complete" and a transaction_id. Transfers complete synchronously in the same response.
Any other questions? Get in touch