Get Last Financial Account Activity
This endpoint retrieves a merged list of recent transaction activities for a specified financial account. It returns detailed records including transaction amounts, dates, descriptions, transfer details, and merchant information. Pagination, status filtering, and amount range filters are all supported to refine the result set.
Endpoint
POST /api/transaction/byFinancialAccount/server
Authentication
Bearer token required. Obtain via:
POST https://api.banking.netevia.dev/api/auth/v2
Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.
When to use
Use this endpoint when you need real-time visibility into account activity for a specific financial account — for example, to populate a transaction history view, audit recent debits and credits, or monitor pending activity. It is suited for server-side calls where a date range and optional filters are applied to narrow the results. Both business and personal account activity can be queried.
Request Body
The request body accepts one of three schema variants. All variants extend a common base that requires financialAccountId, dateFrom, and dateTo. The extended variants add amount-range filtering and free-text search.
Base fields (all variants)
| Field | Type | Required | Description |
|---|---|---|---|
| financialAccountId | string | Yes | Unique identifier of the financial account to query |
| dateFrom | string (date-time) | Yes | Start of the date range (ISO 8601 format) |
| dateTo | string (date-time) | Yes | End of the date range (ISO 8601 format) |
| filter | object | No | Transaction type filter (see finaccounttransactionfilter below) |
| jsonFilter | string | No | Raw JSON filter string for advanced filtering |
| spendEvents | array of strings | No | List of spend event types to include |
| paymentCardId | string | No | Filter transactions by a specific payment card ID |
| status | string (enum) | No | Filter by activity status: OTHER, PENDING, COMPLETED, FAILED |
| paginationSettings | object | No | Pagination control (see below) |
Extended variant: financialaccountwithperiodandamountfilterrequest
| Field | Type | Required | Description |
|---|---|---|---|
| amountFilter | object | No | Min/max amount range filter (see below) |
| searchString | string | No | Free-text search string to filter transactions |
Extended variant: financialaccountwithperiodandamountfilterrequestextension
| Field | Type | Required | Description |
|---|---|---|---|
| financialAccountId | string | No | Overrides the inherited financialAccountId when used in this variant |
paginationSettings object
| Field | Type | Required | Description |
|---|---|---|---|
| take | integer (1–10000) | No | Number of records to return |
| skip | integer (0–2147483647) | No | Number of records to skip (for offset-based pagination) |
amountFilter object
| Field | Type | Required | Description |
|---|---|---|---|
| minValue | integer (int64) | No | Minimum transaction amount in cents |
| maxValue | integer (int64) | No | Maximum transaction amount in cents |
filter object (finaccounttransactionfilter)
| Field | Type | Required | Description |
|---|---|---|---|
| all | filterItem | No | Include all transaction types |
| deposit | filterItem | No | Filter for deposit transactions |
| withdraw | filterItem | No | Filter for withdrawal transactions |
| transfers | filterItem | No | Filter for transfer transactions |
| pos | filterItem | No | Filter for point-of-sale transactions |
| transactionStatus | filterItem | No | Filter by transaction status |
| others | filterItem | No | Filter for other transaction types |
Each filterItem has the following structure:
| Field | Type | Description |
|---|---|---|
| displayName | string | Human-readable label for the filter |
| value | boolean | Whether this filter is active |
| items | array of filterItem | Nested filter items |
{
"financialAccountId": "fa_abc123xyz",
"dateFrom": "2026-05-01T00:00:00Z",
"dateTo": "2026-06-01T00:00:00Z",
"status": "COMPLETED",
"paginationSettings": {
"take": 25,
"skip": 0
},
"amountFilter": {
"minValue": 500,
"maxValue": 100000
},
"searchString": "coffee",
"filter": {
"pos": {
"displayName": "Point of Sale",
"value": true
}
}
}Response
200 OK
| Field | Type | Description |
|---|---|---|
| data | object | Merged activity data container |
| data.transferPageInfo | array of pageInfo | Pagination info for transfer records |
| data.transactionPageInfo | pageInfo | Pagination info for transaction records |
| data.activity | array of activityResponseModel | List of activity records |
| filter | object | The resolved finaccounttransactionfilter applied to the query |
pageInfo object
| Field | Type | Description |
|---|---|---|
| startCursor | string | Cursor pointing to the first record in this page |
| endCursor | string | Cursor pointing to the last record in this page |
| hasNextPage | boolean | Whether more records exist after this page |
| hasPreviousPage | boolean | Whether records exist before this page |
activity item fields
| Field | Type | Description |
|---|---|---|
| id | string | Unique identifier for the activity record |
| typename | string | GraphQL type name of the activity |
| name | string | Display name or label for the transaction |
| typeModel | string | Internal type model classification |
| pendingAmount | amount | Pending amount object (value in cents + currency code) |
| amount | amount | Settled amount object (value in cents + currency code) |
| lastEventBalanceSnapshot | amount | Account balance snapshot at the time of the last event |
| createdAt | string (date-time) | Timestamp when the transaction was created |
| isComplete | boolean | Whether the transaction has completed processing |
| transactionSource | source | Source details of the transaction |
| transferStatus | transferStatus | Status and reason code for transfer activities |
| companyName | string | Name of the company associated with the transaction |
| descriptor | descriptor | ACH descriptor fields (company entry, individual name, ID number) |
| toFinancialAccount | transferFinAccount | Destination financial account details |
| fromFinancialAccount | transferFinAccount | Source financial account details |
| refundEvent | transactionEvent | Details of a refund event if applicable |
| lastEvent | transactionEvent | Most recent event for this transaction |
| firstEvent | transactionEvent | Initial event for this transaction |
| isBetweenOwnAccounts | boolean | Whether this is an internal transfer between the customer's own accounts |
| activityInfo | activityInfo | Profile and history record metadata |
| purpose | string | Purpose memo or tag for the transaction |
| giftCardOrderId | string | Associated gift card order ID if applicable |
| memo | string | Free-text memo attached to the transaction |
| fromDBA | string | DBA name of the sending party |
| toDBA | string | DBA name of the receiving party |
amount object
| Field | Type | Description |
|---|---|---|
| value | integer (int64) | Amount in the smallest currency unit (e.g., cents) |
| currencyCode | string | ISO 4217 currency code (e.g., "USD") |
transactionEvent object
| Field | Type | Description |
|---|---|---|
| typename | string | Type of the event |
| id | string | Event identifier |
| merchantDetails | merchantDetails | Merchant category, name, country, and ID |
| pointOfServiceDetails | pointOfServiceDetails | PAN and PIN entry mode details |
| responseCode | string | Authorization response code |
| responseDescription | string | Human-readable response description |
| approvedAmount | amount | Approved amount |
| requestedAmount | amount | Requested authorization amount |
| paymentCard | paymentCardActivity | Card bin and last 4 digits |
| createdAt | string (date-time) | Event creation timestamp |
| authorizationExpiration | string (date-time) | When the authorization expires |
| processingType | string | Processing type (e.g., EMV, swipe, contactless) |
| rewardPoints | integer (int64) | Reward points earned on this event |
| accountingDirection | string (enum) | DEBIT or CREDIT |
{
"data": {
"transferPageInfo": [
{
"startCursor": "cursor_start_001",
"endCursor": "cursor_end_025",
"hasNextPage": false,
"hasPreviousPage": false
}
],
"transactionPageInfo": {
"startCursor": "cursor_start_001",
"endCursor": "cursor_end_025",
"hasNextPage": false,
"hasPreviousPage": false
},
"activity": [
{
"id": "txn_9f8a7b6c5d",
"typename": "CardTransaction",
"name": "Purchase - Starbucks",
"typeModel": "CARD_TRANSACTION",
"pendingAmount": {
"value": 0,
"currencyCode": "USD"
},
"amount": {
"value": 675,
"currencyCode": "USD"
},
"lastEventBalanceSnapshot": {
"value": 152340,
"currencyCode": "USD"
},
"createdAt": "2026-05-15T10:22:00Z",
"isComplete": true,
"transactionSource": {
"typename": "CardTransaction",
"id": "src_abc123"
},
"transferStatus": null,
"companyName": "Starbucks",
"descriptor": {
"companyEntryDescription": "PURCHASE",
"individualName": "JOHN DOE",
"individualIdentificationNumber": "REF0001"
},
"toFinancialAccount": null,
"fromFinancialAccount": null,
"lastEvent": {
"typename": "CardTransactionEvent",
"id": "evt_001",
"merchantDetails": {
"category": "Food & Beverage",
"categoryCode": "5812",
"countryCodeAlpha3": "USA",
"description": "Eating Places, Restaurants",
"name": "Starbucks",
"merchantId": "merch_99887766"
},
"pointOfServiceDetails": {
"panEntryMode": "CONTACTLESS",
"pinEntryMode": "NOT_APPLICABLE"
},
"responseCode": "00",
"responseDescription": "APPROVED",
"approvedAmount": {
"value": 675,
"currencyCode": "USD"
},
"requestedAmount": {
"value": 675,
"currencyCode": "USD"
},
"paymentCard": {
"id": "card_xyz456",
"bin": "411111",
"last4": "1234"
},
"createdAt": "2026-05-15T10:22:00Z",
"authorizationExpiration": "2026-05-22T10:22:00Z",
"processingType": "CONTACTLESS_EMV",
"rewardPoints": 7,
"accountingDirection": "DEBIT"
},
"isBetweenOwnAccounts": false,
"activityInfo": {
"fromProfile": {
"id": 1001,
"name": "Acme Corp",
"agentId": 55
},
"toProfile": null,
"historyRecords": [
{
"date": "2026-05-15T10:22:00Z",
"status": "COMPLETED"
}
]
},
"purpose": null,
"giftCardOrderId": null,
"memo": null,
"fromDBA": "Acme Corp",
"toDBA": "Starbucks"
}
]
},
"filter": {
"pos": {
"displayName": "Point of Sale",
"value": true,
"items": null
}
}
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields (financialAccountId, dateFrom, or dateTo), invalid date format, or pagination values out of range |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to access the specified financial account |
| 404 | Financial account not found or does not belong to the authenticated user |
| 500 | Internal server error |
Common Mistakes
- Omitting
financialAccountId,dateFrom, ordateTo— all three are required on every request variant - Providing date strings in a non-ISO 8601 format; use
YYYY-MM-DDTHH:MM:SSZ(UTC recommended) - Setting
amountFilter.minValueormaxValuein dollars instead of cents — amounts are always in the smallest currency unit (e.g., $6.75 =675) - Setting
paginationSettings.takeabove10000, which will result in a validation error - Using
financialaccountwithperiodandamountfilterrequestextensionand leavingfinancialAccountIdnull when it is actually required for the query
Related Endpoints
GET /api/financialAccount— Retrieve the list of financial accounts for the authenticated customerPOST /api/transaction/byFinancialAccount— Client-facing variant of this transaction query endpointPOST /api/transfer— Initiate a transfer between financial accountsPOST /api/auth/v2— Obtain a Bearer token for authentication
Example
curl -X POST https://api.banking.netevia.dev/api/transaction/byFinancialAccount/server \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"financialAccountId": "fa_abc123xyz",
"dateFrom": "2026-05-01T00:00:00Z",
"dateTo": "2026-06-01T00:00:00Z",
"status": "COMPLETED",
"paginationSettings": {
"take": 25,
"skip": 0
},
"amountFilter": {
"minValue": 500,
"maxValue": 100000
},
"searchString": "coffee"
}'