
---
## Get customer account information
---
This method gets a customer’s account information.
  
This method requires customer authentication.


<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `API_PERSONAL_INFORMATION_CLIENT_READ` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart
  
**Related To:**  
[ClientAccountInformation](/developers/mobile-sdk/class-reference/flutter/client#clientaccountinformation)  
  
**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)
  

<div class="content-tabs" data-tab-group="tabgrp-897">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-897-0" data-tab-group="tabgrp-897" data-tab-active="true">SDK &gt;= 1.0.0</button><button class="tab-button" data-tab-id="tabgrp-897-1" data-tab-group="tabgrp-897">Legacy SDK</button></div>

<div class="tab-panel" data-tab-id="tabgrp-897-0" data-tab-group="tabgrp-897" data-tab-active="true">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; getAccount({required void Function(ClientAccountInformation) onSuccess, required void Function(SyneriseError) onError}) async</code></pre>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **onSuccess** | Function([ClientAccountInformation](/developers/mobile-sdk/class-reference/flutter/client#clientaccountinformation) clientAccountInformation) | yes | - | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | - | Function to be executed when the operation is completed with an error |

**Return Value:**  
No value is returned. 
  
**Example:**

<pre><code class="language-Dart">await Synerise.client.getAccount(onSuccess: (ClientAccountInformation result) {
  //onSuccess handling
}, onError: (SyneriseError error) {
  //onError handling
});</code></pre>

</div>

<div class="tab-panel" data-tab-id="tabgrp-897-1" data-tab-group="tabgrp-897">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;ClientAccountInformation&gt; getAccount() async</code></pre>

  
**Return Value:**   
[ClientAccountInformation](/developers/mobile-sdk/class-reference/flutter/client#clientaccountinformation)   
  
**Example:**

<pre><code class="language-Dart">final ClientAccountInformation clientAccountInformation = await Synerise.client.getAccount().catchError((error)</code></pre>

</div>
</div>


## Update customer account basic information
---
This method updates a customer’s account’s basic information (without identification data: uuid, customId, email).
  
This method requires the context object with the customer’s account information. Omitted fields are not modified.
  
This method does not require customer authentication and can be used by anonymous profiles.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 4.22.0 | 5.21.0 | 0.24.0 | 1.4.0 |


<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `API_BASIC_INFORMATION_CLIENT_UPDATE` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart

**Related To:**  
[ClientAccountUpdateBasicInformationContext](/developers/mobile-sdk/class-reference/flutter/client#clientaccountupdatebasicinformationcontext)

**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; updateAccountBasicInformation(ClientAccountUpdateBasicInformationContext context,
      {required void Function() onSuccess,
      required void Function(SyneriseError error) onError}) async</code></pre>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **context** | [ClientAccountUpdateBasicInformationContext](/developers/mobile-sdk/class-reference/flutter/client#clientaccountupdatebasicinformationcontext) | yes | - | Object with customer’s first name, phone, and other optional data |
| **onSuccess** | Function() | yes | - | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | - | Function to be executed when the operation is completed with an error |

**Return Value:**  
No value is returned.

**Example:**  

<pre><code class="language-Dart">ClientAccountUpdateBasicInformationContext context = ClientAccountUpdateBasicInformationContext(
        email: email,
        password: password,
        firstName: firstName,
        lastName: lastName,
        sex: ClientSex.getClientSexFromString(sex));

    await Synerise.client.updateAccountBasicInformation(clientAccountUpdateContext, onSuccess: () {
      //onSuccess handling
    }, onError: (SyneriseError error) {
      //onError handling
    });</code></pre>


## Update customer account information
---
This method updates a customer’s account information.
  
This method requires the context object with the customer’s account information. Omitted fields are not modified.
  
This method requires customer authentication.


<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `API_PERSONAL_INFORMATION_CLIENT_UPDATE` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart

**Related To:**  
[ClientAccountUpdateContext](/developers/mobile-sdk/class-reference/flutter/client#clientaccountupdatecontext)

**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)


<div class="content-tabs" data-tab-group="tabgrp-898">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-898-0" data-tab-group="tabgrp-898" data-tab-active="true">SDK &gt;= 1.0.0</button><button class="tab-button" data-tab-id="tabgrp-898-1" data-tab-group="tabgrp-898">Legacy SDK</button></div>

<div class="tab-panel" data-tab-id="tabgrp-898-0" data-tab-group="tabgrp-898" data-tab-active="true">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; updateAccount(ClientAccountUpdateContext context,
      {required void Function() onSuccess,
      required void Function(SyneriseError error) onError}) async</code></pre>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **context** | [ClientAccountUpdateContext](/developers/mobile-sdk/class-reference/flutter/client#clientaccountupdatecontext) | yes | - | Object with customer's email, password, and other optional data |
| **onSuccess** | Function() | yes | - | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | - | Function to be executed when the operation is completed with an error |

**Return Value:**  
No value is returned.

**Example:**  

<pre><code class="language-Dart">ClientAccountUpdateContext clientAccountUpdateContext = ClientAccountUpdateContext(
        email: email,
        password: password,
        firstName: firstName,
        lastName: lastName,
        sex: ClientSex.getClientSexFromString(sex));

    await Synerise.client.updateAccount(clientAccountUpdateContext, onSuccess: () {
      //onSuccess handling
    }, onError: (SyneriseError error) {
      //onError handling
    });</code></pre>

</div>

<div class="tab-panel" data-tab-id="tabgrp-898-1" data-tab-group="tabgrp-898">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; updateAccount(ClientAccountUpdateContext context) async</code></pre>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **context** | [ClientAccountUpdateContext](/developers/mobile-sdk/class-reference/flutter/client#clientaccountupdatecontext) | yes | - | Object with customer's email, password, and other optional data |

**Return Value:**  
No value is returned.

**Example:**  

<pre><code class="language-Dart">ClientAccountUpdateContext clientAccountUpdateContext = ClientAccountUpdateContext(
        email: email,
        password: password,
        firstName: firstName,
        lastName: lastName,
        sex: ClientSex.getClientSexFromString(sex));

    await Synerise.client.updateAccount(clientAccountUpdateContext).catchError((error) {
      //onError handling
    });</code></pre>

</div>
</div>


## Change customer's account password
---
This method changes a customer’s password.
  
This method requires customer authentication.


<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Returns the HTTP 403 status code if the provided old password is invalid.

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



<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `SAUTH_CHANGE_PASSWORD_CLIENT_UPDATE` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart  
  
**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)


<div class="content-tabs" data-tab-group="tabgrp-899">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-899-0" data-tab-group="tabgrp-899" data-tab-active="true">SDK &gt;= 1.0.0</button><button class="tab-button" data-tab-id="tabgrp-899-1" data-tab-group="tabgrp-899">Legacy SDK</button></div>

<div class="tab-panel" data-tab-id="tabgrp-899-0" data-tab-group="tabgrp-899" data-tab-active="true">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; changePassword(String oldPassword, String newPassword,
    {required void Function() onSuccess, required void Function(SyneriseError) onError}) async</code></pre>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **oldPassword** | String | yes | - | Customer’s old password |
| **newPassword** | String | yes | - | Customer’s new password |
| **onSuccess** | Function() | yes | - | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | - | Function to be executed when the operation is completed with an error |

**Return Value:**  
No value is returned.
  
**Example:**  

<pre><code class="language-Dart">await Synerise.client.changePassword(oldPassword, newPassword, onSuccess: () {
      //onSuccess handling
    }, onError: (SyneriseError error) {
      //onError handling
    });</code></pre>

</div>

<div class="tab-panel" data-tab-id="tabgrp-899-1" data-tab-group="tabgrp-899">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; changePassword(String oldPassword,  String password) async</code></pre>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **newPassword** | String | yes | - | Customer’s new password |
| **oldPassword** | String | yes | - | Customer’s old password |
  
**Return Value:**  
No value is returned.
  
**Example:**  

<pre><code class="language-Dart">await  Synerise.client.changePassword(oldPassword, password).catchError((error)</code></pre>

</div>
</div>


## Request password reset for customer account
---
This method requests a customer’s password reset with email. The customer will receive a token to the provided email address. That token is then used for the confirmation of password reset.
  
This method requires the customer’s email.
  
This method is a global operation and doesn't require customer authentication.


<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `SAUTH_PASSWORD_RESET_CLIENT_CREATE` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart
  
**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)
  

<div class="content-tabs" data-tab-group="tabgrp-900">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-900-0" data-tab-group="tabgrp-900" data-tab-active="true">SDK &gt;= 1.0.0</button><button class="tab-button" data-tab-id="tabgrp-900-1" data-tab-group="tabgrp-900">Legacy SDK</button></div>

<div class="tab-panel" data-tab-id="tabgrp-900-0" data-tab-group="tabgrp-900" data-tab-active="true">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; requestPasswordReset(String email, {required void Function() onSuccess, required void Function(SyneriseError) onError}) async</code></pre>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **email** | String | yes | - | Customer’s email |
| **onSuccess** | Function() | yes | - | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | - | Function to be executed when the operation is completed with an error |
  
**Return Value:**  
No value is returned.
  
**Example:**  

<pre><code class="language-Dart">await Synerise.client.requestPasswordReset(email, onSuccess: () {
  //onSuccess handling
}, onError: (SyneriseError error) {
  //onError handling
});</code></pre>

</div>

<div class="tab-panel" data-tab-id="tabgrp-900-1" data-tab-group="tabgrp-900">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; requestPasswordReset(String email) async</code></pre>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **email** | String | yes | - | Customer’s email |
  
**Return Value:**  
No value is returned.
  
**Example:**  

<pre><code class="language-Dart">await  Synerise.client.requestPasswordReset(email).catchError((error)</code></pre>

</div>
</div>


## Confirm password reset for customer account
---
This method confirm a customer’s password reset with the new password and token provided by password reset request.  
  
This method requires the customer’s new password and the confirmation token received by e-mail.
  
This method is a global operation and doesn't require customer authentication.


<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `SAUTH_PASSWORD_RESET_CLIENT_CREATE` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart  
  
**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)


<div class="content-tabs" data-tab-group="tabgrp-901">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-901-0" data-tab-group="tabgrp-901" data-tab-active="true">SDK &gt;= 1.0.0</button><button class="tab-button" data-tab-id="tabgrp-901-1" data-tab-group="tabgrp-901">Legacy SDK</button></div>

<div class="tab-panel" data-tab-id="tabgrp-901-0" data-tab-group="tabgrp-901" data-tab-active="true">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; confirmPasswordReset(String password, String token, {required void Function() onSuccess, required void Function(SyneriseError) onError}) async</code></pre>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **password** | String | yes | - | New password for the customer |
| **token** | String | yes | - | Customer's token provided in an email |
| **onSuccess** | Function() | yes | - | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | - | Function to be executed when the operation is completed with an error |

**Return Value:**  
No value is returned.
  
**Example:**  

<pre><code class="language-Dart">await Synerise.client.confirmPasswordReset(password, token, onSuccess: () {
  //onSuccess handling
}, onError: (SyneriseError error) {
  //onError handling
});</code></pre>

</div>

<div class="tab-panel" data-tab-id="tabgrp-901-1" data-tab-group="tabgrp-901">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; confirmPasswordReset(String password, String token) async</code></pre>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **email** | String | yes | - | Customer’s email |
| **token** | String | yes | - | Customer's token provided in an email |
  
**Return Value:**  
No value is returned.
  
**Example:**  

<pre><code class="language-Dart">await  Synerise.client.confirmPasswordReset(email, token).catchError((error)</code></pre>

</div>
</div>


## Delete customer account
---
This method deletes a customer's account.
  
This method requires customer authentication.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 3.6.11 | 3.6.13 | 0.9.12 | n/a |
| <span style="color:orange">Deprecated in:</span> | 3.6.19 | 3.6.19 | 0.14.0 | n/a |
| <span style="color:red">Removed in:</span> | 5.0.0 | 6.0.0 | n/a | n/a |


<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Returns the HTTP 403 status code is returned if the provided password is invalid.

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



<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `SAUTH_CLIENT_DELETE` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart

**Related To:**  
[ClientIdentityProvider](/developers/mobile-sdk/class-reference/flutter/client#clientidentityprovider)  

**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)


<div class="content-tabs" data-tab-group="tabgrp-902">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-902-0" data-tab-group="tabgrp-902" data-tab-active="true">SDK &gt;= 1.0.0</button><button class="tab-button" data-tab-id="tabgrp-902-1" data-tab-group="tabgrp-902">Legacy SDK</button></div>

<div class="tab-panel" data-tab-id="tabgrp-902-0" data-tab-group="tabgrp-902" data-tab-active="true">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; deleteAccount(String clientAuthFactor, IdentityProvider identityProvider, {String? authId, required void Function() onSuccess, required void Function(SyneriseError) onError}) async</code></pre>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **clientAuthFactor** | String | yes | - | Customer’s password or token from the identity provider |
| **identityProvider** | [ClientIdentityProvider](/developers/mobile-sdk/class-reference/flutter/client#clientidentityprovider) | yes | - | Customer's identity provider |
| **authID** | String | no | null | Optional identifier of authorization |
| **onSuccess** | Function() | yes | - | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | - | Function to be executed when the operation is completed with an error |

**Return Value:**  
No value is returned.

**Example:**  

<pre><code class="language-Dart">await Synerise.client.deleteAccount(clientAuthFactor, identityProvider, authId, onSuccess: () {
  //onSuccess handling
}, onError: (SyneriseError error) {
  //onError handling
});</code></pre>

</div>

<div class="tab-panel" data-tab-id="tabgrp-902-1" data-tab-group="tabgrp-902">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; deleteAccount(String clientAuthFactor,  IdentityProvider identityProvider,  String? authId) async</code></pre>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **clientAuthFactor** | String | yes | - | Customer’s password or token from the identity provider |
| **identityProvider** | [ClientIdentityProvider](/developers/mobile-sdk/class-reference/flutter/client#clientidentityprovider) | yes | - | Customer's identity provider |
| **authID** | String | yes | null | Optional identifier of authorization |

**Return Value:**  
No value is returned.

**Example:**  

<pre><code class="language-Dart">await  Synerise.client.deleteAccount(clientAuthFactor, identityProvider, authId).catchError((error)</code></pre>

</div>
</div>


## Request email change for customer account
---
This method requests a customer's email change.
  
This method is a global operation and doesn't require customer authentication.
  

<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Returns the HTTP 403 status code if the provided token or the password is invalid.

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



<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `SAUTH_CHANGE_EMAIL_CLIENT_UPDATE` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart
  
**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)
  

<div class="content-tabs" data-tab-group="tabgrp-903">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-903-0" data-tab-group="tabgrp-903" data-tab-active="true">SDK &gt;= 1.0.0</button><button class="tab-button" data-tab-id="tabgrp-903-1" data-tab-group="tabgrp-903">Legacy SDK</button></div>

<div class="tab-panel" data-tab-id="tabgrp-903-0" data-tab-group="tabgrp-903" data-tab-active="true">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; requestEmailChange(String email, String password, {String? externalToken, String? authID, required void Function() onSuccess, required void Function(SyneriseError) onError}) async</code></pre>

    
**Parameters:**  
| Parameter | Type | Mandatory | Description |
| --- | --- | --- | --- |
| **email** | String | yes | Customer's new email |
| **password** | String | yes | Customer's password |
| **externalToken** | String | no | Customer's token (if OAuth, Facebook, and so on) |
| **authID** | String | no | Optional identifier of authorization |
| **onSuccess** | Function() | yes | - | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | - | Function to be executed when the operation is completed with an error |
  
**Return Value:**  
No value is returned.

**Example:**

<pre><code class="language-Dart">await Synerise.client.requestEmailChange(email, password, externalToken: externalToken, authID: authID, onSuccess: () {
  //onSuccess handling
}, onError: (SyneriseError error) {
  //onError handling
});</code></pre>

</div>

<div class="tab-panel" data-tab-id="tabgrp-903-1" data-tab-group="tabgrp-903">

**Declared In:**  
lib/modules/client/client_impl.dart

**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)
  
**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; requestEmailChange(String email, String password, [String? externalToken, String? authID]) async</code></pre>

    
**Parameters:**  
| Parameter | Type | Mandatory | Description |
| --- | --- | --- | --- |
| **email** | String | yes | Customer's new email |
| **password** | String | yes | Customer's password |
| **externalToken** | String | no | Customer's token (if OAuth, Facebook, and so on) |
| **authID** | String | no | Optional identifier of authorization |
  
**Return Value:**  
No value is returned.

**Example:**

<pre><code class="language-Dart">await Synerise.client.requestEmailChange(email, password).catchError((error) {</code></pre>

</div>
</div>


## Confirm email change for customer account
---
This method confirms an email change.
  
This method is a global operation and doesn't require customer authentication.
  

<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Returns the HTTP 403 status code if the provided token is invalid.

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



<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `SAUTH_CHANGE_EMAIL_CLIENT_UPDATE` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart

**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)
  

<div class="content-tabs" data-tab-group="tabgrp-904">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-904-0" data-tab-group="tabgrp-904" data-tab-active="true">SDK &gt;= 1.0.0</button><button class="tab-button" data-tab-id="tabgrp-904-1" data-tab-group="tabgrp-904">Legacy SDK</button></div>

<div class="tab-panel" data-tab-id="tabgrp-904-0" data-tab-group="tabgrp-904" data-tab-active="true">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; confirmEmailChange(String token, bool newsletterAgreement,
      {required void Function() onSuccess,
      required void Function(SyneriseError error) onError}) async</code></pre>


**Parameters:**  
| Parameter | Type | Mandatory | Description |
| --- | --- | --- | --- |
| **token** | String | yes | Customer's token provided in an email |
| **newsletterAgreement** | bool | yes | Agreement for sending newsletters to the provided email |
| **onSuccess** | Function() | yes | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | Function to be executed when the operation is completed with an error |

**Return Value:**  
No value is returned.
  
**Example:**  

<pre><code class="language-Dart">await Synerise.client.confirmAccountActivationByPin(email, pinCode, onSuccess: () {
    //onSuccess handling
  }, onError: (SyneriseError error) {
    //onError handling
  });</code></pre>

</div>

<div class="tab-panel" data-tab-id="tabgrp-904-1" data-tab-group="tabgrp-904">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; confirmEmailChange(String token, bool newsletterAgreement) async</code></pre>


**Parameters:**  
| Parameter | Type | Mandatory | Description |
| --- | --- | --- | --- |
| **token** | String | yes | Customer's token provided in an email |
| **newsletterAgreement** | bool | yes | Agreement for sending newsletters to the provided email |

**Return Value:**  
No value is returned.
  
**Example:**

<pre><code class="language-Dart">await Synerise.client.confirmEmailChange(token, true).catchError((error) {</code></pre>

</div>
</div>


## Request phone update on customer account
---
This method requests a customer's phone update. A confirmation code is sent to the phone number.
  
This method is a global operation and doesn't require customer authentication.


<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `API_PERSONAL_PHONE_CLIENT_CREATE` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart
  
**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)
  

<div class="content-tabs" data-tab-group="tabgrp-905">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-905-0" data-tab-group="tabgrp-905" data-tab-active="true">SDK &gt;= 1.0.0</button><button class="tab-button" data-tab-id="tabgrp-905-1" data-tab-group="tabgrp-905">Legacy SDK</button></div>

<div class="tab-panel" data-tab-id="tabgrp-905-0" data-tab-group="tabgrp-905" data-tab-active="true">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; requestPhoneUpdate(String phone, {required void Function() onSuccess, required void Function(SyneriseError) onError}) async</code></pre>

    
**Parameters:**  
| Parameter | Type | Mandatory | Description |
| --- | --- | --- | --- |
| **phone** | String | yes | Customer's new phone number |
| **onSuccess** | Function() | yes | - | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | - | Function to be executed when the operation is completed with an error |
  
**Return Value:**  
No value is returned.
  
**Example:**  

<pre><code class="language-Dart">await Synerise.client.requestPhoneUpdate(phone, onSuccess: () {
  //onSuccess handling
}, onError: (SyneriseError error) {
  //onError handling
});</code></pre>

</div>

<div class="tab-panel" data-tab-id="tabgrp-905-1" data-tab-group="tabgrp-905">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; requestPhoneUpdate(String phone) async</code></pre>

    
**Parameters:**  
| Parameter | Type | Mandatory | Description |
| --- | --- | --- | --- |
| **phone** | String | yes | Customer's new phone number |
  
**Return Value:**  
No value is returned.
  
**Example:**

<pre><code class="language-Dart">await Synerise.client.requestPhoneUpdate(phone).catchError((error) {</code></pre>

</div>
</div>


## Confirm phone update on customer account
---
This method confirms a phone number update. This action requires the new phone number and confirmation code as parameters.
  
This method is a global operation and doesn't require customer authentication.
  

<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Returns the HTTP 403 status code if the provided UUID does not exist or the password is invalid.

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



<div class="admonition admonition-note"><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="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

The API key must have the `API_PERSONAL_PHONE_CLIENT_CREATE` permission from the **Client** group.

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

**Declared In:**  
lib/modules/client/client_impl.dart

**Class:**  
[ClientImpl](/developers/mobile-sdk/class-reference/flutter/modules#client)
  

<div class="content-tabs" data-tab-group="tabgrp-906">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-906-0" data-tab-group="tabgrp-906" data-tab-active="true">SDK &gt;= 1.0.0</button><button class="tab-button" data-tab-id="tabgrp-906-1" data-tab-group="tabgrp-906">Legacy SDK</button></div>

<div class="tab-panel" data-tab-id="tabgrp-906-0" data-tab-group="tabgrp-906" data-tab-active="true">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; confirmPhoneUpdate(String phone, String confirmationCode, bool smsAgreement, {required void Function() onSuccess, required void Function(SyneriseError) onError}) async</code></pre>

  
**Parameters:**  
| Parameter | Type | Mandatory | Description |
| --- | --- | --- | --- |
| **phone** | String | yes | New phone number |
| **confirmationCode** | String | yes | A confirmation code received by a text message |
| **smsAgreement** | bool | yes | Agreement for sending SMS to the provided number |
| **onSuccess** | Function() | yes | Function to be executed when the operation is completed successfully |
| **onError** | Function([SyneriseError](/developers/mobile-sdk/class-reference/flutter/miscellaneous#syneriseerror) error) | yes | Function to be executed when the operation is completed with an error |

**Return Value:**  
No value is returned.
  
**Example:**  

<pre><code class="language-Dart">await Synerise.client.confirmPhoneUpdate(phone, confirmationCode, smsAgreement, onSuccess: () {
  //onSuccess handling
}, onError: (SyneriseError error) {
  //onError handling
});</code></pre>

</div>

<div class="tab-panel" data-tab-id="tabgrp-906-1" data-tab-group="tabgrp-906">

**Declaration:**  

<pre><code class="language-Dart">Future&lt;void&gt; confirmPhoneUpdate(String phone, String confirmationCode, bool smsAgreement) async</code></pre>

  
**Parameters:**  
| Parameter | Type | Mandatory | Description |
| --- | --- | --- | --- |
| **phone** | String | yes | New phone number |
| **confirmationCode** | String | yes | A confirmation code received by a text message |
| **smsAgreement** | bool | yes | Agreement for sending SMS to the provided number |

**Return Value:**  
No value is returned.
  
**Example:**

<pre><code class="language-Dart">await Synerise.client.confirmPhoneUpdate(phone, confirmationCode, true).catchError((error) {</code></pre>

</div>
</div>

