Maytapi/Documentação/Enviar mensagens
Enviar mensagensUm endpoint para todos os tipos de mensagemEnvie mensagens no WhatsApp por API, do seu próprio número
Uma única requisição POST envia texto, arquivo, mensagem com botões ou localização para qualquer número, grupo ou canal do WhatsApp. Sem aprovação de templates, sem janela de conversa e sem cobrança por mensagem.
- POST /sendMessage
- texto · mídia · botões
- grupos e canais
- confirmações de entrega
curl -X POST "https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage" \
-H "x-maytapi-key: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to_number": "55119xxxxxx67",
"type": "text",
"message": "Your order #10482 has shipped."
}'const res = await fetch(`https://api.maytapi.com/api/${PID}/${PHONE_ID}/sendMessage`, {
method: "POST",
headers: { "x-maytapi-key": TOKEN, "Content-Type": "application/json" },
body: JSON.stringify({ to_number: "55119xxxxxx67", type: "text", message: "Your order #10482 has shipped." })
});
console.log(await res.json());import requests
res = requests.post(
f"https://api.maytapi.com/api/{PID}/{PHONE_ID}/sendMessage",
headers={"x-maytapi-key": TOKEN},
json={"to_number": "55119xxxxxx67", "type": "text", "message": "Your order #10482 has shipped."},
timeout=10,
)
print(res.json())$ch = curl_init("https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["x-maytapi-key: $TOKEN", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode(["to_number" => "55119xxxxxx67", "type" => "text", "message" => "Your order #10482 has shipped."]),
]);
echo curl_exec($ch);
O que você pode enviar com a API do WhatsApp
Mude o campo type e o mesmo endpoint envia outra coisa.
-
type: text
Texto
Atualizações de pedido, lembretes, códigos OTP e respostas, com a formatação do WhatsApp.
-
type: media
Imagens, vídeo, arquivos
Envie por URL ou base64: notas fiscais, fotos, áudios e documentos, dentro dos limites do WhatsApp.
-
type: buttons
Botões e listas
Respostas rápidas, links, botões de ligação, botões de copiar código, listas e carrosséis.
-
type: location
Localização e contatos
Compartilhe um pin, um vCard ou um cartão de contato do WhatsApp.
Envie uma mensagem de WhatsApp em uma única requisição
Coloque seu token no header x-maytapi-key e faça um POST com um corpo JSON contendo o destinatário e a mensagem. A API coloca a mensagem na fila do seu número e devolve o id na hora.
- ✓to_number em formato internacional, ex.: 55119xxxxxx67
- ✓Funciona com qualquer linguagem que faça uma requisição HTTP
- ✓A resposta traz o id da mensagem para acompanhamento
curl -X POST "https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage" \
-H "x-maytapi-key: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to_number": "55119xxxxxx67",
"type": "text",
"message": "Your order #10482 has shipped."
}'const res = await fetch(`https://api.maytapi.com/api/${PID}/${PHONE_ID}/sendMessage`, {
method: "POST",
headers: { "x-maytapi-key": TOKEN, "Content-Type": "application/json" },
body: JSON.stringify({ to_number: "55119xxxxxx67", type: "text", message: "Your order #10482 has shipped." })
});
console.log(await res.json());import requests
res = requests.post(
f"https://api.maytapi.com/api/{PID}/{PHONE_ID}/sendMessage",
headers={"x-maytapi-key": TOKEN},
json={"to_number": "55119xxxxxx67", "type": "text", "message": "Your order #10482 has shipped."},
timeout=10,
)
print(res.json())$ch = curl_init("https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["x-maytapi-key: $TOKEN", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode(["to_number" => "55119xxxxxx67", "type" => "text", "message" => "Your order #10482 has shipped."]),
]);
echo curl_exec($ch);Envie arquivos, imagens e áudios
Passe uma URL pública ou uma string base64. Adicione legenda, nome de arquivo ou qualidade HD para imagens.
- ✓Notas fiscais em PDF e documentos com nome de arquivo
- ✓Imagens e vídeos com legenda
- ✓Figurinhas, mensagens de voz e áudio
curl -X POST "https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage" \
-H "x-maytapi-key: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to_number": "55119xxxxxx67@c.us",
"type": "media",
"message": "https://example.com/invoice-10482.pdf",
"text": "Your invoice for order #10482",
"filename": "invoice-10482.pdf"
}'curl -X POST "https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage" \
-H "x-maytapi-key: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to_number": "55119xxxxxx67@c.us",
"type": "media",
"message": "https://example.com/product.jpg",
"text": "New arrival",
"isHd": true
}'Envie botões que o cliente toca
O cliente responde com um toque e a resposta chega ao seu webhook com o id do botão, então seu código sabe exatamente o que foi escolhido.
- ✓Botões de resposta rápida, URL, ligação e copiar código
- ✓Listas com seções para menus
- ✓Nenhum deles precisa de aprovação de template
curl -X POST "https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage" \
-H "x-maytapi-key: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to_number": "55119xxxxxx67@c.us",
"type": "buttons",
"message": "Your order #10482 has shipped. Want to follow it?",
"buttons": [
{
"id": "track",
"text": "Track order"
},
{
"id": "address",
"text": "Change address"
}
]
}'Envie para grupos e canais
Use o id de um grupo ou de um canal como destinatário. A Cloud API oficial simplesmente não oferece canais.
- ✓Ids de grupo terminam em @g.us
- ✓Ids de canal terminam em @newsletter
- ✓Mencione participantes, envie enquetes e eventos
curl -X POST "https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage" \
-H "x-maytapi-key: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to_number": "120363012345678901@g.us",
"type": "text",
"message": "Weekly update: all orders shipped."
}'curl -X POST "https://api.maytapi.com/api/$PID/$PHONE_ID/sendMessage" \
-H "x-maytapi-key: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to_number": "120363204759413821@newsletter",
"type": "text",
"message": "New collection is live."
}'O que as empresas enviam pela API
-
Atualizações de pedido e entrega
Mensagens de confirmação, envio e entrega direto da sua loja ou ERP.
-
Lembretes e confirmações
Lembretes de agendamento com botões para confirmar ou cancelar.
-
Respostas de atendimento
Responda pelo seu CRM ou deixe sua equipe responder pela caixa compartilhada.
Perguntas frequentes sobre envio de mensagens
Pergunte o que quiser ao nosso suporte pelo WhatsApp. O tempo médio de resposta é inferior a 24 horas.
Central de ajuda →Posso enviar mensagens no WhatsApp sem templates?
Sim. A Maytapi envia mensagens livres do seu próprio número, então não há aprovação de templates nem janela de 24 horas.
Posso enviar mensagens em massa?
Você pode enviar quantas mensagens precisar, sem cobrança por mensagem. Para proteger o número, envie para quem espera suas mensagens, varie o conteúdo e mantenha um ritmo natural; o Safe Mode aquece números novos.
De qual número as mensagens saem?
Do seu próprio número de WhatsApp, o que você pareia com um QR code. Os clientes veem seu nome e sua foto como sempre.
Como sei se uma mensagem foi entregue?
Configure um webhook e você recebe os eventos de enviado, entregue e lido de cada mensagem. Também dá para consultar a fila e o status do celular pela API.
Quais linguagens posso usar?
Quanto custa enviar?
Nada por mensagem. Você paga um preço fixo por número conectado: a partir de $24 por mês no plano anual, ou $29 no plano mensal.
Mais recursos da API do WhatsApp

Pegue sua chave e envie a primeira mensagem em dez minutos
Sem aprovação, sem templates, sem cartão. Todos os endpoints liberados por três dias.