La API de WhatsApp
que no se cae.
Envía OTP, notificaciones y automatizaciones por HTTP. Redundancia entre números con failover, webhooks firmados, SDKs en varios lenguajes y playground. Empieza en minutos, paga solo por lo que uses.
Sin tarjeta · plan Free para siempre · 2 números con redundancia
# envía un mensaje en 1 request
curl https://api.bzapper.com.br/messages/text \
-H "Authorization: Bearer bz_live_…" \
-d '{
"to": "+5551999998888",
"text": "Tu código es 318204"
}'
# respuesta
{
"message_id": "9d41…bbbd",
"status": "queued",
"number": "+5551999198087"
} Del primer número al webhook en tres pasos
Conecta un número, llama a la API, recibe los eventos. Integración en minutos.
Conecta un número
Conecta desde el panel. La redundancia entre números se activa sola.
Llama a la API
Un POST y el mensaje entra en la cola, con control de ritmo por número.
Recibe webhooks
Entregado, leído, respondido, número caído — todo firmado y en tiempo real.
Todo lo que un producto serio necesita
De la redundancia entre números al OTP seguro, de los webhooks a los SDKs — pensado para producción.
Redundancia multinúmero
Varios números por proyecto, con failover automático y monitoreo de salud. Uno se cae, el tráfico sigue.
OTP seguro
Código en un mensaje aparte, nunca persistido ni mostrado — ni en el historial, ni en la bandeja.
Webhooks firmados
Eventos en tiempo real con HMAC-SHA256, retry y dedup. Relay local estilo `stripe listen`.
SDKs multilenguaje
Node, Python, PHP, Java y Go — generados desde OpenAPI. Copia, pega y ejecuta.
Bandeja unificada
Conversaciones unificadas por contacto incluso cuando cambia el número de salida. Eco propio y contexto de grupo.
Medios privados
Archivos en bucket privado, descargados por URL prefirmada — el cliente descarga directo, sin pasar por tu API.
Proyectos y multiusuario
Aísla entornos por proyecto, invita al equipo, controla por clave y alcance.
Playground de API
Prueba cualquier endpoint e inspecciona webhooks en vivo, directo desde el panel.
Una sola API REST. Todo WhatsApp.
Del OTP a los webhooks firmados, de los grupos a la bandeja unificada — cada capacidad de abajo es un endpoint real, cubierto por los 5 SDKs.
Mensajería
- 13 tipos en una sola API REST
- Reenviar, responder (citar) y mencionar
- Envío programado con scheduled_at
- OTP en mensaje aparte, nunca persistido
Consentimiento y cumplimiento
- Opt-out automático por palabra clave
- Registro de consentimiento por contacto
- Bloqueo y supresión vía API
- Medios privados con URL prefirmada
Contactos (CRM)
- Perfil completo: documento y dirección
- Etiquetas, grupos y correlación automática
- Filtros avanzados + historial y notas
- Opt-out, bloqueo y opt-in
Conversaciones e inbox
- Historial unificado por contacto
- Archivar, fijar, silenciar y marcar leído
- Etiquetas de conversación
- Contexto de grupo y eco propio
Grupos de WhatsApp
- Crear y administrar grupos
- Participantes: añadir, promover, quitar
- Enlace de invitación y unirse por código
- Aprobar solicitudes de ingreso
Números e instancias
- Conectar por QR o código
- Perfil white-label por número
- Privacidad por número
- Failover con monitoreo de salud
Webhooks y tiempo real
- Webhooks firmados con HMAC-SHA256
- Retry, dedup y entregas auditables
- Stream SSE en vivo (/stream)
- Relay local estilo stripe listen
Widget integrable
- Modo flotante o embebido
- Tus clientes conectan números
- Mini-panel de uso
- Clave pública bloqueada por origen
Plataforma y dev
- SDKs en 5 lenguajes + OpenAPI
- Playground de API en el panel
- Planes Free/Pro + add-ons
- Uso, métricas y 6 idiomas
Cada elemento de arriba corresponde a un endpoint real de la API — sin vaporware. Explóralos todos en el Playground.
Copia, pega, ejecuta.
SDKs oficiales generados desde OpenAPI en Node, Python, PHP, Java y Go. Webhooks firmados con HMAC, retry y dedup. Relay local estilo stripe listen para probar en tu localhost.
$ npm install @bzapper/client $ pip install bzapper $ composer require bzapper/bzapper $ go get github.com/bernisoftware/bzapper-go $ br.com.bernisoftware:bzapper (Maven) Eventos de webhook
# enviar un 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"); Pon la gestión de números dentro de tu producto
Un widget standalone que integras en tu propio sistema. Tus clientes conectan, desconectan y siguen los números del proyecto — sin que construyas ninguna pantalla. Una línea de código.
Números del proyecto
Carga automáticamente los números conectados del proyecto vinculado a la clave. Cada uno con estado en vivo.
Conectar por QR
El cliente escanea el QR y conecta un número nuevo allí mismo — agregar número (si el plan lo permite) o desconectar, todo en el widget.
Mini panel
Uso y consumo del proyecto a la vista: mensajes, números y storage del período. La parte financiera queda en el panel.
Seguro por origen
La clave wgt_ es pública, pero bloqueada por una allowlist de orígenes (CORS). Nunca expone tu API key real.
Flotante (plug-and-play)
Una burbuja en la esquina de la pantalla. Solo pega el <script> con tu clave — se abre con un clic.
Embedded (inline)
Renderiza <bzapper-widget> donde quieras en tu página, como un bloque nativo de tu panel.
Modo flotante — una línea en tu HTML:
<!-- pega antes de </body> -->
<script src="https://widget.bzapper.com.br/v1/widget.js"
data-key="wgt_sua_chave" async></script> La clave wgt_ es pública (va en el HTML) y queda bloqueada por una allowlist de orígenes que configuras en el panel. Tu API key real nunca aparece. La parte financiera (planes y facturas) queda en el panel — el widget solo gestiona conexiones.
WhatsApp por API, sin interrupción
La entrega es ingeniería. Cada número del proyecto tiene límites propios de volumen, control de ritmo en el envío, monitoreo continuo de salud y alertas en tiempo real. Cuando un número se cae, el tráfico sigue por los otros — sin que hagas nada.
- Reparto de carga entre los números del proyecto
- Aumento gradual de volumen en números recién conectados
- Conversaciones unificadas por contacto, aun cambiando de número
- Alertas en tiempo real cuando un número se cae
Una base de contactos que trabaja por ti
Cada número que tocas se convierte en un contacto completo — con documento, dirección, etiquetas e historial. Correlacionado solo por proyecto y número, filtrable en segundos y siempre bajo tu registro de consentimiento.
- Perfil completo
Nombre, teléfono, email, documento (ID fiscal) y dirección completa — ciudad, estado, código postal y país.
- Etiquetas y grupos
Organiza con etiquetas y grupos con sus propios diccionarios. Un contacto puede estar en varios — todo versionado.
- Correlación automática
Cada contacto se vincula solo al proyecto y al número por el que habló. Sin alta manual, sin duplicados.
- Filtros avanzados
Busca por estado, etiquetas (todas o cualquiera), ciudad, documento, actividad y fechas — desde la API o el panel.
- Historial y notas
Una línea de tiempo append-only de cada evento del contacto, más notas internas del equipo. Nada se pierde.
- Opt-out y bloqueo
Suprime o bloquea con un POST. El estado pasa a opted_out o blocked y detiene el envío antes de encolar.
- OTP entregado y leído · hace 2 min
- Vinculado al número +55 51 99919-8087
- Etiqueta “plan-pro” añadida por ti
- Opt-in registrado en el registro de consentimiento
Contactos, etiquetas, grupos y supresiones viven aislados por proyecto — una clave solo ve su propio proyecto.
Ver en la documentación →Programa el envío para el momento justo
Envía cualquier mensaje con fecha y hora futuras. bZapper lo guarda y lo dispara en el momento exacto — sin cron en tu servidor, sin mantener un proceso activo.
- Un solo campo
Agrega scheduled_at a cualquier envío — texto, multimedia, lo que sea. El resto es igual a un envío normal.
- Número elegido al enviar
El número sano se elige al enviar, no al programar — nunca cae en un número que quedó offline.
- Cancela cuando quieras
Lista y cancela programaciones pendientes en cualquier momento, vía API o panel.
// programa para dentro de 2 horas
POST /messages/text
{
"to": "+5511999990000",
"body": "Bom dia! ☀️",
"scheduled_at": "2026-07-01T09:00:00Z"
} Tus contactos son tu activo más valioso
Un número baneado y una lista quemada cuestan caro. Por eso proteger tu base no es un extra — es cómo está construido bZapper, del aislamiento por proyecto al registro de consentimiento.
Los tratamos como si fueran nuestros: protegidos, aislados y bajo tu control.
- Aislamiento por proyecto
Números, bandeja, claves y supresión viven en proyectos aislados. Una clave solo ve su propio proyecto — nada se filtra entre clientes o entornos.
- Media privada con presign
Los archivos de conversación están en un bucket privado y solo se abren con una URL prefirmada de corta duración (24h por defecto). Nada indexable, nada suelto.
- Opt-out y supresión nativos
Quien responde PARAR/SAIR/STOP se suprime automáticamente y nunca vuelve a recibir un envío. La block list detiene el envío antes de encolar.
- Registro de consentimiento
Cada opt-in y opt-out entra en un registro append-only, fechado y auditable — la prueba de base legal que exige la LGPD.
- Webhooks firmados
Cada evento va con firma HMAC-SHA256 y verificación timing-safe. El secreto del webhook queda cifrado en reposo.
- Secretos cifrados
Sesiones de WhatsApp cifradas en reposo y el código OTP nunca persistido ni mostrado. Teléfono y correo normalizados en la base de datos.
Contacto suprimido en el proyecto al instante y registrado en el registro de consentimiento. Emite el webhook contact.opted_out.
bZapper es el encargado del tratamiento y hace el trabajo pesado de privacidad; la base legal del consentimiento es tu responsabilidad. Trabajamos juntos.
Leer la guía de Privacidad & LGPD →Pagas por los números. Mensajes, ilimitados.
Lo que importa es no dejar de entregar — y eso es redundancia entre números. Elige el plan, activa la recurrencia y olvídate de la factura.
Free
Prueba la redundancia, sin tarjeta.
- 2 números (redundancia activa)
- 250 mensajes/mes
- 1 proyecto
- 100 MB de medios
- 15 días de retención
- Failover · SDKs · webhooks
Pro
Todo ilimitado. Para producción.
- 2 números (redundancia)
- Mensajes ILIMITADOS
- 1 proyecto
- 1 GB de medios
- 30 días de retención
- Uptime + alertas · prioridad
¿Creciste? Añade al instante — cobro proporcional
Los add-ons son una fracción de la suscripción Pro. ¿Lo añadiste a mitad de mes? Pagas solo el proporcional hasta la próxima factura.
Arma tu plan
Ajusta los recursos y mira el total — igual que al contratar.
💳 Guarda la tarjeta y activa la renovación automática — acceso sin interrupciones, cero preocupaciones.
Precios en BRL (Brasil). América en USD · resto de regiones en EUR — definidos por tu región.
Para qué usa la gente bZapper
OTP / 2FA
Códigos de verificación con texto variado y entrega rastreada.
Notificaciones transaccionales
Pedidos, cobros, recordatorios — directo desde tu backend.
Atención centralizada
Varios números, una bandeja, N agentes.
Bots en grupos
Monitorea menciones y adjuntos, responde en el contexto correcto.
Automatización y no-code
Integra con n8n, Make, Zapier vía webhooks y HTTP.
Avisos y recordatorios
Confirmaciones, recordatorios de agenda y avisos operativos de tu sistema.
Todo lo que quieres saber
¿Es la API oficial de WhatsApp?
Hoy bZapper opera con el protocolo multidispositivo, con el número conectado desde el panel. Estamos adoptando la <strong>Cloud API oficial de Meta</strong> como nuestro carril principal — cuando esté disponible, eliges por qué carril envía cada proyecto, sin cambiar de integración.
¿Cómo garantizan la entrega?
Cada número tiene límites propios de volumen, control de ritmo en el envío y monitoreo continuo de salud. Cuando uno se cae, los otros toman el relevo y recibes una alerta en tiempo real — y la conversación sigue unificada por contacto.
¿Cuánto cuesta?
Dos planes simples. <strong>Free</strong> (gratis): 2 números con redundancia, 250 mensajes/mes, 1 proyecto, 100 MB y 15 días de retención — para que pruebes la redundancia sin tarjeta. <strong>Pro</strong> (R$ 79,90/mes): 2 números, <strong>mensajes ilimitados</strong>, 1 proyecto, 1 GB y 30 días de retención. ¿Necesitas más? Los add-ons son una fracción de la mensualidad — número extra, proyecto extra, +GB de medios, +retención — y al añadirlos a mitad de mes pagas solo el proporcional hasta la próxima factura. En BRL en Brasil; América en USD, resto de regiones en EUR. Recomendamos guardar la tarjeta y activar la renovación automática: acceso sin interrupciones.
¿En cuánto tiempo integro?
Minutos. Crea la cuenta, genera una API key y usa uno de los SDKs (Node, Python, PHP, Java, Go) o un POST puro. Hay playground y documentación completa.
¿Tienen SDK y webhooks?
Sí — SDKs generados desde OpenAPI en 5 lenguajes, webhooks firmados con HMAC, retry/dedup y un relay local estilo `stripe listen` para probar en localhost.
¿Y la privacidad de los datos?
Los medios de conversación van a un bucket privado con URL prefirmada; el código del OTP nunca se persiste; los secretos se cifran. Retención configurable por cuenta.
Empieza a enviar por WhatsApp en minutos
Crea tu cuenta gratis, genera una API key y haz el primer envío hoy. Sin tarjeta, sin burocracia.