Atualizar um endpoint
Este endpoint atualiza as configurações de um webhook endpoint existente: nome, URL, lista de eventos, status, metadados ou cabeçalhos de autenticação. Todos os campos são opcionais (atualização parci
Visão Geral
Este endpoint atualiza as configurações de um webhook endpoint existente: nome, URL, lista de eventos, status, metadados ou cabeçalhos de autenticação. Todos os campos são opcionais (atualização parcial).
Precauções
- A atualização não interrompe entregas em andamento.
- Se alterar a URL, garanta que o novo
endpoint(HTTPS) esteja acessível. - O
secretnão é alterado nem retornado aqui — para rotacioná-lo, usePOST /v1/webhooks/{webhookId}/rotate-secret.
Descrição
Útil para alterar a URL de destino, adicionar/remover eventos monitorados, ativar/desativar (enabled) ou atualizar credenciais de autenticação.
Requisição
PUT /v1/webhooks/{webhookId}Cabeçalho: SelectKey: sk_live_... (ou sk_test_...). Escopo necessário: webhooks:update.
Parâmetros de Caminho
| Parâmetro | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
webhookId | string | Sim | ID do webhook (wbe_*; legados wbh_*) | wbe_01hqzvabc |
Corpo da Requisição
Todos os campos são opcionais — envie apenas o que deseja alterar.
| Parâmetro | Tipo | Descrição | Exemplo |
|---|---|---|---|
name | string (1–100) | Nome descritivo | "Webhook MyDomain - Updated" |
endpoint | string (URI HTTPS) | Nova URL de destino | "https://webhooks.mydomain.com/selectwin" |
events | array de strings (máx. 200) | Nova lista de tipos de evento (ver Catálogo) | ["transaction.approved", "customer.created"] |
forceActive | boolean | Recebe todos os tipos de evento | true |
enabled | boolean | Ativa/desativa o endpoint | true |
headerAuthorization | string (máx. 1000) | Valor de autenticação enviado a cada disparo (write-only) | "sk_live_xyz" |
headerAuthorizationType | string (máx. 50) | Tipo de autenticação (write-only) | "Bearer" |
metadata | objeto | Metadados livres | {"updatedBy": "admin"} |
Exemplo de Requisição
{
"name": "Webhook MyDomain - Updated",
"events": [
"transaction.approved",
"transaction.pending",
"customer.created"
],
"enabled": true
}Resposta
Sucesso (200 OK)
{
"id": "wbe_01hqzvabc",
"name": "Webhook MyDomain - Updated",
"endpoint": "https://webhooks.mydomain.com/selectwin",
"enabled": true,
"events": [
"transaction.approved",
"transaction.pending",
"customer.created"
],
"forceActive": false,
"shotsQty": 3068,
"failedShotsQty": 12,
"lastDeliveryAt": "2026-06-20T18:10:00.000Z",
"metadata": { "team": "ops", "updatedBy": "admin" },
"createdAt": "2026-01-26T20:18:05.000Z",
"updatedAt": "2026-06-20T18:10:05.000Z",
"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." }
}
}Atributos da Resposta
Mesma estrutura do Create, sem o campo secret (que só aparece no create/rotate-secret). As credenciais headerAuthorization/headerAuthorizationType são write-only e não retornam.
| Atributo | Tipo | Descrição |
|---|---|---|
id | string | wbe_* |
name | string | Nome (atualizado) |
endpoint | string | URL HTTPS |
enabled | boolean | Ativo |
events | array | null | Tipos de evento assinados |
forceActive | boolean | Recebe todos os tipos de evento |
shotsQty / failedShotsQty | integer | Disparos |
lastDeliveryAt | string (ISO) | null | Última entrega |
metadata | objeto | null | Metadados |
createdAt / updatedAt | string (ISO) | Timestamps |
merchant | object | Bloco do lojista |
_links | object | HATEOAS |
Erros
| Código HTTP | Quando |
|---|---|
| 400 | Validação (ex.: URL não-HTTPS, tipo de evento inválido) |
| 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 a nova URL antes de atualizá-la no webhook.
-
Considere o impacto da alteração de
events[]nas integrações que dependem dessas notificações. -
Use
enabled: falsepara pausar temporariamente um endpoint em vez de excluí-lo. -
Rotacione o segredo periodicamente via
POST /v1/webhooks/{webhookId}/rotate-secret.
How is this guide?