Sign In
Sign In
  1. Home
  2. API
  3. Lanza tu campaña de WhatsApp Push
  4. Firma de autenticidad de la solicitud
API
37 articles
WhatsApp Push v1.03
Introducción
Lanza tu campaña de WhatsApp Push3
Firma de autenticidad de la solicitud
Ejemplo 1 - Plantilla con imagen y 2 botones de llamada a la acción
Ejemplo 2 - Plantilla con 2 botones de respuesta rápida
webhooks
Transferencia de agente v1.04
API de cumplimiento de datos4
API de JavaScript del widget4
Message Trigger v1.12
Messaging v1.14

Firma de autenticidad de la solicitud

Valida la autenticidad de las solicitudes push de WhatsApp mediante una firma HMAC-SHA256 en el encabezado X-Mindsay-Signature, con protección contra la repetición mediante una marca de tiempo.

Updated on 24 de septiembre de 2026

Laiye Chatbot comprueba la existencia y validez del encabezado HTTP X-Mindsay-Signature para validar la autenticidad de la solicitud. Para ello, Laiye Chatbot y su socio comparten una clave secreta (configurada durante la integración).

El socio de Laiye Chatbot debe generar una firma al realizar una solicitud a la API. La API de Laiye intenta generar la misma firma por su parte y comprueba que coincida con la firma proporcionada en el encabezado HTTP X-Mindsay-Signature.

Para evitar ataques de repetición, la API de Laiye también valida que X-Mindsay-Timestamp no sea demasiado antigua (tolerancia de 5 minutos).

Así es como se genera la firma:

  1. Concatena el valor del encabezado X-Mindsay-Timestamp con el cuerpo de la solicitud

  2. Calcula el hash hexadecimal de esta cadena utilizando el algoritmo estándar HMAC-SHA256 y la clave secreta compartida

Ejemplo

text
X-Mindsay-Timestamp:
1575215418

Body:
[{"template": {"components": [{"type": "body", "parameters": []}], "language": {"code": "en"}, "name": "hello_from_laiye"}, "to": "33xxxxxxxx1"}]

Secret:
a_secure_secret

Concatenated value:
1575215418[{"template": {"components": [{"type": "body", "parameters": []}], "language": {"code": "en"}, "name": "hello_from_laiye"}, "to": "33xxxxxxxx1"}]

Computed HMAC:
acee24dc55838d04dbd879967dffda464f843799a9e6b14c97d9a2b908de6d85

Esto se puede generar de la siguiente manera:

JavaScript
const requestData = pm.request.body.raw;
const secretKey = "your-secret-key";
const timestamp = Math.floor(Date.now() / 1000).toString();
const signature = calculateSignature(secretKey, timestamp, requestData);

pm.request.headers.add({
  key: 'X-Mindsay-Signature',
  value: signature
});
pm.request.headers.add({
    key: "X-Mindsay-Timestamp",
    value: timestamp
})

function calculateSignature(secretKey, timestamp, rawBody) {
  const CryptoJS = require('crypto-js');
  const hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, secretKey);
  hmac.update(CryptoJS.enc.Utf8.parse(timestamp.toString()));
  hmac.update(CryptoJS.enc.Utf8.parse(rawBody));
  return hmac.finalize().toString(CryptoJS.enc.Hex);

Was this article helpful?

Made from France 💙

Categories

  • ANALÍTICA
  • CONSTRUIR
  • LOUIS AI
  • INTEGRAR

🔗 Useful Links

  • Sign In
  • Website
  • Terms & Conditions

© 2026

MindsayPowered by Mindsay

Search the help center…

Search help center articles