Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt

Use this file to discover all available pages before exploring further.

El header X-Jelou-Signature con formato sha256=HMAC_HEX_DIGEST se utiliza en ambas direcciones:
  • Verificación: Cuando recibe eventos de Jelou en su webhook, debe verificar la firma para garantizar la integridad.
  • Generación: Cuando envía mensajes al webhook de Jelou (incoming_message), debe generar y enviar la firma.

Verificación de eventos recibidos de Jelou

Todos los eventos enviados por Jelou al webhook incluyen el header X-Jelou-Signature. Se recomienda siempre verificar la firma.
const crypto = require("crypto");

function verifySignature(payload, signature, signingSecret) {
    const expectedSignature = crypto
        .createHmac("sha256", signingSecret)
        .update(JSON.stringify(payload))
        .digest("hex");

    const expected = `sha256=${expectedSignature}`;

    return (
        signature.length === expected.length &&
        crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))
    );
}

Generación de firma para enviar a Jelou

Cuando tu sistema envía eventos de mensajes a Jelou, debes incluir el header X-Jelou-Signature con la firma del payload en cada request.
const crypto = require("crypto");

const payload = { /* su payload aquí */ };
const signingSecret = "su_signing_secret";

const body = JSON.stringify(payload);
const signature = crypto
    .createHmac("sha256", signingSecret)
    .update(body)
    .digest("hex");