[PERS SDK - v2.3.26](/sdk-reference/readme) / [Exports](/sdk-reference/modules) / RedemptionService

# Class: RedemptionService

Platform-Agnostic Redemption Service

Contains redemption business logic and operations that work across platforms.
No framework dependencies - pure TypeScript business logic.

Focuses only on actual backend capabilities.

## Table of contents

### Constructors

- [constructor](/sdk-reference/classes/redemptionservice#constructor)


### Methods

- [getRedemptions](/sdk-reference/classes/redemptionservice#getredemptions)
- [getRedemptionById](/sdk-reference/classes/redemptionservice#getredemptionbyid)
- [getActiveRedemptions](/sdk-reference/classes/redemptionservice#getactiveredemptions)
- [getRedemptionTypes](/sdk-reference/classes/redemptionservice#getredemptiontypes)
- [redeemRedemption](/sdk-reference/classes/redemptionservice#redeemredemption)
- [getRedemptionRedeems](/sdk-reference/classes/redemptionservice#getredemptionredeems)
- [getUserRedeems](/sdk-reference/classes/redemptionservice#getuserredeems)
- [getRedemptionsAsAdmin](/sdk-reference/classes/redemptionservice#getredemptionsasadmin)
- [createRedemption](/sdk-reference/classes/redemptionservice#createredemption)
- [updateRedemption](/sdk-reference/classes/redemptionservice#updateredemption)
- [toggleRedemptionActive](/sdk-reference/classes/redemptionservice#toggleredemptionactive)
- [createRedemptionTokenUnit](/sdk-reference/classes/redemptionservice#createredemptiontokenunit)
- [deleteRedemptionTokenUnit](/sdk-reference/classes/redemptionservice#deleteredemptiontokenunit)
- [createRedemptionType](/sdk-reference/classes/redemptionservice#createredemptiontype)
- [updateRedemptionType](/sdk-reference/classes/redemptionservice#updateredemptiontype)
- [deleteRedemption](/sdk-reference/classes/redemptionservice#deleteredemption)
- [deleteRedemptionType](/sdk-reference/classes/redemptionservice#deleteredemptiontype)


## Constructors

### constructor

• **new RedemptionService**(`redemptionApi`): [`RedemptionService`](/sdk-reference/classes/redemptionservice)

#### Parameters

| Name | Type |
|  --- | --- |
| `redemptionApi` | [`RedemptionApi`](/sdk-reference/classes/redemptionapi) |


#### Returns

[`RedemptionService`](/sdk-reference/classes/redemptionservice)

#### Defined in

[redemption/services/redemption-service.ts:39](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L39)

## Methods

### getRedemptions

▸ **getRedemptions**(`options?`): `Promise`<`PaginatedResponseDTO`<`RedemptionDTO`>>

UNIFIED: Get redemptions with intelligent access control and pagination

#### Parameters

| Name | Type |
|  --- | --- |
| `options?` | `RedemptionQueryParams` |


#### Returns

`Promise`<`PaginatedResponseDTO`<`RedemptionDTO`>>

#### Defined in

[redemption/services/redemption-service.ts:59](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L59)

### getRedemptionById

▸ **getRedemptionById**(`id`, `include?`): `Promise`<`RedemptionDTO`>

Get a specific redemption by ID

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `id` | `string` | Redemption UUID |
| `include?` | `RedemptionIncludeRelation`[] | Optional relations to include: 'redeemCount' |


#### Returns

`Promise`<`RedemptionDTO`>

#### Defined in

[redemption/services/redemption-service.ts:68](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L68)

### getActiveRedemptions

▸ **getActiveRedemptions**(): `Promise`<`RedemptionDTO`[]>

Convenience: Get active redemptions (public)

#### Returns

`Promise`<`RedemptionDTO`[]>

#### Defined in

[redemption/services/redemption-service.ts:75](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L75)

### getRedemptionTypes

▸ **getRedemptionTypes**(`options?`): `Promise`<`PaginatedResponseDTO`<`RedemptionTypeDTO`>>

Get all redemption types with pagination

#### Parameters

| Name | Type |
|  --- | --- |
| `options?` | `PaginationOptions` |


#### Returns

`Promise`<`PaginatedResponseDTO`<`RedemptionTypeDTO`>>

#### Defined in

[redemption/services/redemption-service.ts:82](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L82)

### redeemRedemption

▸ **redeemRedemption**(`request`): `Promise`<`RedemptionRedeemRequestResponseDTO`>

AUTH: Redeem a redemption with optional dynamic context

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `request` | `string` | `RedemptionRedeemRequestDTO` | Redemption request (can be just redemptionId string or full request with context) |


#### Returns

`Promise`<`RedemptionRedeemRequestResponseDTO`>

#### Defined in

[redemption/services/redemption-service.ts:95](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L95)

### getRedemptionRedeems

▸ **getRedemptionRedeems**(`filters?`, `include?`): `Promise`<`PaginatedResponseDTO`<`RedemptionRedeemDTO`>>

UNIFIED: Get redemption redeems with filtering and pagination

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `filters?` | `Object` | Filter options (redemptionId, userId, businessId, status, dateFrom, dateTo, myRedeems) |
| `filters.redemptionId?` | `string` | - |
| `filters.userId?` | `string` | - |
| `filters.businessId?` | `string` | - |
| `filters.status?` | `ProcessRecordStatus` | - |
| `filters.dateFrom?` | `string` | `Date` | - |
| `filters.dateTo?` | `string` | `Date` | - |
| `filters.myRedeems?` | `boolean` | - |
| `include?` | `RedemptionRedeemIncludeRelation`[] | Optional relations to include (redemption, user, business, transactions) |


#### Returns

`Promise`<`PaginatedResponseDTO`<`RedemptionRedeemDTO`>>

#### Defined in

[redemption/services/redemption-service.ts:108](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L108)

### getUserRedeems

▸ **getUserRedeems**(`filters?`, `options?`, `include?`): `Promise`<`PaginatedResponseDTO`<`RedemptionRedeemDTO`>>

Convenience: Get user redemptions with pagination and filtering

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `filters?` | `Object` | Optional filters (redemptionId, status) |
| `filters.redemptionId?` | `string` | - |
| `filters.status?` | `ProcessRecordStatus` | - |
| `options?` | `PaginationOptions` | Pagination options |
| `include?` | `RedemptionRedeemIncludeRelation`[] | Optional relations to include (redemption, user, business, transactions) |


#### Returns

`Promise`<`PaginatedResponseDTO`<`RedemptionRedeemDTO`>>

#### Defined in

[redemption/services/redemption-service.ts:129](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L129)

### getRedemptionsAsAdmin

▸ **getRedemptionsAsAdmin**(`options?`): `Promise`<`PaginatedResponseDTO`<`RedemptionDTO`>>

Convenience: Get redemptions as admin with filtering and search

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `options?` | `RedemptionQueryParams` | Filter options (active, search, tags, pagination) |


#### Returns

`Promise`<`PaginatedResponseDTO`<`RedemptionDTO`>>

#### Defined in

[redemption/services/redemption-service.ts:145](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L145)

### createRedemption

▸ **createRedemption**(`redemption`): `Promise`<`RedemptionDTO`>

ADMIN: Create redemption

#### Parameters

| Name | Type |
|  --- | --- |
| `redemption` | `RedemptionCreateRequestDTO` |


#### Returns

`Promise`<`RedemptionDTO`>

#### Defined in

[redemption/services/redemption-service.ts:152](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L152)

### updateRedemption

▸ **updateRedemption**(`id`, `redemptionCreateRequest`): `Promise`<`RedemptionDTO`>

ADMIN: Update redemption

#### Parameters

| Name | Type |
|  --- | --- |
| `id` | `string` |
| `redemptionCreateRequest` | `RedemptionCreateRequestDTO` |


#### Returns

`Promise`<`RedemptionDTO`>

#### Defined in

[redemption/services/redemption-service.ts:159](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L159)

### toggleRedemptionActive

▸ **toggleRedemptionActive**(`redemptionId`): `Promise`<`RedemptionDTO`>

ADMIN: Toggle redemption active status

#### Parameters

| Name | Type |
|  --- | --- |
| `redemptionId` | `string` |


#### Returns

`Promise`<`RedemptionDTO`>

#### Defined in

[redemption/services/redemption-service.ts:166](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L166)

### createRedemptionTokenUnit

▸ **createRedemptionTokenUnit**(`redemptionId`, `redemptionTokenUnit`): `Promise`<`RedemptionDTO`>

ADMIN: Create redemption token unit

#### Parameters

| Name | Type |
|  --- | --- |
| `redemptionId` | `string` |
| `redemptionTokenUnit` | `TokenUnitCreateRequestDTO` |


#### Returns

`Promise`<`RedemptionDTO`>

#### Defined in

[redemption/services/redemption-service.ts:173](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L173)

### deleteRedemptionTokenUnit

▸ **deleteRedemptionTokenUnit**(`redemptionId`, `redemptionTokenUnitId`): `Promise`<`RedemptionDTO`>

ADMIN: Delete redemption token unit

#### Parameters

| Name | Type |
|  --- | --- |
| `redemptionId` | `string` |
| `redemptionTokenUnitId` | `string` |


#### Returns

`Promise`<`RedemptionDTO`>

#### Defined in

[redemption/services/redemption-service.ts:180](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L180)

### createRedemptionType

▸ **createRedemptionType**(`data`): `Promise`<`RedemptionTypeDTO`>

ADMIN: Create redemption type

#### Parameters

| Name | Type |
|  --- | --- |
| `data` | `RedemptionTypeCreateRequestDTO` |


#### Returns

`Promise`<`RedemptionTypeDTO`>

#### Defined in

[redemption/services/redemption-service.ts:191](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L191)

### updateRedemptionType

▸ **updateRedemptionType**(`data`): `Promise`<`RedemptionTypeDTO`>

ADMIN: Update redemption type

#### Parameters

| Name | Type |
|  --- | --- |
| `data` | `RedemptionTypeDTO` |


#### Returns

`Promise`<`RedemptionTypeDTO`>

#### Defined in

[redemption/services/redemption-service.ts:198](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L198)

### deleteRedemption

▸ **deleteRedemption**(`id`): `Promise`<`boolean`>

ADMIN: Delete redemption

#### Parameters

| Name | Type |
|  --- | --- |
| `id` | `string` |


#### Returns

`Promise`<`boolean`>

#### Defined in

[redemption/services/redemption-service.ts:205](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L205)

### deleteRedemptionType

▸ **deleteRedemptionType**(`id`): `Promise`<`boolean`>

ADMIN: Delete redemption type

#### Parameters

| Name | Type |
|  --- | --- |
| `id` | `number` |


#### Returns

`Promise`<`boolean`>

#### Defined in

[redemption/services/redemption-service.ts:212](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/redemption/services/redemption-service.ts#L212)