
## Promotions
---

### PromotionResponse
**Declared In:**  
lib/classes/models/Promotions/PromotionResponse.js   

**Related To:**  
[Promotion](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotion)  
  
**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel)  
  
**Declaration:**

<pre><code class="language-TypeScript">class PromotionResponse extends BaseModel</code></pre>

  
**Properties:**
| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **totalCount** | number | no | Total count of promotions |
| **totalPages** | number | no | Total count of pages |
| **page** | number | no | Current page |
| **limit** | number | no | Limit of promotions per page |
| **code** | number | no | HTTP code of the response |
| **items** | [Array<Promotion>](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotion) | no | List of promotion items |

---
---

### Promotion
**Declared In:**  
lib/classes/models/Promotions/Promotion.js  
  
**Related To:**  
[PromotionResponse](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionresponse)  
[PromotionStatus](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionstatus)  
[PromotionType](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiontype)  
[PromotionDetails](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondetails)  
[PromotionItemScope](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionitemscope)  
[PromotionDiscountType](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscounttype)  
[PromotionDiscountMode](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscountmode)  
[PromotionDiscountModeDetails](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscountmodedetails)  
[PromotionImage](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionimage) 

**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel)  
  
**Declaration:**

<pre><code class="language-TypeScript">class Promotion extends BaseModel</code></pre>

  
**Properties:**
| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **uuid** | string | no | Promotion's UUID |
| **code** | string | no | Promotion's code |
| **status** | [PromotionStatus](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionstatus) | yes | Promotion's status |
| **type** | [PromotionType](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiontype) | yes | Promotion's type |
| **details** | [PromotionDetails](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondetails) | yes | Promotion's details |
| **redeemLimitPerClient** | number | yes | Redemption limit per customer |
| **redeemQuantityPerActivation** | number | yes | Redemption quantity per activation |
| **currentRedeemedQuantity** | number | no | Current redemption quantity |
| **currentRedeemLimit** | number | no | Current redemption limit |
| **activationCounter** | number | no | Promotion's activation counter |
| **possibleRedeems** | number | no | Maximum number of promotion redemptions |
| **requireRedeemedPoints** | number | yes | Required redeemed points |
| **discountType** | [PromotionDiscountType](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscounttype) | yes |  Discount type |
| **discountValue** | number | no | Discount value |
| **discountMode** | [PromotionDiscountMode](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscountmode) | no | Discount mode |
| **discountModeDetails** | [PromotionDiscountModeDetails](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscountmodedetails) | yes | Discount mode details |
| **priority** | number | no | Promotion's priority |
| **price** | number | no | Item price |
| **itemScope** | [PromotionItemScope](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionitemscope) | no | Promotion's item scope |
| **minBasketValue** | number | yes | Minimum basket value |
| **maxBasketValue** | number | yes | Maximum basket value  |
| **name** | string | no | Promotion's name |
| **headline** | string | yes | Promotion's headline |
| **descriptionText** | string | yes | Promotion's description |
| **images** | [Array<[PromotionImage](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionimage)> | yes | List of promotion images |
| **startAt** | Date | yes | Start time of a promotion |
| **expireAt** | Date | yes | Expiration time of the promotion |
| **lastingAt** | Date | yes | Date when the promotion expires for the current profile |
| **lastingTime** | number | yes | Duration of the promotion in seconds |
| **displayFrom** | string | yes | Date as a string when the promotion starts being displayed |
| **displayTo** | string | yes | Date as a string when the promotions ends being displayed |
| **catalogIndexItems** | Array<string> | yes | List of item indexes |
| **params** | object | yes | Promotion's custom parameters |
| **tags** | Array<object> | yes | Promotion's custom tags |

---
---

### PromotionStatus
**Declared In:**  
lib/classes/models/Promotions/PromotionStatus.js  
  
**Related To:**  
[Promotion](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotion)  

**Declaration:**  

<pre><code class="language-TypeScript">enum PromotionStatus {
  None = 'NONE',
  Active = 'ACTIVE',
  Assigned = 'ASSIGNED',
  Redeemed = 'REDEEMED',
}</code></pre>

  
**Functions:**

Converts from **PromotionStatus** to **string**.

<pre><code class="language-TypeScript">function PromotionStatusToString(promotionStatus: PromotionStatus): string</code></pre>


---

Converts from **string** to **PromotionStatus**.

<pre><code class="language-TypeScript">function PromotionStatusFromString(string: string): PromotionStatus</code></pre>


---
---

### PromotionType 
**Declared In:**  
lib/classes/models/Promotions/PromotionType.js  

**Related To:**  
[Promotion](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotion)  
  
**Declaration:**

<pre><code class="language-TypeScript">enum PromotionType {
  Unknown = 'UNKNOWN',
  MembersOnly = 'MEMBERS_ONLY',
  Custom = 'CUSTOM',
  General = 'GENERAL',
}</code></pre>

  
**Functions:**

Converts from **PromotionType** to **string**.

<pre><code class="language-TypeScript">function PromotionTypeToString(promotionType: PromotionType): string</code></pre>


---

Converts from **string** to **PromotionType**.

<pre><code class="language-TypeScript">function PromotionTypeFromString(string: string): PromotionType</code></pre>


---
---

### PromotionItemScope
**Declared In:**  
lib/classes/models/Promotions/PromotionItemScope.js  
  
**Related To:**  
[Promotion](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotion)  
  
**Declaration:**  

<pre><code class="language-TypeScript">enum PromotionItemScope {
    LineItem = 'LINE_ITEM',
    Basket = 'BASKET'
}</code></pre>

  
**Functions:**  
Converts from **PromotionItemScope** to **string**.

<pre><code class="language-TypeScript">function PromotionItemScopeToString(promotionItemScope: PromotionItemScope): string</code></pre>


---

Converts from **string** to **PromotionItemScope**.

<pre><code class="language-TypeScript">function PromotionItemScopeFromString(string: string): PromotionItemScope</code></pre>


---
---

### PromotionDetails
**Declared In:**  
lib/classes/models/Promotions/PromotionDetails.js  
  
**Related To:**  
[PromotionDiscountTypeDetails](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscounttypedetails)  
  
**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel) 

**Declaration:**  

<pre><code class="language-TypeScript">class PromotionDetails extends BaseModel {
  discountType: PromotionDiscountTypeDetails;
}</code></pre>

  
**Properties:**  
Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **discountType** | [PromotionDiscountTypeDetails](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscounttypedetails) | yes | Discount details |

---
---

### PromotionDiscountTypeDetails
**Declared In:**  
lib/classes/models/Promotions/PromotionDiscountTypeDetails.js  
  
**Related To:**  
[PromotionDetails](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondetails)  
  
**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel) 
  
**Declaration:**  

<pre><code class="language-TypeScript">class PromotionDiscountTypeDetails extends BaseModel {
  name: string;
  outerScope: boolean;
  requiredItemsCount: number;
  discountedItemsCount: number;
}</code></pre>

  
**Properties:**
Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **name** | string | no | Discount’s name |
| **outerScope** | boolean | no | When `true`, the items required to trigger the promotion are different than the items included in that promotion. |
| **requiredItemsCount** | number | no | Number of items required to qualify for the discount |
| **discountedItemsCount** | number | no | Number of discounted items |

---
---

### PromotionDiscountMode
**Declared In:**  
lib/classes/models/Promotions/PromotionDiscountMode.js  
  
**Related To:**  
[Promotion](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotion)  
  
**Declaration:**  

<pre><code class="language-TypeScript">enum PromotionDiscountMode {
    Static = 'STATIC',
    Step = 'STEP'
}</code></pre>

  
**Functions:**  
Converts from **PromotionDiscountMode** to **string**.

<pre><code class="language-TypeScript">function PromotionDiscountModeToString(promotionDiscountMode: PromotionDiscountMode): string</code></pre>


---

Converts from **string** to **PromotionDiscountMode**.

<pre><code class="language-TypeScript">function PromotionDiscountModeFromString(string: string): PromotionDiscountMode</code></pre>


---
---

### PromotionDiscountModeDetails
**Declared In:**  
lib/classes/models/Promotions/PromotionDiscountModeDetails.js  
  
**Related To:**  
[PromotionDiscountStep](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscountstep)  
[PromotionDiscountUsageTrigger](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscountusagetrigger)  
  
**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel) 
  
**Declaration:**  

<pre><code class="language-TypeScript">class PromotionDiscountModeDetails extends BaseModel {
  discountSteps: Array&lt;PromotionDiscountStep&gt;;
  discountUsageTrigger: PromotionDiscountUsageTrigger;
}</code></pre>

  
**Properties:**
Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **discountSteps** | Array<[PromotionDiscountStep](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscountstep)> | no | List of discount steps |
| **discountUsageTrigger** | [PromotionDiscountUsageTrigger](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscountusagetrigger) | no | Usage trigger for the discount |

---
---

### PromotionDiscountStep
**Declared In:**  
lib/classes/models/Promotions/PromotionDiscountStep.js  
  
**Related To:**  
[PromotionDiscountModeDetails](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiondiscountmodedetails)  

**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel) 
  
**Declaration:**  

<pre><code class="language-TypeScript">class PromotionDiscountStep extends BaseModel {
  discountValue: number;
  usageThreshold: number;
}</code></pre>

  
**Properties:**
Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **discountValue** | number | no | Value of the discount |
| **usageThreshold** | number | no | Usage threshold |

---
---

### PromotionDiscountUsageTrigger
**Declared In:**  
lib/classes/models/Promotions/PromotionDiscountUsageTrigger.js  
  
**Related To:**  
[Promotion](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotion)  
  
**Declaration:**  

<pre><code class="language-TypeScript">enum PromotionDiscountUsageTrigger {
    Transaction = 'TRANSACTION',
    Redeem = 'REDEEM'
}</code></pre>

  
**Functions:**  
Converts from **PromotionDiscountUsageTrigger** to **string**.

<pre><code class="language-TypeScript">function PromotionDiscountUsageTriggerToString(promotionDiscountUsageTrigger: PromotionDiscountUsageTrigger): string</code></pre>


---

Converts from **string** to **PromotionDiscountUsageTrigger**.

<pre><code class="language-TypeScript">function PromotionDiscountUsageTriggerFromString(string: string): PromotionDiscountUsageTrigger</code></pre>


---
---

### PromotionImage 
**Declared In:**  
lib/classes/models/Promotions/PromotionImage.js  
  
**Related To:**  
[Promotion](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotion)  
[PromotionImageType](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionimagetype)  

**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel) 

**Declaration:**  

<pre><code class="language-TypeScript">class PromotionImage extends BaseModel {
  url: string;
  type: PromotionImageType;
}</code></pre>

  
**Properties:**  
Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **url** | string | no | URL of the image |
| **type** | [PromotionImageType](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionimagetype) | no | Image type |

---
---

### PromotionImageType
**Declared In:**  
lib/classes/models/Promotions/PromotionImageType.js  
  
**Related To:**  
[PromotionImage](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionimage)  
  
**Declaration:**  

<pre><code class="language-TypeScript">enum PromotionImageType {
  Image = 'image',
  Thumbnail = 'thumbnail'
}</code></pre>

  
**Functions:**  
Converts from **PromotionImageType** to **string**.

<pre><code class="language-TypeScript">function PromotionImageTypeToString(promotionImageType: PromotionImageType): string</code></pre>


---

Converts from **string** to **PromotionImageType**.

<pre><code class="language-TypeScript">function PromotionImageTypeFromString(string: string): PromotionImageType</code></pre>


---
---

### PromotionDiscountType
**Declared In:**  
lib/classes/models/Promotions/PromotionDiscountType.js  

**Related To:**  
[Promotion](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotion)  

**Declaration:**  

<pre><code class="language-TypeScript">enum PromotionDiscountType {
  None = 'NONE',
  Percent = 'PERCENT',
  Amount = 'AMOUNT',
  TwoForOne = '2_FOR_1',
  Points = 'POINTS',
  Multibuy = 'MULTIBUY',
}</code></pre>

  
**Functions:**

Converts from **PromotionDiscountType** to **string**.

<pre><code class="language-TypeScript">function PromotionDiscountTypeToString(promotionDiscountType: PromotionDiscountType): string</code></pre>


---

Converts from **string** to **PromotionDiscountType**.

<pre><code class="language-TypeScript">function PromotionDiscountTypeFromString(string: string): PromotionDiscountType</code></pre>


---
---

### PromotionIdentifier
**Declared In:**  
lib/classes/models/Promotions/PromotionIdentifier.js  
  
**Declaration:**  

<pre><code class="language-TypeScript">class PromotionIdentifier {
  key: string;
  value: string;
}</code></pre>

  
**Properties:**

Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **key** | string | yes |  | Promotion identifier type (see [PromotionIdentifierKey enum](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionidentifierkey))|
| **value** | string | yes |  | Promotion identifier value |

**Initializers:**

<pre><code class="language-TypeScript">constructor(key: PromotionIdentifierKey, value: string)</code></pre>


---
---

### PromotionIdentifierKey
**Declared In:**  
lib/classes/models/Promotions/PromotionIdentifierKey.js  
  
**Declaration:**  

<pre><code class="language-TypeScript">enum PromotionIdentifierKey {
  Uuid = 'UUID',
  Code = 'CODE',
}</code></pre>


---
---

### PromotionsApiQuery
Object for setting parameters to facilitate fetching promotions from the API.
  
**Declared In:**  
lib/classes/models/api_queries/PromotionsApiQuery.js  
  
**Related To:**  
[PromotionResponse](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionresponse)  
[Promotion](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotion)  
  
**Inherits From:**  
[BaseApiQuery](/developers/mobile-sdk/class-reference/react-native/miscellaneous#baseapiquery)  
  
**Declaration:**

<pre><code class="language-TypeScript">class PromotionsApiQuery extends BaseApiQuery</code></pre>

  
**Properties:**
| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **statuses** | [Array<PromotionStatus>](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotionstatus) | no  | [] | List of promotion statuses for query |
| **types** | [Array<PromotionType>](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#promotiontype) | no  | [] | List of promotion types for query |


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

- Check the list of promotion sorting keys available in [Loyalty - Promotion sorting options](/developers/mobile-sdk/loyalty#promotion-sorting-options) section.
- See [ApiQuerySortingOrderString](/developers/mobile-sdk/class-reference/react-native/miscellaneous#apiquerysortingorder) to check ordering options.

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


**Initializers:**

<pre><code class="language-TypeScript">constructor()</code></pre>


---
---

## Vouchers
---

### AssignVoucherResponse
**Declared In:**  
lib/classes/models/Vouchers/AssignVoucherResponse.js  
  
**Related To:**  
[AssignVoucherData](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#assignvoucherdata)
  
**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel)
  
**Declaration:**

<pre><code class="language-TypeScript">class AssignVoucherResponse extends BaseModel</code></pre>

  
**Properties:**
| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **message** | string | no | Message from the Voucher assignment response |
| **assignVoucherData** | [AssignVoucherData](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#assignvoucherdata) | yes | List of vouchers in a pool |

---
---

### VoucherCodesResponse
**Declared In:**  
lib/classes/models/Vouchers/VoucherCodesResponse.js   
  
**Related To:**  
[VoucherCodesData](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#vouchercodesdata)    
  
**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel)  
  
**Declaration:**

<pre><code class="language-TypeScript">class VoucherCodesResponse extends BaseModel</code></pre>

  
**Properties:**
| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **items** | Array<[VoucherCodesData](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#vouchercodesdata)> | no | List of voucher items |

---
---

### AssignVoucherData
**Declared In:**  
lib/classes/models/Vouchers/AssignVoucherData.js  
  
**Related To:**  
[AssignVoucherResponse](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#assignvoucherresponse)
  
**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel)
  
**Declaration:**  

<pre><code class="language-TypeScript">class AssignVoucherData extends BaseModel</code></pre>

  
**Properties:**
| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **code** | string | no | Voucher's code |
| **expireIn** | Date | yes | Voucher's expiration date |
| **redeemAt** | Date | yes | Voucher's redemption date |
| **assignedAt** | Date | yes | Voucher's assignment date |
| **createdAt** | Date | no | Voucher's creation date |
| **updatedAt** | Date | no | Voucher's update date |

---
---

### VoucherCodesData
**Declared In:**  
lib/classes/models/Vouchers/VoucherCodesData.js  
  
**Inherits From:**  
[BaseModel](/developers/mobile-sdk/class-reference/react-native/miscellaneous#basemodel)  
  
**Declaration:**

<pre><code class="language-TypeScript">class VoucherCodesData extends BaseModel</code></pre>

  
**Properties:**
| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **code** | string | no | Voucher's code |
| **status** | [VoucherCodeStatus](/developers/mobile-sdk/class-reference/react-native/promotions-and-vouchers#vouchercodestatus) | no | Voucher's status |
| **clientId** | string | no | ID of the customer to whom the voucher is assigned |
| **clientUuid** | string | no | UUID of the customer to whom the voucher is assigned |
| **poolUuid** | string | no | Voucher's pool ID |
| **expireIn** | string | no | Voucher's expiration date  |
| **redeemAt** | Date | no | Voucher's redemption date |
| **assignedAt** | Date | no | Voucher's assignment date |
| **createdAt** | Date | no | Voucher's creation date |
| **updatedAt** | Date | no | Voucher's update date|

---
---

### VoucherCodeStatus
**Declared In:**  
lib/classes/models/Vouchers/VoucherCodeStatus.js    
  
**Declaration:**  

<pre><code class="language-TypeScript">enum VoucherCodeStatus {
  Unassigned = 'UNASSIGNED',
  Assigned = 'ASSIGNED',
  Redeemed = 'REDEEMED',
  Canceled = 'CANCELED',
}</code></pre>

  
**Functions:**

Converts from **VoucherCodeStatus** to **string**.

<pre><code class="language-TypeScript">function VoucherCodeStatusToString(voucherCodeStatus: VoucherCodeStatus): string</code></pre>


---

Converts from **string** to **VoucherCodeStatus**.

<pre><code class="language-TypeScript">function VoucherCodeStatusFromString(string: string): VoucherCodeStatus</code></pre>


