Intégration · E-mails et SMS

Relier Brevo à votre logiciel métier : e-mails, SMS et contacts synchronisés

Brevo se relie à un logiciel métier par son API REST v3, qui crée les contacts, envoie e-mails et SMS transactionnels et fournit leurs statistiques, et par des webhooks qui signalent livraisons, ouvertures, rebonds et désinscriptions. YMHB Web développe ces échanges entre Brevo et votre ERP, votre CRM ou votre application, avec un compte, des clés et un code qui restent à votre nom.

L'essentiel

  • L'API Brevo v3 s'authentifie par une clé transmise dans l'en-tête api-key, ou par OAuth 2.0 quand une application agit pour le compte d'un autre utilisateur Brevo.
  • Selon la documentation Brevo, au niveau de limites ouvert à tous les plans, l'envoi d'e-mails transactionnels accepte 1 000 requêtes par seconde, mais les points d'accès non listés sont limités à 100 requêtes par heure.
  • Brevo relance un webhook resté sans réponse quatre fois, après 10 minutes, 1 heure, 2 heures puis 8 heures, et ne documente pas de signature des appels.
  • L'en-tête X-Sib-Sandbox avec la valeur drop valide une requête d'envoi d'e-mail sans rien envoyer ni journaliser, ce qui permet de tester un connecteur Brevo sans risque.
  • Un SMS Brevo qui contient un code STOP est automatiquement traité comme un message marketing, soumis aux règles de consentement rappelées par la CNIL.

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 BrevoRôleExemple dans une PME
POST /v3/contactsCréer ou mettre à jour un contact e-mail, SMS ou les deuxPousser chaque nouveau client saisi dans l'ERP
POST /v3/smtp/emailEnvoyer un e-mail transactionnel, avec un modèle et ses paramètresDevis, confirmation de commande, mot de passe oublié
POST /v3/transactionalSMS/sendEnvoyer un SMS transactionnelRappel de rendez-vous, avis de passage
/v3/transactionalSMS/statistics/...Lire les rapports agrégés et les événements des SMSTableau de suivi des envois
/v3/webhooksCréer et modifier les webhooks par programmeParamé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èsNiveau généralNiveau avancé
Envoi d'e-mail transactionnel1 000 par seconde2 000 par seconde
Envoi de SMS transactionnel150 par seconde200 par seconde
Contacts (/v3/contacts/...)10 par seconde, 36 000 par heure20 par seconde, 72 000 par heure
Liste des e-mails envoyés (GET /v3/smtp/emails)2 par seconde3 par seconde
Autres points d'accès non listés100 par heure200 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

  1. 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 ».
  2. 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.
  3. 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.
  4. 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.
  5. 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

  1. Brevo Developers, How it works (API REST v3, authentification par clé)
  2. Brevo Developers, Authentication schemes (clé d'API et OAuth 2.0)
  3. Brevo Developers, API rate limits
  4. Brevo Developers, Using sandbox mode
  5. Brevo Developers, How to use webhooks
  6. Brevo Developers, Retry mechanism
  7. Brevo Developers, Secure webhook calls
  8. Brevo Developers, Transactional SMS endpoints
  9. Brevo Developers, Synchronise contact lists
  10. Brevo, Email API (plan gratuit, SDK, relais SMTP)
  11. CNIL, La prospection commerciale par courrier électronique, SMS-MMS et automate d'appel
  12. Brevo API Reference, Create a webhook (POST /v3/webhooks)

Prêt à démarrer ?

Décrivez-nous votre situation, pas une liste de fonctionnalités.

Réponse sous un jour ouvré, en général par téléphone. Si un outil du marché suffit, nous vous le dirons.

Premier échange sans engagementCadrage avant chiffrage

AppelerDécrire mon problème