Send with Brevo
A Brevo API newsletter from ReputeCast goes out through Brevo’s transactional email API, one call per message. You connect an API v3 key; ReputeCast registers a transactional webhook, authenticates your sending domain and pulls Brevo’s blocked contacts into the shared suppression list. Two Brevo behaviors matter before you send: Brevo adds its own unsubscribe header, and it tracks opens and clicks in a way ReputeCast can’t turn off.
| Kind | API |
|---|---|
| Bulk marketing | Allowed |
| Event webhooks | Registered by ReputeCast; bearer token (Brevo doesn't sign) |
| Domain setup | API |
| Suppression sync | Pull only |
| Batch size | 1 |
| Notes | Brevo tracks opens and clicks in transactional mail, and ReputeCast can't turn that off over its API. Suppressions are pulled from Brevo but not pushed to it. |
Before you begin
Section titled “Before you begin”- A Brevo API key from Brevo › SMTP & API › API keys. It starts with
xkeysib-. Brevo also issues SMTP keys for its SMTP relay; those don’t work here (Brevo: Create and manage your API keys, checked October 2026). - An account that can send. While Brevo is validating a new account, or when it has run out of credits, the key check fails.
- Permissions. Connecting needs
providers:manage; adding a new sending domain needsdomains:manage. - A public HTTPS address for the webhook:
<public URL>/hooks/brevo/<token>.
Three Brevo behaviors matter before you route mail to it:
- Brevo’s unsubscribe header. Brevo adds its own
List-Unsubscribeheader and has no API to change it, so ReputeCast leaves its own header out of mail sent through Brevo. One-click unsubscribes from mailbox providers go to Brevo, which reports them through the webhook, and the address joins the shared suppression list. The unsubscribe link in your footer still goes to ReputeCast. - Brevo’s open and click tracking. Brevo tracks opens and clicks in transactional email by default and has no API or per-message switch to stop it; in its settings you can only anonymize that tracking (Brevo: Can I anonymize the tracking of opens and clicks for my emails?, checked October 2026). Brevo adds its own open pixel and rewrites links on top of ReputeCast’s tracking; its numbers never reach ReputeCast’s reports. The Provider-side tracking check can’t read Brevo’s setting and Send Readiness doesn’t warn about it, so review Brevo’s tracking settings yourself.
- Pull-only suppressions. ReputeCast imports Brevo’s blocked contacts (hard bounces, spam complaints and unsubscribes) every 15 minutes but doesn’t push its list to Brevo, whose API blocks contacts only one at a time per sender. ReputeCast checks the shared list before it hands any message to Brevo, so suppressed addresses never reach it.
Connect Brevo
Section titled “Connect Brevo”-
Open Sending providers, choose Add provider and pick Brevo in the catalog. Connect a sending provider explains the steps every provider shares.
-
Paste the API key. If your plan is a monthly allowance, enter your Plan · emails per month under the extra Brevo settings for the quota bar.
-
Choose Connect. ReputeCast reads your account with the key and stores it encrypted. The card shows your company name, the plan and the emails or credits left.
-
In 2. Webhooks, ReputeCast tests its own public URL, then creates (or updates) a transactional webhook named “ReputeCast” for delivered, hard and soft bounces, deferred, blocked, invalid, spam and unsubscribed events. Brevo doesn’t sign webhooks, so ReputeCast gives it a bearer token to send with each request. Webhooks for your Brevo marketing campaigns aren’t touched.
-
Choose Continue to domain verification and enter your sending domain. ReputeCast adds it in Brevo, asks Brevo to authenticate it, and lists Brevo’s records: the
brevo-codeverification TXT record, DKIM, SPF when Brevo gives one, and DMARC. -
In Test send, send a test and watch the delivered event arrive.
-
In Streams and Contacts, pick the streams and keep the option to pull Brevo’s existing blocked contacts ticked.
Check that it worked
Section titled “Check that it worked”- The Brevo card on Sending providers, then Providers shows Healthy and what is left on your plan.
- In Brevo, the transactional webhooks list a “ReputeCast” webhook that points at
/hooks/brevo/…. - Deliveries and bounces appear under Sending providers, then Events & sync.
Troubleshooting
Section titled “Troubleshooting”- “Brevo rejected this key.” Use an API v3 key (it starts with
xkeysib-), not an SMTP key. - “Brevo didn’t answer the check” with a key you know is right. Brevo refuses while the account is under validation or out of credits. Finish Brevo’s account validation or top up, then try again.
- The domain step fails with “Brevo didn’t add …”. Brevo refused the domain; its reason follows the message. Fix it in Brevo, then run the step again.
- Unsubscribe counts in ReputeCast look low. One-click unsubscribes from Gmail or Yahoo go to Brevo first and arrive through the webhook. Check that the webhook is still registered in Brevo.
- The catalog shows a “Sandbox mode” badge. ReputeCast never sends through a Brevo sandbox: every message it hands over is delivered.
- You disconnected Brevo. ReputeCast deletes the transactional webhooks that point at its URL. The domain stays in Brevo.