Skip to main content
GET
Verificar Webhooks
Auth: TokenAccount ou TokenInstanceRate-limit: Global (100/min) • Idempotente: sim

Descrição

Endpoint de leitura. Sem query, retorna todos os webhooks (habilitados e desabilitados) da instância. Com ?label=<nome>, retorna o único webhook desse label (ou 404).

Exemplos

Listar todos

Sem query string, retorna o array webhooks[] com todos os webhooks da instância (habilitados e desabilitados), ordenado alfabeticamente por label.

Um específico

Passando ?label=analytics-pipeline, retorna apenas o webhook desse label no campo webhook do envelope (ou 404 se não existir).

Default explícito

Busca o webhook padrão informando ?label=default. Útil quando você criou o webhook sem especificar label e quer ler somente essa entrada em vez da lista completa.

Resposta de sucesso

Sem ?label=, retorna webhooks[] (ordenado alfabeticamente por label, sempre presente, vem [] se nenhum webhook existir, e inclui também os com enabled=false para inspeção operacional). Com ?label=<nome>, retorna o objeto único em webhook (mesmo shape do POST). O authorization vem descriptografado quando ENCRYPTION_KEY está configurada; se a chave foi rotacionada e algum valor não decifra, o campo retorna criptografado em vez de derrubar o request.
200 OK (lista, sem ?label=)
200 OK (?label=analytics-pipeline)
array
Presente apenas quando não?label=. Ordenado alfabeticamente por label. Sempre retornado mesmo sem nenhum webhook (webhooks: []).
object
Presente apenas quando há ?label=<nome>. Mesmo shape do POST.

Parâmetros de rota

string
obrigatório
Nome da instância.

Headers

string
obrigatório
TokenAccount ou TokenInstance.

Query parameters

string
Quando presente, retorna um único webhook (webhook no envelope). Ausente, retorna a lista (webhooks[]).Passar ?label= (vazio) ainda é considerado “presente” → vira "default" e busca a linha desse label.
  • Listagem inclui enabled=false, operadores veem o histórico completo. Para listar só ativos, filtre no cliente por w.enabled === true.
  • authorization descriptografado: se ENCRYPTION_KEY está configurada e o valor estiver criptografado at-rest, o repositório descriptografa antes de retornar. Se a chave foi rotacionada e algum valor não decifra, o campo retorna criptografado (com warning no log) em vez de derrubar o request.

Entrega: queue, retry, DLQ

A entrega de webhooks é assíncrona e persistida. Cada evento que matcha um webhook é enfileirado em webhook_queue e processado por workers em paralelo.

Fluxo

Backoff exponencial

Após max_attempts (default 5), status vira failed (DLQ). A linha não é deletada automaticamente, operadores podem inspecionar last_error e re-enfileirar manualmente (UPDATE webhook_queue SET status='pending', next_retry_at=now()).

Tabela webhook_queue (resumo para ops)

Headers entregues

Cada POST ao seu webhook chega com:
Não há HMAC automático. A validação de origem é responsabilidade do consumidor, configure um authorization (Bearer token, API key) e valide no seu endpoint.

Erros

Envelope:

Próximo

Configurar webhook

POST /api/events/webhook/:instance

Catálogo de eventos

Schemas dos 6 tipos de evento.