Webhooks
Endereços que recebem os eventos da instância, com histórico de entregas.
Base
https://app.onzap.io/v1/instances/{instanceId}AuthX-Instance-Token: SEU_TOKENRequisição
curl "https://app.onzap.io/v1/instances/SUA_INSTANCIA/webhooks" \
-H "X-Instance-Token: $ONZAP_TOKEN"Resposta
Webhooks da instância e eventos disponíveis
{
"data": [
{
"consecutiveFailures": 0,
"createdAt": "2026-09-30T14:05:00Z",
"description": "Atendimento de segunda a sexta, das 9h às 18h.",
"disabledAt": "2026-09-30T14:05:00Z",
"disabledReason": "20 falhas seguidas desde 30/09 às 14:05",
"enabled": false,
"events": [
"message.any"
],
"failingSince": "2026-09-30T14:05:00Z",
"headers": {},
"id": "whk_01jabcdefghjkmnpqrstvwxy",
"instanceId": "i01jabcdefghjkmnpqrstvwxyz",
"instanceName": "Loja Centro",
"lastDeliveryAt": "2026-09-30T14:05:00Z",
"lastSuccess": false,
"responseTime": {
"medianMs": 0,
"p95Ms": 0,
"samples": 0
},
"secret": "8f14e45fceea167a5a36dedd4bea2543",
"updatedAt": "2026-09-30T14:05:00Z",
"url": "https://exemplo.com.br/arquivos/pedido.jpg"
}
],
"events": [
"message.any"
]
}Criar webhook
POST
API OnZapAPI oficial/v1/instances/{instanceId}/webhooksAté 5 por instância. O secret gerado vem na resposta: use-o para conferir X-OnZap-Signature.
Corpo (JSON)
eventsarray de stringobrigatório* = todos). Lista completa na seção Webhooks.urlstringobrigatóriodescriptionstringopcionalenabledbooleanopcionalheadersobjectopcionalRequisição
curl -X POST "https://app.onzap.io/v1/instances/SUA_INSTANCIA/webhooks" \
-H "X-Instance-Token: $ONZAP_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"events": [
"message",
"message.ack"
],
"url": "https://seu-sistema.com.br/webhooks/whatsapp"
}'Resposta
Webhook criado
{
"consecutiveFailures": 0,
"createdAt": "2026-09-30T14:05:00Z",
"description": "Atendimento de segunda a sexta, das 9h às 18h.",
"disabledAt": "2026-09-30T14:05:00Z",
"disabledReason": "20 falhas seguidas desde 30/09 às 14:05",
"enabled": false,
"events": [
"message.any"
],
"failingSince": "2026-09-30T14:05:00Z",
"headers": {},
"id": "whk_01jabcdefghjkmnpqrstvwxy",
"instanceId": "i01jabcdefghjkmnpqrstvwxyz",
"instanceName": "Loja Centro",
"lastDeliveryAt": "2026-09-30T14:05:00Z",
"lastSuccess": false,
"responseTime": {
"medianMs": 0,
"p95Ms": 0,
"samples": 0
},
"secret": "8f14e45fceea167a5a36dedd4bea2543",
"updatedAt": "2026-09-30T14:05:00Z",
"url": "https://exemplo.com.br/arquivos/pedido.jpg"
}Consultar webhook
GET
API OnZapAPI oficial/v1/instances/{instanceId}/webhooks/{webhookId}Parâmetros do caminho
webhookIdstringobrigatórioRequisição
curl "https://app.onzap.io/v1/instances/SUA_INSTANCIA/webhooks/whk_01jabcdefghjkmnpqrstvwxyz0" \
-H "X-Instance-Token: $ONZAP_TOKEN"Resposta
Webhook
{
"consecutiveFailures": 0,
"createdAt": "2026-09-30T14:05:00Z",
"description": "Atendimento de segunda a sexta, das 9h às 18h.",
"disabledAt": "2026-09-30T14:05:00Z",
"disabledReason": "20 falhas seguidas desde 30/09 às 14:05",
"enabled": false,
"events": [
"message.any"
],
"failingSince": "2026-09-30T14:05:00Z",
"headers": {},
"id": "whk_01jabcdefghjkmnpqrstvwxy",
"instanceId": "i01jabcdefghjkmnpqrstvwxyz",
"instanceName": "Loja Centro",
"lastDeliveryAt": "2026-09-30T14:05:00Z",
"lastSuccess": false,
"responseTime": {
"medianMs": 0,
"p95Ms": 0,
"samples": 0
},
"secret": "8f14e45fceea167a5a36dedd4bea2543",
"updatedAt": "2026-09-30T14:05:00Z",
"url": "https://exemplo.com.br/arquivos/pedido.jpg"
}Alterar webhook
PATCH
API OnZapAPI oficial/v1/instances/{instanceId}/webhooks/{webhookId}Só os campos enviados mudam. Reativar (enabled: true) zera o contador de falhas.
Parâmetros do caminho
webhookIdstringobrigatórioCorpo (JSON)
descriptionstringopcionalenabledbooleanopcionaleventsarray de stringopcional* = todos). Lista completa na seção Webhooks.headersobjectopcionalurlstringopcionalRequisição
curl -X PATCH "https://app.onzap.io/v1/instances/SUA_INSTANCIA/webhooks/whk_01jabcdefghjkmnpqrstvwxyz0" \
-H "X-Instance-Token: $ONZAP_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'Resposta
Webhook atualizado
{
"consecutiveFailures": 0,
"createdAt": "2026-09-30T14:05:00Z",
"description": "Atendimento de segunda a sexta, das 9h às 18h.",
"disabledAt": "2026-09-30T14:05:00Z",
"disabledReason": "20 falhas seguidas desde 30/09 às 14:05",
"enabled": false,
"events": [
"message.any"
],
"failingSince": "2026-09-30T14:05:00Z",
"headers": {},
"id": "whk_01jabcdefghjkmnpqrstvwxy",
"instanceId": "i01jabcdefghjkmnpqrstvwxyz",
"instanceName": "Loja Centro",
"lastDeliveryAt": "2026-09-30T14:05:00Z",
"lastSuccess": false,
"responseTime": {
"medianMs": 0,
"p95Ms": 0,
"samples": 0
},
"secret": "8f14e45fceea167a5a36dedd4bea2543",
"updatedAt": "2026-09-30T14:05:00Z",
"url": "https://exemplo.com.br/arquivos/pedido.jpg"
}Excluir webhook
DELETE
API OnZapAPI oficial/v1/instances/{instanceId}/webhooks/{webhookId}Parâmetros do caminho
webhookIdstringobrigatórioRequisição
curl -X DELETE "https://app.onzap.io/v1/instances/SUA_INSTANCIA/webhooks/whk_01jabcdefghjkmnpqrstvwxyz0" \
-H "X-Instance-Token: $ONZAP_TOKEN"Resposta
Excluído
Enviar evento de teste
POST
API OnZapAPI oficial/v1/instances/{instanceId}/webhooks/{webhookId}/testEntrega um webhook.test só para este webhook (mesmo desativado). Acompanhe em /deliveries.
Parâmetros do caminho
webhookIdstringobrigatórioRequisição
curl -X POST "https://app.onzap.io/v1/instances/SUA_INSTANCIA/webhooks/whk_01jabcdefghjkmnpqrstvwxyz0/test" \
-H "X-Instance-Token: $ONZAP_TOKEN"Resposta
Teste enfileirado
{
"event": "webhook.test",
"eventId": "evt_01jabcdefghjkmnpqrstvwxyz0"
}Gerar novo segredo
POST
API OnZapAPI oficial/v1/instances/{instanceId}/webhooks/{webhookId}/rotate-secretO segredo anterior deixa de valer imediatamente.
Parâmetros do caminho
webhookIdstringobrigatórioRequisição
curl -X POST "https://app.onzap.io/v1/instances/SUA_INSTANCIA/webhooks/whk_01jabcdefghjkmnpqrstvwxyz0/rotate-secret" \
-H "X-Instance-Token: $ONZAP_TOKEN"Resposta
Webhook com o novo segredo
{
"consecutiveFailures": 0,
"createdAt": "2026-09-30T14:05:00Z",
"description": "Atendimento de segunda a sexta, das 9h às 18h.",
"disabledAt": "2026-09-30T14:05:00Z",
"disabledReason": "20 falhas seguidas desde 30/09 às 14:05",
"enabled": false,
"events": [
"message.any"
],
"failingSince": "2026-09-30T14:05:00Z",
"headers": {},
"id": "whk_01jabcdefghjkmnpqrstvwxy",
"instanceId": "i01jabcdefghjkmnpqrstvwxyz",
"instanceName": "Loja Centro",
"lastDeliveryAt": "2026-09-30T14:05:00Z",
"lastSuccess": false,
"responseTime": {
"medianMs": 0,
"p95Ms": 0,
"samples": 0
},
"secret": "8f14e45fceea167a5a36dedd4bea2543",
"updatedAt": "2026-09-30T14:05:00Z",
"url": "https://exemplo.com.br/arquivos/pedido.jpg"
}Histórico de entregas
GET
API OnZapAPI oficial/v1/instances/{instanceId}/webhooks/{webhookId}/deliveriesEntregas dos últimos 30 dias, das mais novas para as mais antigas.
Parâmetros do caminho
webhookIdstringobrigatórioParâmetros de query
statusstringopcionallimitintegeropcionalcursorstringopcionalnextCursor da página anterior.Requisição
curl "https://app.onzap.io/v1/instances/SUA_INSTANCIA/webhooks/whk_01jabcdefghjkmnpqrstvwxyz0/deliveries" \
-H "X-Instance-Token: $ONZAP_TOKEN"Resposta
Página de entregas
{
"data": [
{
"attempts": 1,
"createdAt": "2026-09-30T14:05:00Z",
"durationMs": 0,
"error": "número sem WhatsApp",
"event": "message.any",
"eventId": "evt_01jabcdefghjkmnpqrstvwxyz0",
"id": "dlv_01jabcdefghjkmnpqrstvwxy",
"nextAttemptAt": "2026-09-30T14:05:00Z",
"response": "{\"id\":\"[email protected]_3EB0C0A1B2C3D4E5F6\"}",
"status": "success",
"statusCode": 0,
"updatedAt": "2026-09-30T14:05:00Z"
}
],
"nextCursor": "eyJvZmZzZXQiOjUwfQ"
}Consultar entrega
GET
API OnZapAPI oficial/v1/instances/{instanceId}/webhooks/{webhookId}/deliveries/{deliveryId}Inclui o corpo exato enviado (payload).
Parâmetros do caminho
webhookIdstringobrigatóriodeliveryIdstringobrigatórioRequisição
curl "https://app.onzap.io/v1/instances/SUA_INSTANCIA/webhooks/whk_01jabcdefghjkmnpqrstvwxyz0/deliveries/dlv_01jabcdefghjkmnpqrstvwxyz0" \
-H "X-Instance-Token: $ONZAP_TOKEN"Resposta
Entrega
{
"attempts": 1,
"createdAt": "2026-09-30T14:05:00Z",
"durationMs": 0,
"error": "número sem WhatsApp",
"event": "message.any",
"eventId": "evt_01jabcdefghjkmnpqrstvwxyz0",
"id": "dlv_01jabcdefghjkmnpqrstvwxy",
"nextAttemptAt": "2026-09-30T14:05:00Z",
"response": "{\"id\":\"[email protected]_3EB0C0A1B2C3D4E5F6\"}",
"status": "success",
"statusCode": 0,
"updatedAt": "2026-09-30T14:05:00Z"
}Reenviar entrega
POST
API OnZapAPI oficial/v1/instances/{instanceId}/webhooks/{webhookId}/deliveries/{deliveryId}/retryCria uma nova entrega do mesmo evento (o evento precisa ter menos de 7 dias).
Parâmetros do caminho
webhookIdstringobrigatóriodeliveryIdstringobrigatórioRequisição
curl -X POST "https://app.onzap.io/v1/instances/SUA_INSTANCIA/webhooks/whk_01jabcdefghjkmnpqrstvwxyz0/deliveries/dlv_01jabcdefghjkmnpqrstvwxyz0/retry" \
-H "X-Instance-Token: $ONZAP_TOKEN"Resposta
Reenvio enfileirado
{
"deliveryId": "dlv_01jabcdefghjkmnpqrstvwxy"
}