Deriv API
Documentación
Wallet

Wallet REST

Enumere los wallets del cliente autenticado, consulte las transacciones de cada uno y mueva fondos entre wallets y cuentas de plataforma de trading. Los endpoints de tipo de cambio y transferencia están en versión beta y pueden modificarse sin previo aviso.

Descripción general

Las API de Wallet permiten que una aplicación consulte los wallets del cliente autenticado y su historial de transacciones, y mueva fondos entre ellos. Liste todos los wallets con sus saldos a través del endpoint wallets, navegue por los movimientos de un wallet específico a través del endpoint transactions, y mueva dinero con los endpoints transfers. Todos los endpoints son llamadas REST estándar y requieren el alcance OAuth2 payment.

Flujo de trabajo típico

  1. Enumere los wallets del cliente con GET /wallet/v1/wallets. Cada entrada contiene sus saldos en la moneda nativa del wallet; proporcione conversion_currency para recibir también un total convertido.
  2. Obtenga los movimientos de un wallet con GET /wallet/v1/transactions/{wallet_type}. Los resultados están paginados por cursor; siga links.next y links.prev para navegar entre ellos.
  3. Para una transferencia entre distintas divisas, consulte primero el tipo de cambio con GET /wallet/v1/exchange-rate. Envíe el exchange_rate y el rate_token que devuelve al ejecutar.
  4. Previsualice la transferencia con POST /wallet/v1/transfers/validate. No mueve ningún dinero y devuelve la comisión, el monto neto que sale de la cuenta de origen y el monto estimado que recibe el destino.
  5. Ejecútelo con POST /wallet/v1/transfers entre wallets en la misma divisa, POST /wallet/v1/transfers/exchange entre wallets en divisas distintas, o POST /wallet/v1/transfers/platforms entre un wallet y una cuenta de plataforma de trading. Cada uno toma un request_id como clave de idempotencia.

Endpoints Disponibles

Lista de WalletsGet
Devuelve los wallets pertenecientes al cliente autenticado, con cada saldo mostrado en la moneda nativa del wallet. Proporcione un conversion_currency para recibir también cada saldo convertido a esa moneda, y utilice start_date_time y end_date_time para delimitar el saldo en la ventana de tiempo./wallet/v1/wallets
Transacciones de WalletGet
Devuelve una lista paginada por cursor de transacciones para uno de los wallets del cliente autenticado, identificado por wallet_type. Filtre por request_id, transaction_currency y un rango de fechas. Cada fila contiene un canal que muestra cómo se movió el dinero y una categoría calculada en relación con el solicitante./wallet/v1/transactions/{wallet_type}
Tipo de CambioGetBeta
Devuelve una cotización para la conversión entre dos divisas. La cotización incluye el tipo de cambio y un rate_token; pase ambos a una transferencia entre divisas para ejecutarla al tipo de cambio cotizado./wallet/v1/exchange-rate
Validar TransferenciaPostBeta
Verifica una transferencia contra las reglas de transferencia antes de ejecutarla, y devuelve la comisión, el monto neto que sale de la cuenta de origen y el monto estimado que recibe el destino. La validación no mueve dinero. Una transferencia no válida devuelve un error que describe lo que falló, por lo que is_valid siempre es verdadero en caso de éxito./wallet/v1/transfers/validate
Transferencia entre WalletsPostBeta
Mueve fondos entre dos wallets pertenecientes al cliente autenticado, en la misma moneda. Cualquier comisión aplicable se deduce del monto antes de la ejecución, por lo que valide primero la transferencia para obtener una vista previa de la comisión y el monto neto. request_id es la clave de idempotencia: reenviar una que ya ha utilizado no crea una transferencia duplicada./wallet/v1/transfers
Transferencia entre DivisasPostBeta
Mueve fondos entre dos wallets pertenecientes al cliente autenticado que tienen diferentes monedas. Consulte primero el tipo de cambio con el endpoint exchange-rate, luego envíe el exchange_rate y el rate_token devueltos para ejecutar a esa tasa. Cualquier comisión de cambio de divisa aplicable se deduce del monto./wallet/v1/transfers/exchange
Transferencia de plataformaPostBeta
Mueve fondos entre un wallet y una cuenta de plataforma de trading que pertenece al cliente autenticado. direction establece qué lado se debita: from_wallet financia la cuenta de la plataforma, to_wallet financia el wallet. Cuando el wallet y la cuenta de la plataforma tienen divisas diferentes, también envíe wallet_currency con un exchange_rate cotizado y un rate_token./wallet/v1/transfers/platforms

Autentificación

Todos los endpoints requieren el encabezado Deriv-App-ID y un encabezado Authorization: Bearer YOUR_OAUTH_TOKEN. El token debe tener el alcance payment; de lo contrario, la API devuelve 403 Forbidden.

Alcances de OAuth2

EndpointAlcance
GET /wallet/v1/walletspayment
GET /wallet/v1/transactions/{wallet_type}payment
GET /wallet/v1/exchange-ratepayment
POST /wallet/v1/transfers/validatepayment
POST /wallet/v1/transferspayment
POST /wallet/v1/transfers/exchangepayment
POST /wallet/v1/transfers/platformspayment
1curl -X GET "https://api.derivws.com/wallet/v1/wallets?conversion_currency=USD" \
2  -H "Deriv-App-ID: YOUR_APP_ID" \
3  -H "Authorization: Bearer YOUR_OAUTH_TOKEN"

Códigos de estado de respuesta

La API utiliza códigos de estado HTTP estándar para indicar éxito o fallo:

2xx Éxito
200 OK — Solicitud exitosa
Errores 4xx/5xx
400 Bad Request — Parámetros no válidos
401 Unauthorized — Autenticación no válida o faltante
403 Forbidden — El token carece del alcance payment
404 Not Found — Wallet no encontrado
429 Too Many Requests — Límite de solicitudes excedido
500 Internal Server Error — Error del lado del servidor
503 Service Unavailable — Solicitud rechazada por el disyuntor del gateway
504 Gateway Timeout — Tiempo de espera del servicio upstream

Formato de respuesta de error

Todas las respuestas de error siguen un formato consistente con un array errors. Cada entrada contiene un status numérico, un code legible por máquina y un message legible por humanos:

1{
2  "errors": [
3    {
4      "status": 400,
5      "code": "BadRequest",
6      "message": "conversion_currency must be a 3-letter ISO currency code"
7    }
8  ]
9}

Los códigos de error incluyen: BadRequest, ValidationError, CurrencyNotAllowed, DailyLimitError, DuplicateRequestID, Unauthorized, NotFound, InternalServerError

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