

<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>


When the customer is authenticated with a JWT token in your application, You can retrieve or update customer details by using the SDK methods. These methods can be used only by recognized profiles, except [updating a customer account's basic information](#update-a-customer-accounts-basic-information), which can be used for anonymous profile too.


<div class="admonition admonition-important"><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 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

You must synchronize your data with Synerise backend after deleting an account on your side.

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


## Profile management methods

### Get a customer account details
You can use this method to retrieve all information about a customer from Synerise. You can then present that information in the app.

| OS           | Method                                                                                                                         |
|--------------|--------------------------------------------------------------------------------------------------------------------------------|
| Android      | [Client.getAccount()](/developers/mobile-sdk/method-reference/android/client-account#get-customer-account-information)               |
| iOS          | [Client.getAccount(success:failure:)](/developers/mobile-sdk/method-reference/ios/client-account#get-customer-account-information)   |
| React Native | [Synerise.Client.getAccount(onSuccess, onError)](/developers/mobile-sdk/method-reference/react-native/client-account#get-customer-account-information) |
| Flutter | [Synerise.client.getAccount()](/developers/mobile-sdk/method-reference/flutter/client-account#get-customer-account-information)       |

### Update a customer account's basic information
You can use this method to let customers update their own basic information, except for updating identifiers: `uuid`, `customId`, `email`.

| OS           | Method                                                                                                                                     |
|--------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| Android      | [Client.updateAccountBasicInformation(accountInformation)](/developers/mobile-sdk/method-reference/android/client-account#update-customer-account-basic-information)                     |
| iOS          | [Client.updateAccountBasicInformation(context:success:failure:)](/developers/mobile-sdk/method-reference/ios/client-account#update-customer-account-basic-information) |
| React Native | [Synerise.Client.updateAccountBasicInformation(context, onSuccess, onError)](/developers/mobile-sdk/method-reference/react-native/client-account#update-customer-account-basic-information)       |
| Flutter | [Synerise.client.updateAccountBasicInformation(context)](/developers/mobile-sdk/method-reference/flutter/client-account#update-customer-account-basic-information)       |


<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">

This method can be used by recognized and anonymous profiles.

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


### Update a customer account's details
You can use this method to let customers update their own information, including updating identifiers: `uuid`, `customId`, `email`.

| OS           | Method                                                                                                                                     |
|--------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| Android      | [Client.updateAccount(accountInformation)](/developers/mobile-sdk/method-reference/android/client-account#update-customer-account-information)                     |
| iOS          | [Client.updateAccount(context:success:failure:)](/developers/mobile-sdk/method-reference/ios/client-account#update-customer-account-information) |
| React Native | [Synerise.Client.updateAccount(context, onSuccess, onError)](/developers/mobile-sdk/method-reference/react-native/client-account#update-customer-account-information)       |
| Flutter | [Synerise.client.updateAccount(context)](/developers/mobile-sdk/method-reference/flutter/client-account#update-customer-account-information)       |


<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">

This method can be used only by recognized profiles.

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


### Change a customer's password

Separately from customer information updates, a customer may want to change their password. The default password policy is:
- Minimum 6 characters
- At least one uppercase letter
- At least one lowercase letter
- At least one digit
- At least one non-alphanumeric character

Passwords are PBKDF2-encrypted.


<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">

You can define the password policy in the Synerise platform (`app.synerise.com`). You can find more information about it [here](/docs/settings/tool/iam-for-apps/synerise#password-policy).

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


This method allows a customer to change their password, but they must provide their current password first.

| OS           | Method                                                                                                                                             |
|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
| Android      | [Client.changePassword(oldPassword, password)](/developers/mobile-sdk/method-reference/android/client-account#change-customers-account-password)                        |
| iOS          | [Client.changePassword(password:oldPassword:success:failure:)](/developers/mobile-sdk/method-reference/ios/client-account#change-customers-account-password) |
| React Native | [Synerise.Client.changePassword()](/developers/mobile-sdk/method-reference/react-native/client-account#change-customers-account-password) |
| Flutter | [Synerise.client.changePassword(oldPassword, password)](/developers/mobile-sdk/method-reference/flutter/client-account#change-customers-account-password)       |

### Request and confirm email change

These methods allow customers request and confirm the change of their email address.

| OS           | Method                                                                                                                                                                                                                                                                                                                                                                       |
|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Android      | - [Client.requestEmailChange(email, password, externalToken, authId)](/developers/mobile-sdk/method-reference/android/client-account#request-email-change-for-customer-account) <br> - [Client.confirmEmailChange(token, newsletterAgreement)](/developers/mobile-sdk/method-reference/android/client-account#confirm-email-change-for-customer-account)                                                       |
| iOS          | - [Client.requestEmailChange(email:password:externalToken:authID:success:failure:)](/developers/mobile-sdk/method-reference/ios/client-account#request-email-change-for-customer-account) <br> - [Client.confirmEmailChange(token:success:failure:)](/developers/mobile-sdk/method-reference/ios/client-account#confirm-email-change-for-customer-account)                                                        |
| React Native | - [Synerise.Client.requestEmailChange(email, password, onSuccess, onError)](/developers/mobile-sdk/method-reference/react-native/client-account#request-email-change-for-customer-account) <br> - [Synerise.Client.confirmEmailChange(token, newsletterAgreement, onSuccess, onError)](/developers/mobile-sdk/method-reference/react-native/client-account#confirm-email-change-for-customer-account) |
| Flutter | n/a |

### Request and confirm phone number change

These methods allow customers to request and confirm the change of their phone number.

| OS           | Method                                                                                                                                                                                                                                                                                                                                                           |
|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Android      | - [requestPhoneUpdate(phone:success:failure:)](/developers/mobile-sdk/method-reference/android/client-account#request-phone-update-on-customer-account) <br> - [Client.confirmPhoneUpdate(phone, confirmationCode, smsAgreement)](/developers/mobile-sdk/method-reference/android/client-account#confirm-phone-update-on-customer-account)                                             |
| iOS          | - [Client.requestPhoneUpdate(phone:success:failure:)](/developers/mobile-sdk/method-reference/ios/client-account#request-phone-update-on-customer-account) <br> - [Client.confirmPhoneUpdate(phone:confirmationCode:success:failure:)](/developers/mobile-sdk/method-reference/ios/client-account#confirm-phone-update-on-customer-account)                                                             |
| React Native | - [Synerise.Client.requestPhoneUpdate(phone, onSuccess, onError)](/developers/mobile-sdk/method-reference/react-native/client-account#request-phone-update-on-customer-account) <br> - [Synerise.Client.confirmPhoneUpdate(phone, confirmationCode, smsAgreement, onSuccess, onError)](/developers/mobile-sdk/method-reference/react-native/client-account#confirm-phone-update-on-customer-account) |
| Flutter | n/a |

### Remove a customer

To allow a customer to remove their account, implement the following method:

| OS           | Method                                                                                                                                                                                                                              |
|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Android      | [Client.deleteAccount(clientAuthFactor, clientIdentityProvider, authId)](/developers/mobile-sdk/method-reference/android/client-account#delete-customer-account-by-identity-provider)                                                                |
| iOS          | [Client.deleteAccount(clientAuthFactor:clientIdentityProvider:authID:success:failure:)](/developers/mobile-sdk/method-reference/ios/client-account#delete-customer-account-by-identity-provider)                                          |
| React Native | [Synerise.Client.deleteAccountByIdentityProvider(clientAuthFactor, clientIdentityProvider, authID, onSuccess, onError)](/developers/mobile-sdk/method-reference/react-native/client-account#delete-customer-account-by-identity-provider) |
| Flutter | [Synerise.client.deleteAccount(clientAuthFactor, identityProvider, authId)](/developers/mobile-sdk/method-reference/flutter/client-account#delete-customer-account)       |
