Skip to main content
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 2xx para 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, busy ou ringing)
  • t: timestamp Unix (segundos) de quando o evento foi gerado
  • evento: código do evento — é este campo que você usa para saber qual dos eventos marcados no cadastro está chegando
  • usuario_id: ID do agente no IPBox
Alguns eventos trazem campos extras, além desses quatro (ver tabela abaixo).

Catálogo de eventos

Exemplos de payload

Validando a origem da chamada

Se você preencher o campo Secret no cadastro do webhook, toda chamada chega com o header X-Webhook-Secret contendo exatamente esse valor. Compare o header recebido com o valor que você configurou — se não bater, rejeite a chamada.
Esse mecanismo é um segredo compartilhado simples (o mesmo valor vai em todas as chamadas), não uma assinatura criptográfica do corpo da requisição (tipo HMAC). Ele protege contra chamadas de quem não conhece o secret, mas não garante que o corpo da requisição não foi alterado em trânsito. Use sempre uma URL HTTPS para evitar que o secret trafegue em texto puro numa rede não confiável.

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 200 imediatamente e processe de forma assíncrona no seu lado.
  • Trate o campo evento como a fonte da verdade sobre o que aconteceu — não dependa só do campo estado, já que o mesmo valor de estado pode aparecer em mais de um tipo de evento.