
## Refresh customer token
---
This method refreshes the customer’s current token.
  

<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 an error if the token has expired and cannot be refreshed.

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

**Method name:**  
Client.refreshToken()
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-817">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-817-0" data-tab-group="tabgrp-817" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-817-1" data-tab-group="tabgrp-817">Kotlin</button></div>

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

```Java
public static IApiCall refreshToken()
```

</div>

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

```Kotlin
fun refreshToken():IApiCall
```

</div>
</div>


**Parameters:**  
No parameters required.

**Return Value:**  
[IApiCall](/developers/mobile-sdk/method-reference/android/public-interfaces#iapicall) object to execute the request.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-818">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-818-0" data-tab-group="tabgrp-818" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-818-1" data-tab-group="tabgrp-818">Kotlin</button></div>

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

```Java
boolean success = Client.refreshToken();
```

</div>

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

```Kotlin
var success = Client.refreshToken()
```

</div>
</div>


## Retrieve customer token
---
This method retrieves the customer’s current, active token.
  

<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 an error if the token has expired and cannot be retrieved.

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

**Method name:**  
Client.retrieveToken()


<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 replaces `Client.getToken()`.

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

  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-819">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-819-0" data-tab-group="tabgrp-819" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-819-1" data-tab-group="tabgrp-819">Kotlin</button></div>

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

```Java
public static IDataApiCall<Token> retrieveToken()
```

</div>

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

```Kotlin
fun retrieveToken():IDataApiCall<Token>
```

</div>
</div>


**Parameters:**  
No parameters required.

**Return Value:**  
[IDataApiCall](/developers/mobile-sdk/method-reference/android/public-interfaces#idataapicall)<[Token](/developers/mobile-sdk/class-reference/android/client#token)> object to execute the request.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-820">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-820-0" data-tab-group="tabgrp-820" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-820-1" data-tab-group="tabgrp-820">Kotlin</button></div>

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

```Java
IDataApiCall retrieveTokenCall = Client.retrieveToken();
        retrieveTokenCall.execute(success -> onSuccess(), this::onFailure);
```

</div>

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

```Kotlin
val retrieveTokenCall = Client.retrieveToken()
retrieveTokenCall.execute({ success-> onSuccess() }, ({ this.onFailure() }))
```

</div>
</div>


## Get current customer UUID
---
This method retrieves the customer’s current UUID.
**Method name:**  
Client.getUuid()
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-821">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-821-0" data-tab-group="tabgrp-821" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-821-1" data-tab-group="tabgrp-821">Kotlin</button></div>

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

```Java
public static String getUuid()
```

</div>

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

```Kotlin
fun getUuid():String
```

</div>
</div>


**Parameters:**  
No parameters required.

**Return Value:**  
Customer's UUID as a string.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-822">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-822-0" data-tab-group="tabgrp-822" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-822-1" data-tab-group="tabgrp-822">Kotlin</button></div>

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

```Java
Client.getUuid()
```

</div>

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

```Kotlin
Client.getUuid()
```

</div>
</div>


## Get customer UUID for use in authentication
---
This method retrieves the current UUID or generates a new one from a seed.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 4.15.0 | 5.15.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">

This operation doesn't affect the customer session in the SDK.

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

**Method name:**  
Client.getUuidForAuthentication()
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-823">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-823-0" data-tab-group="tabgrp-823" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-823-1" data-tab-group="tabgrp-823">Kotlin</button></div>

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

```Java
public static String getUuidForAuthentication(@NonNull String authId)
```

</div>

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

```Kotlin
fun getUuidForAuthentication(
        authId: String
    ): String
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **authId** | String | yes | --- | Seed for UUID generation |

**Return Value:**  
The UUID for use in authentication as a string.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-824">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-824-0" data-tab-group="tabgrp-824" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-824-1" data-tab-group="tabgrp-824">Kotlin</button></div>

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

```Java
Client.getUuidForAuthentication(authId)
```

</div>

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

```Kotlin
Client.getUuidForAuthentication(authId)
```

</div>
</div>


## Regenerate customer
---
This method regenerates the UUID and clears the authentication token, login session, custom email, and custom identifier.
  
This operation works only if the customer is anonymous.

This operation clears the authentication token, login (if applicable), custom email, and custom identifier.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 3.3.10 | 3.3.5 | 0.9.0 | 0.7.0 |
**Method name:**  
Client.regenerateUuid()
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-825">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-825-0" data-tab-group="tabgrp-825" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-825-1" data-tab-group="tabgrp-825">Kotlin</button></div>

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

```Java
public static boolean regenerateUuid()
```

</div>

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

```Kotlin
fun regenerateUuid():Boolean
```

</div>
</div>


**Parameters:**  
No parameters required.

**Return Value:**  
Returns true if the current Customer is anonymous and the operation succeeds.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-826">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-826-0" data-tab-group="tabgrp-826" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-826-1" data-tab-group="tabgrp-826">Kotlin</button></div>

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

```Java
boolean success = Client.regenerateUuid();
```

</div>

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

```Kotlin
var success = Client.regenerateUuid()
```

</div>
</div>


## Regenerate customer with identifier
---
This method regenerates the UUID and clears the authentication token, login session, custom email, and custom identifier.
  
This operation works only if the customer is anonymous.
  
This operation clears the authentication token, login (if applicable), custom email, and custom identifier
  
The optional `clientIdentifier` parameter is a seed for UUID generation.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 3.6.5 | 3.6.4 | 0.9.10 | 0.7.2 |
**Method name:**  
Client.regenerateUuid(clientIdentifier)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-827">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-827-0" data-tab-group="tabgrp-827" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-827-1" data-tab-group="tabgrp-827">Kotlin</button></div>

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

```Java
public static boolean regenerateUuid(clientIdentifier)
```

</div>

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

```Kotlin
fun regenerateUuid(clientIdentifier):Boolean
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Description |
| --- | --- | --- | --- |
| **clientIdentifier** | String | no | Seed for UUID generation |


<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 **clientIdentifier** parameter is used for decreasing the number of UUID refreshes, so it must be unique for every customer.

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

  
**Return Value:**  
Returns true if the current Client is anonymous and the operation succeeds.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-828">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-828-0" data-tab-group="tabgrp-828" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-828-1" data-tab-group="tabgrp-828">Kotlin</button></div>

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

```Java
boolean success = Client.regenerateUuid(clientIdentifier);
```

</div>

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

```Kotlin
var success = Client.regenerateUuid(clientIdentifier)
```

</div>
</div>


## Destroy current session
---
This method destroys the session completely.

This method clears all session data (both client and anonymous) and removes cached data. Then, it regenerates the UUID and creates the new anonymous session.
**Method name:**  
Client.destroySession()
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-829">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-829-0" data-tab-group="tabgrp-829" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-829-1" data-tab-group="tabgrp-829">Kotlin</button></div>

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

```Java
public static void destroySession()
```

</div>

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

```Kotlin
fun destroySession()
```

</div>
</div>


**Parameters:**  
No parameters required.


**Return Value:**  
Method is void type.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-830">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-830-0" data-tab-group="tabgrp-830" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-830-1" data-tab-group="tabgrp-830">Kotlin</button></div>

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

```Java
Client.destroySession();
```

</div>

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

```Kotlin
Client.destroySession()
```

</div>
</div>

