
## 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:**  
Headers/SNRClient.h
  
**Related To:**  
[ClientAccountInformation](/developers/mobile-sdk/class-reference/ios/client#clientaccountinformation)
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-984">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-984-0" data-tab-group="tabgrp-984" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-984-1" data-tab-group="tabgrp-984">Objective-C</button></div>

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

```Swift
static func getAccount(success: ((ClientAccountInformation) -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)getAccountWithSuccess:(nonnull void (^)(SNRClientAccountInformation *accountInformation))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **success** | ((ClientAccountInformation) -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
    
**Return Value:**  
No value is returned.
  
**Example:**

<div class="content-tabs code-tabs" data-tab-group="tabgrp-985">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-985-0" data-tab-group="tabgrp-985" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-985-1" data-tab-group="tabgrp-985">Objective-C</button></div>

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

```Swift
Client.getAccount(success: { (clientAccountInformation) in
  // success
}) { (error) in
  // failure
}
```

</div>

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

```Objective-C
[SNRClient getAccountWithSuccess:^(SNRClientAccountInformation *accountInformation) {
  // success
} failure:^(SNRApiError *error) {
  // failure
}];
```

</div>
</div>


## Get customer's events
---
This method retrieves events for an authenticated customer.
  
This method requires customer authentication.
**Declared In:**  
Headers/SNRClient.h
  
**Related To:**  
[ClientEventsApiQuery](/developers/mobile-sdk/class-reference/ios/client#clienteventsapiquery)
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-986">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-986-0" data-tab-group="tabgrp-986" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-986-1" data-tab-group="tabgrp-986">Objective-C</button></div>

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

```Swift
static func getEvents(apiQuery: ClientEventsApiQuery, success: (([ClientEventData]) -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)getEventsWithApiQuery:(nonnull SNRClientEventsApiQuery *)apiQuery success:(nonnull void (^)(NSArray<SNRClientEventData *> *events))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **apiQuery** | [ClientEventsApiQuery](/developers/mobile-sdk/class-reference/ios/client#clienteventsapiquery) | yes | - | Object responsible for storing all query parameters |
| **success** | (([ClientEventData]) -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  
**Return Value:**  
No value is returned.

## 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:**  
Headers/SNRClient.h
  
**Related To:**  
[ClientUpdateAccountBasicInformationContext](/developers/mobile-sdk/class-reference/ios/client#clientupdateaccountbasicinformationcontext)
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-987">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-987-0" data-tab-group="tabgrp-987" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-987-1" data-tab-group="tabgrp-987">Objective-C</button></div>

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

```Swift
static func updateAccountBasicInformation(context: ClientUpdateAccountBasicInformationContext, success: (() -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)updateAccountBasicInformation:(nonnull SNRClientUpdateAccountBasicInformationContext *)context success:(nonnull void (^)(void))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **context** | [ClientUpdateAccountBasicInformationContext](/developers/mobile-sdk/class-reference/ios/client#clientupdateaccountbasicinformationcontext) | yes | - | Object with customer's basic information optional data |
| **success** | (() -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  

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

Since version 5.0.0, the **success** closure does NOT contain the `isSuccess` parameter.

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

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

## 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:**  
Headers/SNRClient.h
  
**Related To:**  
[ClientUpdateAccountContext](/developers/mobile-sdk/class-reference/ios/client#clientupdateaccountcontext)
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-988">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-988-0" data-tab-group="tabgrp-988" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-988-1" data-tab-group="tabgrp-988">Objective-C</button></div>

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

```Swift
static func updateAccount(context: ClientUpdateAccountContext, success: (() -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)updateAccount:(nonnull SNRClientUpdateAccountContext *)context success:(nonnull void (^)(void))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **context** | [ClientUpdateAccountContext](/developers/mobile-sdk/class-reference/ios/client#clientupdateaccountcontext) | yes | - | Object with customer's email, password, and other optional data |
| **success** | (() -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  

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

Since version 5.0.0, the **success** closure does NOT contain the `isSuccess` parameter.

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

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

<div class="content-tabs code-tabs" data-tab-group="tabgrp-989">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-989-0" data-tab-group="tabgrp-989" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-989-1" data-tab-group="tabgrp-989">Objective-C</button></div>

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

```Swift
let agreements: ClientAgreements = ClientAgreements()
agreements.email = true
agreements.sms = true
agreements.push = true
agreements.bluetooth = true
agreements.rfid = true
agreements.wifi = true
let context: ClientUpdateAccountContext = ClientUpdateAccountContext()
context.email = "hello@synerise.com"
context.phone = "123-456-789"
context.customId = "CUSTOM_ID"
context.uuid = "UUID"
context.firstName = "FIRST_NAME"
context.lastName = "LAST_NAME"
context.displayName = "DISPLAY_NAME"
context.sex = .male
context.company = "Synerise"
context.address = "Lubostroń 1"
context.city = "Kraków"
context.province = "Małopolskie"
context.zipCode = "30-383"
context.countryCode = "+48"
context.birthDate = "01-01-2019"
context.avatarUrl = "http://www.synerise.com"
context.agreements = agreements
context.attributes = ["attribute1": "value1", "attribute2": "value2"]
context.tags = ["tag1", "tag2" "tag3"]
Client.updateAccount(context: context, success: {
  // success
}) { (error) in
  // failure
}
```

</div>

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

```Objective-C
SNRClientAgreements *agreements = [SNRClientAgreements new];
agreements.email = true;
agreements.sms = true;
agreements.push = true;
agreements.bluetooth = true;
agreements.rfid = true;
agreements.wifi = true;
SNRClientUpdateAccountContext *context = [SNRClientUpdateAccountContext new];
context.email = @"hello@synerise.com"
context.phone = @"123-456-789";
context.customId = @"CUSTOM_ID"
context.firstName = @"FIRST_NAME";
context.lastName = @"LAST_NAME";
context.displayName = @"DISPLAY_NAME"
context.sex = SNRClientSexMale;
context.company = @"Synerise";
context.address = @"Lubostroń 1";
context.city = @"Kraków";
context.province = @"Małopolskie";
context.zipCode = @"30-383";
context.countryCode = @"+48";
context.birthDate = @"01-01-2019"
context.avatarUrl = @"http://www.synerise.com"
context.agreements = agreements;
context.attributes = @{@"attribute": @"value"};
context.tags = @[@"tag1", @"tag2" @"tag3"];
[SNRClient updateAccount:context success:^() {
  // success
} failure:^(NSError * _Nonnull error) {
  // failure
}];
```

</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:**  
Headers/SNRClient.h
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)  
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-990">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-990-0" data-tab-group="tabgrp-990" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-990-1" data-tab-group="tabgrp-990">Objective-C</button></div>

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

```Swift
static func changePassword(password: String, oldPassword: String, success: (() -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)changePassword:(nonnull NSString *)password oldPassword:(nonnull NSString *)oldPassword success:(nonnull void (^)(void))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **password** | String | yes | - | Customer's new password |
| **oldPassword** | String | yes | - | Customer's old password |
| **success** | (() -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  

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

Since version 5.0.0, the **success** closure does NOT contain the `isSuccess` parameter.

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


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

<div class="content-tabs code-tabs" data-tab-group="tabgrp-991">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-991-0" data-tab-group="tabgrp-991" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-991-1" data-tab-group="tabgrp-991">Objective-C</button></div>

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

```Swift
let newPassword: String = "NEW_PASSWORD"
let oldPassword: String = "OLD_PASSWORD"
Client.changePassword(password: newPassword, oldPassword: oldPassword, success: {
  // success
}, failure: { (error) in
  // failure
})
```

</div>

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

```Objective-C
NSString *newPassword = @"NEW_PASSWORD";
NSString *oldPassword = @"OLD_PASSWORD";
[SNRClient changePassword:newPassword oldPassword:oldPassword success:^() {
  // success
} failure:^(SNRApiError *error) {
  // failure
}];
```

</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:**  
Headers/SNRClient.h
  
**Related To:**  
[ClientPasswordResetRequestContext](/developers/mobile-sdk/class-reference/ios/client#clientpasswordresetrequestcontext)
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-992">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-992-0" data-tab-group="tabgrp-992" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-992-1" data-tab-group="tabgrp-992">Objective-C</button></div>

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

```Swift
static func requestPasswordReset(context: ClientPasswordResetRequestContext, success: (() -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)requestPasswordReset:(nonnull SNRClientPasswordResetRequestContext *)context success:(nonnull void (^)(void))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **context** | [ClientPasswordResetRequestContext](/developers/mobile-sdk/class-reference/ios/client#clientpasswordresetrequestcontext) | yes | - | Object with the customer's email |
| **success** | (() -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  

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

Since version 5.0.0, the **success** closure does NOT contain the `isSuccess` parameter.

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

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

<div class="content-tabs code-tabs" data-tab-group="tabgrp-993">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-993-0" data-tab-group="tabgrp-993" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-993-1" data-tab-group="tabgrp-993">Objective-C</button></div>

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

```Swift
let email: String = "EMAIL"
let context: ClientPasswordResetRequestContext = ClientPasswordResetRequestContext(email: email)
Client.requestPasswordReset(context: context, success: {
  // success
}, failure: { (error) in
  // failure
})
```

</div>

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

```Objective-C
NSString *email = @"EMAIL";
SNRClientPasswordResetRequestContext *context = [SNRClientPasswordResetRequestContext alloc] initWithEmail:email];
[SNRClient requestPasswordReset:context success:^() {
  // success
} failure:^(SNRApiError *error) {
  // failure
}];
```

</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:**  
Headers/SNRClient.h
  
**Related To:**  
[ClientPasswordResetConfirmationContext](/developers/mobile-sdk/class-reference/ios/client#clientpasswordresetconfirmationcontext)
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-994">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-994-0" data-tab-group="tabgrp-994" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-994-1" data-tab-group="tabgrp-994">Objective-C</button></div>

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

```Swift
static func confirmResetPassword(context: ClientPasswordResetConfirmationContext, success: (() -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)confirmResetPassword:(nonnull SNRClientPasswordResetConfirmationContext *)context success:(nonnull void (^)(void))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **context** | [ClientPasswordResetConfirmationContext](/developers/mobile-sdk/class-reference/ios/client#clientpasswordresetconfirmationcontext) | yes | - | Object with customer's password and token |
| **success** | (() -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  

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

Since version 5.0.0, the **success** closure does NOT contain the `isSuccess` parameter.

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

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

<div class="content-tabs code-tabs" data-tab-group="tabgrp-995">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-995-0" data-tab-group="tabgrp-995" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-995-1" data-tab-group="tabgrp-995">Objective-C</button></div>

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

```Swift
let password: String = "PASSWORD"
let token: String = "TOKEN"
let context: ClientPasswordResetConfirmationContext = ClientPasswordResetConfirmationContext(password: password, token: token)
Client.confirmResetPassword(context: context, success: {
  // success
}, failure: { (error) in
  // failure
})
```

</div>

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

```Objective-C
NSString *password = @"PASSWORD"
NSString *token = @"TOKEN"
SNRClientPasswordResetConfirmationContext *context = [[SNRClientPasswordResetConfirmationContext alloc] initWithPassword:password andToken:token];
[SNRClient confirmResetPassword:context success:^() {
  // success
} failure:^(NSError * _Nonnull error) {
  // failure
}];
```

</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:**  
Headers/SNRClient.h
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-996">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-996-0" data-tab-group="tabgrp-996" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-996-1" data-tab-group="tabgrp-996">Objective-C</button></div>

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

```Swift
static func requestEmailChange(email: String, password: String, externalToken: AnyObject?, authID: String?, success: (() -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)requestEmailChange:(nonnull NSString *)email password:(NSString *)password externalToken:(id)externalToken authID:(NSString *)authID success:(nonnull void (^)(void))success failure:(nonnull void (^)(SNRApiError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **email** | String | yes | - | Customer's new email |
| **password** | String | yes | - | Customer's password |
| **externalToken** | AnyObject | no | - | Customer's token (if OAuth, Facebook, and so on) |
| **authID** | String | no | - | Optional identifier of authorization |
| **success** | (() -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  

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

Since version 5.0.0, the **success** closure does NOT contain the `isSuccess` parameter.

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

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

## 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:**  
Headers/SNRClient.h

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

<div class="content-tabs code-tabs" data-tab-group="tabgrp-997">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-997-0" data-tab-group="tabgrp-997" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-997-1" data-tab-group="tabgrp-997">Objective-C</button></div>

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

```Swift
static func confirmEmailChange(token: String, newsletterAgreement: Bool, success: (() -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)confirmEmailChange:(nonnull NSString *)token newsletterAgreement:(BOOL)newsletterAgreement success:(nonnull void (^)(void))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **token** | String | yes | - | Customer's token provided in an email |
| **newsletterAgreement** | Bool | yes | - | Agreement for sending newsletters to the provided email |
| **success** | (() -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  

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

Since version 5.0.0, the **success** closure does NOT contain the `isSuccess` parameter.

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


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

<div class="content-tabs code-tabs" data-tab-group="tabgrp-998">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-998-0" data-tab-group="tabgrp-998" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-998-1" data-tab-group="tabgrp-998">Objective-C</button></div>

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

```Swift
let token: String = "TOKEN"
Client.confirmEmailChange(token: token, success: {
  // success
}) { (error) in
  // failure
}
```

</div>

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

```Objective-C
NSString *token = @"TOKEN";
[SNRClient confirmEmailChange:token newsletterAgreement:YES success:^() {
  // success
} failure:^(SNRApiError *error) {
  // failure
}];
```

</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:**  
Headers/SNRClient.h

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

<div class="content-tabs code-tabs" data-tab-group="tabgrp-999">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-999-0" data-tab-group="tabgrp-999" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-999-1" data-tab-group="tabgrp-999">Objective-C</button></div>

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

```Swift
static func requestPhoneUpdate(phone: String, success: (() -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)requestPhoneUpdate:(nonnull NSString *)phone success:(nonnull void (^)(void))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **phone** | String | yes | - | Customer's new phone number |
| **success** | (() -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  

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

Since version 5.0.0, the **success** closure does NOT contain the `isSuccess` parameter.

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

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

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1000">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1000-0" data-tab-group="tabgrp-1000" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1000-1" data-tab-group="tabgrp-1000">Objective-C</button></div>

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

```Swift
let phone: String = "123-456-789"
Client.requestPhoneUpdate(phone: phone, success: {
  // success
}, failure: { (error) in
  // failure
})
```

</div>

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

```Objective-C
NSString *phone = @"123-456-789";
[SNRClient requestPhoneUpdate:phone success:^() {
  // success
} failure:^(SNRApiError *error) {
  // failure 
}];
```

</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:**  
Headers/SNRClient.h
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1001">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1001-0" data-tab-group="tabgrp-1001" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1001-1" data-tab-group="tabgrp-1001">Objective-C</button></div>

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

```Swift
static func confirmPhoneUpdate(phone: String, confirmationCode: String, smsAgreement: Bool, success: (() -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)confirmPhoneUpdate:(nonnull NSString *)phone confirmationCode:(nonnull NSString *)confirmationCode smsAgreement:(BOOL)smsAgreement success:(nonnull void (^)(void))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | 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 |
| **success** | (() -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  

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

Since version 5.0.0, the **success** closure does NOT contain the `isSuccess` parameter.

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


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

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1002">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1002-0" data-tab-group="tabgrp-1002" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1002-1" data-tab-group="tabgrp-1002">Objective-C</button></div>

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

```Swift
let phone: String = "123-456-789"
let confirmationCode: String = "CONFIRMATION_CODE"
Client.confirmPhoneUpdate(phone: phone, confirmationCode: confirmationCode, smsAgreement: true, success: {
  // success
}) { (error) in
  // failure
}
```

</div>

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

```Objective-C
NSString *phone = @"123-456-789";
NSString *confirmationCode = @"CONFIRMATION_CODE";
[SNRClient confirmPhoneUpdate:phone confirmationCode:confirmationCode smsAgreement:YES success:^() {
  // success
} failure:^(SNRApiError *error) {
  // failure
}];
```

</div>
</div>


## Delete customer account by Identity Provider
---
This method deletes a customer's account.
  
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">

HTTP 403 status code is returned if the provided password or 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_CLIENT_DELETE`, `SAUTH_OAUTH_CLIENT_DELETE`, `SAUTH_FACEBOOK_CLIENT_DELETE`, `SAUTH_APPLE_CLIENT_DELETE` permissions from the **Client** group.

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

**Declared In:**  
Headers/SNRClient.h

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

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1003">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1003-0" data-tab-group="tabgrp-1003" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1003-1" data-tab-group="tabgrp-1003">Objective-C</button></div>

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

```Swift
static func deleteAccount(clientAuthFactor: String, clientIdentityProvider: ClientIdentityProvider, authID: String, success: (() -> Void), failure: ((ApiError) -> Void))
```

</div>

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

```Objective-C
+ (void)deleteAccount:(nonnull id)clientAuthFactor
clientIdentityProvider:(SNRClientIdentityProvider)clientIdentityProvider authID:(nullable NSString *)authID success:(nonnull void (^)(void))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **clientAuthFactor** | String | yes | - | Customer's token from the identity provider |
| **clientIdentityProvider** | [ClientIdentityProvider](/developers/mobile-sdk/class-reference/ios/client#clientidentityprovider) | yes | - | Customer's identity provider |
| **authID** | String | no | - | Optional identifier of authorization |
| **success** | (() -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  

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

Since version 5.0.0, the **success** closure does NOT contain the `isSuccess` parameter.

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

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

## Removed methods

### <del>Request email change for customer account by Facebook</del> {#request-email-change-for-customer-account-by-facebook}
---
This method requests a customer's email change by Facebook.
  
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_CHANGE_EMAIL_CLIENT_UPDATE` permission from the **Client** group.

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

**Replaced By:**  
[Request email change for customer account](/developers/mobile-sdk/method-reference/ios/client-account#request-email-change-for-customer-account)

**Declared In:**  
Headers/SNRClient.h
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1004">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1004-0" data-tab-group="tabgrp-1004" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1004-1" data-tab-group="tabgrp-1004">Objective-C</button></div>

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

```Swift
static func requestEmailChangeByFacebook(email: String, success: ((Bool) -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)requestEmailChangeByFacebook:(nonnull NSString *)email success:(nonnull void (^)(BOOL isSuccess))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **email** | String | yes | - | Customer's new email |
| **success** | ((Bool) -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  
**Return Value:**  
No value is returned.

**Example:**

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1005">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1005-0" data-tab-group="tabgrp-1005" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1005-1" data-tab-group="tabgrp-1005">Objective-C</button></div>

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

```Swift
let email: String = "EMAIL"
Client.requestEmailChange(email: email, success: { success in
  // success
}) { (error) in
  // failure
}
```

</div>

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

```Objective-C
NSString *email = @"EMAIL";
[SNRClient requestEmailChangeByFacebook:email success:^(BOOL isSuccess) {
  // success
} failure:^(SNRApiError *error) {
  // failure
}];
```

</div>
</div>


### <del>Delete customer account</del> {#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>

**Replaced By:**  
[Delete customer account by Identity Provider](/developers/mobile-sdk/method-reference/ios/client-account#delete-customer-account-by-identity-provider)

**Declared In:**  
Headers/SNRClient.h
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1006">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1006-0" data-tab-group="tabgrp-1006" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1006-1" data-tab-group="tabgrp-1006">Objective-C</button></div>

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

```Swift
static func deleteAccount(password: String, success: ((Bool) -> Void), failure: ((ApiError) -> Void))
```

</div>

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

```Objective-C
+ (void)deleteAccount:(nonnull NSString *)password success:(nonnull void (^)(BOOL isSuccess))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **password** | String | yes | - | Customer's password |
| **success** | ((Bool) -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  
**Return Value:**  
No value is returned.
  
**Example:**

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1007">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1007-0" data-tab-group="tabgrp-1007" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1007-1" data-tab-group="tabgrp-1007">Objective-C</button></div>

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

```Swift
let password: String = "PASSWORD"
Client.deleteAccount(password: password, success: { (success) in
  // success
}) { (error) in
  // failure
}
```

</div>

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

```Objective-C
NSString *password = "PASSWORD";
[SNRClient deleteAccount:password success:^(BOOL isSuccess) {
  // success
} failure:^(SNRApiError *error) {
  // failure
}];
```

</div>
</div>


### <del>Delete customer account by OAuth</del> {#delete-customer-account-by-oauth}
---
This method deletes a customer's account by OAuth.
  
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">

The API key must have the `SAUTH_CLIENT_DELETE` and `SAUTH_OAUTH_CLIENT_DELETE` permissions from the **Client** group.

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

**Replaced By:**  
[Delete customer account by Identity Provider](/developers/mobile-sdk/method-reference/ios/client-account#delete-customer-account-by-identity-provider)

**Declared In:**  
Headers/SNRClient.h
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1008">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1008-0" data-tab-group="tabgrp-1008" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1008-1" data-tab-group="tabgrp-1008">Objective-C</button></div>

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

```Swift
static func deleteAccountByOAuth(accessToken: String, success: ((Bool) -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)deleteAccountByOAuth:(nonnull NSString *)accessToken success:(nonnull void (^)(BOOL isSuccess))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **accessToken** | String | yes | - | OAuth Access Token |
| **success** | ((Bool) -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  
**Return Value:**  
No value is returned.

### <del>Delete customer account by Facebook</del> {#delete-customer-account-by-facebook}
---
This method deletes a customer's account by Facebook.
  
This method requires customer authentication.

| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 3.3.8 | 3.3.0 | 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">

The API key must have the `SAUTH_CLIENT_DELETE` and `SAUTH_FACEBOOK_CLIENT_DELETE` permissions from the **Client** group.

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

**Replaced By:**  
[Delete customer account by Identity Provider](/developers/mobile-sdk/method-reference/ios/client-account#delete-customer-account-by-identity-provider)

**Declared In:**  
Headers/SNRClient.h
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1009">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1009-0" data-tab-group="tabgrp-1009" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1009-1" data-tab-group="tabgrp-1009">Objective-C</button></div>

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

```Swift
static func deleteAccountByFacebook(facebookToken: String, success: ((Bool) -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)deleteAccountByFacebook:(nonnull NSString *)facebookToken success:(nonnull void (^)(BOOL isSuccess))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **facebookToken** | String | yes | - | Token from an active Facebook session |
| **success** | ((Bool) -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  
**Return Value:**  
No value is returned.
  
**Example:**

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1010">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1010-0" data-tab-group="tabgrp-1010" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1010-1" data-tab-group="tabgrp-1010">Objective-C</button></div>

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

```Swift
guard let facebookToken = FBSDKAccessToken.current()?.tokenString else {
    return
}
Client.deleteAccountByFacebookToken(facebookToken: facebookToken, success: { (success) in
  // success
}, failure: { (error) in
  // failure
})
```

</div>

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

```Objective-C
NSString *facebookToken =  [FBSDKAccessToken currentAccessToken].tokenString;
[SNRClient deleteAccountByFacebook:facebookToken success:^(BOOL isSuccess) {
  // success
} failure:^(SNRApiError *error) {
  // failure
}];
```

</div>
</div>


### <del>Delete customer account by Apple Sign In</del> {#delete-customer-account-by-apple-sign-in}
---
This method deletes a customer's account information by Sign In With Apple.
  
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 | n/a | 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">

The API key must have the `SAUTH_CLIENT_DELETE` and `SAUTH_APPLE_CLIENT_DELETE` permissions from the **Client** group.

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

**Replaced By:**  
[Delete customer account by Identity Provider](/developers/mobile-sdk/method-reference/ios/client-account#delete-customer-account-by-identity-provider)

**Declared In:**  
Headers/SNRClient.h
  
**Class:**  
[Client](/developers/mobile-sdk/class-reference/ios/modules#client)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-1011">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-1011-0" data-tab-group="tabgrp-1011" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-1011-1" data-tab-group="tabgrp-1011">Objective-C</button></div>

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

```Swift
static func deleteAccountByAppleSignIn(identityToken: Data, success: ((Bool) -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)deleteAccountByAppleSignIn:(nonnull NSData *)identityToken success:(nonnull void (^)(BOOL isSuccess))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **identityToken** | Data | yes | - |  Token from Sign In With Apple session |
| **success** | ((Bool) -> Void) | yes | - | Closure/Block to be executed when the operation is completed successfully |
| **failure** | (([ApiError](/developers/mobile-sdk/class-reference/ios/miscellaneous#snrapierror)) -> Void) | yes | - | Closure/Block to be executed when the operation is completed with an error |
  
**Return Value:**  
No value is returned.