Os endpoints relacionados à criação e gerenciamento de webhooks estão disponíveis em API Reference.
Como funciona
Quando um evento configurado acontece, o JuriChat envia uma requisiçãoPOST para a URL configurada por você.
O payload é enviado em formato JSON contendo os dados do evento.
1. Evento acontece
Um evento é disparado dentro do JuriChat.
2. Webhook enviado
O JuriChat envia uma requisição POST para sua URL.
3. Seu sistema processa
Sua aplicação recebe e processa o payload enviado.
4. Confirmação
Sua API responde com qualquer status HTTP 2xx.
Requisitos da sua aplicação
Para garantir o funcionamento correto dos webhooks:HTTPS
Utilize HTTPS para receber eventos com segurança.
Resposta rápida
Seu endpoint deve responder em até 30 segundos.
Status 2xx
Retorne qualquer status HTTP 2xx para confirmar o recebimento.
JSON
Sua aplicação deve aceitar payloads JSON.
Cabeçalhos enviados
Cada webhook enviado pelo JuriChat contém os seguintes cabeçalhos:Assinatura
Todos os webhooks são assinados utilizando HMAC-SHA256 para permitir a verificação de autenticidade da requisição. A assinatura é calculada exclusivamente sobre o body bruto (raw body) da requisição, utilizando o segredo do webhook. O valor enviado no headerX-JuriChat-Signature possui o formato:
- Apenas o body bruto participa do cálculo da assinatura.
- Headers como
X-JuriChat-TimestampeX-JuriChat-Deliverynão fazem parte da assinatura. - Alterações no JSON (espaços, formatação ou reserialização) podem invalidar a verificação.
Timestamp
O headerX-JuriChat-Timestamp informa o momento em que aquela tentativa de entrega foi realizada.
O valor é enviado no padrão ISO 8601 em UTC.
Exemplo:
Proteção contra replay
O JuriChat não define uma janela oficial de validade para o timestamp enviado. Caso sua aplicação deseje evitar processamentos duplicados, recomendamos utilizar o valor do headerX-JuriChat-Delivery como chave de idempotência, garantindo que cada entrega seja processada apenas uma vez.
Campos do evento
Todos os eventos seguem a estrutura abaixo:data.
Importante:
Os payloads não incluem:
- Informações do canal de origem;
- Lista de anexos;
- Objetos completos e aninhados de conversa;
- Objetos completos e aninhados de contato.
Exemplo de payload
Política de retry
Caso sua aplicação não responda com um status HTTP2xx, o JuriChat tentará reenviar automaticamente o webhook.
São realizadas até 3 tentativas no total (incluindo a tentativa inicial), utilizando o backoff configurado pelo sistema.