
## 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-851">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-851-0" data-tab-group="tabgrp-851" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-851-1" data-tab-group="tabgrp-851">kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-851-0" data-tab-group="tabgrp-851" 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-851-1" data-tab-group="tabgrp-851">

```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-852">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-852-0" data-tab-group="tabgrp-852" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-852-1" data-tab-group="tabgrp-852">kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-852-0" data-tab-group="tabgrp-852" 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-852-1" data-tab-group="tabgrp-852">

```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-853">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-853-0" data-tab-group="tabgrp-853" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-853-1" data-tab-group="tabgrp-853">kotlin</button></div>

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

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

</div>

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

```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-854">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-854-0" data-tab-group="tabgrp-854" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-854-1" data-tab-group="tabgrp-854">kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-854-0" data-tab-group="tabgrp-854" 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-854-1" data-tab-group="tabgrp-854">

```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-855">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-855-0" data-tab-group="tabgrp-855" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-855-1" data-tab-group="tabgrp-855">kotlin</button></div>

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

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

</div>

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

```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-856">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-856-0" data-tab-group="tabgrp-856" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-856-1" data-tab-group="tabgrp-856">kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-856-0" data-tab-group="tabgrp-856" 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-856-1" data-tab-group="tabgrp-856">

```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-857">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-857-0" data-tab-group="tabgrp-857" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-857-1" data-tab-group="tabgrp-857">kotlin</button></div>

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

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

</div>

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

```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-858">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-858-0" data-tab-group="tabgrp-858" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-858-1" data-tab-group="tabgrp-858">kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-858-0" data-tab-group="tabgrp-858" 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-858-1" data-tab-group="tabgrp-858">

```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-859">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-859-0" data-tab-group="tabgrp-859" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-859-1" data-tab-group="tabgrp-859">Kotlin</button></div>

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

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

</div>

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

```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-860">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-860-0" data-tab-group="tabgrp-860" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-860-1" data-tab-group="tabgrp-860">Kotlin</button></div>

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

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

</div>

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

```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-861">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-861-0" data-tab-group="tabgrp-861" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-861-1" data-tab-group="tabgrp-861">kotlin</button></div>

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

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

</div>

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

```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-862">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-862-0" data-tab-group="tabgrp-862" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-862-1" data-tab-group="tabgrp-862">kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-862-0" data-tab-group="tabgrp-862" 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-862-1" data-tab-group="tabgrp-862">

```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-863">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-863-0" data-tab-group="tabgrp-863" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-863-1" data-tab-group="tabgrp-863">kotlin</button></div>

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

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

</div>

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

```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-864">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-864-0" data-tab-group="tabgrp-864" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-864-1" data-tab-group="tabgrp-864">kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-864-0" data-tab-group="tabgrp-864" 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-864-1" data-tab-group="tabgrp-864">

```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-865">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-865-0" data-tab-group="tabgrp-865" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-865-1" data-tab-group="tabgrp-865">kotlin</button></div>

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

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

</div>

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

```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-866">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-866-0" data-tab-group="tabgrp-866" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-866-1" data-tab-group="tabgrp-866">kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-866-0" data-tab-group="tabgrp-866" 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-866-1" data-tab-group="tabgrp-866">

```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-867">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-867-0" data-tab-group="tabgrp-867" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-867-1" data-tab-group="tabgrp-867">kotlin</button></div>

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

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

</div>

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

```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-868">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-868-0" data-tab-group="tabgrp-868" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-868-1" data-tab-group="tabgrp-868">kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-868-0" data-tab-group="tabgrp-868" 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-868-1" data-tab-group="tabgrp-868">

```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-869">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-869-0" data-tab-group="tabgrp-869" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-869-1" data-tab-group="tabgrp-869">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-869-0" data-tab-group="tabgrp-869" 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-869-1" data-tab-group="tabgrp-869">

```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-870">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-870-0" data-tab-group="tabgrp-870" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-870-1" data-tab-group="tabgrp-870">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-870-0" data-tab-group="tabgrp-870" 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-870-1" data-tab-group="tabgrp-870">

```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-871">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-871-0" data-tab-group="tabgrp-871" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-871-1" data-tab-group="tabgrp-871">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-871-0" data-tab-group="tabgrp-871" 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-871-1" data-tab-group="tabgrp-871">

```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-872">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-872-0" data-tab-group="tabgrp-872" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-872-1" data-tab-group="tabgrp-872">Objective-C</button></div>

<div class="tab-panel" data-tab-id="tabgrp-872-0" data-tab-group="tabgrp-872" 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-872-1" data-tab-group="tabgrp-872">

```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-873">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-873-0" data-tab-group="tabgrp-873" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-873-1" data-tab-group="tabgrp-873">Objective-C</button></div>

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

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

</div>

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

```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-874">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-874-0" data-tab-group="tabgrp-874" data-tab-active="true">Swift</button><button class="tab-button" data-tab-id="tabgrp-874-1" data-tab-group="tabgrp-874">Objective-C</button></div>

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

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

</div>

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

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

</div>
</div>
 