Deriv API
Documentation
Wallet

Wallet REST

Listez les wallets du client authentifié, parcourez les transactions pour chacun d'eux et déplacez des fonds entre les wallets et les comptes de plateformes de trading. Les points de terminaison du taux de change et des transferts sont en version bêta et peuvent être modifiés sans préavis.

Vue d'ensemble

Les API Wallet permettent à une application de lire les wallets du client authentifié et leur historique de transactions, et de déplacer des fonds entre eux. Listez chaque wallet avec ses soldes via le point de terminaison wallets, parcourez les mouvements d'un wallet unique via le point de terminaison transactions, et déplacez des fonds avec les points de terminaison transfers. Tous les points de terminaison sont des appels REST standard et requièrent la portée OAuth2 payment.

Flux de travail typique

  1. Listez les wallets du client avec GET /wallet/v1/wallets. Chaque entrée indique ses soldes dans la devise native du wallet ; fournissez conversion_currency pour recevoir également un total converti.
  2. Récupérez les mouvements d'un wallet avec GET /wallet/v1/transactions/{wallet_type}. Les résultats sont paginés par curseur ; suivez links.next et links.prev pour les parcourir.
  3. Pour un transfert entre différentes devises, obtenez d'abord le taux avec GET /wallet/v1/exchange-rate. Envoyez le exchange_rate et le rate_token qu'il retourne lors de l'exécution.
  4. Prévisualisez le transfert avec POST /wallet/v1/transfers/validate. Aucun argent n'est déplacé ; cette opération retourne les frais, le montant net débité du compte source et le montant estimé que la destination reçoit.
  5. Exécutez-le avec POST /wallet/v1/transfers entre des wallets dans la même devise, POST /wallet/v1/transfers/exchange entre des wallets dans des devises différentes, ou POST /wallet/v1/transfers/platforms entre un wallet et un compte de plateforme de trading. Chacun utilise un request_id comme clé d'idempotence.

Points de terminaison disponibles

Liste des WalletsGet
Retourne les wallets appartenant au client authentifié, avec chaque solde affiché dans la devise native du wallet. Indiquez une conversion_currency pour recevoir également chaque solde converti dans cette devise, et utilisez start_date_time et end_date_time pour délimiter la fenêtre de solde./wallet/v1/wallets
Transactions WalletGet
Retourne une liste paginée par curseur des transactions pour l'un des wallets du client authentifié, identifié par wallet_type. Filtrez par request_id, transaction_currency et une plage de dates. Chaque ligne indique un canal montrant comment l'argent a été transféré et une catégorie calculée par rapport à l'appelant./wallet/v1/transactions/{wallet_type}
Taux de changeGetBêta
Retourne un devis pour la conversion entre deux devises. Le devis contient le taux de change et un rate_token - transmettez les deux à un transfert multi-devises pour l'exécuter au taux indiqué./wallet/v1/exchange-rate
Valider le transfertPostBêta
Vérifie un transfert par rapport aux règles de transfert avant son exécution, et retourne les frais, le montant net débité du compte source ainsi que le montant estimé que la destination reçoit. La validation ne déplace aucun fonds. Un transfert invalide retourne une erreur décrivant ce qui a échoué ; is_valid est donc toujours vrai en cas de succès./wallet/v1/transfers/validate
Transfert entre WalletsPostBêta
Déplace des fonds entre deux wallets appartenant au client authentifié, dans la même devise. Les frais applicables sont déduits du montant avant l'exécution. Validez donc le transfert au préalable pour avoir un aperçu des frais et du montant net. request_id est la clé d'idempotence : la resoumettre après l'avoir déjà utilisée ne crée pas de transfert en double./wallet/v1/transfers
Transfert multi-devisesPostBêta
Déplace des fonds entre deux wallets appartenant au client authentifié qui détiennent des devises différentes. Obtenez d'abord le taux via le point de terminaison exchange-rate, puis envoyez l'exchange_rate et le rate_token retournés pour exécuter la transaction à ce taux. Les frais de change applicables sont déduits du montant./wallet/v1/transfers/exchange
Transfert de plateformePostBêta
Déplace des fonds entre un wallet et un compte de plateforme de trading appartenant au client authentifié. direction définit le côté débité : from_wallet alimente le compte de la plateforme, to_wallet alimente le wallet. Lorsque le wallet et le compte de la plateforme sont dans des devises différentes, envoyez également wallet_currency avec un exchange_rate et un rate_token indiqués./wallet/v1/transfers/platforms

Authentification

Tous les points de terminaison nécessitent l'en-tête Deriv-App-ID et un en-tête Authorization: Bearer YOUR_OAUTH_TOKEN. Le token doit porter la portée payment ; sinon l'API renvoie 403 Forbidden.

Portées OAuth2

Point de terminaisonPortée
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"

Codes de statut de réponse

L'API utilise des codes de statut HTTP standard pour indiquer le succès ou l'échec :

2xx Succès
200 OK — Demande réussie
Erreurs 4xx/5xx
400 Bad Request — Paramètres invalides
401 Unauthorized — Authentification invalide ou manquante
403 Forbidden — Le token manque de la portée payment
404 Not Found — Wallet introuvable
429 Too Many Requests — Limite de requêtes dépassée
500 Internal Server Error — Erreur côté serveur
503 Service Unavailable — Requête rejetée par le disjoncteur de la passerelle
504 Gateway Timeout — Délai d'attente du service en amont

Format de réponse d'erreur

Toutes les réponses d'erreur suivent une enveloppe cohérente avec un tableau errors. Chaque entrée comporte un status numérique, un code lisible par machine et un message lisible par l'humain :

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}

Les codes d'erreur incluent : BadRequest, ValidationError, CurrencyNotAllowed, DailyLimitError, DuplicateRequestID, Unauthorized, NotFound, InternalServerError

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