WEBHOOK
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/splitgameHeaders Obrigatórios
Content-Typeapplication/json
X-SplitGame-Signature<hash-HMAC-SHA256>
X-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:
ProviderEndToEndIdTabela:
Withdraws - ✔ Como usar?
Utilize o
endToEndIdpara:- 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 }