Deriv API
Documentation
Agent de paiement

Agent de paiement REST

Découvrez les agents de paiement et effectuez des dépôts et des retraits facilités par les agents.

Vue d'ensemble

Les API d'agent de paiement permettent aux applications de trouver des agents de paiement actifs, de récupérer le profil complet d'un agent et de déplacer des fonds — dépôts d'agents et retraits de clients — par leur intermédiaire. Les agents de paiement déposent des fonds dans le Wallet d'un client via le point de terminaison transfer, tandis que les clients se retirent via un agent en utilisant un code de vérification à usage unique. Tous les points de terminaison sont des appels REST standard et nécessitent la portée OAuth2 payment.

Flux de travail typique

Découverte des agents

  1. Appelez GET /payment-agents/v1/agent-statistics pour déterminer quelles devises et quels pays sont pris en charge.
  2. Listez les agents pour une devise avec GET /payment-agents/v1/agents, éventuellement filtrés par pays. Les résultats sont paginés ; utilisez page et per_page pour les parcourir.
  3. Récupérez le profil complet d'un seul agent avec GET /payment-agents/v1/agents/{id}.

Retrait du client

  1. Demandez un code à usage unique via POST /payment-agents/v1/withdraw/verification_code. Le code est envoyé à l'adresse e-mail ou au téléphone enregistré du client et est valide jusqu'à son expiration.
  2. Soumettez le retrait avec le code à 6 chiffres via POST /payment-agents/v1/withdraw.
  3. Si vous avez fourni un request_id, interrogez GET /payment-agents/v1/withdraw/{request_id} jusqu'à ce que le statut se stabilise.

Dépôt d'agent — un agent de paiement authentifié dépose des fonds directement dans le Wallet d'un client avec POST /payment-agents/v1/transfer (se termine de manière synchrone).

Points de terminaison disponibles

Lister les agents de paiementGet
Renvoie une liste paginée des agents de paiement actifs qui prennent en charge la devise demandée. Les résultats incluent les agents répertoriés publiquement, ainsi que tout agent dont vous avez précédemment reçu un transfert même si cet agent n'est pas répertorié publiquement. Un filtre de pays optionnel restreint davantage aux agents qui desservent ce pays. Chaque résultat inclut le profil de l'agent et ses taux de commission pour la devise demandée./payment-agents/v1/agents
Obtenir l'agent de paiementGet
Renvoie le profil complet d'un seul agent de paiement, y compris les agents non répertoriés publiquement dans l'annuaire. Utilisez ceci lorsque vous avez déjà l'identifiant d'un agent et que vous avez besoin de ses détails complets. La réponse inclut toujours un tableau de devises avec les taux de commission de l'agent et les limites de retrait pour chaque devise prise en charge, ainsi qu'un tableau d'URL avec les sites Web associés à l'agent (null si l'agent n'en a aucun d'enregistré). Passez me comme identifiant pour renvoyer le propre profil d'agent du client authentifié./payment-agents/v1/agents/{id}
Statistiques de l'agent de paiementGet
Renvoie l'ensemble agrégé des pays et devises couverts par au moins un agent de paiement actif et répertorié publiquement. Utilisez ceci pour déterminer quelles valeurs de filtre de devise et de pays sont significatives avant d'appeler la liste des agents - les résultats peuvent accuser un léger retard pour les agents nouvellement intégrés./payment-agents/v1/agent-statistics
Paramètres du clientGet
Renvoie les paramètres actuels d'agent de paiement du client authentifié : s'il peut recevoir des dépôts d'agents de paiement, s'il peut retirer des fonds via un agent de paiement et si son nom réel est partagé avec les agents sur les transactions. Les clients qui n'ont jamais utilisé d'agent de paiement voient les valeurs par défaut deposit_enabled: true, withdraw_enabled: true et show_real_name: false./payment-agents/v1/clients/me
Mettre à jour les paramètres du clientPatch
Met à jour la préférence du client authentifié concernant la possibilité pour les agents de paiement de voir son nom réel sur les transactions. Définissez show_real_name sur true pour le révéler, ou sur false pour le masquer ; les paramètres mis à jour sont renvoyés. La première interaction d'un client avec un agent de paiement enregistre son compte, de sorte que certaines erreurs 400 et 500 ne se produisent que lors de ce premier appel./payment-agents/v1/clients/me
Transfert (Dépôt)Post
Permet à un agent de paiement authentifié de déposer des fonds directement dans le Wallet Deriv d'un client, identifié par le surnom de son compte (to_nickname). En cas de succès, renvoie un TransferResult - statut "complete" avec un transaction_id pour un transfert réel, statut "pending" avec transaction_id null si le transfert est toujours en cours de traitement (interrogez GET /payment-agents/v1/transfer/{request_id} avec le request_id fourni pour le statut final), ou statut "dry_run_ok" avec transaction_id null lorsque dry_run est true. client_real_name et client_is_agent décrivent le destinataire./payment-agents/v1/transfer
Statut du transfertGet
Renvoie le statut actuel d'un transfert précédemment initié avec un request_id. L'agent de paiement qui a envoyé le transfert et le client destinataire peuvent tous deux le vérifier. La plupart des transferts renvoient un statut « complet » dans la réponse initiale et ne nécessitent pas d'interrogation répétée ; si le statut initial est « en attente », il évolue vers « complet », « rejeté » ou « échoué ». Un request_id ne correspondant à aucun de vos transferts renvoie RequestIDNotFound./payment-agents/v1/transfer/{request_id}
Code de vérification de retraitPost
Demande l'envoi d'un code de vérification à usage unique au contact enregistré du client (e-mail ou téléphone). Appelez ceci avant de soumettre un retrait via POST /payment-agents/v1/withdraw - le code doit être inclus en tant que verification_code dans cette requête. Le code est valide jusqu'à expires_at (secondes epoch). Un nouveau code ne peut pas être demandé avant next_request_at (secondes epoch). Les mêmes vérifications d'éligibilité des agents et de règles métier qui protègent POST /payment-agents/v1/withdraw s'appliquent également ici - si cette requête réussit, le retrait ultérieur ne sera pas bloqué par ces vérifications. Consultez la réponse 400 pour la liste complète des codes d'erreur./payment-agents/v1/withdraw/verification_code
RetraitPost
Retire des fonds du compte du client authentifié via un agent de paiement. Le retrait transfère le montant demandé hors du Wallet du client vers le Wallet de l'agent - l'agent règle ensuite la valeur équivalente avec le client en dehors de Deriv. Nécessite un verification_code à 6 chiffres obtenu via POST /payment-agents/v1/withdraw/verification_code. Les retraits débutent en statut pending et évoluent vers complete, rejected ou failed. Fournissez un request_id facultatif pour suivre le statut ultérieurement via GET /payment-agents/v1/withdraw/{request_id}./payment-agents/v1/withdraw
Statut du retraitGet
Renvoie le statut actuel d'un retrait précédemment soumis avec un request_id. Le client ayant initié le retrait ainsi que l'agent de paiement peuvent interroger ce point de terminaison. Le statut évolue de pending vers complete, rejected ou failed. Un request_id qui ne correspond à aucun de vos retraits renvoie RequestIDNotFound./payment-agents/v1/withdraw/{request_id}

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 /payment-agents/v1/agentspayment
GET /payment-agents/v1/agents/{id}payment
GET /payment-agents/v1/agent-statisticspayment
POST /payment-agents/v1/transferpayment
POST /.../withdraw/verification_codepayment
POST /payment-agents/v1/withdrawpayment
GET /.../withdraw/{request_id}payment
1curl -X GET "https://api.derivws.com/payment-agents/v1/agents?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 ou échec de règle métier
401 Unauthorized — Authentification invalide ou manquante
403 Forbidden — Le token manque de la portée payment
404 Not Found — Agent introuvable
500 Internal Server Error — Erreur côté serveur
504 Gateway Timeout — Délai d'attente du service en amont

Tous les codes ne s'appliquent pas à chaque point de terminaison. 404 Not Found s'applique uniquement à GET /payment-agents/v1/agents/{id}, et GET /payment-agents/v1/agent-statistics ne renvoie pas 400.

Format de réponse d'erreur

Toutes les réponses d'erreur suivent une enveloppe cohérente avec un objet data vide, un tableau errors et metadata :

1{
2  "data": {},
3  "errors": [
4    {
5      "status": 400,
6      "code": "WalletFundsInsufficient",
7      "detail": {
8        "message": "The agent's wallet does not hold enough funds for this transfer"
9      }
10    }
11  ],
12  "metadata": {
13    "endpoint": "/payment-agents/v1/transfer",
14    "method": "POST",
15    "timing": 38
16  }
17}

Les codes d'erreur incluent : AgentIDInvalid, AgentNotFound, AgentInactive, AgentSelfTransfer, AgentSelfWithdraw, AgentCurrencyUnsupported, InvalidAgentID, NicknameNotFound, NoClientWallet, ClientCountryUnsupported, WithdrawalAmountMinimum, WithdrawalAmountMaximum, WalletFundsInsufficient, InvalidOTP, OtpRateLimitExceeded, RequestIDUsed, RequestIDNotFound, InvalidRequestIDFormat, TransferFailed, WithdrawalFailed, OTPValidationFailed, OtpValidationRateLimitExceeded, VerificationCodeFormatInvalid, VerificationCodeRequestFailed, WalletLookupFailed, NicknameLookupFailed, ClientIdentityLookupFailed

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