Analisar endpoints
Esta página cobre as duas ações operacionais sobre um webhook endpoint existente:
Visão Geral
Esta página cobre as duas ações operacionais sobre um webhook endpoint existente:
- Testar (
POST /v1/webhooks/{webhookId}/test) — envia um ping sintético (webhook.ping) ao endpoint para verificar a fiação da integração. - Rotacionar o segredo (
POST /v1/webhooks/{webhookId}/rotate-secret) — gera um novosecret(whsec_...) de assinatura, retornado uma única vez.
Não existe um endpoint de "analytics" por webhook endpoint. Para auditar entregas, métricas de sucesso/falha e diagnosticar problemas, use os Webhook Dispatches.
Testar o Endpoint
Dispara um evento sintético webhook.ping ao endpoint e cria um registro de entrega (dispatch) que você pode inspecionar nos Webhook Dispatches. A resposta confirma apenas que o teste foi aceito; o resultado real aparece no dispatch.
Requisição
POST /v1/webhooks/{webhookId}/testCabeçalho: SelectKey: sk_live_... (ou sk_test_...). Escopo necessário: webhooks:update. Não há corpo obrigatório.
Parâmetros de Caminho
| Parâmetro | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
webhookId | string | Sim | ID do webhook (wbe_*; legados wbh_*) | wbe_01hqzvabc |
Resposta — Aceito (202 Accepted)
{
"accepted": true,
"id": "wbh_01hqzvtest"
}| Atributo | Tipo | Descrição |
|---|---|---|
accepted | boolean | Sempre true quando o teste foi enfileirado/disparado |
id | string | ID do evento de teste gerado (wbh_*) — use-o para localizar o dispatch |
O payload entregue ao seu servidor tem type: "webhook.ping" e payload.object contendo { "message": "Test ping from Selectwin", "endpointId": "wbe_..." }.
Rotacionar o Segredo
Gera um novo secret (whsec_...) para o endpoint. O segredo retorna apenas nesta resposta — atualize-o imediatamente no seu verificador de assinatura.
Requisição
POST /v1/webhooks/{webhookId}/rotate-secretCabeçalho: SelectKey: sk_live_... (ou sk_test_...). Escopo necessário: webhooks:update.
Resposta — Sucesso (200 OK)
{
"id": "wbe_01hqzvabc",
"name": "Webhook MyDomain",
"endpoint": "https://webhooks.mydomain.com/selectwin",
"enabled": true,
"events": ["transaction.approved", "transaction.pending"],
"forceActive": false,
"shotsQty": 3068,
"failedShotsQty": 12,
"lastDeliveryAt": "2026-06-20T17:56:33.000Z",
"metadata": { "team": "ops" },
"createdAt": "2026-01-26T20:18:05.000Z",
"updatedAt": "2026-06-20T18:30:00.000Z",
"secret": "whsec_novosegredo123456789abcdefghijklmnopqrstuvwxyz0123",
"merchant": {
"name": "Seller Name",
"merchantId": "bus_1234567890",
"isSubAccount": false
},
"_links": {
"self": { "href": "https://api.selectwin.io/v1/webhooks/wbe_01hqzvabc", "method": "GET", "description": "Read a webhook." }
}
}Mesmos atributos do Create — inclui secret (novo). As credenciais headerAuthorization/headerAuthorizationType permanecem write-only e não retornam.
Erros (ambas as ações)
| Código HTTP | Quando |
|---|---|
| 401 | Chave de API ausente/inválida (SelectKey) |
| 403 | Sem o escopo webhooks:update |
| 404 | Webhook endpoint não encontrado (webhookEndpointNotFound) |
| 500 | Erro interno |
Melhores Práticas
-
Teste antes de produção com
POST /v1/webhooks/{webhookId}/teste confira o resultado nos Dispatches. -
Atualize o verificador assim que rotacionar o segredo — durante a janela de troca, aceite tanto o segredo antigo quanto o novo até confirmar que todas as entregas usam o novo.
-
Nunca logue o
secret(whsec_...); trate-o como uma senha. -
Para métricas e auditoria de entrega, use os Webhook Dispatches.
How is this guide?