Webhooks y Eventos

Configurar webhook de la instancia

Gestiona los webhooks de la instancia. Admite modo simple (sin action) y modo multi-webhook (con action: add/update/delete). Para eliminar, envía id + action "delete". Los eventos vienen DESACTIVADOS por defecto. Activa solo los que vayas a consumir (evita tráfico innecesario). Los eventos de alto volumen (presence, history) actívalos solo si realmente los vas a procesar.

POSThttps://api.zapzapapi.com/api/v1/{instanceId}/webhook

Autenticación con los encabezados x-api-key y x-api-secret.

Parámetros

NombreTipoDóndeObligatorioDescripción
idtextcuerpoNoID único del webhook (necesario para update/delete)
enabledselectcuerpoNoHabilita/deshabilita el webhook
urltextcuerpoSíURL para recibir los eventos
eventsjsoncuerpoNoLista de eventos que quieres recibir en tu webhook. TODO viene desactivado por defecto: envía solo los que vayas a usar. Disponibles: connection (conexión), messages (mensajes recibidos/enviados), messages_update (estado: entregado/leído), history (historial al conectar, VOLUMEN ALTO), newsletter_messages (mensajes de canales), call (llamadas), contacts, groups, chats, labels, chat_labels, presence (en línea/escribiendo, VOLUMEN ALTO), blocks (bloqueos), sender. Ejemplo: ["messages","connection","messages_update"].
excludeMessagesjsoncuerpoNoFiltros para excluir tipos de mensajes
addUrlEventsselectcuerpoNoAgrega el tipo de evento como parámetro en la URL. - `false` (por defecto): URL normal - `true`: agrega el evento a la URL (ej: `/webhook/message`)
addUrlTypesMessagesselectcuerpoNoAgrega el tipo de mensaje como parámetro en la URL. - `false` (por defecto): URL normal - `true`: agrega el tipo de mensaje (ej: `/webhook/conversation`)
actionselectcuerpoNoAcción a ejecutar: - add: crear un nuevo webhook - update: actualizar un webhook existente (requiere id) - delete: eliminar un webhook (requiere solo id) Si no se informa, opera en modo simple (webhook único)

Ejemplo de solicitud

curl

curl -X POST "https://api.zapzapapi.com/api/v1/{instanceId}/webhook" \
  -H "x-api-key: TU_API_KEY" \
  -H "x-api-secret: TU_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/webhook"}'

Node.js

const res = await fetch("https://api.zapzapapi.com/api/v1/{instanceId}/webhook", {
  method: "POST",
  headers: {
    "x-api-key": "TU_API_KEY",
    "x-api-secret": "TU_API_SECRET",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "url": "https://example.com/webhook"
  }),
});
console.log(await res.json());

Python

import requests

res = requests.post(
    "https://api.zapzapapi.com/api/v1/{instanceId}/webhook",
    headers={"x-api-key": "TU_API_KEY", "x-api-secret": "TU_API_SECRET"},
    json={"url":"https://example.com/webhook"},
)
print(res.json())

Ejemplo de respuesta

JSON

{
  "status": "Webhook deleted successfully"
}

Los valores son ilustrativos; los campos siguen el formato real de la respuesta.

Ver la referencia completa

Consigue tus claves de API

Crea tu cuenta, conecta un número en minutos y empieza a usar la API. R$15 por número activo/mes, con un crédito de bienvenida al crear la cuenta, sujeto a la campaña vigente.