L’API WhatsApp
qui ne tombe pas.
Envoyez OTP, notifications et automatisations en HTTP. Redondance entre numéros avec bascule, webhooks signés, SDK en plusieurs langages et un playground. Démarrez en quelques minutes, ne payez que ce que vous utilisez.
Sans carte · plan Free pour toujours · 2 numéros avec redondance
# envoyer un message en 1 requête
curl https://api.bzapper.com.br/messages/text \
-H "Authorization: Bearer bz_live_…" \
-d '{
"to": "+5551999998888",
"text": "Votre code est 318204"
}'
# réponse
{
"message_id": "9d41…bbbd",
"status": "queued",
"number": "+5551999198087"
} Du premier numéro au webhook en trois étapes
Connectez un numéro, appelez l’API, recevez les événements. Intégration en minutes.
Connectez un numéro
Connectez depuis le tableau de bord. La redondance entre numéros s’active toute seule.
Appelez l’API
Un POST et le message entre dans la file, avec un contrôle de rythme par numéro.
Recevez des webhooks
Livré, lu, répondu, numéro tombé — tout signé et en temps réel.
Tout ce qu’un produit sérieux exige
De la redondance entre numéros à l’OTP sécurisé, des webhooks aux SDK — pensé pour la production.
Redondance multi-numéros
Plusieurs numéros par projet, avec bascule automatique et surveillance de santé. L’un tombe, le trafic continue.
OTP sécurisé
Code dans un message séparé, jamais persisté ni affiché — ni dans l’historique, ni dans la boîte.
Webhooks signés
Événements en temps réel avec HMAC-SHA256, retry et dedup. Relais local façon `stripe listen`.
SDK multi-langages
Node, Python, PHP, Java et Go — générés depuis OpenAPI. Copiez, collez, exécutez.
Boîte unifiée
Conversations unifiées par contact même lorsque le numéro d’envoi change. Écho propre et contexte de groupe.
Médias privés
Fichiers dans un bucket privé, téléchargés par URL pré-signée — le client télécharge directement, sans passer par votre API.
Projets et multi-utilisateur
Isolez les environnements par projet, invitez l’équipe, contrôlez par clé et scope.
Playground d’API
Testez n’importe quel endpoint et inspectez les webhooks en direct, depuis le tableau de bord.
Une seule API REST. Tout WhatsApp.
De l’OTP aux webhooks signés, des groupes à la boîte unifiée — chaque capacité ci-dessous est un endpoint réel, couvert par les 5 SDK.
Messagerie
- 13 types dans une seule API REST
- Transférer, répondre (citer) et mentionner
- Envoi programmé avec scheduled_at
- OTP dans un message séparé, jamais persisté
Consentement et conformité
- Opt-out automatique par mot-clé
- Journal de consentement par contact
- Blocage et suppression via API
- Médias privés avec URL pré-signée
Contacts (CRM)
- Profil riche : document et adresse
- Tags, groupes et corrélation automatique
- Filtres avancés + historique et notes
- Opt-out, blocage et opt-in
Conversations et boîte
- Historique unifié par contact
- Archiver, épingler, couper le son et marquer lu
- Étiquettes de conversation
- Contexte de groupe et écho propre
Groupes WhatsApp
- Créer et administrer des groupes
- Participants : ajouter, promouvoir, retirer
- Lien d’invitation et rejoindre par code
- Approuver les demandes d’adhésion
Numéros et instances
- Connecter par QR ou code
- Profil white-label par numéro
- Confidentialité par numéro
- Bascule avec surveillance de santé
Webhooks et temps réel
- Webhooks signés avec HMAC-SHA256
- Retry, dedup et livraisons auditables
- Stream SSE en direct (/stream)
- Relais local façon stripe listen
Widget intégrable
- Mode flottant ou embedded
- Vos clients connectent des numéros
- Mini tableau de bord d’usage
- Clé publique verrouillée par origine
Plateforme et dev
- SDK en 5 langages + OpenAPI
- Playground d’API dans le panneau
- Plans Free/Pro + add-ons
- Usage, métriques et 6 langues
Chaque élément ci-dessus correspond à un endpoint réel de l’API — pas de vaporware. Explorez-les tous dans le Playground.
Copiez, collez, exécutez.
SDK officiels générés depuis OpenAPI en Node, Python, PHP, Java et Go. Webhooks signés avec HMAC, retry et dedup. Relais local façon stripe listen pour tester sur votre localhost.
$ npm install @bzapper/client $ pip install bzapper $ composer require bzapper/bzapper $ go get github.com/bernisoftware/bzapper-go $ br.com.bernisoftware:bzapper (Maven) Événements webhook
# envoyer 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"); Mettez la gestion des numéros au cœur de votre produit
Un widget standalone que vous intégrez dans votre propre système. Vos clients connectent, déconnectent et suivent les numéros du projet — sans que vous construisiez le moindre écran. Une ligne de code.
Numéros du projet
Charge automatiquement les numéros connectés du projet lié à la clé. Chacun avec un statut en direct.
Connexion par QR
Le client scanne le QR et connecte un nouveau numéro sur place — ajouter un numéro (si le plan le permet) ou déconnecter, tout dans le widget.
Mini tableau de bord
Usage et consommation du projet en un coup d’œil : messages, numéros et stockage sur la période. La facturation reste dans le panneau.
Sécurisé par origine
La clé wgt_ est publique, mais verrouillée par une allowlist d’origines (CORS). Elle n’expose jamais votre vraie clé API.
Flottant (plug-and-play)
Une bulle dans le coin de l’écran. Collez simplement le <script> avec votre clé — il s’ouvre en un clic.
Embedded (inline)
Affichez <bzapper-widget> où vous voulez dans votre page, comme un bloc natif de votre panneau.
Mode flottant — une ligne dans votre HTML :
<!-- collez avant </body> -->
<script src="https://widget.bzapper.com.br/v1/widget.js"
data-key="wgt_sua_chave" async></script> La clé wgt_ est publique (elle est dans le HTML) et verrouillée par une allowlist d’origines que vous configurez dans le panneau. Votre vraie clé API n’apparaît jamais. La facturation (plans et factures) reste dans le panneau — le widget ne gère que les connexions.
WhatsApp via API, sans interruption
La délivrabilité, c’est de l’ingénierie. Chaque numéro du projet a ses propres limites de volume, un contrôle de rythme à l’envoi, une surveillance continue de santé et des alertes en temps réel. Quand un numéro tombe, le trafic continue par les autres — sans intervention de votre part.
- Répartition de la charge entre les numéros du projet
- Montée en volume progressive sur les numéros récemment connectés
- Conversations unifiées par contact, même en changeant de numéro
- Alertes en temps réel quand un numéro tombe
Une base de contacts qui travaille pour vous
Chaque numéro que vous touchez devient un contact riche — avec document, adresse, tags et historique. Corrélé tout seul par projet et numéro, filtrable en quelques secondes et toujours sous votre registre de consentement.
- Profil riche
Nom, téléphone, e-mail, document (identifiant fiscal) et adresse complète — ville, région, code postal et pays.
- Tags et groupes
Organisez avec des tags et des groupes dotés de leurs propres dictionnaires. Un contact peut appartenir à plusieurs — tout est versionné.
- Corrélation automatique
Chaque contact se lie tout seul au projet et au numéro par lequel il a parlé. Pas de saisie manuelle, pas de doublons.
- Filtres avancés
Recherchez par statut, tags (tous ou n’importe lequel), ville, document, activité et dates — depuis l’API ou le panneau.
- Historique et notes
Une timeline append-only de chaque événement du contact, plus des notes internes de l’équipe. Rien ne se perd.
- Opt-out et blocage
Supprimez ou bloquez avec un POST. Le statut passe à opted_out ou blocked et stoppe l’envoi avant la file.
- OTP livré et lu · il y a 2 min
- Lié au numéro +55 51 99919-8087
- Tag « plan-pro » ajouté par vous
- Opt-in enregistré dans le registre de consentement
Contacts, tags, groupes et suppressions vivent isolés par projet — une clé ne voit que son propre projet.
Voir dans la documentation →Programmez l’envoi pour le bon moment
Envoyez n’importe quel message avec un horodatage futur. bZapper le garde et l’envoie à l’instant exact — pas de cron sur votre serveur, aucun processus à maintenir.
- Un seul champ
Ajoutez scheduled_at à n’importe quel envoi — texte, média, peu importe. Le reste est identique à un envoi normal.
- Numéro choisi à l’envoi
Le numéro sain est choisi à l’envoi, pas à la programmation — il ne tombe jamais sur un numéro passé hors ligne.
- Annulez quand vous voulez
Listez et annulez les programmations en attente à tout moment, via l’API ou le tableau de bord.
// programme dans 2 heures
POST /messages/text
{
"to": "+5511999990000",
"body": "Bom dia! ☀️",
"scheduled_at": "2026-07-01T09:00:00Z"
} Vos contacts sont votre atout le plus précieux
Un numéro banni et une liste brûlée coûtent cher. C’est pourquoi protéger votre base n’est pas une option — c’est ainsi que bZapper est construit, de l’isolation par projet au registre de consentement.
Nous les traitons comme s’ils étaient les nôtres : protégés, isolés et sous votre contrôle.
- Isolation par projet
Numéros, boîte de réception, clés et suppression vivent dans des projets isolés. Une clé ne voit que son propre projet — rien ne fuit entre clients ou environnements.
- Médias privés avec presign
Les fichiers de conversation sont dans un bucket privé et ne s’ouvrent que via une URL présignée à courte durée (24h par défaut). Rien d’indexable, rien qui traîne.
- Opt-out & suppression natifs
Quiconque répond STOP/SAIR/PARAR est supprimé automatiquement et ne reçoit plus aucun envoi. La block list arrête l’envoi avant la mise en file.
- Registre de consentement
Chaque opt-in et opt-out entre dans un registre append-only, horodaté et auditable — la preuve de la base légale exigée par la LGPD.
- Webhooks signés
Chaque événement part avec une signature HMAC-SHA256 et une vérification timing-safe. Le secret du webhook reste chiffré au repos.
- Secrets chiffrés
Sessions WhatsApp chiffrées au repos et le code OTP jamais persisté ni affiché. Téléphone et e-mail normalisés en base de données.
Contact supprimé dans le projet à l’instant et enregistré dans le registre de consentement. Émet le webhook contact.opted_out.
bZapper est le sous-traitant des données et assure le gros du travail de confidentialité ; la base légale du consentement relève de votre responsabilité. Nous travaillons ensemble.
Lire le guide Confidentialité & LGPD →Vous payez pour les numéros. Messages, illimités.
Ce qui compte, c’est de ne jamais arrêter de délivrer — et c’est la redondance entre numéros. Choisissez le plan, activez la récurrence et oubliez la facture.
Free
Testez la redondance, sans carte.
- 2 numéros (redondance active)
- 250 messages/mois
- 1 projet
- 100 Mo de média
- 15 jours de rétention
- Bascule · SDK · webhooks
Pro
Tout illimité. Pour la production.
- 2 numéros (redondance)
- Messages ILLIMITÉS
- 1 projet
- 1 Go de média
- 30 jours de rétention
- Uptime + alertes · priorité
Vous avez grandi ? Ajoutez à la volée — facturation au prorata
Les add-ons sont une fraction de l’abonnement Pro. Ajouté en milieu de mois ? Vous ne payez que le prorata jusqu’à la prochaine facture.
Composez votre plan
Ajustez les ressources et voyez le total — exactement comme au moment de souscrire.
💳 Enregistrez votre carte et activez le renouvellement automatique — accès sans interruption, zéro souci.
Prix en BRL (Brésil). Amériques en USD · autres régions en EUR — définis par votre région.
Pourquoi les gens utilisent bZapper
OTP / 2FA
Codes de vérification au texte varié et à la livraison suivie.
Notifications transactionnelles
Commandes, factures, rappels — directement depuis votre backend.
Support centralisé
Plusieurs numéros, une boîte, N agents.
Bots en groupe
Surveillez mentions et pièces jointes, répondez dans le bon contexte.
Automatisation et no-code
Intégrez n8n, Make, Zapier via webhooks et HTTP.
Avis et rappels
Confirmations, rappels de rendez-vous et avis opérationnels de votre système.
Tout ce que vous voulez savoir
Est-ce l’API officielle de WhatsApp ?
Aujourd’hui, bZapper fonctionne avec le protocole multi-appareils, le numéro étant connecté depuis le tableau de bord. Nous adoptons la <strong>Cloud API officielle de Meta</strong> comme voie principale — dès qu’elle sera disponible, vous choisirez par quelle voie chaque projet envoie, sans changer d’intégration.
Comment garantissez-vous la délivrabilité ?
Chaque numéro a ses propres limites de volume, un contrôle de rythme à l’envoi et une surveillance continue de santé. Quand l’un tombe, les autres prennent le relais et vous recevez une alerte en temps réel — et la conversation reste unifiée par contact.
Combien ça coûte ?
Deux plans simples. <strong>Free</strong> (gratuit) : 2 numéros avec redondance, 250 messages/mois, 1 projet, 100 Mo et 15 jours de rétention — pour tester la redondance sans carte. <strong>Pro</strong> (R$ 79,90/mois) : 2 numéros, <strong>messages illimités</strong>, 1 projet, 1 Go et 30 jours de rétention. Besoin de plus ? Les add-ons sont une fraction de l’abonnement — numéro supplémentaire, projet supplémentaire, +Go de média, +rétention — et en les ajoutant en milieu de mois vous ne payez que le prorata jusqu’à la prochaine facture. En BRL au Brésil ; Amériques en USD, autres régions en EUR. Nous recommandons d’enregistrer votre carte et d’activer le renouvellement automatique : accès sans interruption.
En combien de temps j’intègre ?
Quelques minutes. Créez le compte, générez une clé API et utilisez l’un des SDK (Node, Python, PHP, Java, Go) ou un POST brut. Il y a un playground et une documentation complète.
Avez-vous des SDK et des webhooks ?
Oui — des SDK générés depuis OpenAPI en 5 langages, des webhooks signés avec HMAC, retry/dedup et un relais local façon `stripe listen` pour tester en localhost.
Et la confidentialité des données ?
Les médias de conversation vont dans un bucket privé avec URL pré-signée ; le code OTP n’est jamais persisté ; les secrets sont chiffrés. Rétention configurable par compte.
Commencez à envoyer sur WhatsApp en quelques minutes
Créez votre compte gratuit, générez une clé API et faites votre premier envoi aujourd’hui. Sans carte, sans paperasse.