Get Last Financial Account Activity (with Pagination)
This endpoint retrieves the latest financial account activity with server-side pagination support. It returns transaction records — debits, credits, and adjustments — tied to a specific financial account. Filtering by date range, transaction type, status, amount range, and payment card is supported, making it suitable for dashboards, reconciliation workflows, and exportable activity logs.
Endpoint
POST /api/transaction/v3/byFinancialAccount/server/pagination
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 a filtered, paginated view of recent transactions for a specific financial account. It is ideal for building account statement pages, generating activity reports for a specific date range, and auditing transactions by type or status. The server-side pagination allows efficient retrieval of large transaction histories without loading all records at once.
Request Body
The request body accepts one of two schemas: the base request or an extension that allows omitting financialAccountId from the top-level (when it is inherited from a parent context). Both share the same fields described below.
| 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 object (see finaccounttransactionfilter below). |
jsonFilter | string | No | Raw JSON filter string for advanced filtering scenarios. |
spendEvents | array[string] | No | List of spend event type identifiers to filter by. |
paymentCardId | string | No | Filter transactions associated with a specific payment card ID. |
status | string (enum) | No | Filter by transaction status. One of: OTHER, PENDING, COMPLETED, FAILED. |
paginationSettings | object | No | Pagination control (see below). |
amountFilter | object | No | Filter by transaction amount range (see below). |
searchString | string | No | Free-text search string applied across transaction fields. |
paginationSettings object:
| Field | Type | Required | Description |
|---|---|---|---|
take | integer | No | Number of records to return. Range: 1–10000. |
skip | integer | No | Number of records to skip (offset). Range: 0–2147483647. |
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) — each field is a filteritem:
| Field | Type | Description |
|---|---|---|
all | filteritem | Include all transaction types. |
deposit | filteritem | Filter to deposit transactions. |
withdraw | filteritem | Filter to withdrawal transactions. |
transfers | filteritem | Filter to transfer transactions. |
pos | filteritem | Filter to point-of-sale transactions. |
transactionStatus | filteritem | Filter by transaction status groupings. |
others | filteritem | Filter to other/miscellaneous 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 (true) or not (false). |
items | array[filteritem] | Optional nested sub-filters. |
{
"financialAccountId": "fa_abc123xyz",
"dateFrom": "2025-07-01T00:00:00Z",
"dateTo": "2025-07-15T23:59:59Z",
"status": "COMPLETED",
"amountFilter": {
"minValue": 100,
"maxValue": 500000
},
"filter": {
"all": { "displayName": "All", "value": false },
"deposit": { "displayName": "Deposits", "value": true },
"withdraw": { "displayName": "Withdrawals", "value": true },
"transfers": { "displayName": "Transfers", "value": false },
"pos": { "displayName": "POS", "value": false },
"transactionStatus": { "displayName": "Status", "value": false },
"others": { "displayName": "Others", "value": false }
},
"paginationSettings": {
"take": 25,
"skip": 0
},
"searchString": "Amazon"
}Response
200 OK
| Field | Type | Description |
|---|---|---|
data | array[financialActivityResponseModel] | List of transaction activity records. |
filter | object (finaccounttransactionfilter) | The filter state echoed back from the request. |
paginationResponse | object | Pagination metadata. |
paginationResponse.totalItems | integer | Total number of records matching the query (for computing page count). |
Each item in data (financialActivityResponseModel):
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier of the activity record. |
financialAccountId | string | The financial account this activity belongs to. |
date | string (date-time) | Date/time the activity was recorded. |
sortDate | string (date-time) | Date/time used for display sort ordering. |
balance | object (amount) | Account balance at the time of this activity. |
status | string (enum) | Transaction status: OTHER, PENDING, COMPLETED, FAILED. |
riskHold | boolean | Whether a risk hold is placed on this transaction. |
settlementDate | string (date-time) | Date/time the transaction settled (read-only). |
purpose | string | Human-readable purpose label (read-only). |
statusReasonCode | string | Code explaining the current status. |
amount | object (financialActivityAmount) | Transaction amount with currency and symbol. |
clearAmount | object (financialActivityAmount) | Cleared/settled amount. |
pendingAmount | object (amount) | Amount currently in pending state. |
name | string | Display name or description of the transaction. |
last4 | object (last4) | Last 4 digits identifier, with type CARD or ACCOUNT. |
type | string | Transaction type label (read-only). |
authorizedUser | string | Name or ID of the authorized user who initiated the transaction. |
merchantCategory | string | Merchant category label for card transactions. |
transactionSource | object (source) | Source transaction details including events. |
rewardPoints | integer (int64) | Reward points earned on this transaction, if applicable. |
activityInfo | object (activityinfo) | Profile info for sender/receiver and status history records. |
financialEvent | object (financialEvent) | Detailed financial event data including merchant, card, amounts, and transfer details. |
amount / balance / pendingAmount object:
| Field | Type | Description |
|---|---|---|
value | integer (int64) | Amount in minor currency units (e.g., cents). |
currencyCode | string | ISO 4217 currency code (e.g., USD). |
financialActivityAmount object (extends amount):
| Field | Type | Description |
|---|---|---|
value | integer (int64) | Amount in minor currency units. |
currencyCode | string | ISO 4217 currency code. |
symbol | string | Currency symbol (e.g., $). |
{
"data": [
{
"id": "evt_9f3a21bc",
"financialAccountId": "fa_abc123xyz",
"date": "2025-07-10T14:32:00Z",
"sortDate": "2025-07-10T14:32:00Z",
"balance": {
"value": 152430,
"currencyCode": "USD"
},
"status": "COMPLETED",
"riskHold": false,
"settlementDate": "2025-07-11T00:00:00Z",
"purpose": "Purchase",
"statusReasonCode": null,
"amount": {
"value": 4599,
"currencyCode": "USD",
"symbol": "$"
},
"clearAmount": {
"value": 4599,
"currencyCode": "USD",
"symbol": "$"
},
"pendingAmount": {
"value": 0,
"currencyCode": "USD"
},
"name": "Amazon",
"last4": {
"type": "CARD",
"value": "4321"
},
"type": "PURCHASE",
"authorizedUser": null,
"merchantCategory": "Online Retail",
"transactionSource": {
"typename": "CardTransaction",
"id": "txn_abc987",
"transactionEvents": [
{
"typename": "Authorization",
"id": "auth_xyz111",
"responseCode": "00",
"responseDescription": "Approved",
"approvedAmount": { "value": 4599, "currencyCode": "USD" },
"requestedAmount": { "value": 4599, "currencyCode": "USD" },
"paymentCard": { "id": "card_001", "bin": "411111", "last4": "4321" },
"createdAt": "2025-07-10T14:31:50Z",
"authorizationExpiration": "2025-07-11T14:31:50Z",
"processingType": "CHIP",
"rewardPoints": 45,
"accountingDirection": "DEBIT"
}
]
},
"rewardPoints": 45,
"activityInfo": {
"fromProfile": { "id": 1001, "name": "Acme Corp", "agentId": 5 },
"toProfile": null,
"historyRecords": [
{ "date": "2025-07-10T14:32:00Z", "status": "COMPLETED" }
]
},
"financialEvent": {
"id": "fe_bb4421",
"accountingDirection": "DEBIT",
"processingType": "CHIP",
"typename": "CardTransaction",
"merchantDetails": {
"category": "Online Retail",
"categoryCode": "5999",
"countryCodeAlpha3": "USA",
"description": "Retail Purchase",
"name": "Amazon",
"merchantId": "merch_amz001"
},
"paymentCard": { "id": "card_001", "bin": "411111", "last4": "4321" },
"amount": { "value": 4599, "currencyCode": "USD" },
"approvedAmount": { "value": 4599, "currencyCode": "USD" },
"requestedAmount": { "value": 4599, "currencyCode": "USD" },
"originalAmount": { "value": 4599, "currencyCode": "USD" },
"status": "COMPLETED",
"statusReason": null,
"memo": null,
"purpose": "Purchase",
"transferActivityType": null,
"createdAt": "2025-07-10T14:32:00Z",
"updatedAt": "2025-07-11T00:00:00Z",
"settlementDate": "2025-07-11T00:00:00Z",
"returnDate": null,
"partial": false,
"responseCode": "00",
"avsResponseCode": "Y",
"cvvResponseCode": "M",
"postalCodeResponseCode": "Y"
}
}
],
"filter": {
"deposit": { "displayName": "Deposits", "value": true },
"withdraw": { "displayName": "Withdrawals", "value": true }
},
"paginationResponse": {
"totalItems": 87
}
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields (financialAccountId, dateFrom, or dateTo), or invalid filter/pagination values |
| 401 | Token missing, expired, or invalid |
| 403 | Caller does not have permission to view transactions for the specified financial account |
| 404 | Financial account not found |
| 500 | Internal server error |
Common Mistakes
- Omitting
financialAccountId,dateFrom, ordateTo— all three are required and will cause a 400 error. - Supplying
dateFromlater thandateTo, which produces an empty result set or a validation error. - Setting
taketo 0 or exceeding 10000 — the valid range is 1 to 10000. - Passing amount values in dollars instead of cents —
minValueandmaxValueinamountFilterare in minor currency units (e.g.,4599= $45.99). - Expecting all
financialEventandtransactionSourcesub-fields to always be populated — many are nullable and only appear for specific transaction types (e.g.,merchantDetailsis only present for card purchases).
Related Endpoints
POST /api/transaction/v3/byFinancialAccount— Retrieve financial account activity without server-side pagination.GET /api/financialaccount/v1/{financialAccountId}— Retrieve details for a specific financial account.POST /api/transaction/v3/byPaymentCard— Retrieve transaction activity filtered by a specific payment card.
Example
curl -X POST https://api.banking.netevia.dev/api/transaction/v3/byFinancialAccount/server/pagination \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"financialAccountId": "fa_abc123xyz",
"dateFrom": "2025-07-01T00:00:00Z",
"dateTo": "2025-07-15T23:59:59Z",
"status": "COMPLETED",
"amountFilter": {
"minValue": 100,
"maxValue": 500000
},
"paginationSettings": {
"take": 25,
"skip": 0
},
"searchString": "Amazon"
}'