bZapper
API de WhatsApp · feita no Brasil

A API de WhatsApp
que não cai.

Envie OTP, notificações e automações por HTTP. Redundância entre números com failover, webhooks assinados, SDKs em várias linguagens e playground. Comece em minutos, no plano Free — sem cartão.

Sem cartão · plano Free para sempre · 2 números com redundância

POST /messages/text 202 Accepted
# envie uma mensagem em 1 request
curl https://api.bzapper.com.br/messages/text \
  -H "Authorization: Bearer bz_live_…" \
  -d '{
    "to": "+5551999998888",
    "text": "Seu código é 318204"
  }'

# resposta
{
  "message_id": "9d41…bbbd",
  "status": "queued",
  "number": "+5551999198087"
}
publicados npm i @bzapper/client pip install bzapper composer require bzapper/bzapper
99,9%
uptime alvo
7
SDKs oficiais
< 10 min
pra integrar
LGPD
opt-out automático
Como funciona

Do primeiro número ao webhook em três passos

Conecte um número, chame a API, receba os eventos. Integração em minutos.

01

Conecte um número

Conecte pelo painel. A redundância entre números liga sozinha.

02

Chame a API

Um POST e a mensagem entra na fila, com controle de ritmo por número.

03

Receba webhooks

Entregue, lido, respondido, número caiu — tudo assinado e em tempo real.

Recursos

Tudo que um produto sério precisa

Da redundância entre números ao OTP seguro, dos webhooks aos SDKs — pensado para produção.

Redundância multi-número

Vários números por projeto, com failover automático e monitoramento de saúde. Um sai do ar, o tráfego segue.

OTP seguro

Código em mensagem separada, nunca persistido nem exibido — nem no histórico, nem na inbox.

Webhooks assinados

Eventos em tempo real com HMAC-SHA256, retry e dedup. Relay local estilo `stripe listen`.

SDKs multi-linguagem

Node, Python, PHP, .NET (C#), Java, Go e Ruby — alinhados ao OpenAPI e testados pela mesma suíte de conformidade. Copie, cole e rode.

Inbox unificada

Conversas unificadas por contato mesmo quando o número de saída muda. Eco próprio e contexto de grupo.

Mídia privada

Arquivos no bucket privado, baixados por URL pré-assinada — o cliente baixa direto, sem passar pela sua API.

Projetos & multiusuário

Isole ambientes por projeto, convide o time, controle por chave e escopo.

Playground de API

Teste qualquer endpoint e inspecione webhooks ao vivo, direto do painel.

Só no bZapper

O que ninguém mais entrega

Isto não é lista de recursos — é o que você não acha em nenhum outro gateway de WhatsApp. Cada item abaixo é um endpoint real, em produção, coberto pelos 7 SDKs.

o coração

Números que se revezam sozinhos

Vários números por projeto com failover automático, monitoramento de saúde e afinidade de conversa: o seu cliente continua falando com o mesmo remetente mesmo quando o tráfego muda de número por baixo.

inédito

Piloto anti-ban nas campanhas

Ritmo com variação humana, teto por número, janela de horário, rotação, aquecimento gradual e pausa automática ao primeiro sinal de bloqueio. Um especialista anti-ban embutido no produto.

só aqui

Widget embutível no SEU produto

Uma linha de HTML e os seus clientes conectam, desconectam e acompanham os próprios números dentro do seu sistema. Você não constrói tela nenhuma.

só aqui

Connect para softwares parceiros

O seu cliente cria a conta, assina o Pro e conecta o WhatsApp sem sair da sua tela — e o seu backend recebe a API key dele. Você não mexe em cobrança.

inédito

Idempotency-Key de verdade

Repetiu o POST por timeout ou retry? A mensagem sai uma vez só e você recebe a mesma resposta. O padrão que o Stripe consagrou, inexistente nos outros gateways de WhatsApp.

raro

Editar e revogar depois de enviar

Errou o texto? PATCH corrige a mensagem já entregue. Mandou para quem não devia? DELETE apaga para todos — tudo por API, sem abrir o celular.

economiza

Checar a base antes de gastar envio

Um POST diz quais números da sua lista realmente têm WhatsApp. Você limpa a base antes da campanha em vez de descobrir queimando reputação do seu chip.

raro

Presença e chamadas por API

“Digitando…” e “gravando áudio…” de verdade, inclusive em grupo — o seu bot deixa de parecer robô. E chamada recebida no número? Rejeitada automaticamente por API.

inédito

Erro com código estável em 6 idiomas

Todo erro traz um código neutro que nunca muda (você trata por ele) e uma mensagem já traduzida para mostrar ao usuário final. Nunca mais faça parsing de string de erro.

inédito

A API avisa a sua integração

Quando algo muda, o bZapper dispara um aviso segmentado pelo SDK, pela versão e pelos recursos que você realmente usa — no painel e na própria API. Você não descobre quebrando.

só aqui

IP próprio por número

Cada número pode sair por um proxy dedicado. Isolamento de rede real entre os seus clientes ou ambientes — não é uma caixa compartilhada com todo mundo.

só aqui

Uma identidade em todos os números

Defina o recado e a identidade do projeto uma vez e aplique em TODOS os números conectados num único POST. Sua marca igual em cada chip, sem trabalho manual.

7 SDKs oficiais, gerados da mesma spec

Node, Python, PHP, .NET (C#), Java, Go e Ruby — todos alinhados ao mesmo OpenAPI e aprovados pela mesma suíte de conformidade a cada release. Nenhum concorrente chega perto.

Ver tudo na documentação
Tudo que o bZapper faz

Um REST só. O WhatsApp inteiro.

Do OTP ao webhook assinado, do grupo à inbox unificada — cada capacidade abaixo é um endpoint real, coberto pelos 7 SDKs.

13 tipos de mensagem
TextoImagemVídeoDocumentoÁudio / vozStickerLocalizaçãoContato / vCardEnqueteReaçãoBotõesListaOTP

Envio de mensagens

  • 13 tipos num REST só
  • Encaminhar, responder (citar) e mencionar
  • Envio agendado com scheduled_at
  • OTP em mensagem separada, nunca persistido

Consentimento & conformidade

  • Opt-out automático por palavra-chave
  • Trilha de consentimento por contato
  • Bloqueio e supressão por API
  • Mídia privada com URL pré-assinada

Contatos (CRM)

  • Perfil rico: documento e endereço
  • Tags, grupos e correlação automática
  • Filtros avançados + histórico e notas
  • Opt-out, bloqueio e opt-in

Conversas & inbox

  • Histórico unificado por contato
  • Arquivar, fixar, silenciar e marcar lido
  • Etiquetas de conversa
  • Contexto de grupo e eco próprio

Grupos de WhatsApp

  • Criar e administrar grupos
  • Participantes: adicionar, promover, remover
  • Link de convite e entrar por código
  • Aprovar pedidos de entrada

Números & instâncias

  • Conectar por QR ou código
  • Perfil white-label por número
  • Privacidade por número
  • Failover com monitoramento de saúde

Webhooks & tempo real

  • Webhooks assinados com HMAC-SHA256
  • Retry, dedup e entregas auditáveis
  • Stream SSE ao vivo (/stream)
  • Relay local estilo stripe listen

Widget embutível

  • Modo flutuante ou embedded
  • Seus clientes conectam números
  • Mini-dashboard de uso
  • Chave pública travada por origem

Plataforma & dev

  • SDKs em 7 linguagens + OpenAPI
  • Playground de API no painel
  • Planos Free/Pro + add-ons
  • Uso, métricas e 6 idiomas

Cada item acima corresponde a um endpoint real da API — nada de vaporware. Explore todos no Playground.

Feito para desenvolvedores

Copie, cole, rode.

SDKs oficiais alinhados ao OpenAPI e testados pela mesma suíte de conformidade em Node, Python, PHP, .NET (C#), Java, Go e Ruby. Webhooks assinados com HMAC, retry e dedup. Relay local estilo stripe listen pra testar no seu localhost.

Já publicados no npm, PyPI, Packagist e Go
$ npm install @bzapper/client $ pip install bzapper $ composer require bzapper/bzapper $ go get github.com/bernisoftware/bzapper-go $ br.com.bernisoftware:bzapper (Maven) $ dotnet add package Bzapper $ gem install bzapper

Eventos de webhook

message.sentmessage.deliveredmessage.readmessage.receivedinstance.connectedinstance.disconnectedinstance.bannedgroup.participant_added
# enviar um OTP
curl https://api.bzapper.com.br/messages/otp \
  -H "Authorization: Bearer bz_live_…" \
  -d '{"to":"+5551999998888","code":"318204"}'
// npm install @bzapper/client
import { Bzapper } from '@bzapper/client';

const bz = new Bzapper({ apiKey: 'bz_live_…' });
await bz.sendOTP({ to: '+5551999998888', code: '318204' });
# pip install bzapper
from bzapper import Client

bz = Client("bz_live_…")
bz.send_otp("+5551999998888", code="318204")
// composer require bzapper/bzapper
$bz = new Client('bz_live_…');
$bz->sendOtp('+5551999998888', '318204');
// go get github.com/bernisoftware/bzapper-go
import bzapper "github.com/bernisoftware/bzapper-go"

bz := bzapper.NewClient("bz_live_…")
bz.SendOTP("+5551999998888", "318204")
// br.com.bernisoftware:bzapper
var bz = new BzapperClient("bz_live_…");
bz.sendOtp("+5551999998888", "318204");
// dotnet add package Bzapper
using Bzapper;

using var bz = new BzapperClient("bz_live_…");
var msg = await bz.SendTextAsync(new SendText { To = "+5511999999999", Body = "Olá do bZapper!" });
# gem install bzapper
require "bzapper"

client = Bzapper::Client.new("bz_live_…")
client.messages.send_text(to: "+5511999999999", body: "Olá do bZapper!")
Widget embutível · o nosso diferencial

Coloque a gestão de números dentro do seu produto

Um widget standalone que você embute no seu sistema. Seus clientes conectam, desconectam e acompanham os números do projeto — sem você construir tela nenhuma. Uma linha de código.

Números do projeto

Carrega automaticamente os números conectados do projeto atrelado à chave. Cada um com status ao vivo.

Conectar via QR

O cliente lê o QR e conecta um número novo ali mesmo — adicionar número (se o plano permitir) ou desconectar, tudo no widget.

Mini-dashboard

Uso e consumo do projeto à vista: mensagens, números e storage no período. O financeiro fica no painel.

Seguro por origem

A chave wgt_ é pública, mas travada por allowlist de origens (CORS). Não expõe a sua API key real.

Flutuante (plug-and-play)

Uma bolha no canto da tela. Só cole o <script> com a sua chave e pronto — abre num clique.

Embedded (inline)

Renderize <bzapper-widget> onde quiser na sua página, como um bloco nativo do seu painel.

Modo flutuante — uma linha no seu HTML:

index.html
<!-- cole antes do </body> -->
<script src="https://widget.bzapper.com.br/v1/widget.js"
        data-key="wgt_sua_chave" async></script>

A chave wgt_ é pública (vai no HTML) e fica travada por uma allowlist de origens que você configura no painel. A sua API key real nunca aparece. O financeiro (planos e faturas) fica no painel — o widget só gerencia conexões.

bZapper Connect · para softwares parceiros

Ofereça WhatsApp dentro do seu software

Seu cliente contrata o bZapper Pro e conecta o número sem sair do seu sistema. Você recebe a API key autorizada por ele e passa a enviar e receber mensagens na hora.

  1. 1

    Conta em um clique

    O componente abre com os dados que o seu sistema já tem. Sem senha, sem captcha, sem confirmar e-mail.

  2. 2

    Assinatura do Pro

    Cartão ou Pix, ali mesmo. O cliente paga direto ao bZapper — você não mexe em cobrança.

  3. 3

    WhatsApp conectado

    QR code ou código de pareamento, com status ao vivo. No fim, o seu backend recebe a API key.

Uma linha no front

Modal ou inline, em Shadow DOM: não briga com o CSS do seu produto.

Um webhook para todos

Mensagens e status de todos os seus clientes num só endpoint, com o id do cliente no seu sistema.

Suspensão automática

Se o Pro do cliente não for pago, a key responde 402 e volta sozinha quando ele pagar.

Nos 7 SDKs

Node, Python, PHP, .NET (C#), Java, Go e Ruby já têm o cliente de parceiro.

O que o seu produto precisa escrever:

app.js
// 1. seu backend abre a sessão com o secret de parceiro
const { session_token } = await api.post('/bzapper/session')

// 2. o cliente contrata e conecta sem sair da sua tela
BzapperConnect.open({
  session: session_token,
  onComplete: ({ code }) => api.post('/bzapper/exchange', { code }),
})

// 3. seu backend troca o code pela API key do cliente
// → { api_key: "bz_live_…", status: "active" }

O secret de parceiro e a API key ficam só no seu backend. O navegador recebe um ingresso de 30 minutos, válido apenas nos seus domínios. A key do parceiro opera o WhatsApp, mas não toca em plano, usuários nem cobrança do cliente.

Confiabilidade · o nosso diferencial

WhatsApp via API, sem interrupção

Entrega é engenharia. Cada número do projeto tem limites próprios de volume, controle de ritmo no envio, monitoramento contínuo de saúde e alertas em tempo real. Quando um número sai do ar, o tráfego segue pelos outros — sem intervenção sua.

  • Distribuição de carga entre os números do projeto
  • Aumento gradual de volume em números recém-conectados
  • Conversas unificadas por contato, mesmo trocando de número
  • Alertas em tempo real quando um número sai do ar
Números do projeto 3 números · saúde média 68
+55 51 99919-8087
Conectado
+55 11 98888-2210
Em ramp-up
+55 21 99745-3308
Em descanso
Gestão de contatos · CRM

Uma base de contatos que trabalha por você

Cada número que você toca vira um contato rico — com documento, endereço, tags e histórico. Correlacionado sozinho por projeto e número, filtrável em segundos e sempre sob a sua trilha de consentimento.

  • Perfil rico

    Nome, telefone, e-mail, documento (CPF/CNPJ) e endereço completo — cidade, estado, CEP e país.

  • Tags & grupos

    Organize por tags e grupos com dicionários próprios. Um contato pode estar em vários — tudo versionado.

  • Correlação automática

    Todo contato é ligado sozinho ao projeto e ao número por onde falou. Sem cadastro manual, sem duplicata.

  • Filtros avançados

    Busque por status, tags (todas ou qualquer), cidade, documento, atividade e datas — direto na API ou no painel.

  • Histórico & notas

    Timeline append-only de cada evento do contato, mais notas internas do time. Nada se perde.

  • Opt-out & bloqueio

    Suprima ou bloqueie com um POST. O status vira opted_out ou blocked e barra o envio antes de enfileirar.

Maria Oliveira ativo
+55 51 99919-8087
CPF 123.456.789-09 · Porto Alegre · RS
clienteplano-prosul
Histórico
  • OTP entregue e lido · há 2 min
  • Ligado ao número +55 51 99919-8087
  • Tag “plano-pro” adicionada por você
  • Opt-in registrado na trilha de consentimento
Contatos sem WhatsApp entram como “unreachable” — você vê o problema de recebimento antes de gastar envio.

Contatos, tags, grupos e supressões vivem isolados por projeto — uma chave só enxerga o próprio projeto.

Ver na documentação →
Novo · Envio agendado

Programe o envio para a hora certa

Mande qualquer mensagem com data e hora marcadas. O bZapper guarda e dispara no momento exato — sem cron no seu servidor, sem manter processo no ar.

  • Um campo só

    Adicione scheduled_at em qualquer envio — texto, mídia, o que for. O resto é igual ao envio normal.

  • Número escolhido na hora

    O número saudável é selecionado no envio, não no agendamento — nunca cai num número que ficou offline.

  • Cancele quando quiser

    Liste e cancele agendamentos pendentes a qualquer momento, via API ou painel.

Exemplo
// agenda para daqui a 2 horas
POST /messages/text
{
  "to": "+5511999990000",
  "body": "Bom dia! ☀️",
  "scheduled_at": "2026-07-01T09:00:00Z"
}
Segurança & LGPD · o nosso compromisso

Seus contatos são o seu ativo mais precioso

Uma base mal cuidada custa caro. Por isso a proteção da sua base não é um extra — é como o bZapper foi construído, do isolamento por projeto à trilha de consentimento.

Nós os tratamos como se fossem nossos: protegidos, isolados e sob o seu controle.

  • Isolamento por projeto

    Números, inbox, chaves e supressão vivem em projetos isolados. Uma chave só enxerga o próprio projeto — nada vaza entre clientes ou ambientes.

  • Mídia privada com presign

    Arquivos de conversa ficam em bucket privado e só abrem por URL pré-assinada de validade curta (24h por padrão). Nada indexável, nada solto.

  • Opt-out & supressão nativos

    Quem responde PARAR/SAIR/STOP é suprimido automaticamente e nunca mais recebe mensagem. A block list barra o envio antes de enfileirar.

  • Trilha de consentimento

    Cada opt-in e opt-out entra numa trilha append-only, datada e auditável — a prova da base legal que a LGPD exige.

  • Webhooks assinados

    Cada evento vai com assinatura HMAC-SHA256 e verificação timing-safe. O segredo do webhook fica criptografado em repouso.

  • Segredos criptografados

    Sessões do WhatsApp criptografadas em repouso e o código do OTP nunca persistido nem exibido. Telefone e e-mail normalizados no banco.

Opt-out ao vivo
PARAR

Contato suprimido no projeto na hora e registrado na trilha de consentimento. O opt-out por palavra-chave ainda emite o webhook contact.opted_out.

PARAR SAIR STOP unsubscribe

bZapper é o operador dos dados e cuida do trabalho pesado de privacidade; a base legal do consentimento é responsabilidade sua. Trabalhamos juntos.

Ler o guia de Privacidade & LGPD →
Preços

Você paga pelos números. Mensagens, ilimitadas.

O que importa é não parar de entregar — e isso é redundância entre números. Escolha o plano, ative a recorrência e esqueça a fatura.

🛡️ Redundância entre números inclusa em todo plano — quando um sai do ar, outro assume. É o nosso maior diferencial.

Free

Teste a redundância, sem cartão.

R$ 0
  • 2 números (redundância ativa)
  • 250 mensagens/mês
  • 1 projeto
  • 100 MB de mídia
  • 15 dias de retenção
  • Failover · SDKs · webhooks
Começar grátis
Recomendado

Pro

Tudo ilimitado. Para produção.

R$ 79,90/mês
  • 2 números (redundância)
  • Mensagens ILIMITADAS
  • 1 projeto
  • 1 GB de mídia
  • 30 dias de retenção
  • Uptime + alertas · prioridade
Assinar o Pro

Cresceu? Adicione na hora — cobrança proporcional

Número extra (mais redundância) R$ 39,95/mês
Projeto extra (isolado) R$ 63,92/mês
+1 GB de mídia R$ 7,99/mês
+30 dias de retenção R$ 7,99/mês
Agendamento estendido (até 1 ano) R$ 11,98/mês

Add-ons são uma fração da mensalidade do Pro. Adicionou no meio do mês? Paga só o proporcional até a próxima fatura.

Monte seu plano

Ajuste os recursos e veja o total — igualzinho à hora de contratar.

Plano Pro R$ 79,90/mês
Números
2 inclusos no Pro
2
incluso
Projetos
1 incluso no Pro
1
incluso
GB de mídia extra
1 GB incluso no Pro
0
incluso
Retenção extra
blocos de +30 dias
0
incluso
Agendamento estendido
agende com até 1 ano
incluso
Total mensal R$ 79,90/mês

💳 Salve o cartão e ative a renovação automática — acesso sem interrupção, zero preocupação.

Preços em BRL (Brasil). Américas em USD · demais regiões em EUR — definidos pela sua região.

Casos de uso

Pra que as pessoas usam o bZapper

OTP / 2FA

Códigos de verificação com texto variado e entrega rastreada.

Notificações transacionais

Pedidos, cobranças, lembretes — direto do seu backend.

Atendimento centralizado

Vários números, uma inbox, N atendentes.

Bots em grupo

Monitore menções e anexos, responda no contexto certo.

Automações & no-code

Integre com n8n, Make, Zapier via webhooks e HTTP.

Avisos e lembretes

Confirmações, lembretes de agenda e avisos operacionais do seu sistema.

Perguntas frequentes

Tudo que você quer saber

É a API oficial do WhatsApp?

Não. O bZapper envia pelo <strong>protocolo multi-dispositivo</strong>, com o número conectado pelo painel — é assim que todo envio funciona hoje, e é isso que você integra. Um trilho pela Cloud API oficial da Meta está em desenvolvimento, sem data.

Como vocês garantem a entrega?

Cada número tem limites próprios de volume, controle de ritmo no envio e monitoramento contínuo de saúde. Quando um sai do ar, os outros assumem e você recebe alerta em tempo real — e a conversa segue unificada por contato.

Quanto custa?

Dois planos simples. <strong>Free</strong> (grátis): 2 números com redundância, 250 mensagens/mês, 1 projeto, 100 MB e 15 dias de retenção — pra você testar a redundância sem cartão. <strong>Pro</strong> (R$ 79,90/mês): 2 números, <strong>mensagens ilimitadas</strong>, 1 projeto, 1 GB e 30 dias de retenção. Precisou de mais? Add-ons são uma fração da mensalidade — número extra, projeto extra, +GB de mídia, +retenção — e ao adicionar no meio do mês você paga só o proporcional até a próxima fatura. Em BRL no Brasil; Américas em USD, demais regiões em EUR. Recomendamos salvar o cartão e ativar a renovação automática: acesso sem interrupção.

Em quanto tempo eu integro?

Minutos. Crie a conta, gere uma API key e use um dos SDKs (Node, Python, PHP, .NET, Java, Go, Ruby) ou um POST puro. Há playground e documentação completa.

Vocês têm SDK e webhooks?

Sim — SDKs em 7 linguagens, alinhados ao OpenAPI e testados pela mesma suíte de conformidade, webhooks assinados com HMAC, retry/dedup e um relay local estilo `stripe listen` para testar no localhost.

E a privacidade dos dados?

Mídia de conversa vai para bucket privado com URL pré-assinada; o código do OTP nunca é persistido; segredos são criptografados. Retenção configurável por conta.

Comece a enviar pelo WhatsApp em minutos

Crie sua conta grátis, gere uma API key e faça o primeiro envio hoje. Sem cartão, sem burocracia.