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 '{}'