# Brevo API changelog

We check Brevo's changelog and OpenAPI spec every day, because we run production integrations on the Brevo API. This page lists the 92 changes we have recorded since monitoring started on 30 March 2026, newest first. Our last successful check was on 6 October 2026. We are on it; until then this page may miss the newest changes.

**In short:** 3 breaking changes and 0 deprecations in the Brevo API in the last 90 days. The latest: “Loyalty transaction status renamed” (3 September 2026).

- [Official Brevo changelog](https://developers.brevo.com/changelog)
- [Brevo OpenAPI spec](https://api.brevo.com/v3/swagger_definition_v3.yml)
- [RSS feed: Brevo API changes](https://seamless.engineering/api-changelog/brevo/rss.xml)

## Brevo API changes

Labels are assigned automatically. Check the vendor's note before planning work around an entry.

### September 2026

- **Loyalty transaction status renamed** (Breaking, 3 Sept 2026): Transaction status enum values changed from 'pending'/'complete' to 'draft'/'completed', requiring code updates for status checks.
- **Loyalty subscription details and image gallery naming guidance** (New feature, 2 Sept 2026): Get subscription info endpoint response now includes loyalty program name, membership object, new reward fields (publicDescription, unit, value), and additional field names alongside IDs.
- **Loyalty subscription details and image gallery naming guidance** (New feature, 2 Sept 2026): GET /loyalty/config/programs/{pid}/account-info response now includes loyalty program name, membership object, and enhanced reward fields with better naming guidance.

### August 2026

- **Get the records associated with an object record** (New feature, 14 Aug 2026): New endpoint GET /v3/objects/{object_type}/associated-records returns records associated with a single source record with filtering and pagination support.
- **brevo app create asks separately before scaffolding** (Breaking, 13 Aug 2026): brevo app create now writes base project first, then separately asks whether to scaffold the Test OAuth App; non-interactive runs stay base-only.
- **brevo app upload replaces brevo app update** (Breaking, 13 Aug 2026): New 'brevo app upload' command replaces 'brevo app update' with diff preview; old command-line flags removed and app-config.json schema changed (redirectUrls→redirectUris, distribution→distribution_type).
- **Recover a project with brevo app scaffold** (New feature, 13 Aug 2026): New 'brevo app scaffold' command allows setting up project folder for existing apps on new machines or after losing project files.
- **Recover a project with brevo app scaffold** (New feature, 13 Aug 2026): New 'brevo app scaffold --app-id' command sets up project directories for existing apps and supports interactive app selection.
- **Product import guide now documents alternativePrice** (Other, 6 Aug 2026): Documentation updated to include alternativePrice field (float) for secondary pricing in product import endpoints.

### July 2026

- **JS Tracker — document EXT_ID in Brevo.identify()** (Other, 30 Jul 2026): Documentation added for passing external identifiers (EXT_ID) alongside email_id in identify() method.
- **Transactional Email — clarified contactPixelTrackingConsent behavior** (Other, 21 Jul 2026): Clarified documentation for per-recipient contactPixelTrackingConsent field behavior regarding open tracking consent and anonymization.
- **Email Campaigns — UTM parameter customization** (New feature, 20 Jul 2026): New optional fields utmCampaign, utmContent, and utmTerm allow customization of UTM tracking parameters in email campaigns.
- **Transactional Email — per-contact pixel tracking consent** (New feature, 20 Jul 2026): New contactPixelTrackingConsent field added to transactional email endpoint to control whether recipient opens are tracked identifiably or anonymized.
- **Brevo CLI v2.0.0 — upgrade notice** (Breaking, 2 Jul 2026): Major CLI version 2.0.0 released with breaking changes; users on v1.1.1 or earlier must upgrade as some commands may not work as expected.
- **Deals API — filter by owner, stage, and pipeline** (New feature, 2 Jul 2026): GET /crm/deals now supports three additional query filters: deal_owner, deal_stage, and pipeline for server-side filtering.
- **Deals API — filter by owner, stage, and pipeline** (New feature, 2 Jul 2026): GET /crm/deals now documents three additional query filters: filters[attributes.deal_owner], filters[attributes.deal_stage], and filters[attributes.pipeline].

### June 2026

- **Consent Groups API and Wallet pass install URLs** (New feature, 30 Jun 2026): New endpoints and fields added for managing consent groups and generating wallet pass installation URLs.
- **OAuth apps now support scopes** (New feature, 3 Jun 2026): OAuth apps can now declare scopes to specify permissions requested from Brevo users, shown on consent screen and embedded in access tokens.

### May 2026

- **Major SDK releases** (Breaking, 14 May 2026): Node.js v6.0.0, PHP v5.0.0, Python v5.0.0: Opt-in major SDK releases with breaking changes; existing v4.x/v5.x integrations unaffected unless upgraded.
- **Deprecation Notice** (Deprecation, 12 May 2026): POST /contacts/batch: POST /contacts/batch endpoint deprecated effective 2026-10-30, replaced by newer POST /v3/contacts/import API.
- **Contacts category attributes** (Breaking, 1 May 2026): valueStr field, and Ecommerce product search and alternative price: GET /contacts/attributes now returns 0 for non-numeric category values; migrate to new valueStr field for unique identifier distinction.
- **Contacts category attributes** (Breaking, 1 May 2026): valueStr field: GET /contacts/attributes now returns 0 for non-numeric category values; clients must migrate to new valueStr field for correct enum distinction.

### April 2026

- **Coupons webhooks documentation** (New feature, 27 Apr 2026): Added documentation for new unique_coupon_sent marketing webhook event triggered when unique coupon codes are sent to contacts.
- **Batch events body wrapper** (Breaking, 21 Apr 2026): POST /events/batch request body schema changed; events array must now be wrapped under an 'events' key with event_name and identifiers marked as required.
- **Batch events body wrapper, contact merge ID response, and loyalty transaction filter** (Breaking, 21 Apr 2026): Breaking change to POST /events/batch request body (now requires events wrapper), new getId field on contact creation, and new loyaltySubscriptionId filter parameter.
- **Batch events body wrapper, contact merge ID response, and loyalty transaction filter** (Breaking, 21 Apr 2026): POST /events/batch request body schema changed from array format to wrapped object format with 'events' key; event_name and identifiers now explicitly required.
- **Create contact merge ID response** (New feature, 21 Apr 2026): Added new `getId` field to POST /contacts endpoint that returns the surviving contact ID after merge when `getId: true` and `forceMerge: true` are set.
- **Loyalty transaction history filter** (New feature, 21 Apr 2026): New `loyaltySubscriptionId` query parameter added to loyalty transaction history endpoint for filtering by specific subscription.
- **Account endpoint dateTimePreferences removal** (Breaking, 17 Apr 2026): Breaking change: dateTimePreferences object (timezone, timeFormat, dateFormat) removed from GET /account response; startDate, endDate, users removed from required fields in plan objects.
- **API specification overhaul** (Breaking, 17 Apr 2026): accuracy, completeness, and breaking corrections: Major OpenAPI specification rework correcting inaccuracies between spec and actual API behavior; generated SDK types will change.
- **Domain creation validation format change** (Breaking, 17 Apr 2026): Changed domain name validation from custom regex pattern to `format: hostname` in domain creation endpoint.
- **Export webhook history messageId type correction** (Breaking, 17 Apr 2026): POST /webhooks/export `messageId` field corrected from integer to string type.
- **Feeds endpoint field removals** (Breaking, 17 Apr 2026): Removed fields `alias`, `isInternal`, `personalization`, `defaultAttr`, and `defaultContact` from GET /feeds and GET /feeds/{uuid} responses as they are not returned by the API.
- **Pagination minimums increased** (Breaking, 17 Apr 2026): limit minimum on GET /processes and maxRetries minimum on feed endpoints raised from 0 to 1.
- **Process endpoint 404 error code correction** (Breaking, 17 Apr 2026): Breaking change: `GET /processes/{processId}` 404 error code corrected from `invalid_parameter` to `document_not_found`.
- **Process endpoints info fields type correction** (Breaking, 17 Apr 2026): Breaking change: import `info` fields (invalid_emails, duplicate_contact_id, etc.) on process endpoints now return `string` (URL to CSV report) instead of `integer`.
- **Webhook associations unlink action support** (New feature, 17 Apr 2026): Associations in PUT /crm/objects endpoint now support `action` field (`link` or `unlink`) enabling association removal in upsert requests.
- **SDK bug fixes** (Bug fix, 10 Apr 2026): Node.js, PHP, Python: Multiple SDK releases with fixes for process endpoint field types, event properties boolean handling, and contact attribute integer handling.
- **SDK bug fixes** (Bug fix, 10 Apr 2026): Node.js v5.0.5, PHP v4.0.14, Python v4.0.11: Bug fixes for process endpoints duplicate_email_id typing, event endpoints boolean value handling, and contact endpoints integer attribute handling.

### March 2026

- **Node.js SDK v5.0.3** (New feature, 25 Mar 2026): balance filters: Balance endpoints now support includeInternal parameter and transaction history supports status and transactionType filters.
- **PHP SDK v4.0.11** (New feature, 25 Mar 2026): createContact fix: Fixed BrevoException on empty success responses from createContact().
- **SDK updates** (New feature, 25 Mar 2026): Node.js v5.0.3, PHP v4.0.11, Python v4.0.9: Multiple SDK releases adding new endpoints (getEvents, createBatchEvents, deleteAnAttribute), new product fields (brand, description), balance API enhancements (includeInternal parameter, transaction filtering), and type improvements across all three SDKs.
- **SDK updates** (New feature, 25 Mar 2026): Node.js v5.0.3, PHP v4.0.11, Python v4.0.9: New endpoints, fields, and API improvements across Node.js, PHP, and Python SDKs.
- **Batch events partial success status renamed** (Breaking, 21 Mar 2026): The `status` field in `207` partial success response renamed from `partialSuccess` to `partiallyQueued` in `POST /events/batch`.
- **Batch events partial success status renamed** (Breaking, 21 Mar 2026): Batch events 207 response status field renamed from `partialSuccess` to `partiallyQueued`.
- **Batch events response code change** (Breaking, 21 Mar 2026): POST /events/batch successful response changed from `204 No Content` to `202 Accepted` with JSON body containing message and event count.
- **Ecommerce, Events, and Loyalty API updates** (Breaking, 21 Mar 2026): New product brand and description fields with metaInfo limit changed to 20,000 characters; new GET /events endpoint; breaking changes to POST /events/batch response code (204→202) and status field rename (partialSuccess→partiallyQueued); Loyalty internal balance definitions and transaction filters added.
- **Ecommerce, Events, and Loyalty API updates** (Breaking, 21 Mar 2026): Added two new product fields (brand and description) to POST /products, POST /products/batch, and GET /products/{id} endpoints.
- **Events API** (New feature, 21 Mar 2026): new GET endpoint: Added GET /events endpoint to retrieve events filtered by contact, name, object type, or date range with pagination.
- **Events API** (Breaking, 21 Mar 2026): Batch events breaking changes (response code and status field rename): POST /events/batch response code changed from 204 to 202 Accepted with JSON body; status field 'partialSuccess' renamed to 'partiallyQueued' in 207 responses - requires client code updates.
- **Events API GET endpoint** (New feature, 21 Mar 2026): Added new `GET /events` endpoint to retrieve events filtered by contact, name, object type, or date range with pagination support.
- **Loyalty API** (New feature, 21 Mar 2026): internal balance definitions and transaction filters: Balance definitions and tier groups now support meta.isInternal flag; transaction history endpoint adds status and transactionType filters; offset parameter now represents page number instead of record skip count.
- **Loyalty API** (New feature, 21 Mar 2026): Transaction list filters: Transaction history endpoint now supports status and transactionType filters; offset parameter changed to represent page number instead of record skip count.
- **Loyalty API** (New feature, 21 Mar 2026): transaction history filtering by status and type: Transaction history endpoint now supports filtering by 'status' (draft, completed, rejected, cancelled, expired) and 'transactionType' (credit or debit); 'offset' now represents page number instead of record skip.
- **Loyalty API** (New feature, 21 Mar 2026): internal balance definitions and tier groups: Balance definitions and tier groups now support meta object with isInternal flag; includeInternal query parameter added to balance and member endpoints.
- **Loyalty transaction list filters** (New feature, 21 Mar 2026): Added `status` and `transactionType` filters to loyalty transaction history; `offset` parameter now represents page number instead of record skip.
- **Product brand and description fields** (New feature, 21 Mar 2026): New `brand` and `description` fields added to product endpoints; metaInfo character limit changed from 1000 KB to 20,000 characters.
- **Product fields** (New feature, 21 Mar 2026): brand and description: Added `brand` (128 chars) and `description` (3000 chars) fields to products endpoints; updated `metaInfo` limit from 1000 KB to 20,000 characters.
- **Product metaInfo character limit updated** (Breaking, 21 Mar 2026): Product `metaInfo` field size limit changed from 1000 KB to 20,000 characters total across all keys and values.
- **Deprecation** (Deprecation, 12 Mar 2026): synchronous transactional SMS methods: Deprecated sendTransacSms() methods across Node.js, PHP, and Python SDKs in favor of async variants (sendTransacSmsAsync/sendAsyncTransactionalSms).
- **Deprecation** (Deprecation, 12 Mar 2026): transactional SMS synchronous methods: Synchronous SMS methods (sendTransacSms/send_transac_sms) deprecated in favor of async variants across Node.js, PHP, and Python SDKs.
- **Node.js SDK v5.0.1** (Bug fix, 12 Mar 2026): transactionalSms deprecation: sendTransacSms() deprecated in favor of sendTransacSmsAsync() to reduce latency.
- **Order products fields exposure** (Bug fix, 12 Mar 2026): Full set of product fields now exposed in Order responses: `price`, `productId`, `variantId`, `quantity`, `quantityFloat`.
- **PHP SDK v4.0.10** (Bug fix, 12 Mar 2026): Deprecated sendTransacSms() method: sendTransacSms() deprecated in favor of sendAsyncTransactionalSms().
- **Python SDK v4.0.7** (Bug fix, 12 Mar 2026): transactionalSms deprecation: send_transac_sms() deprecated in favor of send_transac_sms_async().
- **SDK createContact 204 response handling** (Bug fix, 12 Mar 2026): createContact() across Node.js, PHP, Python SDKs now correctly handles 204 No Content responses without JSON parse errors.
- **SDK type corrections for campaign stats and orders** (Bug fix, 12 Mar 2026): Fixed appleMppOpens and opensRate to nullable types; exposed full product fields (price, productId, variantId, quantity, quantityFloat) on orders across all SDKs.
- **SDK updates** (Bug fix, 12 Mar 2026): Node.js v5.0.1, PHP v4.0.10, Python v4.0.7: Type corrections for nullable fields, Order product fields exposure, deprecation of synchronous sendTransacSms() in favor of async variant, and contact creation error handling fixes.
- **SDK updates** (Bug fix, 12 Mar 2026): Node.js v5.0.1, PHP v4.0.10, Python v4.0.7: Bug fixes, type corrections, and deprecations across all three official SDKs.
- **Transactional SMS synchronous method deprecated** (Deprecation, 12 Mar 2026): Deprecated sendTransacSms() and transactional_sms.send_transac_sms() methods; use async variants instead.
- **Transactional SMS synchronous method deprecated** (Deprecation, 12 Mar 2026): Deprecated synchronous `sendTransacSms()` methods across all SDKs; recommend using async variants instead.
- **Loyalty API guides** (New feature, 4 Mar 2026): Added new Loyalty section to Guides with six pages covering full Loyalty API integration workflow.
- **Loyalty API guides documentation** (Other, 4 Mar 2026): Added comprehensive six-page Loyalty section covering program setup, member enrollment, transactions, and best practices.
- **Batch event creation** (New feature, 3 Mar 2026): Added POST /events/batch endpoint allowing multiple events in a single request with partial success support via 207 status response.
- **Batch event creation endpoint** (New feature, 3 Mar 2026): Added POST /events/batch endpoint allowing multiple events per request with partial success support (207 status) and per-event error messages.
- **Brevo MCP server — security and configuration update** (Breaking, 2 Mar 2026): Breaking change: MCP tokens now transmitted via Authorization header instead of URL; authentication method changed and 193 tools auto-generated from OpenAPI spec.
- **Brevo MCP server authentication method changed** (Breaking, 2 Mar 2026): Breaking change: MCP tokens moved from URL paths to HTTP `Authorization: Bearer <token>` header; all URL-based token patterns are no longer valid.
- **MCP server authentication method changed** (Breaking, 2 Mar 2026): MCP tokens now transmitted via Authorization Bearer header instead of URL path; previous URL patterns no longer valid.
- **MCP server auto-generated tools and rate limiting** (Other, 2 Mar 2026): MCP tools now auto-generated from OpenAPI spec eliminating discrepancies; rate limiting added for abuse protection; support expanded for Windsurf, VS Code Copilot, and Claude Code CLI.

### February 2026

- **Loyalty API** (New feature, 27 Feb 2026): new endpoint and rate limits: New DELETE /loyalty/config/programs/{pid}/contact/{cid} endpoint removes contact from loyalty program; documented rate limits added for all account tiers.
- **Loyalty API** (New feature, 27 Feb 2026): new endpoint and rate limits: New DELETE endpoint to remove contacts from loyalty programs; rate limits now documented across account tiers.
- **Loyalty API rate limits documented** (Other, 27 Feb 2026): Loyalty endpoints now have documented rate limits: 600 RPH (Starter), 1,200 RPH (Business), 3,600 RPH (Enterprise).
- **PHP SDK v4 release** (New feature, 27 Feb 2026): New PHP SDK v4 with unified Brevo client, strongly typed objects, PSR-18 HTTP client support, automatic retries, and structured error handling.
- **Python SDK v4 beta release** (New feature, 23 Feb 2026): Beta release of Python SDK v4.0 with native async support, Pydantic-based typed models, automatic retries with exponential backoff, and custom httpx client support.
- **Conversations webhooks** (New feature, 13 Feb 2026): New fields and corrections: Added rawUnsafeHtml, subject, isSentViaJsApi, sourceMessageId, email fields, isForward to Message; added mimeType, isInline, inlineId to Attachment; added isBanned to Visitor; renamed imageInfo.previewUrl to previewLink.
- **Conversations webhooks** (New feature, 13 Feb 2026): imageInfo.previewUrl renamed: Field imageInfo.previewUrl renamed to imageInfo.previewLink in conversation transcript payload.
- **Conversations webhooks documentation update** (Other, 13 Feb 2026): Added new fields to Message, Attachment, and Visitor objects; renamed imageInfo.previewUrl to imageInfo.previewLink.
- **Conversations webhooks documentation update** (Other, 13 Feb 2026): Updated Conversations webhooks documentation with new message fields including rawUnsafeHtml, subject, isSentViaJsApi, sourceMessageId, email headers, and isForward.
- **Conversations webhooks field corrections** (Breaking, 13 Feb 2026): Renamed imageInfo.previewUrl to imageInfo.previewLink and updated preview URL quality parameter from 'lighter' to 'better'.
- **Node.js SDK beta release** (New feature, 11 Feb 2026): Released Node.js SDK v4.0.1 beta with promise-based API, enhanced TypeScript types, standardized error handling, and improved retry logic.
- **Dedicated rate limits for orders and products endpoints** (Other, 10 Feb 2026): Added dedicated rate limits for POST /v3/orders/status and POST /v3/products endpoints that differ from default limits.
- **Connect to Cursor guide** (New feature, 9 Feb 2026): Added documentation for connecting Brevo API to Cursor IDE via MCP server for direct API documentation access.

## OpenAPI spec changes

Differences between consecutive versions of Brevo's published OpenAPI spec, as reported by oasdiff. Only changes that break or may break existing clients are listed.

### 3 September 2026: 6 potentially breaking

- `POST /loyalty/balance/programs/{pid}/transactions` added the new 'completed' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` added the new 'draft' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` added the new 'completed' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` added the new 'draft' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` added the new 'completed' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` added the new 'draft' enum value to the 'status' response property for the response status '200'

### 21 April 2026: 2 breaking changes

- `POST /events/batch` added the new required request property 'events'
- `POST /events/batch` the request's body type/format changed from 'array'/'' to 'object'/''

### 16 April 2026: 3 breaking changes

- `POST /objects/{object_type}/batch/upsert` added the new required request property 'records/items/oneOf[subschema #1]/associations/items/object_type'
- `POST /objects/{object_type}/batch/upsert` added the new required request property 'records/items/oneOf[subschema #1]/associations/items/records'
- `POST /objects/{object_type}/batch/upsert` the 'records/items/oneOf[subschema #1]/associations/items/' request property type/format changed from ''/'' to 'object'/''

### 7 April 2026: 241 breaking changes, 238 potentially breaking

- `GET /categories` the 'categories/items/allOf[#/components/schemas/getCategoryDetails]/isDeleted' response's property type/format changed from 'boolean'/'string' to 'boolean'/'' for status '200'
- `POST /categories` the 'id' request property type/format changed from 'string'/'email' to 'string'/''
- `POST /categories` the 'id' response's property type/format changed from 'integer'/'int64' to 'string'/'' for status '201'
- `POST /categories/batch` the 'categories/items/id' request property type/format changed from 'string'/'email' to 'string'/''
- `GET /categories/{id}` the 'isDeleted' response's property type/format changed from 'boolean'/'string' to 'boolean'/'' for status '200'
- `GET /contacts` for the 'query' request parameter 'limit', the min was increased from '0.00' to '1.00'
- `GET /contacts/lists/{listId}/contacts` for the 'query' request parameter 'limit', the min was increased from '0.00' to '1.00'
- `GET /contacts/segments` the 'segments/items/categoryName' response's property type/format changed from 'string'/'string' to 'string'/'' for status '200'
- `POST /conversations/agentOnlinePing` the 'agentEmail' request property type/format changed from ''/'' to 'string'/'email'
- `POST /conversations/agentOnlinePing` the 'agentId' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/agentOnlinePing` the 'agentName' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/agentOnlinePing` the 'receivedFrom' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/messages` the 'agentEmail' request property type/format changed from ''/'' to 'string'/'email'
- `POST /conversations/messages` the 'agentId' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/messages` the 'agentName' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/messages` the 'receivedFrom' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/messages` the 'text' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/messages` the 'visitorId' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/messages` the 'attachments/items/isInline' response's property type/format changed from 'string'/'' to 'boolean'/'' for status '200'
- `GET /conversations/messages/{id}` the 'attachments/items/isInline' response's property type/format changed from 'string'/'' to 'boolean'/'' for status '200'
- `PUT /conversations/messages/{id}` the 'attachments/items/isInline' response's property type/format changed from 'string'/'' to 'boolean'/'' for status '200'
- `POST /conversations/pushedMessages` the 'agentId' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/pushedMessages` the 'groupId' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/pushedMessages` the 'text' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/pushedMessages` the 'visitorId' request property type/format changed from ''/'' to 'string'/''
- `POST /conversations/pushedMessages` the 'attachments/items/isInline' response's property type/format changed from 'string'/'' to 'boolean'/'' for status '200'
- `GET /conversations/pushedMessages/{id}` the 'attachments/items/isInline' response's property type/format changed from 'string'/'' to 'boolean'/'' for status '200'
- `PUT /conversations/pushedMessages/{id}` the 'attachments/items/isInline' response's property type/format changed from 'string'/'' to 'boolean'/'' for status '200'
- `GET /couponCollections` the 'name' response's property type/format changed from 'string'/'uuidv4' to 'string'/'' for status '200'
- `GET /couponCollections/{id}` the 'name' response's property type/format changed from 'string'/'uuidv4' to 'string'/'' for status '200'
- `PATCH /couponCollections/{id}` the 'name' response's property type/format changed from 'string'/'uuidv4' to 'string'/'' for status '200'
- `GET /crm/deals` for the 'query' request parameter 'limit', default value '50.00' was added
- `GET /crm/notes` the '/items/text' response property's maxLength was increased from '3000' to '10000' for the response status '200'
- `GET /crm/notes/{id}` the 'text' response property's maxLength was increased from '3000' to '10000' for the response status '200'
- `GET /crm/tasktypes` the response's body type/format changed from 'object'/'' to 'array'/'' for status '200'
- `GET /emailCampaigns` for the 'query' request parameter 'limit', the min was increased from '0.00' to '1.00'
- `GET /emailCampaigns` the response property 'campaigns/items/allOf[subschema #2]/statistics/allOf[#/components/schemas/getExtendedCampaignStats]/statsByBrowser' became optional for the status '200'
- `GET /emailCampaigns` the response property 'campaigns/items/allOf[subschema #2]/statistics/allOf[#/components/schemas/getExtendedCampaignStats]/statsByDevice' became optional for the status '200'
- `GET /emailCampaigns` the response property 'campaigns/items/allOf[subschema #2]/statistics/allOf[#/components/schemas/getExtendedCampaignStats]/statsByDomain' became optional for the status '200'
- `GET /emailCampaigns` the 'campaigns/items/allOf[#/components/schemas/getExtendedCampaignOverview]/allOf[subschema #2]/shareLink' response's property type/format changed from 'string'/'url' to 'string'/'' for status '200'
- `GET /emailCampaigns/{campaignId}` the response property '/allOf[subschema #2]/statistics/allOf[#/components/schemas/getExtendedCampaignStats]/statsByBrowser' became optional for the status '200'
- `GET /emailCampaigns/{campaignId}` the response property '/allOf[subschema #2]/statistics/allOf[#/components/schemas/getExtendedCampaignStats]/statsByDevice' became optional for the status '200'
- `GET /emailCampaigns/{campaignId}` the response property '/allOf[subschema #2]/statistics/allOf[#/components/schemas/getExtendedCampaignStats]/statsByDomain' became optional for the status '200'
- `GET /emailCampaigns/{campaignId}` the '/allOf[#/components/schemas/getExtendedCampaignOverview]/allOf[subschema #2]/shareLink' response's property type/format changed from 'string'/'url' to 'string'/'' for status '200'
- `POST /events` request property 'contact_properties/additionalProperties/' list-of-types was narrowed by removing types 'integer' from media type 'application/json'
- `POST /events` request property 'event_properties/additionalProperties/' list-of-types was narrowed by removing types 'integer' from media type 'application/json'
- `POST /events` the 'event_date' request property type/format changed from 'string'/'' to 'string'/'date-time'
- `GET /feeds` for the 'query' request parameter 'limit', the min was increased from '0.00' to '1.00'
- `GET /feeds` removed the required property 'feeds/items/alias' from the response with the '200' status
- `GET /feeds` removed the required property 'feeds/items/isInternal' from the response with the '200' status
- `POST /feeds` the 'maxRetries' request property's min was increased to '1.00'
- `GET /feeds/{uuid}` removed the required property 'defaultAttr' from the response with the '200' status
- `GET /feeds/{uuid}` removed the required property 'defaultContact' from the response with the '200' status
- `GET /feeds/{uuid}` removed the required property 'personalization' from the response with the '200' status
- `PUT /feeds/{uuid}` the 'maxRetries' request property's min was increased to '1.00'
- `GET /inbound/events` for the 'query' request parameter 'endDate', the type/format was changed from 'string'/'datetime' to 'string'/''
- `GET /inbound/events` for the 'query' request parameter 'startDate', the type/format was changed from 'string'/'datetime' to 'string'/''
- `GET /loyalty/balance/programs/{pid}/active-balance` added the new required 'query' request parameter 'balanceDefinitionId'
- `GET /loyalty/balance/programs/{pid}/active-balance` added the new required 'query' request parameter 'contactId'
- `GET /loyalty/balance/programs/{pid}/active-balance` the 'query' request parameter 'sort' was restricted to a list of enum values
- `GET /loyalty/balance/programs/{pid}/active-balance` the 'balanceDefinitionId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/balance/programs/{pid}/active-balance` removed the required property 'createdAt' from the response with the '200' status
- `GET /loyalty/balance/programs/{pid}/active-balance` removed the required property 'updatedAt' from the response with the '200' status
- `GET /loyalty/balance/programs/{pid}/balance-definitions` the 'items/items/balanceExpirationDate' response's property type/format changed from 'string'/'date-time' to 'string'/'' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` the 'items/items/deletedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` the 'items/items/id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` the 'items/items/imageRef' response's property type/format changed from 'string'/'' to 'string'/'uri' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` the 'items/items/updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` the 'balanceExpirationDate' response's property type/format changed from 'string'/'date-time' to 'string'/'' for status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` the 'deletedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` the 'imageRef' response's property type/format changed from 'string'/'' to 'string'/'uri' for status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` the 'balanceExpirationDate' response's property type/format changed from 'string'/'date-time' to 'string'/'' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` the 'deletedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` the 'imageRef' response's property type/format changed from 'string'/'' to 'string'/'uri' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` the 'balanceExpirationDate' response's property type/format changed from 'string'/'date-time' to 'string'/'' for status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` the 'deletedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` the 'imageRef' response's property type/format changed from 'string'/'' to 'string'/'uri' for status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` the response property 'createdAt' became optional for the status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` the response property 'updatedAt' became optional for the status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` the 'balanceDefinitionId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` the 'value' response's property type/format changed from 'integer'/'' to 'number'/'' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the response property 'createdAt' became optional for the status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the response property 'updatedAt' became optional for the status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the 'balanceDefinitionId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the 'value' response's property type/format changed from 'integer'/'' to 'number'/'' for status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the response property 'createdAt' became optional for the status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the response property 'updatedAt' became optional for the status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the 'balanceDefinitionId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` the 'value' response's property type/format changed from 'integer'/'' to 'number'/'' for status '200'
- `GET /loyalty/balance/programs/{pid}/contact-balances` added the new required 'query' request parameter 'balanceDefinitionId'
- `POST /loyalty/balance/programs/{pid}/create-order` request property 'source' was restricted to a list of enum values
- `GET /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'balance/items/balanceDefinitionId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'balance/items/value' response's property type/format changed from 'number'/'' to 'number'/'float' for status '200'
- `POST /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'amount' response's property type/format changed from 'number'/'' to 'number'/'float' for status '200'
- `POST /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'balanceDefinitionId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'consumedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'contactId' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `POST /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'expiresAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'loyaltyProgramId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances` the 'organizationId' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `GET /loyalty/balance/programs/{pid}/transaction-history` for the 'query' request parameter 'limit', default value '20.00' was removed
- `GET /loyalty/balance/programs/{pid}/transaction-history` for the 'query' request parameter 'offset', default value '0.00' was removed
- `GET /loyalty/balance/programs/{pid}/transaction-history` for the 'query' request parameter 'sort', default value 'desc' was removed
- `GET /loyalty/balance/programs/{pid}/transaction-history` for the 'query' request parameter 'contactId', the type/format was changed from 'integer'/'' to 'integer'/'int64'
- `GET /loyalty/balance/programs/{pid}/transaction-history` the 'transactionHistory/items/amount' response's property type/format changed from 'number'/'' to 'number'/'float' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'balanceDefinitionId' request property type/format changed from 'string'/'' to 'string'/'uuid'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'contactId' request property type/format changed from 'integer'/'' to 'integer'/'int64'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'eventTime' request property type/format changed from 'string'/'' to 'string'/'date-time'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'amount' response's property type/format changed from 'number'/'' to 'number'/'float' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'balanceDefinitionId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'cancelledAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'completedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'contactId' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'eventTime' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'expirationDate' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'loyaltyProgramId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'rejectedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'amount' response's property type/format changed from 'number'/'' to 'number'/'float' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'balanceDefinitionId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'cancelledAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'completedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'contactId' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'eventTime' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'expirationDate' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'loyaltyProgramId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'rejectedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'amount' response's property type/format changed from 'number'/'' to 'number'/'float' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'balanceDefinitionId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'cancelledAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'completedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'contactId' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'eventTime' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'expirationDate' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'loyaltyProgramId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'rejectedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `GET /loyalty/config/programs` the 'query' request parameter 'sort' was restricted to a list of enum values
- `GET /loyalty/config/programs` the 'items/items/codeCount' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `GET /loyalty/config/programs` the 'items/items/createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `GET /loyalty/config/programs` the 'items/items/documentId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/config/programs` the 'items/items/id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/config/programs` the 'items/items/subscriptionGeneratorId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/config/programs` the 'items/items/subscriptionPoolId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/config/programs` the 'items/items/updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/config/programs` the 'codeCount' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `POST /loyalty/config/programs` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/config/programs` the 'documentId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/config/programs` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/config/programs` the 'subscriptionGeneratorId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/config/programs` the 'subscriptionPoolId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/config/programs` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `GET /loyalty/config/programs/{pid}` the 'codeCount' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `GET /loyalty/config/programs/{pid}` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `GET /loyalty/config/programs/{pid}` the 'documentId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/config/programs/{pid}` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/config/programs/{pid}` the 'subscriptionGeneratorId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/config/programs/{pid}` the 'subscriptionPoolId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `GET /loyalty/config/programs/{pid}` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `PATCH /loyalty/config/programs/{pid}` the 'codeCount' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `PATCH /loyalty/config/programs/{pid}` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `PATCH /loyalty/config/programs/{pid}` the 'documentId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PATCH /loyalty/config/programs/{pid}` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PATCH /loyalty/config/programs/{pid}` the 'subscriptionGeneratorId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PATCH /loyalty/config/programs/{pid}` the 'subscriptionPoolId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PATCH /loyalty/config/programs/{pid}` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `PUT /loyalty/config/programs/{pid}` the 'codeCount' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `PUT /loyalty/config/programs/{pid}` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `PUT /loyalty/config/programs/{pid}` the 'documentId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PUT /loyalty/config/programs/{pid}` the 'id' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PUT /loyalty/config/programs/{pid}` the 'subscriptionGeneratorId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PUT /loyalty/config/programs/{pid}` the 'subscriptionPoolId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `PUT /loyalty/config/programs/{pid}` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `GET /loyalty/config/programs/{pid}/account-info` the 'reward/items/updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/config/programs/{pid}/subscription-members` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/config/programs/{pid}/subscription-members` the 'memberContactIds/items/' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `POST /loyalty/config/programs/{pid}/subscription-members` the 'organizationId' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `POST /loyalty/config/programs/{pid}/subscription-members` the 'ownerContactId' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `POST /loyalty/config/programs/{pid}/subscription-members` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/config/programs/{pid}/subscriptions` the 'contactId' request property type/format changed from 'integer'/'' to 'integer'/'int64'
- `POST /loyalty/config/programs/{pid}/subscriptions` the 'creationDate' request property type/format changed from 'string'/'' to 'string'/'date-time'
- `POST /loyalty/config/programs/{pid}/subscriptions` the 'contactId' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `POST /loyalty/config/programs/{pid}/subscriptions` the 'createdAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/config/programs/{pid}/subscriptions` the 'loyaltyProgramId' response's property type/format changed from 'string'/'' to 'string'/'uuid' for status '200'
- `POST /loyalty/config/programs/{pid}/subscriptions` the 'organizationId' response's property type/format changed from 'integer'/'' to 'integer'/'int64' for status '200'
- `POST /loyalty/config/programs/{pid}/subscriptions` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/offer/programs/{pid}/offers` the 'updatedAt' response's property type/format changed from 'string'/'' to 'string'/'date-time' for status '200'
- `POST /loyalty/offer/programs/{pid}/rewards/attribute` the 'value' request property type/format changed from 'number'/'float64' to 'number'/'double'
- `POST /loyalty/offer/programs/{pid}/rewards/attribute` the 'value' response's property type/format changed from 'number'/'float64' to 'number'/'double' for status '200'
- `POST /loyalty/offer/programs/{pid}/rewards/redeem` the 'ttl' request property's min was increased to '1.00'
- `GET /loyalty/offer/programs/{pid}/vouchers` the 'contactRewards/items/value' response's property type/format changed from 'number'/'float64' to 'number'/'double' for status '200'
- `POST /objects/{object_type}/batch/upsert` removed 'subschema #1, subschema #2' from the 'records/items/oneOf[subschema #1]/associations/items/' request property 'oneOf' list
- `GET /processes` for the 'query' request parameter 'limit', the min was increased from '0.00' to '1.00'
- `GET /processes` the 'processes/items/info/import/duplicate_contact_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes` the 'processes/items/info/import/duplicate_email_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes` the 'processes/items/info/import/duplicate_ext_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes` the 'processes/items/info/import/duplicate_landline_number_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes` the 'processes/items/info/import/duplicate_phone_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes` the 'processes/items/info/import/duplicate_whatsapp_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes` the 'processes/items/info/import/invalid_emails' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes/{processId}` the 'info/import/duplicate_contact_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes/{processId}` the 'info/import/duplicate_email_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes/{processId}` the 'info/import/duplicate_ext_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes/{processId}` the 'info/import/duplicate_landline_number_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes/{processId}` the 'info/import/duplicate_phone_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes/{processId}` the 'info/import/duplicate_whatsapp_id' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `GET /processes/{processId}` the 'info/import/invalid_emails' response's property type/format changed from 'integer'/'' to 'string'/'' for status '200'
- `POST /products` the 'name' request property type/format changed from 'string'/'string' to 'string'/''
- `POST /products` the 'id' response's property type/format changed from 'integer'/'int64' to 'string'/'' for status '201'
- `POST /products/batch` the 'products/items/name' request property type/format changed from 'string'/'string' to 'string'/''
- `POST /senders/domains` the 'name' request property type/format changed from 'string'/'' to 'string'/'hostname'
- `GET /smsCampaigns` for the 'query' request parameter 'limit', the min was increased from '0.00' to '1.00'
- `GET /smtp/emails/{uuid}` the response property 'attachmentCount' became optional for the status '200'
- `GET /smtp/emails/{uuid}` the response property 'body' became optional for the status '200'
- `POST /transactionalSMS/send` the '/allOf[subschema #1]/tag' request property type/format changed from 'object'/'' to ''/''
- `POST /transactionalSMS/sms` the '/allOf[subschema #1]/tag' request property type/format changed from 'object'/'' to ''/''
- `POST /webhooks/export` the '/oneOf[subschema #1]/messageId' request property type/format changed from 'integer'/'' to 'string'/''
- `GET /companies` deleted the 'query' request parameter 'filters'
- `GET /contacts` for the 'query' request parameter 'segmentId', the min was set to '1.00'
- `POST /conversations/messages` removed the optional property 'attachments/items/fileName' from the response with the '200' status
- `POST /conversations/messages` removed the optional property 'attachments/items/url' from the response with the '200' status
- `POST /conversations/messages` removed the optional property 'file/filename' from the response with the '200' status
- `POST /conversations/messages` removed the optional property 'file/imageInfo/previewUrl' from the response with the '200' status
- `POST /conversations/messages` removed the optional property 'file/url' from the response with the '200' status
- `GET /conversations/messages/{id}` removed the optional property 'attachments/items/fileName' from the response with the '200' status
- `GET /conversations/messages/{id}` removed the optional property 'attachments/items/url' from the response with the '200' status
- `GET /conversations/messages/{id}` removed the optional property 'file/filename' from the response with the '200' status
- `GET /conversations/messages/{id}` removed the optional property 'file/imageInfo/previewUrl' from the response with the '200' status
- `GET /conversations/messages/{id}` removed the optional property 'file/url' from the response with the '200' status
- `PUT /conversations/messages/{id}` removed the optional property 'attachments/items/fileName' from the response with the '200' status
- `PUT /conversations/messages/{id}` removed the optional property 'attachments/items/url' from the response with the '200' status
- `PUT /conversations/messages/{id}` removed the optional property 'file/filename' from the response with the '200' status
- `PUT /conversations/messages/{id}` removed the optional property 'file/imageInfo/previewUrl' from the response with the '200' status
- `PUT /conversations/messages/{id}` removed the optional property 'file/url' from the response with the '200' status
- `POST /conversations/pushedMessages` removed the optional property 'attachments/items/fileName' from the response with the '200' status
- `POST /conversations/pushedMessages` removed the optional property 'attachments/items/url' from the response with the '200' status
- `POST /conversations/pushedMessages` removed the optional property 'file/filename' from the response with the '200' status
- `POST /conversations/pushedMessages` removed the optional property 'file/imageInfo/previewUrl' from the response with the '200' status
- `POST /conversations/pushedMessages` removed the optional property 'file/url' from the response with the '200' status
- `GET /conversations/pushedMessages/{id}` removed the optional property 'attachments/items/fileName' from the response with the '200' status
- `GET /conversations/pushedMessages/{id}` removed the optional property 'attachments/items/url' from the response with the '200' status
- `GET /conversations/pushedMessages/{id}` removed the optional property 'file/filename' from the response with the '200' status
- `GET /conversations/pushedMessages/{id}` removed the optional property 'file/imageInfo/previewUrl' from the response with the '200' status
- `GET /conversations/pushedMessages/{id}` removed the optional property 'file/url' from the response with the '200' status
- `PUT /conversations/pushedMessages/{id}` removed the optional property 'attachments/items/fileName' from the response with the '200' status
- `PUT /conversations/pushedMessages/{id}` removed the optional property 'attachments/items/url' from the response with the '200' status
- `PUT /conversations/pushedMessages/{id}` removed the optional property 'file/filename' from the response with the '200' status
- `PUT /conversations/pushedMessages/{id}` removed the optional property 'file/imageInfo/previewUrl' from the response with the '200' status
- `PUT /conversations/pushedMessages/{id}` removed the optional property 'file/url' from the response with the '200' status
- `GET /crm/tasktypes` removed the optional property 'id' from the response with the '200' status
- `GET /crm/tasktypes` removed the optional property 'title' from the response with the '200' status
- `GET /emailCampaigns` removed the optional property 'campaigns/items/allOf[#/components/schemas/getExtendedCampaignOverview]/allOf[subschema #2]/utmIDActive' from the response with the '200' status
- `GET /emailCampaigns/{campaignId}` removed the optional property '/allOf[#/components/schemas/getExtendedCampaignOverview]/allOf[subschema #2]/utmIDActive' from the response with the '200' status
- `GET /events` removed the optional property 'events/items/source' from the response with the '200' status
- `POST /events` the 'event_name' request property's maxLength was set to '255'
- `GET /loyalty/balance/programs/{pid}/active-balance` deleted the 'query' request parameter 'balance_definition_id'
- `GET /loyalty/balance/programs/{pid}/active-balance` deleted the 'query' request parameter 'contact_id'
- `GET /loyalty/balance/programs/{pid}/active-balance` deleted the 'query' request parameter 'sort_field'
- `GET /loyalty/balance/programs/{pid}/active-balance` removed the optional property 'constraintType' from the response with the '200' status
- `GET /loyalty/balance/programs/{pid}/active-balance` removed the optional property 'durationUnit' from the response with the '200' status
- `GET /loyalty/balance/programs/{pid}/active-balance` removed the optional property 'durationValue' from the response with the '200' status
- `GET /loyalty/balance/programs/{pid}/active-balance` removed the optional property 'id' from the response with the '200' status
- `GET /loyalty/balance/programs/{pid}/active-balance` removed the optional property 'slidingSchedule' from the response with the '200' status
- `GET /loyalty/balance/programs/{pid}/active-balance` removed the optional property 'transactionType' from the response with the '200' status
- `GET /loyalty/balance/programs/{pid}/active-balance` removed the optional property 'value' from the response with the '200' status
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'AUD' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'BRL' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'CAD' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'CHF' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'CLP' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'EUR' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'GBP' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'INR' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'JPY' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'MAD' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'MXN' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'MYR' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'PEN' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'POINTS' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'RON' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'SGD' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'USD' enum value to the 'items/items/unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'day' enum value to the 'items/items/balanceAvailabilityDurationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'lower' enum value to the 'items/items/balanceOptionCreditRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'lower' enum value to the 'items/items/balanceOptionDebitRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'month' enum value to the 'items/items/balanceAvailabilityDurationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'natural' enum value to the 'items/items/balanceOptionCreditRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'natural' enum value to the 'items/items/balanceOptionDebitRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'partial' enum value to the 'items/items/balanceOptionAmountOvertakingStrategy' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'strict' enum value to the 'items/items/balanceOptionAmountOvertakingStrategy' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'upper' enum value to the 'items/items/balanceOptionCreditRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'upper' enum value to the 'items/items/balanceOptionDebitRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'week' enum value to the 'items/items/balanceAvailabilityDurationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions` added the new 'year' enum value to the 'items/items/balanceAvailabilityDurationUnit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'AUD' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'BRL' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'CAD' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'CHF' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'CLP' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'EUR' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'GBP' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'INR' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'JPY' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'MAD' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'MXN' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'MYR' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'PEN' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'POINTS' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'RON' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'SGD' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'USD' enum value to the 'unit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'day' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'lower' enum value to the 'balanceOptionCreditRounding' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'lower' enum value to the 'balanceOptionDebitRounding' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'month' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'natural' enum value to the 'balanceOptionCreditRounding' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'natural' enum value to the 'balanceOptionDebitRounding' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'partial' enum value to the 'balanceOptionAmountOvertakingStrategy' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'strict' enum value to the 'balanceOptionAmountOvertakingStrategy' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'upper' enum value to the 'balanceOptionCreditRounding' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'upper' enum value to the 'balanceOptionDebitRounding' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'week' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions` added the new 'year' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'AUD' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'BRL' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'CAD' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'CHF' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'CLP' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'EUR' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'GBP' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'INR' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'JPY' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'MAD' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'MXN' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'MYR' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'PEN' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'POINTS' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'RON' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'SGD' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'USD' enum value to the 'unit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'day' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'lower' enum value to the 'balanceOptionCreditRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'lower' enum value to the 'balanceOptionDebitRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'month' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'natural' enum value to the 'balanceOptionCreditRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'natural' enum value to the 'balanceOptionDebitRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'partial' enum value to the 'balanceOptionAmountOvertakingStrategy' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'strict' enum value to the 'balanceOptionAmountOvertakingStrategy' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'upper' enum value to the 'balanceOptionCreditRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'upper' enum value to the 'balanceOptionDebitRounding' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'week' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'year' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'AUD' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'BRL' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'CAD' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'CHF' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'CLP' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'EUR' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'GBP' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'INR' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'JPY' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'MAD' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'MXN' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'MYR' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'PEN' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'POINTS' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'RON' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'SGD' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'USD' enum value to the 'unit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'day' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'lower' enum value to the 'balanceOptionCreditRounding' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'lower' enum value to the 'balanceOptionDebitRounding' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'month' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'natural' enum value to the 'balanceOptionCreditRounding' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'natural' enum value to the 'balanceOptionDebitRounding' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'partial' enum value to the 'balanceOptionAmountOvertakingStrategy' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'strict' enum value to the 'balanceOptionAmountOvertakingStrategy' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'upper' enum value to the 'balanceOptionCreditRounding' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'upper' enum value to the 'balanceOptionDebitRounding' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'week' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}` added the new 'year' enum value to the 'balanceAvailabilityDurationUnit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` added the new 'amount' enum value to the 'constraintType' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` added the new 'credit' enum value to the 'transactionType' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` added the new 'day' enum value to the 'durationUnit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` added the new 'debit' enum value to the 'transactionType' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` added the new 'hour' enum value to the 'durationUnit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` added the new 'month' enum value to the 'durationUnit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` added the new 'transaction' enum value to the 'constraintType' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` added the new 'week' enum value to the 'durationUnit' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits` added the new 'year' enum value to the 'durationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'amount' enum value to the 'constraintType' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'credit' enum value to the 'transactionType' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'day' enum value to the 'durationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'debit' enum value to the 'transactionType' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'hour' enum value to the 'durationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'month' enum value to the 'durationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'transaction' enum value to the 'constraintType' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'week' enum value to the 'durationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'year' enum value to the 'durationUnit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'amount' enum value to the 'constraintType' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'credit' enum value to the 'transactionType' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'day' enum value to the 'durationUnit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'debit' enum value to the 'transactionType' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'hour' enum value to the 'durationUnit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'month' enum value to the 'durationUnit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'transaction' enum value to the 'constraintType' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'week' enum value to the 'durationUnit' response property for the response status '200'
- `PUT /loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}` added the new 'year' enum value to the 'durationUnit' response property for the response status '200'
- `GET /loyalty/balance/programs/{pid}/transaction-history` for the 'query' request parameter 'limit', the max was set to '500.00'
- `GET /loyalty/balance/programs/{pid}/transaction-history` for the 'query' request parameter 'contactId', the min was set to '1.00'
- `GET /loyalty/balance/programs/{pid}/transaction-history` for the 'query' request parameter 'limit', the min was set to '1.00'
- `GET /loyalty/balance/programs/{pid}/transaction-history` for the 'query' request parameter 'offset', the min was set to '0.00'
- `GET /loyalty/balance/programs/{pid}/transaction-history` deleted the 'query' request parameter 'filters'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'balanceExpiryInMinutes' request property's min was set to '1.00'
- `POST /loyalty/balance/programs/{pid}/transactions` the 'ttl' request property's min was set to '10.00'
- `POST /loyalty/balance/programs/{pid}/transactions` added the new 'cancelled' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` added the new 'complete' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` added the new 'expired' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` added the new 'pending' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions` added the new 'rejected' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` added the new 'cancelled' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` added the new 'complete' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` added the new 'expired' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` added the new 'pending' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/cancel` added the new 'rejected' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` added the new 'cancelled' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` added the new 'complete' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` added the new 'expired' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` added the new 'pending' enum value to the 'status' response property for the response status '200'
- `POST /loyalty/balance/programs/{pid}/transactions/{tid}/complete` added the new 'rejected' enum value to the 'status' response property for the response status '200'
- `GET /loyalty/config/programs` added the new 'draft' enum value to the 'items/items/state' response property for the response status '200'
- `POST /loyalty/config/programs` added the new 'draft' enum value to the 'state' response property for the response status '200'
- `GET /loyalty/config/programs/{pid}` added the new 'draft' enum value to the 'state' response property for the response status '200'
- `PATCH /loyalty/config/programs/{pid}` added the new 'draft' enum value to the 'state' response property for the response status '200'
- `PUT /loyalty/config/programs/{pid}` added the new 'draft' enum value to the 'state' response property for the response status '200'
- `POST /loyalty/config/programs/{pid}/subscriptions` the 'contactId' request property's min was set to '1.00'
- `POST /loyalty/offer/programs/{pid}/rewards/attribute` the 'value' request property's max was set to '99999999.99'
- `POST /loyalty/offer/programs/{pid}/rewards/attribute` the 'value' request property's min was set to '0.01'
- `GET /processes` removed the optional property 'processes/items/completed_at' from the response with the '200' status
- `GET /processes` removed the optional property 'processes/items/created_at' from the response with the '200' status
- `GET /processes` removed the optional property 'processes/items/error' from the response with the '200' status
- `GET /processes` removed the optional property 'processes/items/info/export' from the response with the '200' status
- `GET /processes/{processId}` removed the optional property 'completed_at' from the response with the '200' status
- `GET /processes/{processId}` removed the optional property 'created_at' from the response with the '200' status
- `GET /processes/{processId}` removed the optional property 'error' from the response with the '200' status
- `GET /processes/{processId}` removed the optional property 'info/export' from the response with the '200' status
- `GET /smtp/statistics/aggregatedReport` for the 'query' request parameter 'days', the max was set to '90.00'
- `GET /smtp/statistics/events` for the 'query' request parameter 'days', the max was set to '90.00'
- `GET /smtp/statistics/reports` for the 'query' request parameter 'days', the max was set to '30.00'
- `POST /transactionalSMS/send` removed the request property '/allOf[subschema #1]/tag/field'
- `POST /transactionalSMS/sms` removed the request property '/allOf[subschema #1]/tag/field'
- `GET /webhooks` removed the optional property 'webhooks/items/allOf[#/components/schemas/getWebhook]/channel' from the response with the '200' status
- `GET /webhooks` added the new 'inbound' enum value to the 'webhooks/items/allOf[#/components/schemas/getWebhook]/type' response property for the response status '200'
- `GET /webhooks/{webhookId}` removed the optional property 'channel' from the response with the '200' status
- `GET /webhooks/{webhookId}` added the new 'inbound' enum value to the 'type' response property for the response status '200'

## Other APIs we monitor

- [Airtable](https://seamless.engineering/api-changelog/airtable/)
- [DATEV](https://seamless.engineering/api-changelog/datev/)
- [Discord](https://seamless.engineering/api-changelog/discord/)
- [Google Sheets](https://seamless.engineering/api-changelog/google-sheets/)
- [HubSpot](https://seamless.engineering/api-changelog/hubspot/)
- [Jira Cloud](https://seamless.engineering/api-changelog/jira/)
- [lexoffice](https://seamless.engineering/api-changelog/lexoffice/)
- [Linear](https://seamless.engineering/api-changelog/linear/)
- [Monday.com](https://seamless.engineering/api-changelog/monday/)
- [Notion](https://seamless.engineering/api-changelog/notion/)
- [Personio](https://seamless.engineering/api-changelog/personio/)
- [Pinterest API](https://seamless.engineering/api-changelog/pinterest/)
- [Pipedrive](https://seamless.engineering/api-changelog/pipedrive/)
- [Salesforce](https://seamless.engineering/api-changelog/salesforce/)
- [Shopify](https://seamless.engineering/api-changelog/shopify/)
- [Slack](https://seamless.engineering/api-changelog/slack/)
- [Stripe](https://seamless.engineering/api-changelog/stripe/)
- [Xentral](https://seamless.engineering/api-changelog/xentral/)
- [Zendesk](https://seamless.engineering/api-changelog/zendesk/)

## Frequently asked questions

### Has the Brevo API had breaking changes recently?

Yes: 3 breaking changes and 0 deprecations in the last 90 days. The most recent is “Loyalty transaction status renamed” from 3 September 2026.

### How often does the Brevo API change?

Over the period on record, Brevo published about 12 changelog entries a month. Most are additions; the breaking changes and deprecations are the ones to plan for.

### Where is the official Brevo API changelog?

Brevo publishes it at https://developers.brevo.com/changelog. This page follows it daily and dates each entry.

### How do I get notified about Brevo API changes?

Subscribe to this page's RSS feed (https://seamless.engineering/api-changelog/brevo/rss.xml). If you would rather have someone act on them, we operate Brevo integrations and handle changes like these before they reach production.

## Request a scoping call

We watch Brevo because we run integrations on it. If one of yours depends on Brevo, we can take it over: build it properly, operate it, and fix it when Brevo changes, before your data is affected. Fixed-price scoping quote within 48 hours.

- Email: hello@seamless.engineering
- Contact form: https://seamless.engineering/#contact
