Deriv API
Documentação
Agente de Pagamento

Agente de Pagamento REST

Descubra agentes de pagamento e execute depósitos e levantamentos facilitados por agentes.

Visão Geral

As APIs de Agente de Pagamento permitem que as aplicações encontrem agentes de pagamento ativos, obtenham o perfil completo de um agente e movam fundos — depósitos de agentes e levantamentos de clientes — através deles. Os agentes de pagamento depositam fundos numa Wallet de um cliente via o endpoint transfer, enquanto os clientes levantam através de um agente utilizando um código de verificação único. Todos os endpoints são chamadas REST padrão e requerem o âmbito OAuth2 payment.

Fluxo de Trabalho Típico

A descobrir agentes

  1. Chame GET /payment-agents/v1/agent-statistics para descobrir quais moedas e países são servidos.
  2. Liste agentes para uma moeda com GET /payment-agents/v1/agents, opcionalmente filtrados por país. Os resultados são paginados; utilize page e per_page para navegar por eles.
  3. Obtenha o perfil completo de um único agente com GET /payment-agents/v1/agents/{id}.

Levantamento de cliente

  1. Solicite um código único via POST /payment-agents/v1/withdraw/verification_code. O código é enviado para o e-mail ou telefone registado do cliente e é válido até expirar.
  2. Submeta o levantamento com o código de 6 dígitos via POST /payment-agents/v1/withdraw.
  3. Se forneceu um request_id, consulte GET /payment-agents/v1/withdraw/{request_id} até que o estado seja definido.

Depósito de agente — um agente de pagamento autenticado deposita fundos diretamente numa Wallet de um cliente com POST /payment-agents/v1/transfer (concluído de forma síncrona).

Endpoints Disponíveis

Listar Agentes de PagamentoGet
Devolve uma lista paginada de agentes de pagamento ativos que suportam a moeda solicitada. Os resultados incluem agentes publicamente listados, além de qualquer agente do qual tenha recebido uma transferência anteriormente, mesmo que esse agente não esteja publicamente listado. Um filtro opcional de país restringe ainda mais aos agentes que servem esse país. Cada resultado inclui o perfil do agente e as suas taxas de comissão para a moeda solicitada./payment-agents/v1/agents
Obter Agente de PagamentoGet
Devolve o perfil completo de um único agente de pagamento, incluindo agentes não listados publicamente no diretório. Utilize isto quando já tiver o ID de um agente e precisar dos seus detalhes completos. A resposta inclui sempre um array de moedas (currencies) com as taxas de comissão do agente e os limites de levantamento para cada moeda suportada, e um array de URLs com os websites associados ao agente (null se o agente não tiver nenhum registado). Passe me como ID para devolver o próprio perfil de agente do cliente autenticado./payment-agents/v1/agents/{id}
Estatísticas de Agente de PagamentoGet
Devolve o conjunto agregado de países e moedas cobertos por pelo menos um agente de pagamento ativo e publicamente listado. Utilize isto para determinar quais valores de filtro de moeda e país são significativos antes de chamar a lista de agentes - os resultados podem atrasar agentes recém-integrados por um curto período./payment-agents/v1/agent-statistics
Definições do ClienteGet
Devolve as definições atuais de agente de pagamento do cliente autenticado: se pode receber depósitos de agentes de pagamento, se pode levantar fundos através de um agente de pagamento e se o seu nome verdadeiro é partilhado com os agentes nas transações. Os clientes que nunca utilizaram um agente de pagamento veem os valores predefinidos deposit_enabled: true, withdraw_enabled: true e show_real_name: false./payment-agents/v1/clients/me
Atualizar Definições do ClientePatch
Atualiza a preferência do cliente autenticado quanto à possibilidade de os agentes de pagamento verem o seu nome verdadeiro nas transações. Defina show_real_name como true para o revelar ou false para o ocultar; as definições atualizadas são devolvidas. A primeira interação de um cliente com um agente de pagamento regista a sua conta, pelo que alguns erros 400 e 500 apenas ocorrem nessa primeira chamada./payment-agents/v1/clients/me
Transferência (Depósito)Post
Permite que um agente de pagamento autenticado deposite fundos diretamente na Wallet Deriv de um cliente, identificado pelo seu nome de utilizador (to_nickname). Em caso de sucesso, devolve um TransferResult - estado "complete" com um transaction_id para uma transferência real, estado "pending" com transaction_id nulo se a transferência ainda estiver a ser processada (consulte GET /payment-agents/v1/transfer/{request_id} com o request_id fornecido para o estado final), ou estado "dry_run_ok" com transaction_id nulo quando dry_run é verdadeiro. client_real_name e client_is_agent descrevem o destinatário./payment-agents/v1/transfer
Estado da TransferênciaGet
Devolve o estado atual de uma transferência iniciada anteriormente com um request_id. Tanto o agente de pagamento que enviou a transferência como o cliente destinatário a podem consultar. A maioria das transferências devolve complete na resposta inicial e não necessita de polling; se o estado inicial for pending, este evolui para complete, rejected ou failed. Um request_id que não corresponda a nenhuma das suas transferências devolve RequestIDNotFound./payment-agents/v1/transfer/{request_id}
Código de Verificação de LevantamentoPost
Solicita o envio de um código de verificação de utilização única para o contacto registado do cliente (e-mail ou telefone). Chame este endpoint antes de submeter um levantamento via POST /payment-agents/v1/withdraw — o código deve ser incluído como verification_code nesse pedido. O código é válido até expires_at (segundos de época). Não é possível solicitar um novo código antes de next_request_at (segundos de época). As mesmas verificações de elegibilidade do agente e de regras de negócio que protegem o POST /payment-agents/v1/withdraw também são executadas aqui — se este pedido for bem-sucedido, o levantamento subsequente não falhará essas verificações. Consulte a resposta 400 para a lista completa de códigos de erro./payment-agents/v1/withdraw/verification_code
LevantamentoPost
Levanta fundos da conta do cliente autenticado através de um agente de pagamento. O levantamento move o valor solicitado da Wallet do cliente para a Wallet do agente — o agente liquida então o valor equivalente com o cliente fora da Deriv. Requer um verification_code de 6 dígitos obtido a partir de POST /payment-agents/v1/withdraw/verification_code. Os levantamentos começam como pendentes e passam para concluído, rejeitado ou falhado. Forneça um request_id opcional para acompanhar o estado posteriormente via GET /payment-agents/v1/withdraw/{request_id}./payment-agents/v1/withdraw
Estado de LevantamentoGet
Devolve o estado atual de um levantamento previamente submetido com um request_id. Tanto o cliente que iniciou o levantamento como o agente de pagamento podem consultar este endpoint. O estado progride de pendente para concluído, rejeitado ou falhado. Um request_id que não corresponda a nenhum dos seus levantamentos devolve RequestIDNotFound./payment-agents/v1/withdraw/{request_id}

Autenticação

Todos os endpoints requerem o cabeçalho Deriv-App-ID e um cabeçalho Authorization: Bearer YOUR_OAUTH_TOKEN. O token deve ter o âmbito payment; caso contrário, a API devolve 403 Forbidden.

Âmbitos OAuth2

EndpointPermissão
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"

Códigos de Estado da Resposta

A API usa códigos de estado HTTP padrão para indicar sucesso ou falha:

2xx Sucesso
200 OK — Pedido bem-sucedido
Erros 4xx/5xx
400 Bad Request — Parâmetros inválidos ou falha de regra de negócio
401 Unauthorized — Autenticação inválida ou em falta
403 Forbidden — O token não possui o âmbito payment
404 Not Found — Agente não encontrado
500 Internal Server Error — Erro do lado do servidor
504 Gateway Timeout — Timeout de serviço upstream

Nem todos os códigos se aplicam a todos os endpoints. 404 Not Found aplica-se apenas a GET /payment-agents/v1/agents/{id}, e GET /payment-agents/v1/agent-statistics não devolve 400.

Formato de Resposta de Erro

Todas as respostas de erro seguem um envelope consistente com um objeto data vazio, um array errors e 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}

Os códigos de erro incluem: 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.