Que peut faire un logiciel métier avec l'API de Brevo ?
Avec l'API de Brevo, un logiciel métier gère contacts et listes, déclenche e-mails et SMS transactionnels, puis suit chaque message. Selon la documentation développeur de Brevo, c'est une API REST qui répond en JSON à l'adresse https://api.brevo.com/v3/.
| Point d'accès Brevo | Rôle | Exemple dans une PME |
|---|---|---|
| POST /v3/contacts | Créer ou mettre à jour un contact e-mail, SMS ou les deux | Pousser chaque nouveau client saisi dans l'ERP |
| POST /v3/smtp/email | Envoyer un e-mail transactionnel, avec un modèle et ses paramètres | Devis, confirmation de commande, mot de passe oublié |
| POST /v3/transactionalSMS/send | Envoyer un SMS transactionnel | Rappel de rendez-vous, avis de passage |
| /v3/transactionalSMS/statistics/... | Lire les rapports agrégés et les événements des SMS | Tableau de suivi des envois |
| /v3/webhooks | Créer et modifier les webhooks par programme | Paramétrer les notifications au déploiement |
Les attributs d'un contact s'écrivent en majuscules (FNAME, LNAME) et doivent exister dans le compte ; l'identifiant externe ext_id conserve le code client de votre ERP. Brevo publie des bibliothèques officielles pour PHP, Python, Node.js, Ruby, Go, Java et C#.
Clé d'API ou OAuth 2.0 : comment le logiciel s'identifie-t-il ?
Pour relier votre logiciel à votre propre compte Brevo, la clé d'API suffit : elle voyage dans l'en-tête api-key de chaque requête, et Brevo range les échanges de serveur à serveur parmi ses usages.
OAuth 2.0 sert quand une application agit pour le compte d'un autre utilisateur Brevo (un éditeur qui connecte les comptes de ses clients), ou quand le serveur doit utiliser un identifiant à durée limitée plutôt qu'une clé permanente. Brevo indique que ces applications OAuth se créent avec son outil en ligne de commande, sans validation manuelle.
La clé reste côté serveur : glissée dans une application mobile ou une page web, elle peut être extraite et ouvre l'envoi d'e-mails et de SMS depuis votre compte. Nous créons une clé par environnement (test, production), rangée dans un coffre de secrets.
Limites d'appels, bac à sable et plan gratuit : les chiffres publiés
Brevo publie ses limites point d'accès par point d'accès, en requêtes par seconde et par heure ; quand les deux s'appliquent, il faut respecter les deux. Le niveau général vaut pour tous les plans, le niveau avancé est ouvert aux comptes Professional et Enterprise, et un niveau étendu, plus élevé, aux seuls comptes Enterprise.
| Point d'accès | Niveau général | Niveau avancé |
|---|---|---|
| Envoi d'e-mail transactionnel | 1 000 par seconde | 2 000 par seconde |
| Envoi de SMS transactionnel | 150 par seconde | 200 par seconde |
| Contacts (/v3/contacts/...) | 10 par seconde, 36 000 par heure | 20 par seconde, 72 000 par heure |
| Liste des e-mails envoyés (GET /v3/smtp/emails) | 2 par seconde | 3 par seconde |
| Autres points d'accès non listés | 100 par heure | 200 par heure |
La dernière ligne (valeurs relevées en octobre 2026) pèse lourd : un logiciel qui interrogerait Brevo chaque minute sur l'état de ses campagnes épuiserait vite son quota. Brevo répond alors 429 et recommande lui-même les webhooks plutôt que l'interrogation des statistiques.
Pour tester, l'en-tête X-Sib-Sandbox avec la valeur drop, ajouté à un envoi d'e-mail transactionnel, fait renvoyer un succès (code 201 et identifiant de message) sans rien envoyer ni journaliser ; seul le format de la requête est contrôlé. Selon la page de l'API e-mail de Brevo, le plan gratuit permet 300 e-mails par jour, sans limite de durée, avec l'API et les webhooks.
Comment Brevo prévient-il votre logiciel, et que faire de ses webhooks ?
Brevo prévient votre logiciel par des webhooks : à chaque événement, une requête HTTP POST part vers l'adresse déclarée. Un compte en compte 40 au plus, répartis en catégories (marketing, transactionnel, paiement, fidélité, réunions et téléphone, notifications push, CRM commercial). Côté transactionnel, les événements vont de l'envoi au clic, en passant par les rebonds, le spam, la désinscription et le blocage.
- Authentifier l'appel : Brevo ne décrit pas de signature. Il propose la liste blanche de ses adresses IP, une authentification basique dans l'URL, un jeton porteur (bearer) ou des en-têtes personnalisés. Nous combinons en général jeton et filtrage des adresses.
- Accuser réception d'abord : selon la page sur les nouvelles tentatives, une réponse 4xx (hors 429) ou 5xx arrête les relances. Le point de réception répond donc tout de suite, puis traite le message depuis une file.
- Prévoir les absences : un webhook sans réponse est relancé après 10 minutes, 1 heure, 2 heures et 8 heures, soit environ 11 heures au total. Au-delà, un rattrapage par l'API comble le trou.
Cinq flux Brevo utiles dans une PME, étape par étape
- Le devis part, le commercial sait s'il a été lu. Le devis validé déclenche l'envoi transactionnel avec le modèle « Devis » et ses paramètres ; le logiciel garde l'identifiant de message. Les webhooks « délivré » et « ouvert » mettent à jour l'affaire, un rebond définitif crée une tâche « vérifier l'adresse ».
- Le rappel de rendez-vous par SMS, la veille. Chaque soir, le logiciel envoie un SMS par rendez-vous du lendemain, avec un expéditeur à votre nom (11 caractères alphanumériques au plus) et une adresse webUrl pour les statuts. Un échec de délivrance remonte au planning. Voir notre page prise de rendez-vous en ligne.
- Les clients de l'ERP alimentent les listes. Chaque client créé ou modifié part vers Brevo avec son code en ext_id, ses attributs et ses listes ; updateEnabled met à jour le contact existant au lieu d'échouer.
- La désinscription revient dans le CRM. Le webhook marketing de désabonnement coche « refuse la prospection par e-mail » sur la fiche du CRM, et les commerciaux ne relancent plus ce client par un autre canal.
- L'alerte d'astreinte qui doit arriver. Une panne signalée par une machine déclenche un SMS au responsable de garde ; le connecteur rejoue l'envoi si Brevo répond 429 ou ne répond pas.
Consentement, doublons, journal : ce que l'intégration doit verrouiller
La première question n'est pas technique : qui a le droit de recevoir quoi. La CNIL rappelle que la prospection par e-mail ou SMS vers des particuliers exige un consentement préalable (une case non pré-cochée), sauf pour un client existant sollicité sur des produits analogues ; vers des professionnels, l'information et un droit d'opposition suffisent si le message concerne leur métier. Chaque message indique l'émetteur et un moyen simple de refuser la suite (article L. 34-5 du code des postes et des communications électroniques). Chez Brevo, un SMS contenant un code STOP bascule d'office en marketing : le connecteur transporte donc le consentement avec le contact.
- Doublons : par défaut, Brevo renvoie une erreur quand un contact entre en conflit d'identifiant avec un autre ; l'option forceMerge fusionne les fiches, garde la plus récente et supprime l'autre. Nous ne l'activons qu'après avoir décidé quelle base fait foi.
- Journal : identifiant de message, date, modèle et statut final sont conservés pour chaque envoi.
- Registre : les contacts confiés à Brevo restent des données personnelles, voir notre guide RGPD et logiciel métier.
Faut-il développer, ou une intégration existante suffit-elle ?
Pas toujours. Trois cas se règlent sans connecteur sur mesure :
- votre logiciel envoie déjà par SMTP : le relais SMTP de Brevo (port 587, TLS 1.2 au minimum) prend la suite, mais il ne gère ni modèles ni webhooks selon la FAQ de Brevo ;
- votre boutique ou votre CRM du marché a une extension Brevo : vérifiez d'abord ce qu'elle synchronise ;
- le flux est simple et à sens unique : n8n, Make ou Zapier suffisent, voir notre comparatif des outils d'automatisation.
Le développement l'emporte quand les statuts doivent revenir dans vos dossiers, quand le consentement circule dans les deux sens ou quand les volumes demandent des reprises maîtrisées.
Ce que YMHB Web construit et vous remet
Le cadrage liste les messages, les consentements et la base qui fait foi ; le chiffrage suit. Le connecteur se développe en bac à sable, puis se recette avec de vrais envois vers des adresses internes.
- le compte Brevo, les clés et les webhooks à votre nom ;
- le code du connecteur, documenté et déposé chez vous, avec la correspondance entre vos codes clients et les contacts Brevo ;
- une file d'attente qui rejoue les envois après une coupure, comme pour les e-mails de l'application terrain de Cap Vert, envoyés au retour du réseau ;
- un journal consultable et une alerte en cas d'échecs en série ;
- le suivi des évolutions de l'API dans la maintenance évolutive.
La logique d'ensemble est décrite sur notre page connecter ses logiciels par API.
Questions fréquentes
Brevo propose-t-il une API gratuite ?
Oui. Selon la page de l'API e-mail de Brevo, le plan gratuit donne accès à l'API complète et aux webhooks, avec 300 e-mails par jour, sans limite de durée et sans carte bancaire. Les limites de débit du plan gratuit sont celles du niveau général publié par Brevo, par exemple 1 000 requêtes par seconde pour l'envoi d'e-mails transactionnels et 10 requêtes par seconde pour les contacts.
Comment tester une intégration Brevo sans envoyer de vrais e-mails ?
Brevo documente un mode bac à sable : il suffit d'ajouter l'en-tête X-Sib-Sandbox avec la valeur drop à une requête d'envoi d'e-mail transactionnel. Brevo répond alors comme pour un envoi réel, avec un code 201 et un identifiant de message, mais n'envoie rien et ne crée aucun journal. Ce mode vérifie seulement le format de la requête ; la délivrance se teste ensuite avec de vrais envois vers des adresses internes.
Les webhooks Brevo sont-ils signés ?
Non, la documentation de Brevo ne décrit pas de signature des appels de webhook. Pour vérifier qu'un appel vient bien de Brevo, elle propose quatre mécanismes : la liste blanche des adresses IP de Brevo, une authentification basique intégrée à l'URL de notification, un jeton porteur déclaré à la création du webhook, ou des en-têtes personnalisés envoyés à chaque appel. Combiner un jeton et un filtrage des adresses est une pratique prudente.
Peut-on envoyer des SMS de rappel par l'API Brevo ?
Oui, par le point d'accès POST /v3/transactionalSMS/send de Brevo. L'expéditeur compte au plus 11 caractères alphanumériques ou 15 chiffres, un texte de plus de 160 caractères part en plusieurs SMS, et une adresse webUrl reçoit les événements du message. Attention : selon la documentation Brevo, un SMS qui contient un code STOP est automatiquement classé en marketing, avec les règles de consentement qui s'y attachent.
Que se passe-t-il si mon serveur ne répond pas à un webhook Brevo ?
Brevo relance un webhook resté sans réponse quatre fois, après 10 minutes, 1 heure, 2 heures et 8 heures, soit environ 11 heures après l'appel initial. Si votre serveur est injoignable, Brevo suspend ses envois 10 minutes puis reprend. En revanche, une réponse en erreur 4xx (hors 429) ou 5xx arrête les relances : le point de réception doit donc accuser réception immédiatement et traiter l'événement ensuite.
À lire aussi
Sources
- Brevo Developers, How it works (API REST v3, authentification par clé)
- Brevo Developers, Authentication schemes (clé d'API et OAuth 2.0)
- Brevo Developers, API rate limits
- Brevo Developers, Using sandbox mode
- Brevo Developers, How to use webhooks
- Brevo Developers, Retry mechanism
- Brevo Developers, Secure webhook calls
- Brevo Developers, Transactional SMS endpoints
- Brevo Developers, Synchronise contact lists
- Brevo, Email API (plan gratuit, SDK, relais SMTP)
- CNIL, La prospection commerciale par courrier électronique, SMS-MMS et automate d'appel
- Brevo API Reference, Create a webhook (POST /v3/webhooks)
