
## Promotions
---
### Get all promotions of a customer
---
This method retrieves all available promotions that are defined for a customer.


<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 `PROMOTIONS_DETAILS_FOR_CLIENT_READ` permission from the **Client** group.

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

**Method name:**  
Promotions.getPromotions(statuses, types, page)  
Promotions.getPromotions(statuses, types, limit, page)  
Promotions.getPromotions(statuses, types, page, includeMeta)  
Promotions.getPromotions(promotionsApiQuery)  
  

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

Methods using arguments are now deprecated.

Only Promotions.getPromotions(promotionsApiQuery) is valid.

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


**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-904">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-904-0" data-tab-group="tabgrp-904" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-904-1" data-tab-group="tabgrp-904">kotlin</button></div>

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

```java
public static IDataApiCall<PromotionResponse> getPromotions(@Nullable List<PromotionStatus> statuses,
                                                                @Nullable List<PromotionType> types, int page)
public static IDataApiCall<PromotionResponse> getPromotions(@Nullable List<PromotionStatus> statuses,
                                                                @Nullable List<PromotionType> types, int limit, int page)
public static IDataApiCall<PromotionResponse> getPromotions(@Nullable List<PromotionStatus> statuses,
                                                                @Nullable List<PromotionType> types, int page, boolean includeMeta)
public static IDataApiCall<PromotionResponse> getPromotions(PromotionsApiQuery promotionsApiQuery)
```

</div>

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

```kotlin
fun getPromotions(@Nullable statuses:List<PromotionStatus>,
                  @Nullable types:List<PromotionType>, page:Int):IDataApiCall<PromotionResponse>
fun getPromotions(@Nullable statuses:List<PromotionStatus>,
                  @Nullable types:List<PromotionType>, limit:Int, page:Int):IDataApiCall<PromotionResponse>
fun getPromotions(@Nullable statuses:List<PromotionStatus>,
                  @Nullable types:List<PromotionType>, page:Int, includeMeta:Boolean):IDataApiCall<PromotionResponse>
fun getPromotions(promotionsApiQuery:PromotionsApiQuery):IDataApiCall<PromotionResponse>
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **statuses** | List<PromotionStatus> | yes | - | Specify a status filter, can be any combination or an empty list. |
| **types** | List<PromotionType> | yes | - | Specify type filter, can be any combination or an empty list. |
| **page** | int | yes | - | Query for a specific page, minimum 1. |
| **limit** | int | yes | 100 | Query for promotions limit. |
| **includeMeta** | boolean | yes | false | Decide whether to include metadata in the final response. |
| **promotionsApiQuery** | [PromotionsApiQuery](/developers/mobile-sdk/class-reference/android/promotions-and-vouchers#promotionsapiquery) | yes | --- | Class responsible for storing all queryParameters. |

**Return Value:**  
IDataApiCall<[PromotionResponse](/developers/mobile-sdk/class-reference/android/promotions-and-vouchers#promotionresponse)> object to execute the request.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-905">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-905-0" data-tab-group="tabgrp-905" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-905-1" data-tab-group="tabgrp-905">kotlin</button></div>

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

```java
if (apiCall != null) 
    apiCall.cancel();
PromotionsApiQuery query = new PromotionsApiQuery();
query.limit = limit;
query.statuses = statuses;
query.page = 5;
query.includeMeta = true;
LinkedHashMap<PromotionSortingKey, ApiQuerySortingOrder> sortParams = new LinkedHashMap<>();
sortParams.put(PromotionSortingKey.TYPE, ApiQuerySortingOrder.ASCENDING);
sortParams.put(PromotionSortingKey.CREATED_AT, ApiQuerySortingOrder.ASCENDING);
sortParams.put(PromotionSortingKey.EXPIRE_AT, ApiQuerySortingOrder.DESCENDING);
query.setSortParameters(sortParams);
apiCall = Promotions.getPromotions(query);
apiCall.execute(this::onSuccess, this::onFailure);
```

</div>

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

```kotlin
if (apiCall != null)
apiCall.cancel()
val query = PromotionsApiQuery()
query.limit = limit
query.statuses = statuses
query.page = 5
query.includeMeta = true
val sortParams = LinkedHashMap()
sortParams.put(PromotionSortingKey.TYPE, ApiQuerySortingOrder.ASCENDING)
sortParams.put(PromotionSortingKey.CREATED_AT, ApiQuerySortingOrder.ASCENDING)
sortParams.put(PromotionSortingKey.EXPIRE_AT, ApiQuerySortingOrder.DESCENDING)
query.setSortParameters(sortParams)
apiCall = Promotions.getPromotions(query)
apiCall.execute(({ this.onSuccess() }), ({ this.onFailure() }))
```

</div>
</div>
 

### Get promotion by UUID
---
This method retrieves the promotion with the specified UUID.


<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 `PROMOTIONS_DETAILS_FOR_CLIENT_READ` permission from the **Client** group.

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

**Method name:**  
Promotions.getPromotionByUuid(uuid)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-906">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-906-0" data-tab-group="tabgrp-906" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-906-1" data-tab-group="tabgrp-906">kotlin</button></div>

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

```java
public static IDataApiCall<SinglePromotionResponse> getPromotionByUuid(@NonNull String uuid)
```

</div>

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

```kotlin
fun getPromotionByUuid(@NonNull uuid:String):IDataApiCall<SinglePromotionResponse>
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **uuid** | String | yes | - | UUID of the promotion that you want to get. |


**Return Value:**  
IDataApiCall<[SinglePromotionResponse](/developers/mobile-sdk/class-reference/android/promotions-and-vouchers#singlepromotionresponse)> object to execute the request.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-907">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-907-0" data-tab-group="tabgrp-907" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-907-1" data-tab-group="tabgrp-907">kotlin</button></div>

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

```java
IDataApiCall<SinglePromotionResponse> apiCall = Promotions.getPromotionByUuid(uuid);
        apiCall.execute(response -> {
            if (response != null) {
                Promotion promotion = response.getPromotion();
            }
        }, this::showAlertError);
```

</div>

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

```kotlin
val apiCall = Promotions.getPromotionByUuid(uuid)
apiCall.execute({ response-> if (response != null)
                 {
                   val promotion = response.getPromotion()
                 } }, ({ this.showAlertError() }))
```

</div>
</div>
 

### Get promotion by code
---
This method retrieves the promotion with the specified code.


<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 `PROMOTIONS_DETAILS_FOR_CLIENT_READ` permission from the **Client** group.

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

**Method name:**  
Promotions.getPromotionByCode(code)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-908">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-908-0" data-tab-group="tabgrp-908" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-908-1" data-tab-group="tabgrp-908">kotlin</button></div>

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

```java
public static IDataApiCall<SinglePromotionResponse> getPromotionByCode(@NonNull String code)
```

</div>

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

```kotlin
fun getPromotionByCode(@NonNull code:String):IDataApiCall<SinglePromotionResponse>
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **code** | String | yes | - | Code of the promotion that you want to get. |

**Return Value:**  
IDataApiCall<[SinglePromotionResponse](/developers/mobile-sdk/class-reference/android/promotions-and-vouchers#singlepromotionresponse)> object to execute the request.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-909">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-909-0" data-tab-group="tabgrp-909" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-909-1" data-tab-group="tabgrp-909">kotlin</button></div>

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

```java
IDataApiCall<SinglePromotionResponse> apiCall = Promotions.getPromotionByCode(code);
        apiCall.execute(response -> {
            if (response != null) {
                Promotion promotion = response.getPromotion();
            }
        }, this::showAlertError);
```

</div>

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

```kotlin
val apiCall = Promotions.getPromotionByCode(code)
apiCall.execute({ response-> if (response != null)
                 {
                   val promotion = response.getPromotion()
                 } }, ({ this.showAlertError() }))
```

</div>
</div>
 

### Activate promotion by UUID
---
This method activates the promotion with the specified UUID.


<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 `PROMOTIONS_ACTIVATE_PROMOTIONS_UPDATE` permission from the **Promotions** group.

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

**Method name:**  
Promotions.activatePromotionByUuid(uuid)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-910">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-910-0" data-tab-group="tabgrp-910" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-910-1" data-tab-group="tabgrp-910">kotlin</button></div>

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

```java
public static IApiCall activatePromotionByUuid(@NonNull String uuid)
```

</div>

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

```kotlin
fun activatePromotionByUuid(@NonNull uuid:String):IApiCall
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **uuid** | String | yes | - | UUID of the promotion that will be activated. |

**Return Value:**  
IApiCall object to execute the request.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-911">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-911-0" data-tab-group="tabgrp-911" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-911-1" data-tab-group="tabgrp-911">kotlin</button></div>

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

```java
IApiCall apiCall = Promotions.activatePromotionByUuid(uuid);
            apiCall.execute(this::onSuccess, this::onFailure);
```

</div>

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

```kotlin
val apiCall = Promotions.activatePromotionByUuid(uuid)
apiCall.execute(({ this.onSuccess() }), ({ this.onFailure() }))
```

</div>
</div>
 

### Activate promotion by code
---
This method activates the promotion with the specified code.


<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 `PROMOTIONS_ACTIVATE_PROMOTIONS_UPDATE` permission from the **Promotions** group.

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

**Method name:**  
Promotions.activatePromotionByCode(code)
  
**Declaration:**  

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

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

```Java
public static IApiCall activatePromotionByCode(@NonNull String code)
```

</div>

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

```Kotlin
fun activatePromotionByCode(@NonNull code:String):IApiCall
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **code** | String | yes | - | Code of the promotion that will be activated. |

**Return Value:**  
IApiCall object to execute the request.

**Example:**  

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

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

```Java
IApiCall apiCall = Promotions.activatePromotionByCode(code);
```

</div>

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

```Kotlin
var apiCall = Promotions.activatePromotionByCode(code)
```

</div>
</div>
 

### Activate promotions in a batch
---
This method activates promotions with a code or with UUID in a batch.


<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 `PROMOTIONS_ACTIVATE_PROMOTIONS_UPDATE` permission from the **Promotions** group.

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

**Method name:**  
Promotions.activatePromotionsBatch(promotionsToActivate)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-914">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-914-0" data-tab-group="tabgrp-914" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-914-1" data-tab-group="tabgrp-914">kotlin</button></div>

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

```java
public static IApiCall activatePromotionsBatch(List<PromotionIdentifier> promotionsToActivate)
```

</div>

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

```kotlin
fun activatePromotionsBatch(promotionsToActivate:List<PromotionIdentifier>):IApiCall
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **promotionsToActivate** | List<[PromotionIdentifier](/developers/mobile-sdk/class-reference/android/promotions-and-vouchers#promotionidentifier)> | yes | - | List of promotions to be activated |

**Return Value:**  
IApiCall object to execute the request.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-915">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-915-0" data-tab-group="tabgrp-915" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-915-1" data-tab-group="tabgrp-915">kotlin</button></div>

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

```java
IApiCall call = Promotions.activatePromotionsBatch(promotionsToActivate);
            call.execute(this::onSuccess, this::onFailure);
```

</div>

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

```kotlin
val call = Promotions.activatePromotionsBatch(promotionsToActivate)
call.execute(({ this.onSuccess() }), ({ this.onFailure() }))
```

</div>
</div>
 

### Deactivate promotion by UUID
---
This method deactivates the promotion with the specified UUID.


<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 `PROMOTIONS_DEACTIVATE_PROMOTIONS_UPDATE` permission from the **Promotions** group.

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

**Method name:**  
Promotions.deactivatePromotionByUuid(uuid)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-916">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-916-0" data-tab-group="tabgrp-916" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-916-1" data-tab-group="tabgrp-916">kotlin</button></div>

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

```java
public static IApiCall deactivatePromotionByUuid(@NonNull String uuid)
```

</div>

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

```kotlin
fun deactivatePromotionByUuid(@NonNull uuid:String):IApiCall
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **uuid** | String | yes | - | UUID of the promotion that will be deactivated. |

**Return Value:**  
IApiCall object to execute the request.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-917">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-917-0" data-tab-group="tabgrp-917" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-917-1" data-tab-group="tabgrp-917">kotlin</button></div>

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

```java
IApiCall apiCall = Promotions.deactivatePromotionByUuid(uuid);
            apiCall.execute(this::onSuccess, this::onFailure);
```

</div>

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

```kotlin
val apiCall = Promotions.deactivatePromotionByUuid(uuid)
apiCall.execute(({ this.onSuccess() }), ({ this.onFailure() }))
```

</div>
</div>
 

### Deactivate promotion by code
---
This method deactivates the promotion with the specified code.


<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 `PROMOTIONS_DEACTIVATE_PROMOTIONS_UPDATE` permission from the **Promotions** group.

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

**Method name:**  
Promotions.deactivatePromotionByCode(code)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-918">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-918-0" data-tab-group="tabgrp-918" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-918-1" data-tab-group="tabgrp-918">kotlin</button></div>

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

```java
public static IApiCall deactivatePromotionByCode(@NonNull String code)
```

</div>

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

```kotlin
fun deactivatePromotionByCode(@NonNull code:String):IApiCall
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **code** | String | yes | - | Code of the promotion that will be deactivated. |

**Return Value:**  
IApiCall object to execute the request.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-919">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-919-0" data-tab-group="tabgrp-919" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-919-1" data-tab-group="tabgrp-919">kotlin</button></div>

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

```java
IApiCall apiCall = Promotions.deactivatePromotionByCode(code);
            apiCall.execute(this::onSuccess, this::onFailure);
```

</div>

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

```kotlin
val apiCall = Promotions.deactivatePromotionByCode(code)
apiCall.execute(({ this.onSuccess() }), ({ this.onFailure() }))
```

</div>
</div>
 

### Deactivate promotions in a batch
---
This method deactivates promotions with a code or with UUID in a batch.


<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 `PROMOTIONS_DEACTIVATE_PROMOTIONS_UPDATE` permission from the **Promotions** group.

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

**Method name:**  
Promotions.deactivatePromotionsBatch(promotionsToDeactivate)
  
**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-920">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-920-0" data-tab-group="tabgrp-920" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-920-1" data-tab-group="tabgrp-920">kotlin</button></div>

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

```java
public static IApiCall deactivatePromotionsBatch(List<PromotionIdentifier> promotionsToDeactivate)
```

</div>

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

```kotlin
fun deactivatePromotionsBatch(promotionsToDeactivate:List<PromotionIdentifier>):IApiCall
```

</div>
</div>


**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **promotionsToDeactivate** | List<[PromotionIdentifier](/developers/mobile-sdk/class-reference/android/promotions-and-vouchers#promotionidentifier)> | yes | - | List of promotions to be activated |

**Return Value:**  
IApiCall object to execute the request.

**Example:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-921">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-921-0" data-tab-group="tabgrp-921" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-921-1" data-tab-group="tabgrp-921">kotlin</button></div>

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

```java
IApiCall call = Promotions.deactivatePromotionsBatch(promotionsToDeactivate);
            call.execute(this::onSuccess, this::onFailure);
```

</div>

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

```kotlin
val call = Promotions.deactivatePromotionsBatch(promotionsToDeactivate)
call.execute(({ this.onSuccess() }), ({ this.onFailure() }))
```

</div>
</div>
 

## Vouchers
---
### Get or assign voucher from pool
---
This method retrieves an assigned voucher code or assigns a voucher from a pool identified by UUID to the customer.
  
Once a voucher is assigned using this method, **the same** voucher is returned for the profile every time the method is called.

When the voucher is assigned for the first time, a [voucherCode.assigned](/docs/assets/events/event-reference/loyalty#vouchercodeassigned) event is produced.


<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 `VOUCHERS_ITEM_ASSIGN_CREATE` and `VOUCHERS_ITEM_ASSIGN_READ` permission from the **Assign** group.

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

**Declared In:**  
Headers/SNRPromotions.h
  
**Related To:**  
[AssignVoucherResponse](/developers/mobile-sdk/class-reference/ios/promotions-and-vouchers#assignvoucherresponse)
  
**Class:**  
[Promotions](/developers/mobile-sdk/class-reference/ios/modules#promotions)
  
**Declaration:**  

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

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

```Swift
static func getOrAssignVoucher(poolUUID: String, success: ((AssignVoucherResponse) -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)getOrAssignVoucherWithPoolUUID:(nonnull NSString *)poolUUID success:(nonnull void (^)(SNRAssignVoucherResponse *assignVoucherResponse))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **poolUUID** | String | no | - | Unique identifier of a code pool |
| **success** | (([AssignVoucherResponse](/developers/mobile-sdk/class-reference/ios/promotions-and-vouchers#assignvoucherresponse)) -> 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-923">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-923-0" data-tab-group="tabgrp-923" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-923-1" data-tab-group="tabgrp-923">Objective-C</button></div>

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

```Swift
let poolUUID: String = "POOL_UUID"
Promotions.getOrAssignVoucher(poolUUID: poolUUID, success: { (assignVoucherResponse) in
  // success
failure: { (error) in
  // failure
})
```

</div>

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

```Objective-C
NSString *poolUUID = @"POOL_UUID";
[SNRPromotions getOrAssignVoucherWithPoolUUID:poolUUID success:^(SNRAssignVoucherResponse *assignVoucherResponse) {
  // success
} failure:^(NSError * _Nonnull error) {
  // failure
}];
```

</div>
</div>
 

### Assign voucher code from pool
---
This method assigns a voucher from a pool identified by UUID to the profile.
  
Every request returns a **different code** until the pool is empty.

A [voucherCode.assigned](/docs/assets/events/event-reference/loyalty#vouchercodeassigned) event is produced.
  

<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 416 status code when the pool is empty.

</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 `VOUCHERS_ITEM_ASSIGN_CREATE` and `VOUCHERS_ITEM_ASSIGN_READ` permission from the **Assign** group.

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

**Declared In:**  
Headers/SNRPromotions.h
  
**Related To:**  
[AssignVoucherResponse](/developers/mobile-sdk/class-reference/ios/promotions-and-vouchers#assignvoucherresponse)
  
**Class:**  
[Promotions](/developers/mobile-sdk/class-reference/ios/modules#promotions)
  
**Declaration:**  

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

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

```Swift
static func assignVoucherCode(poolUUID: String, success: ((AssignVoucherResponse) -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)assignVoucherCodeWithPoolUUID:(nonnull NSString *)poolUUID success:(nonnull void (^)(SNRAssignVoucherResponse *assignVoucherResponse))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **poolUUID** | String | yes | - | Unique identifier of a code pool |
| **success** | (([AssignVoucherResponse](/developers/mobile-sdk/class-reference/ios/promotions-and-vouchers#assignvoucherresponse)) -> 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-925">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-925-0" data-tab-group="tabgrp-925" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-925-1" data-tab-group="tabgrp-925">Objective-C</button></div>

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

```Swift
let poolUUID: String = "POOL_UUID"
Promotions.assignVoucherCode(poolUUID: poolUUID, success: { (assignVoucherResponse) in
  // success
}, failure: { (error) in
  // failure
})
```

</div>

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

```Objective-C
NSString *poolUUID = @"POOL_UUID";
[SNRPromotions assignVoucherCodeWithPoolUUID:poolUUID success:^(SNRAssignVoucherResponse *assignVoucherResponse) {
  // success
} failure:^(SNRApiError *error) {
  // failure
}];
```

</div>
</div>
 

### Get voucher codes assigned to customer
---
This method retrieves voucher codes for a customer.


<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 `VOUCHERS_ITEM_ASSIGN_READ` permission from the **Assign** group.

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

**Declared In:**  
Headers/SNRPromotions.h
  
**Related To:**  
[VoucherCodesResponse](/developers/mobile-sdk/class-reference/ios/promotions-and-vouchers#vouchercodesresponse)
  
**Class:**  
[Promotions](/developers/mobile-sdk/class-reference/ios/modules#promotions)
   
**Declaration:**  

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

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

```Swift
static func getAssignedVoucherCodes(success: ((VoucherCodesResponse) -> Void), failure: ((ApiError) -> Void)) -> Void
```

</div>

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

```Objective-C
+ (void)getAssignedVoucherCodesWithSuccess:(nonnull void (^)(SNRVoucherCodesResponse *voucherCodesResponse))success failure:(nonnull void (^)(NSError *error))failure
```

</div>
</div>

  
**Parameters:**  
| Parameter | Type | Mandatory | Default | Description |
| --- | --- | --- | --- | --- |
| **success** | ((VoucherCodesResponse) -> 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-927">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-927-0" data-tab-group="tabgrp-927" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-927-1" data-tab-group="tabgrp-927">Objective-C</button></div>

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

```Swift
Promotions.getAssignedVoucherCodes(success: { (voucherCodesResponse) in
  // success
}, failure: { (error) in
  // failure
})
```

</div>

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

```Objective-C
[SNRPromotions getAssignedVoucherCodesWithSuccess:^(SNRVoucherCodesResponse *voucherCodesResponse) {
  // success
} failure:^(NSError * _Nonnull error) {
  // failure
}];
```

</div>
</div>
 