PHP SDK Changelog
Release history for the getbrevo/brevo-php SDK.
Release history for the getbrevo/brevo-php SDK.
GetCompaniesRequest::filters — renamed to filtersAttributesName. Existing code passing 'filters' => ... does not throw, but the filter is silently ignored server-side and the response is unfiltered.Event::createBatchEvents — first argument changed from array to a CreateBatchEventsRequest wrapper.Balance::getActiveBalancesApi — return type changed from ?BalanceLimit to ?GetLoyaltyBalanceProgramsPidActiveBalanceResponse (different shape).Balance::getContactBalances — $request no longer defaults to empty; balanceDefinitionId is required.Balance\BeginTransactionRequest::eventTime — type changed from ?string to ?DateTime. ISO strings now cause TypeError.Tasks::getAllTaskTypes — return type changed from ?GetCrmTasktypesResponse (wrapper) to ?array<GetCrmTasktypesResponseItem>.EmailCampaigns\GetEmailCampaignResponse::utmIdActive renamed to utmId (wire key utmIDActive → utmID, type ?bool → ?int). Same change on GetEmailCampaignsResponseCampaignsItem.GetAccountResponse::dateTimePreferences, Webhook::channel, GetProcessResponseInfo::export, GetProcessResponse::error/createdAt/completedAt, and several ExternalFeeds response fields.Process\GetProcessResponseInfoImport: count fields changed from ?int to ?string (now URLs to CSV reports) — affects invalidEmails, duplicateContactId, duplicateExtId, etc.Ecommerce\CreateUpdateProductResponse::id and CreateUpdateCategoryResponse::id: ?int → ?string.string date fields tightened to ?DateTime (Program::*, Reward::*, BalanceLimit::createdAt/updatedAt).ConversationsMessageAttachmentsItem: fileName → name, inlineId → link.CustomObjects associations union flattened: UpsertrecordsRequestRecordsItemAssociationsItem is now a single class with action: 'link' | 'unlink' discriminator; 7 old variant classes deleted.contacts->createContact, contacts->updateContact, emailCampaigns->getEmailCampaigns, ecommerce->getProducts, and several other endpoints.See the Upgrading from v4.x guide for migration details and a one-line rollback pin.
duplicate_email_id is now typed as a string (URL to a CSV file) instead of an integer. The legacy in_process status value is now handled correctly.contact_properties and event_properties now accept boolean values in createEvent and createBatchEvents.attributes now accepts plain integers in createContact and updateContact. PHP users no longer need to cast integers to float.$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.CreateUpdateProductRequest and batch product upsert now accept optional brand and description fields.getActiveBalancesApi(), getContactBalances(), and getSubscriptionBalances() now accept includeInternal.getTransactionHistory() now supports filtering by status and transactionType.meta field on balance definition requests is now a typed class instead of a generic array.metaInfo size limit for products clarified: maximum 20,000 characters total.users field on GetAccountResponsePlanVerticalsItem is now nullable.createContact() no longer throws BrevoException: Failed to deserialize response: Syntax error on empty success responses.$client->event->createBatchEvents() to track multiple contact interactions in a single request.getEmailCampaign() accepts a new optional excludeHtmlContent flag to omit the HTML body from the response.UpdateContactRequest and CreateContactRequest: boolean values in union-typed attribute maps now serialize correctly. Previously threw JsonException: Cannot serialize value of type boolean.Order::products: OrderProductsItem now exposes all product fields — price, productId, variantId, quantity, quantityFloat.GetCampaignStats: appleMppOpens and opensRate are now correctly typed as nullable (?int, ?float).sendTransacSms() — use sendAsyncTransactionalSms() instead.Released the PHP SDK v4 (getbrevo/brevo-php) with a type-safe client for the Brevo API.
new Brevo(apiKey: "...") — single entry point with namespaced service clientsBrevoApiException with getCode(), getBody(), and getMessage()