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.
POST
https://api.zapzapapi.com/api/v1/{instanceId}/webhookAutenticación con los encabezados x-api-key y x-api-secret.
Parámetros
| Nombre | Tipo | Dónde | Obligatorio | Descripción |
|---|---|---|---|---|
id | text | cuerpo | No | ID único del webhook (necesario para update/delete) |
enabled | select | cuerpo | No | Habilita/deshabilita el webhook |
url | text | cuerpo | Sí | URL para recibir los eventos |
events | json | cuerpo | No | Lista 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"]. |
excludeMessages | json | cuerpo | No | Filtros para excluir tipos de mensajes |
addUrlEvents | select | cuerpo | No | Agrega 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`) |
addUrlTypesMessages | select | cuerpo | No | Agrega el tipo de mensaje como parámetro en la URL. - `false` (por defecto): URL normal - `true`: agrega el tipo de mensaje (ej: `/webhook/conversation`) |
action | select | cuerpo | No | Acció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.
Otros endpoints de esta categoría
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.
