Skip to content
Last updated

PERS SDK - v2.3.26 / Exports / TransactionApi

Class: TransactionApi

Platform-Agnostic Transaction API Client (UPDATED FOR NEW RESTful ENDPOINTS)

Handles transaction operations using the PERS backend. Uses @explorins/pers-shared DTOs for consistency with backend.

MIGRATION NOTES:

  • All endpoints changed from /transaction to /transactions
  • Role-based paths removed (no more /auth, /admin, /business in URLs)
  • New RESTful resource-based structure
  • Added new client-side transaction flow methods
  • Enhanced admin query capabilities

Table of contents

Constructors

Methods

Constructors

constructor

new TransactionApi(apiClient): TransactionApi

Parameters

NameType
apiClientPersApiClient

Returns

TransactionApi

Defined in

transaction/api/transaction-api.ts:27

Methods

getTransactionById

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

Get transaction by ID (public endpoint)

UPDATED: /transaction/{id} → /transactions/{id} UPDATED: Added support for include parameter to enrich with sender/recipient/business entities

Parameters

NameTypeDescription
transactionIdstringTransaction ID
include?TransactionIncludeRelation[]Optional relations to include (sender, recipient, business)

Returns

Promise<TransactionDTO>

Defined in

transaction/api/transaction-api.ts:40


createTransaction

createTransaction(request): Promise<TransactionRequestResponseDTO>

Unique method to create a transaction

Parameters

NameType
requestTransactionRequestDTO

Returns

Promise<TransactionRequestResponseDTO>

Defined in

transaction/api/transaction-api.ts:61


getUserTransactionHistory

getUserTransactionHistory(options?): Promise<PaginatedResponseDTO<TransactionDTO>>

AUTH: Get user transaction history with role-based filtering and pagination

UPDATED: Uses consolidated /transactions/me endpoint with all filter options UPDATED: Added support for include parameter to enrich with sender/recipient/business entities UPDATED: Now supports all TransactionFiltersDTO filters (triggerProcessId, status, type, etc.)

Parameters

NameTypeDescription
options?TransactionQueryParamsPagination, filter, and include options

Returns

Promise<PaginatedResponseDTO<TransactionDTO>>

Paginated list of user's transactions

Example

// Get first page of all transactions
const page1 = await transactionApi.getUserTransactionHistory();

// Filter by role and status
const completed = await transactionApi.getUserTransactionHistory({ 
  role: TransactionRole.SENDER,
  status: TransactionStatus.COMPLETED,
  page: 1,
  limit: 50
});

// Filter by trigger process (e.g., from campaign claim or redemption)
const claimTransactions = await transactionApi.getUserTransactionHistory({
  triggerProcessId: 'claim-abc123',
  include: ['sender', 'recipient', 'business']
});

// Access included entities
claimTransactions.data.forEach(tx => {
  if (tx.included?.engagedBusiness) {
    console.log('Business:', tx.included.engagedBusiness.displayName);
  }
});

Defined in

transaction/api/transaction-api.ts:173


prepareExistingTransaction

prepareExistingTransaction(transactionId): Promise<TransactionRequestResponseDTO>

AUTH: Prepare existing transaction for client-side signing

NEW ENDPOINT: GET /transactions/{id}/prepare

Parameters

NameType
transactionIdstring

Returns

Promise<TransactionRequestResponseDTO>

Defined in

transaction/api/transaction-api.ts:185


submitSignedTransaction

submitSignedTransaction(signedTxData): Promise<TransactionRequestResponseDTO>

AUTH: Submit client-side signed transaction

NEW ENDPOINT: POST /transactions/submit

Parameters

NameType
signedTxDataTransactionSubmissionRequestDTO

Returns

Promise<TransactionRequestResponseDTO>

Defined in

transaction/api/transaction-api.ts:194


prepareClientSignedTransaction

prepareClientSignedTransaction(request): Promise<TransactionRequestResponseDTO>

AUTH: Prepare client signed transaction (Create new transaction for signing)

UPDATED: /transaction/auth/prepare-signing → /transactions (POST)

Parameters

NameType
requestTransactionRequestDTO

Returns

Promise<TransactionRequestResponseDTO>

Defined in

transaction/api/transaction-api.ts:230


getPaginatedTransactions

getPaginatedTransactions(options): Promise<PaginatedResponseDTO<TransactionDTO>>

ADMIN: Get paginated transactions with filtering and sorting

UPDATED: /transaction/admin → /transactions (same endpoint, better structure)

Parameters

NameTypeDescription
optionsTransactionPaginationRequestDTO & { include?: TransactionIncludeRelation[] }Pagination request with filters and optional include relations

Returns

Promise<PaginatedResponseDTO<TransactionDTO>>

Defined in

transaction/api/transaction-api.ts:241


exportCSV

exportCSV(options?): Promise<Blob>

ADMIN: Export transactions to CSV

Returns a CSV file with transaction data for the tenant. Supports date range filtering.

Parameters

NameTypeDescription
options?ObjectExport options (dateFrom, dateTo)
options.dateFrom?string-
options.dateTo?string-

Returns

Promise<Blob>

CSV blob

Defined in

transaction/api/transaction-api.ts:261


exportTransactionsCSV

exportTransactionsCSV(): Promise<Blob>

Returns

Promise<Blob>

Deprecated

Use exportCSV() instead

Defined in

transaction/api/transaction-api.ts:273


queryTransactionsBySender

queryTransactionsBySender(accountSelector): Promise<PaginatedResponseDTO<TransactionDTO>>

Query transactions by sender using unified endpoint

Parameters

NameType
accountSelectorAccountSelectorDTO

Returns

Promise<PaginatedResponseDTO<TransactionDTO>>

Defined in

transaction/api/transaction-api.ts:289


queryTransactionsByRecipient

queryTransactionsByRecipient(accountSelector): Promise<PaginatedResponseDTO<TransactionDTO>>

Query transactions by recipient using unified endpoint

Parameters

NameType
accountSelectorAccountSelectorDTO

Returns

Promise<PaginatedResponseDTO<TransactionDTO>>

Defined in

transaction/api/transaction-api.ts:308


getTransactionAnalytics

getTransactionAnalytics(analyticsRequest): Promise<TransactionAnalyticsResponseDTO>

ADMIN: Get transaction analytics

NEW ENDPOINT: POST /transactions/analytics

Parameters

NameType
analyticsRequestTransactionAnalyticsRequestDTO

Returns

Promise<TransactionAnalyticsResponseDTO>

Defined in

transaction/api/transaction-api.ts:329