Sem fila de homologação, sem ticket de suporte e sem tirar o número do celular: você entra com a sua conta da Meta, aponta o número que já está no WhatsApp Business e faz o primeiro POST. A tarifa da Meta você paga direto para a Meta — a gente não coloca margem.
Sem cartãoSem fidelidadeR$ 99/mês por númeroTarifa da Meta sem margemMesma API do QR Code
$ curl -X POST https://app.whatsgw.com.br/api/WhatsGw/Send \ -H "Content-Type: application/json" \ -d '{ "apikey": "SUA_APIKEY", "phone_number": "5511999999999", "contact_phone_number": "5511988888888", "message_custom_id": "pedido-4821", "message_type": "text", "message_body": "Olá, Marina! Seu pedido 4821 saiu hoje 🚚", "check_status": 1 }'
$ch = curl_init('https://app.whatsgw.com.br/api/WhatsGw/Send'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'apikey' => 'SUA_APIKEY', 'phone_number' => '5511999999999', 'contact_phone_number' => '5511988888888', 'message_custom_id' => 'pedido-4821', 'message_type' => 'text', 'message_body' => 'Olá, Marina! Seu pedido 4821 saiu hoje 🚚', 'check_status' => 1, ]), ]); echo curl_exec($ch);
const r = await fetch('https://app.whatsgw.com.br/api/WhatsGw/Send', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ apikey: 'SUA_APIKEY', phone_number: '5511999999999', contact_phone_number: '5511988888888', message_custom_id: 'pedido-4821', message_type: 'text', message_body: 'Olá, Marina! Seu pedido 4821 saiu hoje 🚚', check_status: 1 }) }); console.log(await r.json());
import requests r = requests.post('https://app.whatsgw.com.br/api/WhatsGw/Send', json={ 'apikey': 'SUA_APIKEY', 'phone_number': '5511999999999', 'contact_phone_number': '5511988888888', 'message_custom_id': 'pedido-4821', 'message_type': 'text', 'message_body': 'Olá, Marina! Seu pedido 4821 saiu hoje 🚚', 'check_status': 1, }) print(r.json())
var http = new HttpClient(); var envio = new { apikey = "SUA_APIKEY", phone_number = "5511999999999", contact_phone_number = "5511988888888", message_custom_id = "pedido-4821", message_type = "text", message_body = "Olá, Marina! Seu pedido 4821 saiu hoje 🚚", check_status = 1 }; var resp = await http.PostAsJsonAsync( "https://app.whatsgw.com.br/api/WhatsGw/Send", envio); Console.WriteLine(await resp.Content.ReadAsStringAsync());
{ "result": "success", "result_message": "…" }/WhatsGw/Send para oficial e QR Code — trocar o tipo de conexão não muda o seu códigoApp no painel de desenvolvedor, token temporário, usuário de sistema, webhook com verificação e assinatura, template no Business Manager — e, no fim, o número que a equipe usa fica de fora, porque manter o número no aplicativo exige credenciamento de parceiro. Aqui isso já está feito.
Send.Quase toda conexão oficial que trava, trava por falta de uma destas três. Confira antes de clicar.
É no seu portfólio empresarial que a Meta cobra as mensagens dela. Cadastre o cartão antes de conectar — sem forma de pagamento, o número fica pendente na Meta.
No popup da Meta você escaneia um QR com o WhatsApp Business. O número continua no aparelho: a equipe segue atendendo e a sua aplicação envia e recebe pela API.
Não é exigida para começar. Sem ela, a Meta libera 250 contatos únicos por dia; a verificação sobe o limite, que cresce conforme a qualidade dos seus envios.
Sem fila de aprovação nossa, sem ninguém “liberando” a sua conta. Você faz sozinho, no seu horário.
E-mail ou conta Google, sem cartão. Vêm 25 mensagens grátis para testar.
Nova instância → Oficial → Iniciar conexão com a Meta. No popup: entre no Facebook, escolha o portfólio, escaneie o QR com o WhatsApp Business. O número continua no celular.
Em Administração → Telefones. É fixa — nada de token que expira em 24 horas nem usuário de sistema.
Copie o exemplo lá de cima, troque a chave e os telefones. Peça um “oi” do destinatário e a mensagem livre sai na hora.
Se o cliente te escreveu nas últimas 24 horas, qualquer texto, imagem, vídeo, PDF ou localização sai pelo Send, como no exemplo do topo.
Para você iniciar a conversa, a Meta exige um template aprovado. Você cria e envia para aprovação pela própria API (NewTemplate → SendTemplateToProvider), acompanha com SyncTemplateStatus e dispara pelo mesmo Send com o bloco template. Cabeçalho com imagem, vídeo ou PDF e variáveis no corpo.
{
"apikey": "SUA_APIKEY",
"phone_number": "5511999999999",
"contact_phone_number": "5511988888888",
"message_custom_id": "pedido-4821",
"message_type": "text",
"message_body": "",
"template": {
"id": 22,
"components": [
{ "type": "body",
"parameters": [ { "type": "text", "text": "Marina" } ] }
]
}
}A equipe atende, responde áudio, manda foto — como sempre.
Notificação, cobrança, confirmação, bot — e o webhook de tudo.
A Cloud API é a mesma por baixo. O que o WhatsGW tira do seu caminho está na tabela — e o que continua seu também.
| Critério | Direto na Meta | Pelo WhatsGW |
|---|---|---|
| Manter o número no WhatsApp Business do celular | Só com credenciamento de parceiro na Meta | Incluído — conecta pelo popup |
| Até o primeiro envio | App, token, usuário de sistema, webhook, template | Popup da Meta + 1 POST |
| Autenticação | Token temporário ou usuário de sistema | API key fixa |
| Webhook | Você hospeda o endpoint da Meta, com verificação e assinatura | Seu URL recebe o JSON pronto, com o seu message_custom_id |
| Mídia | Upload para a Meta e envio pelo id | URL ou base64 no próprio POST |
| Templates | Business Manager | Pela API ou pelo painel |
| Oficial e QR Code na mesma integração | Não | Mesma API, escolha por número |
| Atendimento humano, CRM e agente de IA no mesmo número | Não | Inclusos no painel |
| Dono da conta WhatsApp Business (WABA) | Você | Você — ela fica no seu portfólio da Meta |
type: 3 e receba um direct_link para mandar ao seu cliente.GetInstance ou pelo webhook, e cada cliente paga a tarifa da Meta na conta dele.// POST /api/WhatsGw/NewInstance { "apikey": "SUA_APIKEY", "type": 3, "config": { "description": "Cliente 4821", "webhook_url": "https://seu-sistema.com.br/whatsgw" } } // resposta: mande o direct_link ao seu cliente { "result": "success", "w_instancia_id": 138683, "tipo": 3, "direct_link": "https://app.whatsgw.com.br/W-….aspx" }
check_status: entregue e lido chegam no seu webhook com o seu message_custom_id, para casar com o pedido.{ "message_custom_id": "pedido-4821", "status": "read", "contact_phone_number": "5511988888888" }/WhatsGw/Send/WhatsGw/GetTemplates/WhatsGw/NewTemplate/WhatsGw/SendTemplateToProvider/WhatsGw/SyncTemplateStatus/WhatsGw/NewInstance/WhatsGw/GetInstance/WhatsGw/PhoneState/WhatsGw/GetEvents
Pré-pago, sem fidelidade, sem taxa de setup. Mensagens ilimitadas do nosso lado; ou por mensagem, se preferir.
Não. O número continua no aparelho e a equipe segue atendendo por ele; a sua aplicação envia e recebe pela API no mesmo número (coexistência). Se preferir uma conta dedicada na nuvem, conecte um número sem WhatsApp instalado — a API é a mesma.
Não. Você conecta com a conta do Meta Business e uma forma de pagamento cadastrada. Sem verificação, a Meta libera 250 contatos únicos por dia; a verificação sobe o limite, que cresce com a qualidade dos envios.
Dentro de 24 horas depois da última mensagem do cliente, qualquer texto ou mídia sai pelo Send. Para iniciar a conversa, a Meta exige um template aprovado: você cria e envia para aprovação pela API (NewTemplate, SendTemplateToProvider), acompanha com SyncTemplateStatus e dispara pelo mesmo Send com o bloco template.
R$ 99 por mês por número conectado, com mensagens ilimitadas do nosso lado (ou o plano por mensagem, de R$ 0,120 a R$ 0,023). Além disso, a Meta cobra a tarifa dela direto na sua conta — no Brasil, R$ 0,035 por mensagem de utilidade, autenticação ou atendimento e R$ 0,3217 por mensagem de marketing, pela tabela de outubro de 2026. O WhatsGW não repassa nem acrescenta nada nessa parte.
É sua: ela fica no seu portfólio do Meta Business. O número, os templates e o histórico são seus.
Texto, imagem, vídeo, documento (PDF e outros) e localização, por URL ou base64. Fora da janela de 24 horas, templates aprovados — com cabeçalho de imagem, vídeo ou documento e variáveis no corpo.
Sim. Crie a instância oficial, conecte o número pelo popup da Meta e troque o phone_number nas suas chamadas. Endpoint, payload e webhook são os mesmos — e dá para manter os dois tipos na mesma conta.
Crie a instância pela API com type: 3 em NewInstance: a resposta traz um direct_link. Mande o link ao cliente; ele entra com a conta da Meta dele e conecta o número dele. Acompanhe por GetInstance ou pelo webhook. Cada cliente paga a tarifa da Meta na própria conta.
Crie a conta, entre com a sua conta da Meta e faça o primeiro POST. Sem cartão, sem fidelidade — e sem margem na tarifa da Meta.