Mensajes
Enviar reacción
Reacciona con un emoji a un mensaje específico (o elimina la reacción)
POST
Enviar reacción
Auth:
Envoltorio de error:
TokenAccount o TokenInstance • Rate-limit: Global (100/min) • Idempotente: no
Descripción
Agrega o elimina una reacción (emoji) en un mensaje existente. El camporeaction acepta el emoji ("👍", "❤️", "😂", etc.) o la cadena literal "remove" para eliminar la reacción. En chats 1-a-1, messageId + fromMe es suficiente. En grupos, cuando el mensaje original no fue enviado por la instancia (fromMe: false), debes proporcionar participant con el JID del autor original, sin él, WhatsApp no puede localizar el objetivo. Las reacciones no soportan delay, replyTo ni mention.
Ejemplos
Reaccionar en un chat 1-a-1
fromMe: false indica que el mensaje objetivo fue recibido (no enviado) por la instancia.
Reaccionar en un grupo (mensaje de otro participante)
En grupos, cuando reaccionas a un mensaje que no es tuyo (fromMe: false), el participant con el JID del autor original es requerido. Sin él el servidor retorna 400 missing_participant.
Eliminar una reacción
Envíareaction: "remove" para limpiar una reacción colocada anteriormente en el mensaje.
Respuesta exitosa
ElmessageId retornado es el de la propia reacción (no el del mensaje reaccionado, ese permanece en replyTo.messageId). content carga el emoji aplicado, o una cadena vacía cuando la reacción fue eliminada.
200 OK
Cuando la reacción se elimina (
reaction: "remove"), el message retornado se vuelve "Reaction removed successfully" y content está vacío. La reacción aparece en el destinatario anclada al mensaje original, si reaccionas de nuevo con otro emoji, WhatsApp reemplaza la reacción anterior.Parámetros de ruta
Nombre de la instancia (p. ej.,
$Instance_Name).Cabeceras
TokenAccount o TokenInstance.application/jsonCuerpo de la solicitud
Chat donde vive el mensaje objetivo: teléfono (
5511999999999) o JID (@s.whatsapp.net, @lid, @g.us).ID del mensaje que recibirá la reacción.
Emoji de reacción (p. ej.,
"👍", "❤️", "😂", "🔥") o la cadena literal "remove" para limpiar una reacción existente.true cuando el mensaje original fue enviado por la propia instancia; false cuando fue recibido de otro contacto/participante. WhatsApp usa esta flag junto con participant para localizar el objetivo.JID del autor del mensaje original (p. ej.,
5511888888888@s.whatsapp.net). Requerido en grupos cuando fromMe: false, sin él el servidor retorna 400 missing_participant. En chats 1-a-1 o cuando fromMe: true, se ignora.Identificador de origen para trazabilidad (p. ej.,
crm, support-bot, n8n). Guardado en el registro del mensaje y propagado a los webhooks.Notas
- Las reacciones no soportan
delay,replyTo,replyPrivate,mentionnimentionAll, solo los campos listados arriba. - Para cambiar una reacción existente, simplemente envía una nueva con otro emoji. WhatsApp la reemplaza automáticamente.
- En grupos, sin el
participantcorrecto la reacción falla conmissing_participantaunque elmessageIdexista en la base de datos. fromMedebe reflejar el lado real del mensaje. Si está invertido, WhatsApp puede fallar en localizar el objetivo y la reacción desaparece silenciosamente en la app del destinatario.
Errores
| HTTP | Status interno | Mensaje |
|---|---|---|
| 400 | , | Instance name is required |
| 400 | , | Invalid request body: <detail> |
| 400 | , | Number is required |
| 400 | , | MessageID is required |
| 400 | , | Reaction is required |
| 400 | invalid_number | Invalid phone number format: <detail> |
| 400 | invalid_message_id | (motivo de messageId inválido) |
| 400 | missing_participant | Participant is required for group reactions when fromMe=false |
| 404 | , | Instance not found |
| 500 | send_failed | Failed to send reaction: <reason> |
| 503 | disconnected | Instance is not connected to WhatsApp |