SDK & plugins
SDK officiels
Les SDK Brevo acceptent une URL de base : c'est le seul changement. La clé est envoyée
dans l'en-tête api-key, comme chez Brevo (voir Clés API).
Node.js : @getbrevo/brevo (vérifié de bout en bout avec la version 6.0.3)
import { BrevoClient } from "@getbrevo/brevo";
const brevo = new BrevoClient({
apiKey: process.env.BREVO_API_KEY!,
baseUrl: "https://ma-boutique.fr/api/brevo/v3",
});
const contact = await brevo.contacts.getContactInfo({ identifier: "jeanne@example.com" });
await brevo.transactionalEmails.sendTransacEmail({
templateId: 3,
to: [{ email: "jeanne@example.com" }],
params: { orderId: 42 },
});
PHP : getbrevo/brevo-php, version 5.x (l'option baseUrl remplace l'adresse par défaut)
use Brevo\Brevo;
$brevo = new Brevo(
apiKey: getenv('BREVO_API_KEY'),
options: ['baseUrl' => 'https://ma-boutique.fr/api/brevo/v3'],
);
$contact = $brevo->contacts->getContactInfo('jeanne@example.com');
Avec l'ancienne version 1.x du SDK PHP, l'URL se règle avec setHost :
$config = Brevo\Client\Configuration::getDefaultConfiguration()
->setApiKey('api-key', getenv('BREVO_API_KEY'))
->setHost('https://ma-boutique.fr/api/brevo/v3');
$api = new Brevo\Client\Api\TransactionalEmailsApi(new GuzzleHttp\Client(), $config);
Python / autres : tout client HTTP convient. Remplacez https://api.brevo.com/v3 par
https://<domaine-du-site>/api/brevo/v3 et gardez l'en-tête api-key.
Les méthodes du SDK qui visent une partie de l'API non implémentée (campagnes, SMS,
WhatsApp, CRM…) reçoivent une erreur 404 avec le code document_not_found. Une clé
absente ou révoquée donne 401 avec le code unauthorized. La liste des opérations
disponibles est dans Compatibilité.
Plugins CMS
Les plugins WordPress, WooCommerce, PrestaShop ou Magento de Brevo écrivent en dur
api.brevo.com. Pour WordPress, un plugin « must-use » redirige leurs appels sans modifier
le plugin (à placer dans wp-content/mu-plugins/) :
<?php
add_filter('pre_http_request', function ($pre, $args, $url) {
$new = preg_replace('#^https://api\.(brevo|sendinblue)\.com/v3/#', 'https://ma-boutique.fr/api/brevo/v3/', $url);
return $new === $url ? $pre : wp_remote_request($new, $args);
}, 10, 3);
Ce filtre ne fonctionne que pour les plugins qui passent par les fonctions HTTP de
WordPress (wp_remote_*). Les plugins n'ont pas été vérifiés ligne à ligne : testez avec
la version que vous utilisez. Les modules PrestaShop et Magento utilisent leur propre client
HTTP et nécessitent une surcharge de la constante d'URL du module.