Pular para o conteúdo principal
POST
/
wa
/
messages
Enviando Mensagens
curl --request POST \
  --url https://api.zapsterapi.com/v1/wa/messages \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "recipient": "<string>",
  "text": "<string>",
  "instance_id": "ozj35qv418rpmlrb",
  "auto_delete": false,
  "auto_mention": true,
  "view_once": false,
  "reply_to": "3EB04E7F387C999A0DD61D",
  "link_preview": false,
  "mentions": "everyone",
  "buttons": [
    {
      "label": "Sim, quero!",
      "type": "reply",
      "id": "<string>",
      "phone_number": "+5511999999999",
      "url": "https://exemplo.com/produto",
      "copy_code": "PROMO2024"
    }
  ],
  "buttons_mode": "auto",
  "send_at": "2026-03-30T09:00:00-03:00",
  "media": {
    "url": "<string>",
    "base64": "<string>",
    "caption": "<string>",
    "playback": false,
    "ptt": true,
    "ptv": false,
    "sticker": false,
    "fileName": "<string>"
  }
}
'
{
  "message_id": "<string>"
}

Respondendo Mensagens

Para responder a mensagens já enviadas ou recebidas, utilize a propriedade reply_to. Isso permite que sua resposta seja vinculada diretamente à mensagem original, proporcionando um contexto claro na conversa (como mostrado na imagem abaixo). reply_to parameter
Limitação: Atualmente, só é possível responder a mensagens que foram enviadas/recebidas nos últimos 7 dias.

Agendando mensagens

Para agendar uma mensagem para envio futuro, adicione o campo send_at ao body da requisição com a data e hora no formato ISO 8601. Quando send_at está presente, a resposta muda:
  • Status HTTP 201 (em vez de 200)
  • Corpo com message_id, status: "scheduled" e send_at em UTC
O campo send_at é opcional. Quando não informado, a mensagem é enviada imediatamente como sempre.
O send_at deve ser no mínimo 1 minuto no futuro. O limite máximo depende do seu plano. Veja os limites por plano.
Para cancelar uma mensagem agendada, veja Cancelar mensagem. Para listar e rastrear todas as mensagens, veja Listar mensagens.

Autorizações

Authorization
string
header
obrigatório

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Cabeçalhos

X-Instance-ID
string

Obrigatório se instance_id não estiver presente no body.

Corpo

application/json
recipient
string
obrigatório

Número ou ID do grupo para onde será enviada a mensagem. Em caso de grupo o ID deve ser prefixado com o texto group: (Ex. group:123456789987654321).

Exemplo:

"group:123456789987654321"

text
string
obrigatório

Texto a ser enviado para o recipient (destinatário), no caso de envio de mídias esta propriedade não é obrigatória.

instance_id
string

ID da instância, obrigatório se X-Instance-ID não for informado nos cabeçalhos.

Exemplo:

"ozj35qv418rpmlrb"

auto_delete
boolean
padrão:false

Opção válida apenas quando o recipient não é um grupo. Se true então o chat/conversa será excluído após o envio da mensagem.

auto_mention
boolean
padrão:true

Opção válida apenas quando o recipient é um grupo. Se true então todo "@" seguido de um número será tratado como uma menção, então se no text ou media.caption tiver algo como "Olá @5599123451234" então tentaremos encontrar o número no grupo e fazer a menção/marcação automática.

O formato do número após o @ deve ser internacional, DDI + DDD + Número.

view_once
boolean
padrão:false

Opção válida apenas para mensagens de áudio, imagens e vídeos. Se true então só será possível visualizar a mensagem uma única vez.

reply_to
string

Para responder a uma mensagem específica, informe o ID da mensagem que deseja responder. Ao utilizar essa funcionalidade corretamente, sua resposta será vinculada à mensagem original, marcando-a de forma clara na conversa.

Exemplo:

"3EB04E7F387C999A0DD61D"

Quando false desabilitará a pre-visualização de links que estão presentes na mensagem.

Exemplo:

false

mentions

Há duas formas de mencionar pessoas em um grupo, você pode informar o valor everyone e todos presentes no grupo (recipient) serão mencionados, ou você pode especifica-los manualmente informando uma lista de número que deverão ser mencionados.

Opções disponíveis:
everyone
buttons
object[]

Lista de botões interativos (máximo 3). Para mais detalhes sobre tipos e modos, veja o guia de mensagens com botões.

Maximum array length: 3
buttons_mode
enum<string>
padrão:auto

Modo de exibição dos botões:

  • auto (padrão): o sistema escolhe automaticamente com base nos tipos de botão
  • interactive: força o modo interativo com destaque visual

No modo auto, se pelo menos um botão for do tipo call, url ou copyable, o modo interativo é usado automaticamente.

Opções disponíveis:
auto,
interactive
template
object

Template de mensagem (apenas para instâncias WABA). Quando informado, os campos text e media são ignorados.

send_at
string<date-time>

Data e hora para envio agendado no formato ISO 8601 com timezone. Quando informado, a mensagem é agendada em vez de enviada imediatamente. Deve ser no mínimo 1 minuto no futuro. O limite máximo depende do seu plano.

Exemplo:

"2026-03-30T09:00:00-03:00"

media
object

Resposta

Success

message_id
string
obrigatório

ID usado para depuração interna