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

# Class: TransactionService

Platform-Agnostic Transaction Service

Contains transaction 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/transactionservice#constructor)


### Methods

- [getTransactionById](/sdk-reference/classes/transactionservice#gettransactionbyid)
- [createTransaction](/sdk-reference/classes/transactionservice#createtransaction)
- [submitSignedTransaction](/sdk-reference/classes/transactionservice#submitsignedtransaction)
- [getUserTransactionHistory](/sdk-reference/classes/transactionservice#getusertransactionhistory)
- [prepareExistingTransaction](/sdk-reference/classes/transactionservice#prepareexistingtransaction)
- [prepareClientSignedTransaction](/sdk-reference/classes/transactionservice#prepareclientsignedtransaction)
- [getPaginatedTransactions](/sdk-reference/classes/transactionservice#getpaginatedtransactions)
- [exportTransactionsCSV](/sdk-reference/classes/transactionservice#exporttransactionscsv)
- [queryTransactionsBySender](/sdk-reference/classes/transactionservice#querytransactionsbysender)
- [queryTransactionsByRecipient](/sdk-reference/classes/transactionservice#querytransactionsbyrecipient)
- [getTransactionAnalytics](/sdk-reference/classes/transactionservice#gettransactionanalytics)


## Constructors

### constructor

• **new TransactionService**(`transactionApi`): [`TransactionService`](/sdk-reference/classes/transactionservice)

#### Parameters

| Name | Type |
|  --- | --- |
| `transactionApi` | [`TransactionApi`](/sdk-reference/classes/transactionapi) |


#### Returns

[`TransactionService`](/sdk-reference/classes/transactionservice)

#### Defined in

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

## Methods

### getTransactionById

▸ **getTransactionById**(`transactionId`, `include?`): `Promise`<`TransactionDTO`>

Get transaction by ID

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `transactionId` | `string` | Transaction ID |
| `include?` | `TransactionIncludeRelation`[] | Optional relations to include (sender, recipient, business) |


#### Returns

`Promise`<`TransactionDTO`>

#### Defined in

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

### createTransaction

▸ **createTransaction**(`request`): `Promise`<`TransactionRequestResponseDTO`>

AUTH: Create authenticated transaction

#### Parameters

| Name | Type |
|  --- | --- |
| `request` | `TransactionRequestDTO` |


#### Returns

`Promise`<`TransactionRequestResponseDTO`>

#### Defined in

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

### submitSignedTransaction

▸ **submitSignedTransaction**(`signedTxData`): `Promise`<`TransactionRequestResponseDTO`>

#### Parameters

| Name | Type |
|  --- | --- |
| `signedTxData` | `TransactionSubmissionRequestDTO` |


#### Returns

`Promise`<`TransactionRequestResponseDTO`>

#### Defined in

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

### getUserTransactionHistory

▸ **getUserTransactionHistory**(`options?`): `Promise`<`PaginatedResponseDTO`<`TransactionDTO`>>

AUTH: Get user transaction history with comprehensive filtering

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `options?` | `TransactionQueryParams` | Query options including filters, pagination, and include relations |


#### Returns

`Promise`<`PaginatedResponseDTO`<`TransactionDTO`>>

Paginated transaction history

#### Defined in

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

### prepareExistingTransaction

▸ **prepareExistingTransaction**(`transactionId`): `Promise`<`TransactionRequestResponseDTO`>

AUTH: Prepare existing transaction for client-side signing

#### Parameters

| Name | Type |
|  --- | --- |
| `transactionId` | `string` |


#### Returns

`Promise`<`TransactionRequestResponseDTO`>

#### Defined in

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

### prepareClientSignedTransaction

▸ **prepareClientSignedTransaction**(`request`): `Promise`<`TransactionRequestResponseDTO`>

AUTH: Prepare client signed transaction

#### Parameters

| Name | Type |
|  --- | --- |
| `request` | `TransactionRequestDTO` |


#### Returns

`Promise`<`TransactionRequestResponseDTO`>

#### Defined in

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

### getPaginatedTransactions

▸ **getPaginatedTransactions**(`options`): `Promise`<`PaginatedResponseDTO`<`TransactionDTO`>>

ADMIN: Get paginated transactions with filtering and sorting

#### Parameters

| Name | Type |
|  --- | --- |
| `options` | `TransactionPaginationRequestDTO` & { `include?`: `TransactionIncludeRelation`[]  } |


#### Returns

`Promise`<`PaginatedResponseDTO`<`TransactionDTO`>>

#### Defined in

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

### exportTransactionsCSV

▸ **exportTransactionsCSV**(`options?`): `Promise`<`Blob`>

ADMIN: Export transactions to CSV

#### Parameters

| Name | Type |
|  --- | --- |
| `options?` | `Object` |
| `options.dateFrom?` | `string` |
| `options.dateTo?` | `string` |


#### Returns

`Promise`<`Blob`>

#### Defined in

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

### queryTransactionsBySender

▸ **queryTransactionsBySender**(`accountSelector`): `Promise`<`PaginatedResponseDTO`<`TransactionDTO`>>

Query transactions by sender

#### Parameters

| Name | Type |
|  --- | --- |
| `accountSelector` | `AccountSelectorDTO` |


#### Returns

`Promise`<`PaginatedResponseDTO`<`TransactionDTO`>>

#### Defined in

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

### queryTransactionsByRecipient

▸ **queryTransactionsByRecipient**(`accountSelector`): `Promise`<`PaginatedResponseDTO`<`TransactionDTO`>>

Query transactions by recipient

#### Parameters

| Name | Type |
|  --- | --- |
| `accountSelector` | `AccountSelectorDTO` |


#### Returns

`Promise`<`PaginatedResponseDTO`<`TransactionDTO`>>

#### Defined in

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

### getTransactionAnalytics

▸ **getTransactionAnalytics**(`analyticsRequest`): `Promise`<`TransactionAnalyticsResponseDTO`>

ADMIN: Get transaction analytics

#### Parameters

| Name | Type |
|  --- | --- |
| `analyticsRequest` | `TransactionAnalyticsRequestDTO` |


#### Returns

`Promise`<`TransactionAnalyticsResponseDTO`>

#### Defined in

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