Pular para o conteúdo

Criar webhook

POST/v1/webhooksdesde M3token da instância ou admin

Quando usar

Cadastra um endpoint que recebe por POST os eventos que combinam com events (tipos exatos, famílias como message.*, ou *). Com token de instância o webhook é sempre daquela instância. Com token admin, instance_id escolhe a instância; sem ele o webhook é global (todas as instâncias).

secret é opcional (16 a 256 caracteres); sem ele um é gerado com prefixo whsec_. O segredo só aparece nesta resposta (e na de um PATCH que o troque): guarde-o. Só URLs http(s); endereços privados, loopback e link-local são recusados na entrega, salvo webhook_allow_private_urls: true. Redirecionamentos não são seguidos.

Autenticação

Aceita o token da instância (só a própria instância) ou o token admin. Um token de outra instância recebe 403 forbidden (ou 404 not_found em webhooks de outra instância).

Parâmetros

Corpo (JSON)

NomeTipoDescrição
urlstringURL absoluta http(s), até 2048 caracteres. Obrigatório na criação.
eventsstring[]Filtros: tipos exatos, famílias (message.*) ou *. Obrigatório na criação. (até 32 itens)
secretstring16 a 256 caracteres. Omitido na criação: gerado. Vazio no PATCH: gera outro.
instance_idstringSó na criação. Admin: instância do webhook (omitido = global). Token de instância: só a própria.
enabledboolean (padrão true)
version1Versão do envelope. Só 1 por enquanto.
filtersWebhookFiltersRestringem os eventos do webhook (marco 7). Cada filtro só vale para eventos que têm o campo: instance.* sempre passam.
filters.chat"direct" | "group"
filters.chatsstring[]Só estes chats (número com DDI ou JID). (até 500 itens)
filters.exclude_chatsstring[]Todos menos estes chats.
filters.message_types"text" | "image" | "video" | "gif" | "ptv" | "audio" | "document" | "sticker" | "location" | "contact" | "poll" | "reaction" | "button_reply" | "unknown"[]Só eventos de mensagem destes tipos (received, sent, reaction, button_reply).
filters.from_mebooleantrue: só mensagens nossas; false: exclui as nossas. Omitido: ambas. Não se aplica a message.status.

Exemplo

Janela do terminal
curl -s -X POST "$LITEZAP_URL/v1/webhooks" \
-H "Authorization: Bearer $LITEZAP_TOKEN" \
-d '{"url":"https://exemplo.com/litezap","events":["message.*","instance.status"]}'

Nos exemplos, LITEZAP_URL é a URL base (ex.: http://localhost:8787) e o token vem deLITEZAP_TOKEN (instância) ou LITEZAP_ADMIN_TOKEN.

Resposta

201 Webhook criado, com o secret.

Campos de Webhook
idstring
instance_idstringAusente em webhook global.
urlstring
eventsstring[]
versioninteger
enabledboolean
filtersWebhookFiltersRestringem os eventos do webhook (marco 7). Cada filtro só vale para eventos que têm o campo: instance.* sempre passam.
filters.chat"direct" | "group"
filters.chatsstring[]Só estes chats (número com DDI ou JID).
filters.exclude_chatsstring[]Todos menos estes chats.
filters.message_types"text" | "image" | "video" | "gif" | "ptv" | "audio" | "document" | "sticker" | "location" | "contact" | "poll" | "reaction" | "button_reply" | "unknown"[]Só eventos de mensagem destes tipos (received, sent, reaction, button_reply).
filters.from_mebooleantrue: só mensagens nossas; false: exclui as nossas. Omitido: ambas. Não se aplica a message.status.
created_atstring
updated_atstring
secretstringSó na criação e quando trocado por PATCH.
{
"id": "wh_3c7e1a9f5b2d4806",
"instance_id": "inst_7f3a9c2e5b1d4086",
"url": "https://exemplo.com/litezap",
"events": [
"message.*",
"instance.status"
],
"version": 1,
"enabled": true,
"created_at": "2026-10-17T14:00:00Z",
"updated_at": "2026-10-17T14:00:00Z",
"secret": "whsec_9Jd2kQm4xV7pR1tY6nB3cF8hL0sW5zA"
}

Erros

CódigoHTTPRetentávelO que fazer
validation_failed400nãoCorrija o corpo ou os parâmetros; a message diz o campo.
unauthorized401nãoEnvie Authorization: Bearer <token> válido.
forbidden403nãoUse o token certo (admin, ou o da própria instância).
instance_not_found404nãoConfira o id da instância.

Todo erro usa o envelope {"error":{"code","message","retryable"}}. Tabela completa em Erros.

Equivalente na Z-API: Atualizar webhook (ao receber, ao enviar, status...). Veja Migrar da Z-API.

Outras operações de Webhooks: Listar webhooks · Consultar webhook · Atualizar webhook · Apagar webhook · Listar entregas · Reenviar entrega