01/Segurança
Como protegemos seus números e seus dados
Cada linha desta página é algo que o código faz, com o valor que comprova. As linhas marcadas como opcional ficam desligadas até você ativar. Não temos nenhuma certificação de segurança e não dizemos ter.
Seus números de WhatsApp
- saída
Cada número se conecta pelo próprio IP residencial no seu país. O proxy caiu? O número fica offline, nunca num IP de datacenter.
egress: residential or refuse
- sticky
A saída continua a mesma entre reinícios. Ela só muda depois de 3 conexões com falha, no máximo 4 vezes por dia, ou 8 se o número continuar fora do ar.
sticky · rotate_after=3 · max 8/day
- opcional
Ritmo de envio, se você ativar: primeiro aparece "digitando…", depois saem no máximo 12 por minuto, e 5 por minuto para contatos novos. Desligado por padrão.
messagesPerMinute 12 · firstContactPerMinute 5
- checagem
Antes da primeira mensagem para alguém, perguntamos ao WhatsApp se o número está lá. Se não estiver, nada é enviado.
message.failed · not_on_whatsapp
- parada
Um número que o WhatsApp desconectou ou baniu não é reconectado em loop, o que costuma piorar a situação.
disconnectReason temporary_ban · logged_out
- quedas
Quando o proxy cai, a conexão volta sozinha. Os envios na fila esperam o número e saem quando ele volta.
queued → ready → sent
Seus dados e sua API
- assinado
Todo webhook é assinado com HMAC-SHA256 sobre um timestamp e o body, para que seu endpoint possa recusar uma request falsa ou repetida.
Wuapi-Signature: t=…,v1=…
- retries
Seu endpoint não respondeu 2xx? A gente faz retry, 6 tentativas no total. Cada evento tem um ID para deduplicar.
retries 30s · 2m · 10m · 1h · 6h
- idempotente
Todo POST aceita uma Idempotency-Key, então um retry depois de um timeout nunca envia duas vezes.
Idempotency-Key · replayed 24h
- isolado
Dê a cada cliente um projeto com as próprias keys. Uma key de projeto não enxerga outro projeto: esses IDs respondem 404.
project key → one project · 404 not_found
- em repouso
As API keys são guardadas como hashes. A sessão de que cada número precisa é guardada criptografada.
sha256(key) · AES-GCM session snapshots
- cartões
Os pagamentos passam pela Stripe. Dados de cartão nunca chegam ao wuapi.
Stripe Checkout · Stripe Tax
Acesso e contas
- authz
Cada chamada é checada contra sua organização, papel e projeto antes de ler ou gravar qualquer coisa, e um teste falha se alguma função pular essa checagem.
customer builders · publicSurface.test.ts
- rate limit
Cada API key tem 600 requests por minuto. Passou disso, você recebe um 429 com Retry-After.
429 rate_limited · RateLimit-Remaining
- rotação
Revogue uma API key ou rotacione o secret de um webhook quando quiser, pela API ou pelo dashboard.
POST webhook-endpoints/{id}/rotate-secret
- envio
Os webhooks só vão para URLs HTTPS públicas, nunca seguem redirects e dão timeout em 10 segundos.
https only · redirect: manual · 10s
- login
Login com Google e GitHub exige e-mail verificado. E-mails descartáveis não podem criar conta.
email_verified · one email, one user
- equipe
Quando nossa equipe entra na sua organização para ajudar, precisa informar um motivo, e cada alteração feita fica registrada em auditoria.
impersonation · reason required · audited
O que guardamos
- Sua conta: o e-mail e um hash da sua senha, ou sua identidade do Google ou do GitHub.
- De cada número: o número de telefone, o nome do perfil, o status de conexão e os logs, e a sessão de que ele precisa para continuar vinculado.
- As mensagens enviadas e recebidas pela API, com mídia, para que a API, o dashboard e os retries de webhook possam devolvê-las.
- Os endpoints de webhook e um log das deliveries. As API keys, como hashes.
- O tráfego de proxy por número, para a cobrança. Referências de cobrança da Stripe, nunca dados de cartão.
Excluir uma conta conectada também a desvincula do celular. Para excluir sua organização e os dados dela, escreva para o suporte.
Política de privacidadeO que nenhum setup consegue garantir
O wuapi vincula seu número como um dispositivo, igual ao WhatsApp Web, e é um serviço independente, sem vínculo com o WhatsApp. É o WhatsApp que decide quais números restringir. Um proxy tira um sinal de rede, mas não muda o que você envia nem como as pessoas reagem, então o consentimento é com você.
Mantenha seu número saudávelConfira você mesmo
A status page checa a API, a engine e os webhooks a cada minuto. A documentação mostra como verificar uma assinatura, e o SLA diz o que os planos de suporte pagos garantem.