Skip to main content
The X-Jelou-Signature header with format sha256=<HMAC_HEX> is used in both directions. The signingKey is required when you enable the channel.
  • Inbound (your app → Jelou): you must generate the signature when calling POST /v1/custom-channel/:botId and POST /v1/custom-channel/:botId/status.
  • Outbound (Jelou → your webhook): verify the signature on every delivery to your webhookUrl, especially useful to ensure the message is legitimate and unmodified.
Signing is independent of credentials.auth (api_key / bearer / basic).

Generate a signature on inbound requests

Sign the exact raw body you send (the same HTTP body bytes), not a differently re-serialized object. Applies to send interaction and check status.
Use the same string/buffer you send in the request. Re-serializing JSON with a different key order or whitespace breaks verification.

Verify signatures on events received at your webhook

Jelou signs the stringified JSON of the outbound payload (JSON.stringify of the full envelope).
Read the body as a raw string (before parsing) and compare it to the X-Jelou-Signature header.