Saltar al contenido principal

Webhooks

Los Webhooks son una forma eficaz de obtener información y actualizaciones en tiempo real sobre los cambios de estado de los mensajes. Con los webhooks, se enviará una solicitud HTTP POST a la URL de webhook que hayas proporcionado cada vez que ocurra un evento relevante.

Configuración Desde Panel

  1. Dirígete al panel de la referencia y busca el cuadro Nuevo WebHook.

  2. Ingresa la URL a la que deseas enviar los mensajes.

  3. Agrega las cabeceras que necesites que se envíen para, por ejemplo, autenticar e identificar el mensaje entrante.

  4. Haz clic en Guardar Configuración y acepta.

Puedes ver y eliminar las URL configuradas desde el listado WebHooks.

Configuración Desde API

Para agregar y actualizar una configuración de webhook desde la API, realiza la siguiente solicitud:

curl --location --request POST 'https://apirest.whatsuy.com/references/hookconf'
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json'
--data-raw '{
"id": "11111111",
"webhook": "https://ocex2.whatsuy.com/admin/index.php?route=whatsapp/common/webhook",
"headers": [
{
"key": "auth",
"value": "973827394"
},
{
"key": "reference",
"value": "11111111"
}
]
}'

La respuesta será la siguiente si la configuración se actualiza correctamente:

{
"success": true,
"message": "Configuracion actualizada correctamente",
"data": {}
}

Formato De Mensaje Recibido

Cuando la cuenta de WhatsApp reciba o envíe un mensaje, se realizará una solicitud a la URL de webhook con las cabeceras configuradas y un cuerpo con un formato específico dependiendo del tipo de mensaje.

Si se requiere descargar un adjunto (imagen, video, documento o audio), puedes descargarlo desde la URL https://apirest.whatsuy.com/{fileUrl}.

Los diferentes tipos de mensajes pueden ser: Texto, Imagen, Video, Documento o Audio. Cada uno tendrá un formato específico con información relevante para ese tipo de contenido.

Texto

Es un mensaje de texto simple. Incluye detalles como la referencia, el remitente, el estado y el texto del mensaje.

{
"reference": 11111111,
"remoteJid": "59891111111::single",
"mine": false,
"id": "BAE57F357C73558A",
"pushName": "Whats UY Test Contact",
"verifiedBizName": "Whats UY Test",
"messageTimestamp": 1663172439,
"type": "text",
"text": "Prueba Mensaje",
"status": "PENDING"
}

Imagen

Es un mensaje de tipo imagen. Incluye la información de la imagen, como su mimetype, tamaño, dimensiones y una miniatura.

{
"reference": 11111111,
"remoteJid": "59891111111::single",
"mine": false,
"id": "BAE57F357C73558A",
"pushName": "Whats UY Test Contact",
"verifiedBizName": "Whats UY Test",
"messageTimestamp": 1663172439,
"type": "image",
"mimetype": "image/jpeg",
"fileLength": 169584,
"height": 1640,
"width": 922,
"jpegThumbnail": "/9j/QABRAD...",
"caption": "Prueba Mensaje IMG",
"fileUrl": "medias/11111111/F8186F2E",
"status": "PENDING"
}

Video

Es un mensaje de tipo video. Incluye la información del video, como su mimetype, tamaño, duración, dimensiones y una miniatura.

{
"reference": 11111111,
"remoteJid": "59891111111::single",
"mine": false,
"id": "BAE57F357C73558A",
"pushName": "Whats UY Test Contact",
"verifiedBizName": "Whats UY Test",
"messageTimestamp": 1663172439,
"type": "video",
"mimetype": "video/mp4",
"fileLength": "907068",
"seconds": 3,
"height": 640,
"width": 352,
"jpegThumbnail": "/9j/QABAAD...",
"caption": "Prueba Mensaje Video",
"fileUrl": "medias/11111111/Fr186F2E",
"status": "PENDING"
}

Documento

Es un mensaje de tipo documento. Incluye la información del documento, como su mimetype, tamaño, título, número de páginas y una miniatura. Además, proporciona una URL para acceder al archivo del documento.

{
"reference": 11111111,
"remoteJid": "59891111111::single",
"mine": false,
"id": "BAE57F357C73558A",
"pushName": "Whats UY Test Contact",
"verifiedBizName": "Whats UY Test",
"messageTimestamp": 1663172439,
"type": "document",
"mimetype": "application/pdf",
"title": "docname.pdf",
"fileLength": "238627",
"pageCount": 3,
"jpegThumbnail": "/9j/QABAAD...",
"fileName": "docname.pdf",
"caption": "Prueba Mensaje Docs",
"fileUrl": "medias/11111111/Fr186F2E",
"status": "PENDING"
}

Audio

Es un mensaje de tipo audio. Incluye la información del audio, como su mimetype, tamaño y duración. También proporciona una representación de la forma de onda del audio y una URL para acceder al archivo de audio.

{
"reference": 11111111,
"remoteJid": "59891111111::single",
"mine": false,
"id": "BAE57F357C73558A",
"pushName": "Whats UY Test Contact",
"verifiedBizName": "Whats UY Test",
"messageTimestamp": 1663172439,
"type": "audio",
"mimetype": "audio/ogg; codecs=opus",
"fileLength": "11971",
"seconds": 5,
"waveform": "AAABDTs6Iw4AAAAADRkYERcUFRgaEgQfEQcDFyUcGB4VGhEBAAAAAw4hKyQXAAAAAAAAAAAAAAAAAQMCBQAAAA==",
"fileUrl": "medias/11111111/Fr186F2E",
"status": "PENDING"
}

En todos estos formatos de mensaje, reference es el identificador de la conversación, remoteJid es el identificador del contacto, mine indica si el mensaje fue enviado por nosotros, pushName y verifiedBizName son nombres asociados al contacto, messageTimestamp es el sello de tiempo del mensaje, type es el tipo de mensaje y status es el estado actual del mensaje.

Formato De Cambio De Estado Recibido

Además de los mensajes, los cambios de estado también se enviarán a la URL de webhook configurada. Los posibles estados son: FAIL, PENDING, SENDING, DELIVERED, READ y PLAYED.

El formato de cambio de estado será similar a este:

{
"reference": 11111111,
"remoteJid": "59891111111::single",
"mine": false,
"id": "BAE57F357C73558A",
"pushName": "Whats UY Test Contact",
"verifiedBizName": "Whats UY Test",
"messageTimestamp": 1663172439,
"status": "DELIVERED"
}

De esta manera, puedes realizar un seguimiento del estado de los mensajes y actuar en consecuencia según tus necesidades.