NODInfra

Enviar Mensagem

Enviar carrossel de mídia com botões

POSThttps://api.nodinfra.com.br/send/carousel
URL completa: https://api.nodinfra.com.br/send/carousel

Este endpoint permite enviar um carrossel com imagens e botões interativos. Funciona de maneira igual ao endpoint /send/menu com type: carousel, porém usando outro formato de payload.

Campos Comuns

Este endpoint suporta todos os campos opcionais comuns documentados na tag "Enviar Mensagem", incluindo: delay, readchat, readmessages, replyid, mentions, forward, track_source, track_id, placeholders e envio para grupos.

Estrutura do Payload

{
 "number": "5511999999999",
 "text": "Texto principal",
 "carousel": [
 {
 "text": "Texto do cartão",
 "image": "URL da imagem",
 "buttons": [
 {
 "id": "resposta1",
 "text": "Texto do botão",
 "type": "REPLY"
 }
 ]
 }
 ],
 "delay": 1000,
 "readchat": true
}

Tipos de Botões

  • REPLY: Botão de resposta rápida

  • Quando clicado, envia o valor do id como resposta ao chat

  • O id será o texto enviado como resposta

  • URL: Botão com link

  • Quando clicado, abre a URL especificada

  • O id deve conter a URL completa (ex: https://exemplo.com)

  • COPY: Botão para copiar texto

  • Quando clicado, copia o texto para a área de transferência

  • O id será o texto que será copiado

  • CALL: Botão para realizar chamada

  • Quando clicado, inicia uma chamada telefônica

  • O id deve conter o número de telefone

Exemplo de Botões

{
 "buttons": [
 {
 "id": "Sim, quero comprar!",
 "text": "Confirmar Compra",
 "type": "REPLY"
 },
 {
 "id": "https://exemplo.com/produto",
 "text": "Ver Produto",
 "type": "URL"
 },
 {
 "id": "CUPOM20",
 "text": "Copiar Cupom",
 "type": "COPY"
 },
 {
 "id": "5511999999999",
 "text": "Falar com Vendedor",
 "type": "CALL"
 }
 ]
}

Exemplo Completo de Carrossel

{
 "number": "5511999999999",
 "text": "Nossos Produtos em Destaque",
 "carousel": [
 {
 "text": "Smartphone XYZ\nO mais avançado smartphone da linha",
 "image": "https://exemplo.com/produto1.jpg",
 "buttons": [
 {
 "id": "SIM_COMPRAR_XYZ",
 "text": "Comprar Agora",
 "type": "REPLY"
 },
 {
 "id": "https://exemplo.com/xyz",
 "text": "Ver Detalhes",
 "type": "URL"
 }
 ]
 },
 {
 "text": "Cupom de Desconto\nGanhe 20% OFF em qualquer produto",
 "image": "https://exemplo.com/cupom.jpg",
 "buttons": [
 {
 "id": "DESCONTO20",
 "text": "Copiar Cupom",
 "type": "COPY"
 },
 {
 "id": "5511999999999",
 "text": "Falar com Vendedor",
 "type": "CALL"
 }
 ]
 }
 ],
 "delay": 0,
 "readchat": true
}

Corpo da requisição

numberstringobrigatório

ID do chat para o qual a mensagem será enviada. Pode ser um número de telefone em formato internacional, um ID de grupo (`@g.us`), um ID de usuário (com `@s.whatsapp.net` ou `@lid`).

exemplo: 5511999999999

textstringobrigatório

Texto principal da mensagem

exemplo: Nossos Produtos em Destaque

carouselarray<object>obrigatório

Array de cartões do carrossel

delayintegeropcional

Atraso em milissegundos antes do envio

exemplo: 1000

readchatbooleanopcional

Marca conversa como lida após envio

exemplo: true

readmessagesbooleanopcional

Marca últimas mensagens recebidas como lidas

exemplo: true

replyidstringopcional

ID da mensagem para responder

exemplo: 3EB0538DA65A59F6D8A251

mentionsstringopcional

Números para mencionar (separados por vírgula)

exemplo: 5511999999999,5511888888888

forwardbooleanopcional

Marca a mensagem como encaminhada no WhatsApp

exemplo: false

asyncbooleanopcional

Se true, envia a mensagem de forma assíncrona via fila interna

exemplo: false

track_sourcestringopcional

Origem do rastreamento da mensagem

exemplo: chatwoot

track_idstringopcional

ID para rastreamento da mensagem (aceita valores duplicados)

exemplo: msg_123456789

Respostas

200Carrossel enviado com sucesso
400Requisição inválida
401Não autorizado
500Erro interno do servidor

Testar endpoint

POSThttps://api.nodinfra.com.br/send/carousel
cURL
curl -X POST 'https://api.nodinfra.com.br/send/carousel' \
  -H 'token: SEU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{}'