PHP SDK Changelog
Release history for the getbrevo/brevo-php SDK.
April 10, 2026 — v4.0.14
Fixed
- Process endpoints —
duplicate_email_idis now typed as a string (URL to a CSV file) instead of an integer. The legacyin_processstatus value is now handled correctly. - Event endpoints —
contact_propertiesandevent_propertiesnow accept boolean values increateEventandcreateBatchEvents. - Contact endpoints —
attributesnow accepts plain integers increateContactandupdateContact. PHP users no longer need to cast integers tofloat.
March 25, 2026 — v4.0.11
Added
$client->event->getEvents()— retrieve a paginated list of custom events with filters for contact, event name, object type, and date range.$client->event->createBatchEvents()— track multiple contact interactions in a single request.PatchCrmAttributesIdRequest— update a CRM attribute’s display label and option labels.CreateUpdateProductRequestand batch product upsert now accept optionalbrandanddescriptionfields.- Balance:
getActiveBalancesApi(),getContactBalances(), andgetSubscriptionBalances()now acceptincludeInternal. - Balance:
getTransactionHistory()now supports filtering bystatusandtransactionType.
Improved
metafield on balance definition requests is now a typed class instead of a generic array.metaInfosize limit for products clarified: maximum 20,000 characters total.usersfield onGetAccountResponsePlanVerticalsItemis now nullable.
Fixed
createContact()no longer throwsBrevoException: Failed to deserialize response: Syntax erroron empty success responses.
March 12, 2026 — v4.0.10
Added
- Batch events endpoint:
$client->event->createBatchEvents()to track multiple contact interactions in a single request. getEmailCampaign()accepts a new optionalexcludeHtmlContentflag to omit the HTML body from the response.
Fixed
UpdateContactRequestandCreateContactRequest: boolean values in union-typed attribute maps now serialize correctly. Previously threwJsonException: Cannot serialize value of type boolean.Order::products:OrderProductsItemnow exposes all product fields —price,productId,variantId,quantity,quantityFloat.GetCampaignStats:appleMppOpensandopensRateare now correctly typed as nullable (?int,?float).
Deprecated
sendTransacSms()— usesendAsyncTransactionalSms()instead.
February 27, 2026 — v4.0 release
Released the PHP SDK v4 (getbrevo/brevo-php) with a type-safe client for the Brevo API.
Key highlights
- Unified client via
new Brevo(apiKey: "...")— single entry point with namespaced service clients - Strongly typed request and response objects with full PHPDoc annotations
- PSR-18 HTTP client support — use Guzzle, Symfony HttpClient, or any compatible client
- Automatic retries with exponential backoff (configurable per client or per request)
- Structured errors via
BrevoApiExceptionwithgetCode(),getBody(), andgetMessage() - 33 service namespaces covering the entire Brevo API