Envia mensagem com até 3 botões interativos (REPLY, URL, CALL ou COPY) e header opcional de mídia
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 ou TokenInstance • Rate-limit: Global (100/min) • Idempotente: não
REPLY (padrão, retorna o ID quando clicado), URL (abre link), CALL (disca número) e COPY (copia código). O header pode ser texto (headerText) ou mídia (mediaUrl + mediaType). Se mediaUrl for enviado, mediaType é obrigatório e deve ser maiúsculo: IMAGE, VIDEO ou DOCUMENT. Quando há mídia, headerText é ignorado (a mídia substitui o título).
REPLY serve para responder uma mensagem específica dentro da conversa: quando o cliente toca, o WhatsApp envia uma resposta citando a mensagem original com o texto do botão (displayText), é isso que aparece no chat. Já no webhook/websocket, o que chega para sua aplicação é o id do botão clicado, permitindo identificar a opção sem depender do texto exibido.
Caso clássico de menu rápido. Cada botão retorna seu id no webhook quando clicado.
mediaUrl está presente, mediaType é obrigatório e deve ser maiúsculo (IMAGE, VIDEO, DOCUMENT). headerText é ignorado neste caso.
id carrega valores semânticos distintos por tipo.
content retorna o contentText enviado, e o messageType é fixo em buttons. A definição dos botões em si não vem na resposta, guarde o messageId para correlacionar os cliques que chegam via webhook.
REPLY, a resposta chega como mensagem de texto contendo o id do botão clicado, capture isso pelo webhook para encadear o fluxo.$Instance_Name).TokenAccount ou TokenInstance.application/json5511999999999) ou JID (@s.whatsapp.net, @lid, @g.us, @newsletter).id (string, obrigatório), semântica varia por type: REPLY retorna esse ID; URL abre essa URL; CALL disca esse número; COPY copia esse código.displayText (string, obrigatório), texto visível no botão.type (string), REPLY (padrão), URL, CALL ou COPY. Outro valor retorna 400 Button N: Type must be one of: REPLY, URL, CALL, COPY.mediaUrl for fornecido (a mídia substitui o header).mediaType torna-se obrigatório.mediaUrl. Obrigatório se mediaUrl estiver presente. Aceita apenas IMAGE, VIDEO ou DOCUMENT (maiúsculo). Outro valor retorna 400 MediaType must be one of: IMAGE, VIDEO, DOCUMENT.true e replyTo aponta para uma mensagem originária de um grupo, a mensagem é redirecionada para o privado do autor original (mantendo a citação).crm, bot-suporte, n8n). Salvo no registro da mensagem e propagado para webhooks.delay é em segundos (não milissegundos).400 Maximum of 3 buttons allowed.mediaUrl é enviado, headerText é silenciosamente ignorado.mediaType é normalizado para maiúsculo internamente, envie sempre IMAGE, VIDEO ou DOCUMENT.URL, garanta que o link comece com https:// para evitar bloqueio pelo cliente.CALL, use formato internacional (+5511...).| HTTP | Status interno | Mensagem |
|---|---|---|
| 400 | — | Instance name is required |
| 400 | — | Invalid request body: <detalhe> |
| 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: <detalhe> |
| 400 | invalid_request | (motivo do request inválido detectado pelo serviço) |
| 404 | — | Instance not found |
| 500 | send_failed | Failed to send buttons message: <reason> |
| 503 | disconnected | Instance is not connected to WhatsApp |