

<div class="admonition admonition-warning"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" /></svg></div><div class="admonition-body"><div class="admonition-content">

**Upcoming breaking change (effective July 6, 2026):** Synerise is introducing changes to how user identifiers and UUIDs are handled. These changes may affect profiles with accented or diacritical characters in identifiers, profiles with leading or trailing whitespace in identifiers, and profiles with duplicate UUIDs. For details and recommended actions, see [Upcoming changes to handling identifiers](/docs/settings/configuration/identifier-standardization).

</div></div></div>


## Enabling with single/double opt-in

Ensure that a [workflow for collecting newsletter agreements](/docs/settings/configuration/newsletter-sign-up) is running.  

Send a create/update API call with the `"newsletter_agreement_enabled": "enabled"` attribute.  
API reference is available [here](https://hub.synerise.com/api-reference/profile-management#tag/Profile-management/operation/BatchAddOrUpdateClients).

<pre><code class="language-plaintext">curl --location --request POST 'https://{SYNERISE_API_BASE_PATH}/v4/clients/batch' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Api-Version: 4.4' \
--header 'Authorization: Bearer eyJ...G2DI' \
--data-raw '[
   {
      "clientId": 12345,
      "attributes": {
          "newsletter_agreement_enabled": "enabled"
      }
   }
]'</code></pre>


This information is processed in the following way:
1. The customer's profile is updated with the `'newsletter_agreement_enabled': 'enabled'` attribute.
2. An event with details of the profile update is created and triggers the [workflow that collects newsletter agreements](/docs/settings/configuration/newsletter-sign-up). 
3. One of the following happens:
   - If single opt-in is used, the agreement is enabled. Depending on the workflow configuration, the customer may receive an email with a notification.
   - If double opt-in is used, the customer receives an email and must click the link in that email to confirm the subscription.

## Enabling immediately

You can also immediately enable an agreement over the API, without asking for confirmation or notifying the customer.

If you use email address as a unique identifier, send a create/update API call with the `agreements.email` param set to `true`.

<pre><code class="language-plaintext">curl --location --request POST 'https://{SYNERISE_API_BASE_PATH}/v4/clients/batch' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Api-Version: 4.4' \
--header 'Authorization: Bearer eyJ...G2DI' \
--data-raw '[
   {
      "clientId": 12345,
      "agreements": {
         "email": true
         }
   }
]'</code></pre>


If you configured [non-unique emails](/docs/settings/configuration/non-unique-emails), send a create/update API call which changes the attribute you set as the agreement indicator to `enabled`

<pre><code class="language-plaintext">curl --location --request POST 'https://{SYNERISE_API_BASE_PATH}/v4/clients/batch' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Api-Version: 4.4' \
--header 'Authorization: Bearer eyJ...G2DI' \
--data-raw '[
   {
      "clientId": 12345,
      "attributes": {
         "the-newsletter-agreement-attribute-you-set-up": "enabled"
         }
   }
]'</code></pre>


The agreement is enabled immediately.


API reference is available [here](https://hub.synerise.com/api-reference/profile-management#tag/Profile-management/operation/BatchAddOrUpdateClients).


## Disabling a newsletter agreement

If you use email address as a unique identifier, send a create/update API call with the `agreements.email` param set to `false`.
API reference is available [here](https://hub.synerise.com/api-reference/profile-management#tag/Profile-management/operation/BatchAddOrUpdateClients).

<pre><code class="language-plaintext">curl --location --request POST 'https://{SYNERISE_API_BASE_PATH}/v4/clients/batch' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Api-Version: 4.4' \
--header 'Authorization: Bearer eyJ...G2DI' \
--data-raw '[
   {
      "clientId": 12345,
      "agreements": {
         "email": false
         }
   }
]'</code></pre>


If you configured [non-unique emails](/docs/settings/configuration/non-unique-emails), send a create/update API call which changes the attribute you set as the agreement indicator to `disabled`

<pre><code class="language-plaintext">curl --location --request POST 'https://{SYNERISE_API_BASE_PATH}/v4/clients/batch' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Api-Version: 4.4' \
--header 'Authorization: Bearer eyJ...G2DI' \
--data-raw '[
   {
      "clientId": 12345,
      "attributes": {
         "the-newsletter-agreement-attribute-you-set-up": "disabled"
         }
   }
]'</code></pre>


The agreement is disabled immediately.