Envía un mensaje con un carrusel de tarjetas (encabezado, cuerpo, pie y botones)
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
header (título requerido, con media opcional vía imageUrl o videoUrl), body.text (requerido), un footer opcional y algunos botones interactivos. Los botones aceptan cuatro tipos: REPLY (default, retorna el ID al hacer clic), URL (abre un enlace), CALL (marca un número) y COPY (copia un código). Puedes agregar message (texto antes del carrusel) y footer (texto debajo). Soporta delay, replyTo y replyPrivate.
imageUrl en el encabezado y botones de tipo URL (el id recibe la URL a abrir).
videoUrl reemplaza a imageUrl en el encabezado. Usa uno de los dos, no ambos.
messageType retornado es interactive (un carrusel es una variación del mensaje interactivo de WhatsApp), y content transporta una descripción agregada ("<message> - Carousel with N card(s)") usada por el historial. Las tarjetas individuales no regresan en la respuesta, guarda el messageId para correlacionar con los clics 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).header, body, footer y buttons (descritos abajo).title (string, requerido), título de la tarjeta.subtitle (string), subtítulo opcional.imageUrl (string), URL de imagen para el encabezado.videoUrl (string), URL de video para el encabezado. Usa una de las dos opciones de media por tarjeta.text (string, requerido), contenido textual de la tarjeta.displayText (string, requerido), texto visible.id (string, requerido), la semántica varía según type: para REPLY, es el ID retornado al hacer clic; para URL, la URL a abrir; para CALL, el número a marcar; para COPY, el código a copiar.type (string), REPLY (default), URL, CALL o COPY. Otros valores retornan 400 Card N, Button M: Type must be one of: REPLY, URL, CALL, COPY.true y replyTo apunta a un mensaje originado en un grupo, el carrusel 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).header, elige una sola media: ya sea imageUrl o videoUrl. Enviar ambas puede resultar en renderizado inconsistente en el cliente.header.title y body.text no vacíos; cada botón necesita displayText e id no vacíos. Los errores se retornan con el índice (Card N, Button M: ...) para facilitar el debugging.URL, asegúrate de que el enlace comience con https:// para evitar ser bloqueado por el cliente.| HTTP | Status interno | Mensaje |
|---|---|---|
| 400 | — | Instance name is required |
| 400 | — | Invalid request body: <detail> |
| 400 | — | Number is required |
| 400 | — | At least one card is required |
| 400 | — | Card N: Header title is required |
| 400 | — | Card N: Body text is required |
| 400 | — | Card N, Button M: Display text is required |
| 400 | — | Card N, Button M: ID is required |
| 400 | — | Card N, Button M: Type must be one of: REPLY, URL, CALL, COPY |
| 400 | invalid_number | Invalid phone number format: <detail> |
| 400 | media_download_failed | (motivo del fallo de descarga de media del encabezado) |
| 404 | — | Instance not found |
| 500 | media_upload_failed | (motivo del fallo de upload de media del encabezado) |
| 500 | send_failed | Failed to send carousel: <reason> |
| 503 | disconnected | Instance is not connected to WhatsApp |