Autenticação
Este endpoint requer autenticação via API Keys:Sua chave pública da API
Sua chave privada da API
Parâmetros do Body
Valor do cashout em reais (ex: 100.50 = R 100,00**. Máximo: R$ 100.000,00
Chave PIX para recebimento (entre 8 e 77 caracteres)
Tipo da chave PIX. Valores possíveis:
CPF, CNPJ, EMAIL, PHONE, RANDOM. Padrão: CPFExemplo de Requisição
Resposta de Sucesso
ID do cashout
Valor em reais
Chave PIX
Status do cashout (PENDING, PROCESSING, etc.)
Data de criação (ISO 8601)
Exemplo de Resposta
Valor líquido após taxas em reais
Tipo da chave PIX utilizada
Detalhamento das taxas cobradas
Taxa fixa em reais
Taxa variável em reais
Total de taxas em reais
Configuração de Webhooks
Para receber notificações automáticas sobre mudanças de status dos saques, você precisa configurar um webhook no painel do usuário.Como Configurar
- Acesse o painel do NextPay Gateway
- Vá em Menu lateral > Integrações > Adicionar Webhook
- Configure a URL do seu webhook (ex:
https://seusite.com/webhook/cashout) - Em “Tipos de Notificação”, marque “Notificar Saques”
- Salve a configuração
Quando o Webhook é Enviado
O webhook é enviado quando o status do saque muda, após o processamento do postback do provedor BaaS (Sqala, Witetec, Transfeera, etc.). As notificações são enviadas para os seguintes status:PROCESSING- Saque em processamentoCOMPLETED- Saque concluído com sucessoREJECTED- Saque rejeitadoCANCELLED- Saque cancelado
Formato do Payload
Campos do Payload
| Campo | Tipo | Descrição |
|---|---|---|
id | integer | ID interno do saque no NextPay Gateway |
userId | integer | ID do usuário que solicitou o saque |
amount | string | Valor do saque em reais (formato string, ex: “100.00”) |
pixKey | string | null | Chave PIX utilizada para o saque |
pixKeyType | string | null | Tipo da chave PIX (CPF, CNPJ, EMAIL, PHONE, RANDOM) |
status | string | Status atual do saque (PENDING, PROCESSING, COMPLETED, CANCELLED, REJECTED) |
externalId | string | null | ID externo do saque no provedor BaaS |
createdAt | string | Data de criação do saque (ISO 8601) |
updatedAt | string | Data da última atualização (ISO 8601) |
processedAt | string | null | Data de processamento do saque (ISO 8601) |
user | object | Dados do usuário (id, name, email) |
type | string | Sempre “WITHDRAWAL” para identificar o tipo de notificação |
Segurança
Webhooks permanentes de saques não incluem assinatura HMAC. Diferente dos postbacks por transação (que usam
X-Signature), os webhooks permanentes são enviados sem assinatura.- Validar a origem usando a URL configurada
- Usar HTTPS
- Validar o
userIdpara garantir que o saque pertence à sua conta - Implementar idempotência para evitar processamento duplicado
Exemplo de Implementação
Boas Práticas
- Sempre retorne HTTP 200 para confirmar recebimento
- Implemente idempotência usando o campo
iddo saque - Valide o
userIdpara garantir segurança - Use HTTPS para proteger os dados em trânsito
- Implemente retry logic no seu servidor caso a notificação falhe
- Log todas as notificações recebidas para auditoria
Diferenças entre Webhook Permanente e Postback
| Característica | Webhook Permanente | Postback por Transação |
|---|---|---|
| Configuração | Painel do usuário | Campo postbackUrl na criação |
| Assinatura HMAC | Não | Sim (X-Signature header) |
| Escopo | Todas as transações/saques do usuário | Apenas transação/saque específica |
Campo type | Sim (“WITHDRAWAL”) | Não |
Campo user | Sim (dados do usuário) | Não |
Códigos de Erro
400 Bad Request
Dados inválidos. Exemplo: valor deve ser um número válido maior que zero.401 Unauthorized
Não autorizado - API Key ou API Secret inválidos.403 Forbidden
Cashout via API desabilitado ou usuário sem permissão. Pode retornar:API_WITHDRAWAL_DISABLED_GLOBALLY- Cashout via API está desabilitado para este usuárioTRANSFER_NOT_ALLOWED- Transferência não permitida
422 Unprocessable Entity
Saldo insuficiente ou regras de negócio. Pode retornar:INSUFFICIENT_BALANCE- Saldo insuficiente para realizar o cashoutMINIMUM_VALUE- Valor abaixo do mínimo permitido (R$ 100,00)MAXIMUM_VALUE- Valor acima do máximo permitido (R$ 100.000,00)

