Webhook CashOut (Saques)
Receba notificações automáticas sobre o status das solicitações de saque.
🔗 Endpoint & Autenticação
Método
POSTURL
Definida pelo cliente na rota /api/SendWebhook
Exemplo: https://meusite.com.br/api/webhook/splitgame
Headers Obrigatórios
Content-Typeapplication/jsonX-Idempotency-Key<uuid>⚙️ Estrutura do Evento
🟣 Saques (CashOut)
Exemplo real de Webhook Cashout Recebido
{
"object": "withdraw",
"type": "cashout",
"status": "successful",
"companyId": 1,
"withdrawId": 7184,
"value": 10,
"valueInCents": 1000,
"currency": "BRL",
"provider": "A55",
"providerStatus": 1,
"providerTid": "wld-00007184",
"providerPaymentId": "uuid-provider",
"endToEndId": "Exxxxxxxx",
"providerAmount": 10,
"providerConfirmedAt": "2025-11-27T10:12:33Z",
"providerDebitedAt": null,
"providerPayload": { ... },
"pixKey": "chave",
"pixKeyType": "CPF",
"creditorDocument": "xxx",
"payer": {
"name": "NOME DO BANCO/A55",
"document": "xxx",
"ispb": "xxxxx",
"agency": "xxxx",
"account": "xxxx"
},
"receiver": {
"name": "NOME DO CLIENTE",
"document": "xxx",
"ispb": "xxxx",
"agency": "xxxx",
"account": "xxxx"
},
"createdAt": "2025-11-27T00:00:00Z",
"updatedAt": "2025-11-27T00:00:00Z",
"processedAt": "2025-11-27T00:00:00Z",
"metadata": null
}🔍 Descrição dos Campos
| Campo | Tipo | Descrição |
|---|---|---|
object | string | Sempre "withdraw" |
type | string | Tipo do evento — sempre "cashout" |
status | string | Status final: successful, failure, refunded |
companyId | number | ID da empresa dona do saque |
withdrawId | number | ID interno do saque na SplitPay |
value | number | Valor sacado em reais |
valueInCents | number | Valor sacado em centavos |
currency | string | Moeda (sempre "BRL") |
provider | string | Provedor usado (ex: "A55") |
providerStatus | number | Código numérico retornado pelo provedor |
providerTid | string | TID do saque no provedor |
providerPaymentId | string | ID do pagamento no provedor (UUID) |
endToEndId | string | Código PIX único do saque (E2E). Pode ser usado para consultas Pix Out. |
providerAmount | number | Valor confirmado pelo provedor |
providerConfirmedAt | string | Data/hora de confirmação pelo provedor |
providerDebitedAt | string | null | Data/hora do débito na conta (se disponível) |
providerPayload | object | Resposta completa do provedor (raw) |
pixKey | string | Chave PIX de destino |
pixKeyType | string | Tipo da chave (CPF, CNPJ, EMAIL, PHONE, EVP) |
creditorDocument | string | Documento do beneficiário |
payer | object | Dados do pagador (banco/A55) |
receiver | object | Dados do recebedor (cliente) |
createdAt | string | Data/hora de criação do saque |
updatedAt | string | Data/hora da última atualização |
processedAt | string | Data/hora que o provedor processou o saque |
metadata | string | object | null | Metadados customizados enviados na solicitação |
🧠 Notas importantes
✔ O campo endToEndId já é salvo automaticamente no banco:
- • Campo:
ProviderEndToEndId - • Tabela:
Withdraws
✔ Como usar?
Utilize o endToEndId para:
- • Consultar status do PIX-out no provedor
- • Rastrear auditoria bancária
- • Exibir detalhes no painel administrativo
📬 Quando o webhook é enviado?
O webhook é disparado sempre que:
- • O saque é confirmado (
successful) - • O saque é estornado (
refunded) - • O saque é recusado /
failure
🧩 Status possíveis
| Status | Descrição |
|---|---|
pending | Solicitado, aguardando |
successful | Pago |
failure | Falhou / rejeitado |
🔁 Reenvio automático
✓ 3 tentativas automáticas (1 min / 5 min / 15 min).
✓ Idempotência garantida pelo header X-Idempotency-Key.
✅ Exemplo de resposta
{ "received": true, "idempotent": false }