Para devs procurando "API WhatsApp para desenvolvedores", aqui está um walkthrough pratico: três caminhos disponíveis, provedores oficiais vs bibliotecas não-oficiais, custos reais e setup com mínima fricção. Exemplos de código em TypeScript, Python e cURL ao longo do guia.
As 3 APIs do WhatsApp para devs
1. WhatsApp Cloud API (Meta, direta)
- Hospedada pela Meta, sem infra para rodar
- Você gerencia tokens, aprovação de template, assinatura de webhook
- Melhor quando: quer máximo controle e tem devops dedicado
2. Business API via BSP oficial (Zavu, Twilio, etc.)
- BSPs abstraem a complexidade da Meta
- SDK em multiplas linguagens
- Melhor para: 99% dos casos de uso
3. Bibliotecas não-oficiais (evite)
- Fazem reverse engineering do WhatsApp Web
- Risco de banimento permanente
- Melhor para: nada em produção
Quickstart via BSP oficial
terminalnpm install @zavudev/sdk # ou: pip install zavudev
TypeScriptimport Zavu from "@zavudev/sdk" const zavu = new Zavu({ apiKey: process.env.ZAVU_API_KEY }) await zavu.messages.send({ to: "+5511999998888", channel: "whatsapp", text: "Olá da API!" })
Pronto — primeira mensagem em < 30 segundos de código.
A janela de service de 24h
Regra crítica:
- Cliente te manda mensagem → janela 24h abre → manda qualquer coisa grátis
- 24h passam → só template
Desenhe seus fluxos em torno disso. Use templates para outbound proativo (confirmações de pedido, OTPs, lembretes), texto livre dentro da janela.
Tipos de mensagem
Texto
TypeScriptawait zavu.messages.send({ to, channel: "whatsapp", text: "Oi" })
Template (fora da janela)
TypeScriptawait zavu.messages.send({ to, channel: "whatsapp", messageType: "template", content: { templateId: "tpl_pedido_confirmado", templateVariables: { "1": "João" } } })
Mídia
TypeScriptawait zavu.messages.send({ to, channel: "whatsapp", messageType: "image", content: { mediaUrl: "https://..." } })
Interativo (botões, listas)
TypeScriptawait zavu.messages.send({ to, channel: "whatsapp", messageType: "buttons", text: "Escolha opção", content: { buttons: [{ id: "1", title: "Comprar" }, { id: "2", title: "Suporte" }] } })
Webhooks para receber
TypeScriptexport async function POST(req: Request) { const event = await req.json() if (event.type === "message.inbound") { await zavu.messages.send({ to: event.message.from, channel: "whatsapp", text: "Recebido" }) } return new Response("ok") }
Tipos de evento:
message.inbound— cliente mandoumessage.delivered— entreguemessage.read— lidomessage.failed— falhou (com razão)button.reply— cliente apertou botãotemplate.status_changed— template aprovado/rejeitado
Pitfalls comuns
Timeout de webhook: Meta retenta se você não responder 200 em 2 segundos. Reconheça rápido, processe async.
Ciclos de rejeição de template: Meta rejeita templates que parecem promocionais na categoria Utility. Leia as guidelines de template.
Degradação de quality score: tasas altas de bloqueio limitam seu número. Verifique opt-ins, respeite STOP.
Rate limits: Meta enforce tiers de mensageria (250/dia → 1k → 10k → 100k). Verifique o business para aumentar.
Snapshot de preços (Brasil, 2026)
| Categoria | Custo por conversa 24h |
|---|---|
| Service (cliente inicia) | R$ 0 |
| Authentication | R$ 0.04 |
| Utility | R$ 0.07 |
| Marketing | R$ 0.18 |
Escolhendo BSP
| Provedor | Markup | Setup | Contrato | Melhor para |
|---|---|---|---|---|
| Zavu | 0% | R$ 0 | Mês a mês | Devs multi-canal |
| Twilio | 5-20% | R$ 0 | Mês a mês | Voz + SMS também |
| MessageBird | Variável | R$ 3.000 | 3 meses | Enterprise |
| Gupshup | 10-25% | R$ 0 | Mês a mês | India-focused |
Recursos relacionados
- WhatsApp Cloud API tutorial
- Como criar chatbot no WhatsApp
- Preços WhatsApp Business API
- Comparativo Zavu vs Twilio
- Documentação técnica completa
Conclusão
A API do WhatsApp em 2026 está madura e acessível. Escolha BSP sem markup ou contrato, use templates para outbound, texto livre dentro da janela de 24h, e instrumente com webhooks. Zavu free tier cobre suas primeiras 2.000 mensagens — sem cartão.