Skip to main content
Webhooks entregam eventos da Routa ao seu servidor assim que eles acontecem. É a forma recomendada de acompanhar a entrega de mensagens e de receber mensagens de clientes. A Routa entrega eventos normalizados (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 é um POST 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 2xx em 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.

Gerenciar endpoints