SelectwinDOCS
Endpoints

Excluir um endpoint

Remove permanentemente um endpoint de webhook (a URL cadastrada para receber notificações da Selectwin). A partir da exclusão, aquela URL deixa de receber qualquer evento — use quando uma integração f

Remove permanentemente um endpoint de webhook (a URL cadastrada para receber notificações da Selectwin). A partir da exclusão, aquela URL deixa de receber qualquer evento — use quando uma integração for desativada, migrada para outra URL ou comprometida.

DELETE /v1/webhooks/endpoints/{endpointId}

Um webhook é uma notificação HTTP que a Selectwin envia ao seu servidor quando algo acontece (por exemplo, uma transação é aprovada). O endpoint é o cadastro que guarda a URL de destino, os eventos assinados e o segredo de assinatura. Excluir o endpoint apaga esse cadastro.

Como funciona

A operação é síncrona e definitiva: assim que a API responde 200 OK, o endpoint deixa de existir e nenhum evento futuro será entregue àquela URL.

O que a exclusão faz:

  • Para a entrega imediatamente. Eventos que dispararem depois da exclusão não são enviados para esta URL. Se você tiver outros endpoints assinando os mesmos eventos, eles continuam recebendo normalmente — a exclusão afeta só este endpoint.
  • Cancela tentativas pendentes de entrega que ainda estavam na fila/retry para este endpoint.
  • Invalida o segredo de assinatura (whsec_…) deste endpoint. Ao recriar o endpoint com Create, você recebe um novo segredo — atualize o código de verificação de assinatura.
  • É irreversível. Não há "lixeira" nem desfazer. Para uma pausa temporária, não exclua: ajuste a inscrição abaixo.

Atenção

A exclusão é permanente. Se houver chance de você precisar do endpoint novamente, não exclua: pause-o ajustando os events (ou forceActivities) via Update. Excluir e recriar gera um endpoint novo, com id e secret diferentes.

A resposta usa o formato de confirmação (mantido para clientes legados): em vez de devolver o objeto do endpoint, ela devolve um envelope com deleted: true e links HATEOAS (_links) apontando para as próximas ações possíveis (criar e listar). HATEOAS = links que a própria API fornece para você navegar entre operações relacionadas sem montar URLs na mão.

Quando usar (e quando não)

Use DELETE quando:

  • A integração foi descontinuada e a URL não deve mais receber nada.
  • Houve mudança de infraestrutura e a URL antiga será desligada de vez.
  • O endpoint foi comprometido (segredo vazado, URL maliciosa) e você quer eliminá-lo por completo.

Não use DELETE quando:

  • Você só quer pausar temporariamente. Em vez disso, reduza a inscrição via Update — esvazie ou ajuste a lista de events (ou desligue forceActivities) para parar de receber sem apagar o cadastro. Assim você preserva id, secret e histórico, e pode reinscrever os eventos depois. (Não há campo de corpo enabled para alterar aqui — gerencie pela lista de events.)
  • Você só quer mudar a URL ou os eventos. Faça isso com Update, sem perder o id nem o segredo.

Requisição

Headers

CabeçalhoObrigatórioValor
SelectKeySimSua chave de API (sl_live_… em produção, sl_test_… em sandbox). Veja Autenticação.
X-Idempotency-KeyDispensávelDELETE já é naturalmente idempotente, então a chave não é necessária aqui. Veja Idempotência.

Não há corpo nesta requisição, portanto Content-Type é dispensável. A autenticação é sempre pelo header SelectKeynunca Authorization: Bearer ou Basic.

Parâmetros de caminho

ParâmetroTipoObrigatórioDescrição
endpointIdstringSimID do endpoint de webhook a excluir, no formato wbe_…. Trate-o como opaco — não faça parsing. Ex.: wbe_01hqzvabc.

Exemplo curl

curl -X DELETE https://api.selectwin.io/v1/webhooks/endpoints/wbe_01hqzvabc \
  -H "SelectKey: sl_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ"

Resposta

Sucesso (200 OK)

{
  "id": "wbe_01hqzvabc",
  "resource": "webhook",
  "deleted": true,
  "merchant": {
    "name": "Seller Name",
    "merchantId": "bus_1234567890",
    "isSubAccount": false
  },
  "_links": {
    "self": {
      "href": "https://api.selectwin.io/v1/webhooks/endpoints/wbe_01hqzvabc",
      "method": "DELETE",
      "description": "Delete the webhook endpoint."
    },
    "create": {
      "href": "https://api.selectwin.io/v1/webhooks/endpoints",
      "method": "POST",
      "description": "Create a new webhook endpoint."
    },
    "list": {
      "href": "https://api.selectwin.io/v1/webhooks/endpoints",
      "method": "GET",
      "description": "List all webhook endpoints."
    }
  }
}
CampoTipoDescrição
idstringO wbe_… que foi excluído.
resourcestringTipo do recurso confirmado ("webhook").
deletedbooleantrue quando a exclusão foi efetivada. Use este campo para confirmar o sucesso.
merchantobjectIdentificação da conta dona do endpoint (name, merchantId, isSubAccount).
_linksobjectLinks HATEOAS para os próximos passos: self (esta operação), create e list.

Nota

Diferente das operações de leitura/atualização, o DELETE não retorna o objeto completo do endpoint (sem endpoint, events, secret etc.). Ele só confirma a exclusão. Se precisar guardar a configuração antes de apagar, leia o endpoint com List (ou o read individual) e salve os dados antes.

Erros

Trate sempre pelo error.code (estável), nunca pela message. Veja o Catálogo de Códigos de Erro e o envelope de erro.

error.codeHTTPQuando ocorre
invalidWebhookEndpointId400O endpointId está malformado (formato fora do padrão wbe_…).
unauthorized401SelectKey ausente, inválida ou revogada.
forbidden403A chave é válida, mas não tem permissão sobre este endpoint (ex.: pertence a outra conta).
notFound404Nenhum endpoint com esse endpointId existe (ou já foi excluído).
unprocessableEntity422A exclusão não pôde ser processada por uma regra de negócio.
tooManyRequests429Limite de requisições excedido — respeite error.retryAfterMinutes no backoff.
serverError500Erro interno — repita com backoff exponencial.

Exemplo de 404 (endpoint inexistente ou já removido):

{
  "error": {
    "code": "notFound",
    "statusCode": 404,
    "category": "client",
    "message": "Webhook endpoint not found."
  }
}

Dica

Em DELETE, um 404 muitas vezes não é problema: pode significar que o endpoint está apagado. Se o seu objetivo é só garantir que ele não exista, trate 404 como sucesso (a operação é, na prática, idempotente para esse fim).

Boas práticas

  • Prefira pausar a excluir quando houver chance de reativação: use Update para esvaziar/ajustar os events (ou desligar forceActivities) em vez de DELETE. Você mantém id, secret e histórico.
  • Guarde a configuração antes de apagar. Leia o endpoint (URL, eventos, metadata) e armazene; o segredo (whsec_…) não pode ser recuperado depois.
  • Confirme pelo campo deleted (e não apenas pelo HTTP 200) antes de remover referências internas ao endpoint.
  • Trate 404 como sucesso quando a meta for "garantir que não exista" — isso torna a operação segura para repetir.
  • Não precisa de X-Idempotency-Key aqui: DELETE é naturalmente idempotente. Para tentativas repetidas (rede instável, retry), basta tratar 404 como sucesso — o resultado é o mesmo.
  • Tenha a substituição pronta antes de excluir um endpoint que está sendo trocado: crie e valide o novo endpoint com Create e só então remova o antigo, evitando janela sem entregas.
  • Atualize a verificação de assinatura no seu lado: o segredo do endpoint excluído deixa de valer; um endpoint recriado terá um segredo novo.

Veja também

How is this guide?

On this page