Acelerator
AceleratorCentral de Ajuda
🔍
Todas Recursos Referência APIs
Webhooks ▸
Webhook x API Webhook da Conexão Webhook de Filas Webhook Eventos Webhook Triggers Arquivos no Webhook
APIs ▾
* Pré-Requisitos APIs * Conteúdos sobre APIs ▸
Mapa de API API x Webhook Estrutura de API Bibliotecas Retornos de API
Mensagem ▸
API Digitando… API Digitando…. API Gravando… API Gravando…. API Mensagem de Texto API Mensagem de Texto via LID API Web Mensagem de Texto API Oficial Mensagem API Oficial Mensagem Template API Oficial Mensagem Template sem variável API Mensagem Interna API Mensagem para Grupos API Mensagem para Grupos API Mensagem de Lista API Mensagem de Lista API Oficial Mensagem de Lista API Mensagem via Flowbuilder API Mensagem via Typebot API Criar Agendamento API Deletar Agendamento API Enviar Contato API Obter Mensagens por Protocolo API Obter Mensagens Template Meta
Mídias ▸
API Enviar Imagem por URL API Enviar Imagem por URL API Oficial Enviar Imagem por URL API Enviar Áudio por URL API Enviar Áudio por URL API Oficial Enviar Áudio por URL API Enviar Áudio Base64 API Enviar Vídeo por URL API Enviar Vídeo por URL API Oficial Enviar Vídeo por URL API Enviar Documento por URL API Enviar Documento por URL API Oficial Enviar Documento por URL API Enviar Arquivos API Web Enviar Arquivos API Enviar Imagem por URL para Grupos API Enviar Áudio por URL para Grupos API Enviar Vídeo por URL para Grupos API Enviar Documento por URL para Grupos API Enviar Arquivos por URL para Grupos
Ticket ▸
API Criar Ticket API Obter um Ticket API Obter Tickets API Obter Tickets do Contato API Obter Protocolos de um Ticket API Atualizar Ticket API Atualizar Tags API Encerrar Ticket API Encerrar Ticket em Massa API Encerrar Tickets por "Dias de Inatividade" API Transferir Tickets para uma Fila API Transferir Tickets entre Conexões
Contatos ▸
API Criar Contato API Criar Contato (com validação) API Validar Contato Obter um Contato API Obter Contatos API Obter Contatos por Tag API Atualizar Contato API Deletar TODOS os Contatos
Conexões ▸
API Criar Conexão API Obter QR Code API Status das Conexões API Reiniciar Conexões
Filas ▸
API Obter Filas da Empresa
Equipe ▸
API Obter Usuários da Empresa API Transferir Carteira de Clientes
CRM ▸
API Criar Oportunidade API Atualizar Oportunidade API Deletar Oportunidade API Criar Produto API Obter Produtos API Obter Produto por ID API Atualizar Produto API Deletar Produto
Tags ▸
API Obter Tags da Empresa
Tarefas ▸
API Criar Tarefa API Obter Tarefas
Botões no WhatsApp ▾
* Pré-Requisitos Botões API Botão Carrossel API Botão Copia e Cola API Botão Copia e Cola API Botão URL API Botão URL API Oficial Botão URL API Botão Quick Reply API Botão Quick Reply API Oficial Botão Quick Reply API Botão Ligação API Botão Pix
Extras ▸
API Enviar Status de Texto API Enviar Status de Imagem API Enviar Status de Vídeo API Horário de Expediente API Ligação (Somente Chamar)
API WhatsMeow v1 – Depreciada ▸
API Mensagem de Texto API Enviar Imagem Base64 API Enviar Áudio Base64
Precisa de ajuda?
(44) 9810-8792
APIs › Botões no WhatsApp › API Botão Quick Reply

API Botão Quick Reply

atualizado em 27/08/2026
🔍

🧩 A API de botões Quick Reply permite o envio de mensagens interativas com 2 botões, oferecendo aos clientes a possibilidade de escolher entre opções definidas previamente pelo remetente. A escolha do usuário é enviada como uma mensagem de texto.

API: Baileys

Verifique aqui os Pré-Requisitos para utilizar Botões

Endpoint
https://{BACKEND_URL}/api/messages/sendBTN2
Método
POST
Autenticação
Bearer {seutokenaqui}
Payload
{
"number": "554498108792",
"customData": {
    "body": "Escolha uma opção",
    "name": "quick_reply",
    "params": "{\"display_text\":\"Opção A\",\"id\":\"id_botao_A\",\"disabled\":false}",
    "nameb": "quick_reply",
    "paramsb": "{\"display_text\":\"Opção B\",\"id\":\"id_botao_B\",\"disabled\":false}"
  }
}

➡️ “number”: telefone do destinatário no formato ddi ddd numero (somente números) ➡️ “body”: texto antes do botões ➡️ “name”: quick_reply ➡️ “params”: – display_text: texto do botão A – id: ID para o botão A – disabled: false ➡️ “nameb”: quick_reply ➡️ “paramsb”: – display_text: texto do botão B – id: ID para o botão B – disabled: false Abaixo estão os campos editáveis deste endpoint. Preencha o formulário, copie o código gerado e utilize-o no local apropriado para a sua integração.

URL do backend (menu API) Apagar URL [x] Token da conexão (menu Conexões) Apagar Token [x] Número de telefone do destinatário no formato internacional (ex: 5511999999999) O número deve conter entre 10 e 15 dígitos e estar no formato internacional. Texto da mensagem a ser enviada (ex: Olá, escolha uma opção:) Texto exibido no botão A (ex: Opção 1) ID do botão A (ex: botao1) Texto exibido no botão B (ex: Opção 2) ID do botão B (ex: botao2) API Utilize o código em requisições HTTPS com ferramentas como cURL ou bibliotecas de integração.

Os trechos entre {...} devem ser ajustados manualmente ou preenchidos através dos formulários disponíveis acima.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://{BACKEND_URL}/api/messages/sendBTN2',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
"number": "{number}",
"customData": {
    "body": "{mensagem}",
    "name": "quick_reply",
    "params": "{\\"display_text\\":\\"{texto_botao_A}\\",\\"id\\":\\"{id_botao_A}\\",\\"disabled\\":false}",
    "nameb": "quick_reply",
    "paramsb": "{\\"display_text\\":\\"{texto_botao_B}\\",\\"id\\":\\"{id_botao_B}\\",\\"disabled\\":false}"
  }
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'Authorization: Bearer {seutokenaqui}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

?>

FLOWBUILDER Insira o código em um bloco de “Http Request / Code” do tipo MENU.

Os trechos delimitados por {{...}} são placeholders no formato Mustaches e não precisam ser alterados. Eles serão automaticamente substituídos pelos valores correspondentes no momento da execução.

Os trechos entre {...} devem ser ajustados manualmente ou preenchidos através dos formulários disponíveis acima.

let data = JSON.stringify({
  "number": "{{number}}",
  "customData": {
    "body": "{mensagem}",
    "name": "quick_reply",
    "params": "{"display_text":"{texto_botao_A}","id":"{id_botao_A}","disabled":false}",
    "nameb": "quick_reply",
    "paramsb": "{"display_text":"{texto_botao_B}","id":"{id_botao_B}","disabled":false}"
  }
});
let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://{{backendURL}}/api/messages/sendBTN2',
  headers: { 
    'Content-Type': 'application/json', 
    'Authorization': 'Bearer {{connection_token}}'
  },
  data : data
};
axios.request(config)
  .then((response) => {    
    console.log(JSON.stringify(response.data));
  })  
  .catch((error) => {
    console.log(error);  
});

N8N Copie o código e cole em qualquer ponto do seu fluxo no N8N para adicionar o nó.

Os trechos entre {...} devem ser ajustados manualmente ou preenchidos através dos formulários disponíveis acima.

{
  "meta": {
    "instanceId": "9587d195c3fa7d1dba9131bb83058d7e6c57a07d7ef73b55d61bcf7eaf540fb8"
  },
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "=https://{BACKEND_URL}/api/messages/sendBTN2",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={seutokenaqui}"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={n  "number": "{number}",n  "customData": {n    "body": "{mensagem}",n    "name": "quick_reply",n    "params": "{\"display_text\":\"{texto_botao_A}\",\"id\":\"{id_botao_A}\",\"disabled\":false}",n    "nameb": "quick_reply",n    "paramsb": "{\"display_text\":\"{texto_botao_B}\",\"id\":\"{id_botao_B}\",\"disabled\":false}"n  }n}",
        "options": {}
      },
      "id": "e31bc15d-1a3b-4b2f-9970-060ffbb69513",
      "name": "Botão Quick Reply",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        580,
        340
      ]
    }
  ],
  "connections": {},
  "pinData": {}
}

API Utilize o código em requisições HTTPS com ferramentas como cURL ou bibliotecas de integração.

Os trechos entre {...} devem ser ajustados manualmente ou preenchidos através dos formulários disponíveis acima.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://{BACKEND_URL}/api/messages/sendBTN2',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
"number": "{number}",
"customData": {
    "body": "{mensagem}",
    "name": "quick_reply",
    "params": "{\\"display_text\\":\\"{texto_botao_A}\\",\\"id\\":\\"{id_botao_A}\\",\\"disabled\\":false}",
    "nameb": "quick_reply",
    "paramsb": "{\\"display_text\\":\\"{texto_botao_B}\\",\\"id\\":\\"{id_botao_B}\\",\\"disabled\\":false}"
  }
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'Authorization: Bearer {seutokenaqui}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

?>

FLOWBUILDER Insira o código em um bloco de "Http Request / Code" do tipo MENU.

Os trechos delimitados por {{...}} são placeholders no formato Mustaches e não precisam ser alterados. Eles serão automaticamente substituídos pelos valores correspondentes no momento da execução.

Os trechos entre {...} devem ser ajustados manualmente ou preenchidos através dos formulários disponíveis acima.

let data = JSON.stringify({
  "number": "{{number}}",
  "customData": {
    "body": "{mensagem}",
    "name": "quick_reply",
    "params": "{"display_text":"{texto_botao_A}","id":"{id_botao_A}","disabled":false}",
    "nameb": "quick_reply",
    "paramsb": "{"display_text":"{texto_botao_B}","id":"{id_botao_B}","disabled":false}"
  }
});
let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://{{backendURL}}/api/messages/sendBTN2',
  headers: { 
    'Content-Type': 'application/json', 
    'Authorization': 'Bearer {{connection_token}}'
  },
  data : data
};
axios.request(config)
  .then((response) => {    
    console.log(JSON.stringify(response.data));
  })  
  .catch((error) => {
    console.log(error);  
});

N8N Copie o código e cole em qualquer ponto do seu fluxo no N8N para adicionar o nó.

Os trechos entre {...} devem ser ajustados manualmente ou preenchidos através dos formulários disponíveis acima.

{
  "meta": {
    "instanceId": "9587d195c3fa7d1dba9131bb83058d7e6c57a07d7ef73b55d61bcf7eaf540fb8"
  },
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "=https://{BACKEND_URL}/api/messages/sendBTN2",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={seutokenaqui}"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={n  "number": "{number}",n  "customData": {n    "body": "{mensagem}",n    "name": "quick_reply",n    "params": "{\"display_text\":\"{texto_botao_A}\",\"id\":\"{id_botao_A}\",\"disabled\":false}",n    "nameb": "quick_reply",n    "paramsb": "{\"display_text\":\"{texto_botao_B}\",\"id\":\"{id_botao_B}\",\"disabled\":false}"n  }n}",
        "options": {}
      },
      "id": "e31bc15d-1a3b-4b2f-9970-060ffbb69513",
      "name": "Botão Quick Reply",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        580,
        340
      ]
    }
  ],
  "connections": {},
  "pinData": {}
}

Retorno de API (Payload de Resposta)

Exemplo de retorno do envio de botão quick reply:

{
    "mensagem": "Mensagem enviada SEM TICKET",
    "ticket": null
}
← AnteriorAPI Oficial Botão URL Próximo →API Botão Quick Reply
© 2026 Acelerator — Todos os direitos reservados