Se você ainda não sabe o que é ou como cadastrar um webhook, veja primeiro o guia de Webhooks.
Visão geral
- Método:
POST - Content-Type:
application/json - Entrega: em tempo real — assim que o evento acontece no IPBox
- Tentativas: uma única tentativa por evento, com timeout de
5 segundos. Não há retry automático em caso de falha — seu endpoint
precisa responder rápido e com um status
2xxpara confirmar o recebimento.
Headers enviados
Formato do payload
Todo evento chega com esse formato base:estado: estado interno do agente no momento do evento (online,offline,paused,busyouringing)t: timestamp Unix (segundos) de quando o evento foi geradoevento: código do evento — é este campo que você usa para saber qual dos eventos marcados no cadastro está chegandousuario_id: ID do agente no IPBox
Catálogo de eventos
Exemplos de payload
agente.login
agente.login
agente.logout
agente.logout
agente.pause_in
agente.pause_in
agente.pause_out
agente.pause_out
agente.busy
agente.busy
agente.ringing
agente.ringing
agente.online
agente.online
Validando a origem da chamada
Se você preencher o campo Secret no cadastro do webhook, toda chamada chega com o headerX-Webhook-Secret contendo exatamente esse
valor. Compare o header recebido com o valor que você configurou —
se não bater, rejeite a chamada.
Exemplo em PHP
Exemplo com curl (simulando o recebimento)
Boas práticas
- Responda rápido (idealmente em menos de 1 segundo) e com status
2xx— como não há retry automático, uma resposta lenta ou com erro faz você perder aquela notificação. - Se precisar processar algo demorado a partir do evento, responda
200imediatamente e processe de forma assíncrona no seu lado. - Trate o campo
eventocomo a fonte da verdade sobre o que aconteceu — não dependa só do campoestado, já que o mesmo valor deestadopode aparecer em mais de um tipo de evento.