Envía un mensaje con hasta 3 botones interactivos (REPLY, URL, CALL o COPY) y un encabezado de media opcional
Auth:Documentation Index
Fetch the complete documentation index at: https://docs.ryzeapi.cloud/llms.txt
Use this file to discover all available pages before exploring further.
TokenAccount o TokenInstance • Rate-limit: Global (100/min) • Idempotente: no
REPLY (default, retorna el ID al hacer clic), URL (abre un enlace), CALL (marca un número) y COPY (copia un código). El encabezado puede ser texto (headerText) o media (mediaUrl + mediaType). Si se envía mediaUrl, mediaType es requerido y debe estar en mayúsculas: IMAGE, VIDEO o DOCUMENT. Cuando hay media presente, headerText se ignora (la media reemplaza al título).
REPLY se usa para responder a un mensaje específico dentro de la conversación: cuando el cliente lo toca, WhatsApp envía una respuesta citando el mensaje original con el texto del botón (displayText), eso es lo que aparece en el chat. En el webhook/websocket, lo que llega a tu aplicación es el id del botón clicado, permitiéndote identificar la opción sin depender del texto mostrado.
Caso clásico de un menú rápido. Cada botón retorna su id en el webhook al hacer clic.
mediaUrl presente, mediaType es requerido y debe estar en mayúsculas (IMAGE, VIDEO, DOCUMENT). headerText se ignora en ese caso.
id transporta valores semánticos distintos por tipo.
content retorna el contentText que enviaste, y messageType es fijo en buttons. Las definiciones de los botones en sí no regresan en la respuesta, guarda el messageId para correlacionar los clics que llegan vía webhook.
REPLY, la respuesta llega como un mensaje de texto que contiene el id del botón clicado, captúralo vía webhook para encadenar el flujo.$Instance_Name).TokenAccount o TokenInstance.application/json5511999999999) o JID (@s.whatsapp.net, @lid, @g.us, @newsletter).id (string, requerido), la semántica varía según type: REPLY retorna este ID; URL abre esta URL; CALL marca este número; COPY copia este código.displayText (string, requerido), texto visible en el botón.type (string), REPLY (default), URL, CALL o COPY. Cualquier otro valor retorna 400 Button N: Type must be one of: REPLY, URL, CALL, COPY.mediaUrl (la media reemplaza al encabezado).mediaType se vuelve requerido.mediaUrl. Requerido si mediaUrl está presente. Acepta solo IMAGE, VIDEO o DOCUMENT (mayúsculas). Cualquier otro valor retorna 400 MediaType must be one of: IMAGE, VIDEO, DOCUMENT.true y replyTo apunta a un mensaje originado en un grupo, el mensaje se redirige al chat privado del autor original (manteniendo la cita).crm, bot-suporte, n8n). Guardado en el registro del mensaje y propagado a los webhooks.delay es en segundos (no milisegundos).400 Maximum of 3 buttons allowed.mediaUrl, headerText se ignora silenciosamente.mediaType se normaliza a mayúsculas internamente, envía siempre IMAGE, VIDEO o DOCUMENT.URL, asegúrate de que el enlace comience con https:// para evitar ser bloqueado por el cliente.CALL, usa el formato internacional (+5511...).| HTTP | Status interno | Mensaje |
|---|---|---|
| 400 | — | Instance name is required |
| 400 | — | Invalid request body: <detail> |
| 400 | — | Number is required |
| 400 | — | ContentText is required |
| 400 | — | At least one button is required |
| 400 | — | Maximum of 3 buttons allowed |
| 400 | — | MediaType is required when MediaURL is provided |
| 400 | — | MediaType must be one of: IMAGE, VIDEO, DOCUMENT |
| 400 | — | Button N: ID is required |
| 400 | — | Button N: DisplayText is required |
| 400 | — | Button N: Type must be one of: REPLY, URL, CALL, COPY |
| 400 | invalid_number | Invalid phone number format: <detail> |
| 400 | invalid_request | (motivo de la solicitud inválida detectado por el servicio) |
| 404 | — | Instance not found |
| 500 | send_failed | Failed to send buttons message: <reason> |
| 503 | disconnected | Instance is not connected to WhatsApp |