message.delivered, message.received…), nunca payloads do provedor. Você escreve uma integração só, independente do canal.
Escopo necessário para gerenciar endpoints:
webhooks:write.Como funciona
1
Registre um endpoint
Informe a URL HTTPS e os tipos de evento que você quer receber.
2
Guarde o segredo
A resposta traz o
secret de assinatura. Ele é exibido uma única vez.3
Verifique cada entrega
Valide o header
Routa-Signature sobre o corpo bruto antes de confiar no evento. Veja Assinaturas.4
Responda 2xx
Retorne um status
2xx em até 10 segundos. Qualquer outra resposta é tratada como falha e retentada.Registrar um endpoint
Resposta (201 Created)
Tipos assinados
subscribed_types precisa ter pelo menos um item. Cada item é um tipo de evento exato (por exemplo message.delivered) ou um curinga por recurso: message.*, channel.* ou template.*. Um curinga solto (*) ou um tipo inexistente retorna 422 invalid_subscribed_types. A lista completa está em Tipos de evento.
Para alterar a assinatura depois, use PATCH /v1/webhook_endpoints/{id}.
Requisitos da URL
- Em produção, a URL deve usar HTTPS.
- Endereços privados, de loopback e link-local são rejeitados (
invalid_webhook_url). A Routa também reverifica o DNS no momento de cada entrega, e não segue redirecionamentos. http://localhosté aceito somente em projetos de teste.- Cada projeto pode ter até 5 endpoints. Acima disso, a criação retorna
422 too_many_webhook_endpoints.
O que a Routa envia
Cada entrega é umPOST com um único evento no corpo e estes headers:
O corpo é o objeto evento. Não há envio em lote: um evento por requisição.
Semântica de entrega
- Pelo menos uma vez. O mesmo evento pode chegar mais de uma vez. Deduplique por
id. - Sem ordem global. Eventos podem chegar fora de ordem. Trate o status como monotônico.
- Sucesso é qualquer
2xxem até 10 segundos. O corpo da resposta é ignorado. - Falhas são retentadas com espera crescente por cerca de 20 horas. Veja Retentativas e reenvio.
Boas práticas
Responda rápido
Valide, grave o evento em uma fila e retorne
200. Processe depois.Verifique a assinatura
Nunca confie em um evento sem validar
Routa-Signature sobre o corpo bruto.Deduplique
Guarde o
id dos eventos já processados por pelo menos 24 horas.Tolere o desconhecido
Ignore tipos e campos novos. A Routa só faz mudanças aditivas na
v1.