Skip to main content

Saques

POST /v1/withdrawals cria uma solicitação de saque em produção. Saques pela API são uma operação sensível: use apenas no backend, com uma chave trq_live_ que tenha permissão de saque.
Saques estão disponíveis somente em produção. Use o ambiente de teste para validar checkouts, saldo, webhooks e tratamento de erros sem movimentar fundos reais.

Antes de chamar a API

Para criar um saque pela API, sua conta precisa atender a todos estes pontos:
  • conta aprovada para produção
  • telefone verificado
  • destino de saque cadastrado e aprovado para o trilho escolhido
  • saldo disponível suficiente em availableAmount
  • chave de API com permissão de saque
  • header Idempotency-Key enviado na criação
O destino do saque não é enviado no corpo da requisição. A API usa o destino já cadastrado e aprovado na sua conta.
No piloto atual, criar um saque reserva o valor imediatamente e abre uma solicitação operacional. O valor fica em reservedAmount até o time concluir o pagamento e marcar o saque como pago. Essa revisão manual é intencional enquanto a operação aumenta volume com segurança.

Criar saque

Campos do corpo: O retorno usa o mesmo recurso de saque para criação e consulta:

Tarifa do saque BRL

Cada saque em BRL via Pix tem uma tarifa que vem direto no quote da resposta. Você não precisa calcular nada. Por padrão, a tarifa é R2,99porsaque.Sevoce^fizermaisde20saquesnomesmome^s,apartirdo21ºovalorpassaaserR 2,99** por saque. Se você fizer mais de 20 saques no mesmo mês, a partir do 21º o valor passa a ser **R 3,50. O contador zera no início de cada mês, e saques recusados ou cancelados não contam. A tarifa fica travada no momento da criação do saque. Os campos relevantes na resposta são:
  • quote.withdrawalFeeAmount: o valor cobrado, em BRL
  • quote.appliedFeeTier: STANDARD para R2,99ouOVERTHRESHOLDparaR 2,99 ou `OVER_THRESHOLD` para R 3,50
Se você quiser acompanhar quantos saques já fez no mês, leia quote.monthlyWithdrawalCountAtRequest. É o contador imediatamente antes do saque atual.

Saque em USDT

Para o trilho USDT_WALLET, o quote da resposta traz a conversão de BRL para USDT. A cotação é travada no momento da criação do saque: o valor em USDT (quote.destinationAmount) e a taxa usada (quote.quotedRateBrlPerUsdt) ficam registrados no recurso e não mudam depois.
Campos do quote específicos do trilho USDT_WALLET:
  • quote.destinationCurrency: USDT
  • quote.destinationAmount: o valor a receber em USDT, com 6 casas decimais
  • quote.quotedRateBrlPerUsdt: a taxa de conversão em BRL por USDT travada na criação
  • quote.network: a rede do destino (por exemplo, POLYGON)
  • quote.quotedAt: o momento em que a cotação foi obtida
A cotação fica travada no momento da criação do saque. A disponibilidade da cotação depende do provedor externo: quando não é possível cotar, a criação retorna 422 quote_unavailable e nenhum fundo é movimentado. Nesse caso, tente novamente.

Consultar saque

Idempotência

Idempotency-Key é obrigatório em POST /v1/withdrawals.
  • mesma chave e mesmo corpo retornam o mesmo saque
  • mesma chave com corpo diferente retorna 409 idempotency_conflict
  • use uma chave estável do seu sistema para a tentativa de saque, como withdrawal_1001
Quando a solicitação é aceita, o saldo solicitado fica reservado. Repetir a mesma tentativa com a mesma Idempotency-Key retorna o mesmo saque em vez de reservar saldo de novo.

Erros comuns

Próximos passos

Consultar saldo

Use availableAmount para decidir se o saque pode ser solicitado.

Revisar autenticação

Entenda chaves, produção, idempotência e permissões.

Entender erros

Veja o envelope de erro e como tratar cada code.