Exemplos de Teste de Webhook
Esses payloads simulam o que a Versell envia para seu endpoint de webhook. Use-os para desenvolvimento e testes locais.
Cash In — Pix Recebido
Este payload é enviado quando um Pix é recebido na sua chave. Ele chega no endpoint de webhook que você configurou para Cash In.
{
"pix": [
{
"endToEndId": "E12345678202301011234abcdef12345",
"txid": "txid-exemplo-12345",
"chave": "sua-chave-pix",
"valor": "50.00",
"horario": "2025-01-15T10:30:00.000Z",
"pagador": {
"cpf": "12345678909",
"nome": "Nome do Pagador"
},
"infoPagador": "Pagamento referente ao pedido #12345"
}
]
}| Campo | Tipo | Descrição |
|---|---|---|
| endToEndId | string | Identificador único da transação no Banco Central |
| txid | string | Identificador da cobrança (definido na criação do QR Code) |
| chave | string | Chave Pix que recebeu o pagamento |
| valor | string | Valor do Pix em reais (formato decimal com ponto) |
| horario | string (ISO 8601) | Data e hora em que o Pix foi recebido |
| pagador.cpf | string | CPF do pagador |
| pagador.nome | string | Nome do pagador |
| infoPagador | string | Mensagem opcional enviada pelo pagador |
Cash Out — Transferência Liquidada
Enviado quando uma transferência Pix de saída é liquidada com sucesso.
{
"event": "TRANSFER_SETTLED",
"data": {
"idempotencyKey": "key-exemplo-12345",
"amount": 1000,
"status": "SETTLED",
"endToEndId": "E12345678202301011234abcdef12345",
"settledAt": "2025-01-15T10:35:00.000Z"
}
}| Campo | Tipo | Descrição |
|---|---|---|
| event | string | Tipo do evento — TRANSFER_SETTLED para liquidação |
| data.idempotencyKey | string | Chave de idempotência enviada na criação da transferência |
| data.amount | number | Valor em centavos (1000 = R$ 10,00) |
| data.status | string | Status da transferência — SETTLED indica sucesso |
| data.endToEndId | string | Identificador único da transação no Banco Central |
| data.settledAt | string (ISO 8601) | Data e hora da liquidação |
Cash Out — Transferência Cancelada
Enviado quando uma transferência Pix de saída é cancelada ou rejeitada.
{
"event": "TRANSFER_CANCELLED",
"data": {
"idempotencyKey": "key-exemplo-67890",
"amount": 500,
"status": "CANCELLED",
"endToEndId": "E98765432202301011234abcdef67890",
"cancelledAt": "2025-01-15T11:00:00.000Z"
}
}| Campo | Tipo | Descrição |
|---|---|---|
| event | string | Tipo do evento — TRANSFER_CANCELLED para cancelamento |
| data.idempotencyKey | string | Chave de idempotência enviada na criação da transferência |
| data.amount | number | Valor em centavos (500 = R$ 5,00) |
| data.status | string | Status da transferência — CANCELLED indica cancelamento |
| data.endToEndId | string | Identificador único da transação no Banco Central |
| data.cancelledAt | string (ISO 8601) | Data e hora do cancelamento |
Dicas de Teste
*
Use o ngrok ou ferramentas similares (localtunnel, Cloudflare Tunnel) para expor seu servidor local na internet e receber webhooks reais durante o desenvolvimento.
!
Sempre valide o header X-Webhook-Secret em produção. Nunca processe payloads de webhook sem verificar que o secret corresponde ao valor configurado na sua conta Versell.
Para testar localmente, inicie seu servidor e use os comandos cURL acima diretamente no terminal. Siga este fluxo:
- Inicie seu servidor local (ex: npm run dev)
- Copie um dos comandos cURL acima e execute no terminal
- Verifique os logs do servidor para confirmar que o payload foi recebido e processado
- Teste cenários de erro alterando o header X-Webhook-Secret para um valor incorreto