X-Jelou-Signature com formato sha256=<HMAC_HEX> é usado nas duas direções. A signingKey é obrigatória ao ativar o canal.
- Entrada (seu app → Jelou): você deve gerar a assinatura ao chamar
POST /v1/custom-channel/:botIdePOST /v1/custom-channel/:botId/status. - Saída (Jelou → seu webhook): você deve verificar a assinatura de cada entrega no seu
webhookUrlantes de processar o payload.
credentials.auth (api_key / bearer / basic).
Gerar assinatura em requisições de entrada
Assine o raw body exato que você envia (os mesmos bytes do body HTTP), não um objeto re-serializado diferente. Aplica-se a enviar interação e a consultar status.Verificar assinatura dos eventos recebidos no seu webhook
A Jelou assina o JSON stringificado do payload de saída (JSON.stringify do envelope completo).
X-Jelou-Signature.
Uma entrega repetida leva a mesma assinatura, porque o body assinado é idêntico. Então rejeitar requisições cuja assinatura já viu descartaria novas tentativas legítimas em silêncio — deduplique pelo
message.messageId autenticado. O header X-Jelou-Delivery-Attempt não é assinado e indica qual tentativa é, mas não prova nada: trate-o como campo de log, nunca como proteção anti-replay. Ver Entrega e novas tentativas.