PERS SDK - v2.3.26 / Exports / 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
- getTransactionById
- createTransaction
- getUserTransactionHistory
- prepareExistingTransaction
- submitSignedTransaction
- prepareClientSignedTransaction
- getPaginatedTransactions
- exportCSV
- exportTransactionsCSV
- queryTransactionsBySender
- queryTransactionsByRecipient
- getTransactionAnalytics
• new TransactionApi(apiClient): TransactionApi
| Name | Type |
|---|---|
apiClient | PersApiClient |
transaction/api/transaction-api.ts:27
▸ 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
| Name | Type | Description |
|---|---|---|
transactionId | string | Transaction ID |
include? | TransactionIncludeRelation[] | Optional relations to include (sender, recipient, business) |
Promise<TransactionDTO>
transaction/api/transaction-api.ts:40
▸ createTransaction(request): Promise<TransactionRequestResponseDTO>
Unique method to create a transaction
| Name | Type |
|---|---|
request | TransactionRequestDTO |
Promise<TransactionRequestResponseDTO>
transaction/api/transaction-api.ts:61
▸ 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.)
| Name | Type | Description |
|---|---|---|
options? | TransactionQueryParams | Pagination, filter, and include options |
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);
}
});transaction/api/transaction-api.ts:173
▸ prepareExistingTransaction(transactionId): Promise<TransactionRequestResponseDTO>
AUTH: Prepare existing transaction for client-side signing
NEW ENDPOINT: GET /transactions/{id}/prepare
| Name | Type |
|---|---|
transactionId | string |
Promise<TransactionRequestResponseDTO>
transaction/api/transaction-api.ts:185
▸ submitSignedTransaction(signedTxData): Promise<TransactionRequestResponseDTO>
AUTH: Submit client-side signed transaction
NEW ENDPOINT: POST /transactions/submit
| Name | Type |
|---|---|
signedTxData | TransactionSubmissionRequestDTO |
Promise<TransactionRequestResponseDTO>
transaction/api/transaction-api.ts:194
▸ prepareClientSignedTransaction(request): Promise<TransactionRequestResponseDTO>
AUTH: Prepare client signed transaction (Create new transaction for signing)
UPDATED: /transaction/auth/prepare-signing → /transactions (POST)
| Name | Type |
|---|---|
request | TransactionRequestDTO |
Promise<TransactionRequestResponseDTO>
transaction/api/transaction-api.ts:230
▸ getPaginatedTransactions(options): Promise<PaginatedResponseDTO<TransactionDTO>>
ADMIN: Get paginated transactions with filtering and sorting
UPDATED: /transaction/admin → /transactions (same endpoint, better structure)
| Name | Type | Description |
|---|---|---|
options | TransactionPaginationRequestDTO & { include?: TransactionIncludeRelation[] } | Pagination request with filters and optional include relations |
Promise<PaginatedResponseDTO<TransactionDTO>>
transaction/api/transaction-api.ts:241
▸ exportCSV(options?): Promise<Blob>
ADMIN: Export transactions to CSV
Returns a CSV file with transaction data for the tenant. Supports date range filtering.
| Name | Type | Description |
|---|---|---|
options? | Object | Export options (dateFrom, dateTo) |
options.dateFrom? | string | - |
options.dateTo? | string | - |
Promise<Blob>
CSV blob
transaction/api/transaction-api.ts:261
▸ exportTransactionsCSV(): Promise<Blob>
Promise<Blob>
Deprecated
Use exportCSV() instead
transaction/api/transaction-api.ts:273
▸ queryTransactionsBySender(accountSelector): Promise<PaginatedResponseDTO<TransactionDTO>>
Query transactions by sender using unified endpoint
| Name | Type |
|---|---|
accountSelector | AccountSelectorDTO |
Promise<PaginatedResponseDTO<TransactionDTO>>
transaction/api/transaction-api.ts:289
▸ queryTransactionsByRecipient(accountSelector): Promise<PaginatedResponseDTO<TransactionDTO>>
Query transactions by recipient using unified endpoint
| Name | Type |
|---|---|
accountSelector | AccountSelectorDTO |
Promise<PaginatedResponseDTO<TransactionDTO>>
transaction/api/transaction-api.ts:308
▸ getTransactionAnalytics(analyticsRequest): Promise<TransactionAnalyticsResponseDTO>
ADMIN: Get transaction analytics
NEW ENDPOINT: POST /transactions/analytics
| Name | Type |
|---|---|
analyticsRequest | TransactionAnalyticsRequestDTO |
Promise<TransactionAnalyticsResponseDTO>