Webhooks
Configure webhooks para receber notificacoes HTTP em tempo real quando eventos ocorrem.
Para guia detalhado de implementacao, veja o Guia de Webhooks.
/api/v1/accounts/{account_id}/webhooksLista todos os webhooks configurados na conta.
curl -s "https://chat.seudominio.com/api/v1/accounts/1/webhooks" \
-H "api_access_token: YOUR_TOKEN" | jq .{
"payload": [
{
"id": 1,
"account_id": 1,
"url": "https://meuapp.com/webhooks/chat",
"subscriptions": [
"conversation_created",
"message_created",
"contact_created"
]
}
]
}/api/v1/accounts/{account_id}/webhooksRegistra um novo webhook para receber eventos.
Body (envolto em objeto webhook)
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
url | string | Sim | URL HTTPS que recebera os eventos via POST |
subscriptions | array | Sim | Lista de eventos para receber (ver tabela de Eventos Disponiveis) |
name | string | Nao | Nome descritivo do webhook |
inbox_id | integer | Nao | ID da inbox para webhooks do tipo inbox |
Parametros aninhados
Os campos do webhook devem ser enviados dentro de um objeto webhook: { "webhook": { "url": "...", "subscriptions": [...] } }.
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/webhooks" \
-H "api_access_token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"webhook": {
"url": "https://meuapp.com/webhooks/noovichat",
"subscriptions": [
"conversation_created",
"conversation_status_changed",
"message_created",
"contact_created"
]
}
}'{
"id": 2,
"url": "https://meuapp.com/webhooks/noovichat",
"subscriptions": ["conversation_created", "message_created"]
}/api/v1/accounts/{account_id}/webhooks/{webhook_id}Atualiza a URL ou subscriptions de um webhook.
Body
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
url | string | Nao | Nova URL do webhook |
subscriptions | array | Nao | Nova lista de eventos |
curl -X PATCH "https://chat.seudominio.com/api/v1/accounts/1/webhooks/2" \
-H "api_access_token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"webhook": {
"subscriptions": [
"conversation_created",
"message_created",
"contact_updated"
]
}
}'/api/v1/accounts/{account_id}/webhooks/{webhook_id}Remove um webhook. Eventos nao serao mais enviados para a URL.
curl -X DELETE "https://chat.seudominio.com/api/v1/accounts/1/webhooks/2" \
-H "api_access_token: YOUR_TOKEN"Eventos Disponiveis
| Evento | Descricao |
|---|---|
conversation_created | Nova conversa criada |
conversation_updated | Conversa atualizada |
conversation_status_changed | Status da conversa alterado |
conversation_typing_on | Indicador de digitacao iniciado |
conversation_typing_off | Indicador de digitacao encerrado |
message_created | Nova mensagem recebida ou enviada |
message_updated | Mensagem atualizada |
contact_created | Novo contato criado |
contact_updated | Dados do contato atualizados |
webwidget_triggered | Widget de chat acionado no site |
inbox_created | Nova inbox criada |
inbox_updated | Inbox atualizada |
Payload do Webhook
Cada evento envia um payload JSON com os dados do evento. O campo event identifica o tipo de evento. Veja exemplos no Guia de Webhooks.
Eventos de Atendimentos
Requer feature flag appointments_module ativa.
| Evento (campo event no payload) | Descricao |
|---|---|
appointment_created | Novo atendimento agendado |
appointment_updated | Dados do atendimento atualizados |
appointment_confirmed | Atendimento confirmado |
appointment_completed | Atendimento marcado como realizado |
appointment_cancelled | Atendimento cancelado |
appointment_no_show | Cliente nao compareceu |
appointment_rescheduled | Reagendamento realizado |
reminder_sent | Lembrete enviado com sucesso |
reminder_failed | Falha no envio do lembrete |
professional_created | Profissional criado |
professional_updated | Profissional atualizado |
service_created | Servico criado |
service_updated | Servico atualizado |
Nomes de subscription para eventos de atendimento
Os eventos de atendimento sao entregues com o campo event no formato sublinhado (ex: appointment_created), mas a validacao de subscriptions no cadastro do webhook aceita esses eventos no formato com ponto (ex: appointment.created). Os eventos professional.created, professional.updated, service.created e service.updated tambem sao suportados na validacao. Nao existem eventos de exclusao (professional_deleted / service_deleted).
Payloads de Lembrete
Os eventos reminder_sent e reminder_failed sao entregues com um payload simples (campos diretos, sem objetos aninhados).
Payload — reminder_sent
{
"event": "reminder_sent",
"account_id": 1,
"reminder_id": 88,
"appointment_id": 42,
"sent_at": "2026-06-14T10:00:00.000Z"
}Payload — reminder_failed
{
"event": "reminder_failed",
"account_id": 1,
"reminder_id": 88,
"appointment_id": 42,
"last_error": "Numero invalido ou fora de cobertura"
}