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.
REST API
Deriv-App-ID: YOUR_APP_ID et un token Authorization: Bearer YOUR_OAUTH_TOKEN portant la portée payment.Spécification OpenAPI
Consultez la spécification complète OpenAPI 3.1.0 pour les définitions de schéma détaillées et les exemples :
Spéc. OpenAPI →Flux de travail typique
Découverte des agents
- Appelez
GET /payment-agents/v1/agent-statisticspour déterminer quelles devises et quels pays sont pris en charge. - Listez les agents pour une devise avec
GET /payment-agents/v1/agents, éventuellement filtrés par pays. Les résultats sont paginés ; utilisezpageetper_pagepour les parcourir. - Récupérez le profil complet d'un seul agent avec
GET /payment-agents/v1/agents/{id}.
Retrait du client
- 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. - Soumettez le retrait avec le code à 6 chiffres via
POST /payment-agents/v1/withdraw. - Si vous avez fourni un
request_id, interrogezGET /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
/payment-agents/v1/agents/payment-agents/v1/agents/{id}/payment-agents/v1/agent-statistics/payment-agents/v1/clients/me/payment-agents/v1/clients/me/payment-agents/v1/transfer/payment-agents/v1/transfer/{request_id}/payment-agents/v1/withdraw/verification_code/payment-agents/v1/withdraw/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
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 :
paymentTous 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
D'autres questions ? Nous contacter