Get External Account Activity
The GET /api/transaction/externalAccountActivity endpoint retrieves a list of recent financial transactions for an external account linked to a customer's banking profile. It supports optional filtering by financial account ID and date range, returning detailed records that include transaction amounts, status, type, merchant details, and more. This endpoint is useful for monitoring external account activity such as deposits, withdrawals, and ACH transfers in real time.
Endpoint
GET /api/transaction/externalAccountActivity
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 to display transaction history for an external account that a customer has linked to their Netevia banking profile (via Finicity or Plaid). It is suitable for building account dashboards, audit trails, or financial oversight features where customers need visibility into external account movements. Filtering by date range allows efficient retrieval of activity for specific reporting periods.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
financialAccountId | string | No | The unique identifier of the financial account whose external activity should be retrieved. |
dateFrom | string (date-time) | No | Start of the date range filter in ISO 8601 format (e.g., 2024-01-01T00:00:00Z). |
dateTo | string (date-time) | No | End of the date range filter in ISO 8601 format (e.g., 2024-01-31T23:59:59Z). |
Response
200 OK
Returns an array of financial activity records. Each item in the array contains the following fields:
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the financial activity record. |
financialAccountId | string | The ID of the financial account associated with this activity. |
date | string (date-time) | The date and time the transaction occurred. |
sortDate | string (date-time) | The date used for sorting transaction records. |
balance | object | Account balance at the time of the transaction. Contains value (integer, in cents) and currencyCode (string). |
status | string (enum) | Current transaction status. One of: OTHER, PENDING, COMPLETED, FAILED. |
riskHold | boolean | Indicates whether the transaction is on a risk hold. |
settlementDate | string (date-time) | The date the transaction was settled (read-only, nullable). |
purpose | string | Description of the transaction purpose (read-only, nullable). |
statusReasonCode | string | Code providing additional context for the current status (nullable). |
amount | object | Transaction amount. Contains value (integer, in cents), currencyCode (string), and symbol (string). |
clearAmount | object | Cleared amount for the transaction. Same structure as amount. |
pendingAmount | object | Pending portion of the transaction amount. Contains value (integer) and currencyCode (string). |
name | string | Display name or description for the transaction (nullable). |
last4 | object | Last 4 digits info. Contains type (enum: CARD or ACCOUNT) and value (string). |
type | string | Transaction type (read-only, nullable). |
authorizedUser | string | Name or ID of the authorized user who initiated the transaction, if applicable (nullable). |
merchantCategory | string | Merchant category associated with the transaction (nullable). |
transactionSource | object | Source transaction details. Contains typename (string), id (string), and transactionEvents (array). |
rewardPoints | integer (int64) | Reward points earned or applied on this transaction (nullable). |
activityInfo | object | Transfer profile information. Contains fromProfile (object), toProfile (object), and historyRecords (array). |
financialEvent | object | The underlying financial event. Contains id, accountingDirection (DEBIT or CREDIT), processingType, typename, merchantDetails, paymentCard, amount, approvedAmount, requestedAmount, originalAmount, status, statusReason, memo, purpose, transferActivityType, createdAt, updatedAt, settlementDate, returnDate, partial, transaction, toFinancialAccount, fromFinancialAccount, companyName, companyIdentifier, companyEntryDescription, transfer, responseCode, avsResponseCode, cvvResponseCode, postalCodeResponseCode. |
[
{
"id": "act_8f3b2e1c4d5a6789",
"financialAccountId": "fa_1a2b3c4d5e6f7890",
"date": "2024-06-01T14:32:00Z",
"sortDate": "2024-06-01T14:32:00Z",
"balance": {
"value": 250000,
"currencyCode": "USD"
},
"status": "COMPLETED",
"riskHold": false,
"settlementDate": "2024-06-03T00:00:00Z",
"purpose": "ACH Transfer from External Account",
"statusReasonCode": null,
"amount": {
"value": 50000,
"currencyCode": "USD",
"symbol": "$"
},
"clearAmount": {
"value": 50000,
"currencyCode": "USD",
"symbol": "$"
},
"pendingAmount": {
"value": 0,
"currencyCode": "USD"
},
"name": "ACH Deposit - Checking",
"last4": {
"type": "ACCOUNT",
"value": "4321"
},
"type": "ACH_TRANSFER",
"authorizedUser": null,
"merchantCategory": null,
"transactionSource": {
"typename": "ACHTransfer",
"id": "txn_9c8d7e6f5a4b3210",
"transactionEvents": []
},
"rewardPoints": null,
"activityInfo": {
"fromProfile": {
"id": 1001,
"name": "Jane Smith",
"agentId": 0
},
"toProfile": null,
"historyRecords": [
{
"date": "2024-06-01T14:32:00Z",
"status": "PENDING"
},
{
"date": "2024-06-03T00:00:00Z",
"status": "COMPLETED"
}
]
},
"financialEvent": {
"id": "evt_0a1b2c3d4e5f6789",
"accountingDirection": "CREDIT",
"processingType": "ACH",
"typename": "ACHTransferEvent",
"merchantDetails": null,
"paymentCard": null,
"amount": {
"value": 50000,
"currencyCode": "USD"
},
"approvedAmount": {
"value": 50000,
"currencyCode": "USD"
},
"requestedAmount": {
"value": 50000,
"currencyCode": "USD"
},
"originalAmount": {
"value": 50000,
"currencyCode": "USD"
},
"status": "COMPLETED",
"statusReason": null,
"memo": null,
"purpose": "ACH Transfer from External Account",
"transferActivityType": "INBOUND",
"createdAt": "2024-06-01T14:32:00Z",
"updatedAt": "2024-06-03T00:00:00Z",
"settlementDate": "2024-06-03T00:00:00Z",
"returnDate": null,
"partial": false,
"transaction": null,
"toFinancialAccount": {
"id": "fa_1a2b3c4d5e6f7890",
"name": "Netevia Checking",
"last4": "7890",
"externalBankAccountDetails": null,
"provider": null
},
"fromFinancialAccount": {
"id": "ext_fa_XXXXXXXXXX",
"name": "External Checking",
"last4": "4321",
"externalBankAccountDetails": {
"last4": "4321",
"type": "CHECKING",
"routingNumber": "021000021",
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-01-15T10:00:00Z",
"accountNumber": "XXXXXXXXXX"
},
"provider": "Plaid"
},
"companyName": "ABC Corp",
"companyIdentifier": "123456789",
"companyEntryDescription": "PAYROLL",
"transfer": {
"id": "eft_7b8c9d0e1f2a3456",
"fundsAvailableDate": "2024-06-03T00:00:00Z",
"descriptor": {
"companyEntryDescription": "PAYROLL",
"individualName": "Jane Smith",
"individualIdentificationNumber": "REF001"
}
},
"responseCode": "00",
"avsResponseCode": null,
"cvvResponseCode": null,
"postalCodeResponseCode": null
}
}
]Error Codes
| Code | When it happens |
|---|---|
| 400 | Invalid query parameter format (e.g., malformed date-time value for dateFrom or dateTo). |
| 401 | Token missing, expired, or invalid. |
| 403 | Insufficient permissions to access external account activity for the specified account. |
| 404 | The specified financialAccountId does not exist or is not linked to the authenticated customer. |
| 500 | Internal server error. |
Common Mistakes
- Providing
dateFromordateToin a non-ISO 8601 format (e.g.,2024-01-01instead of2024-01-01T00:00:00Z) will result in a 400 error. - Omitting
financialAccountIdreturns activity across all linked external accounts; specify it to scope results to a single account. - Amount fields (
amount,clearAmount,balance) use integer values representing the smallest currency unit (cents for USD) — divide by 100 to display as dollars. - The
settlementDate,purpose, andtypefields are read-only in the response and are not accepted as filter inputs. - External accounts must be connected and underwriting-verified via Finicity or Plaid before activity can be retrieved.
Related Endpoints
GET /api/transaction/activity— Retrieve transaction activity for Netevia financial accounts (not external)POST /api/financialAccount/externalAccount— Link an external bank account via Finicity or PlaidGET /api/financialAccount/externalAccounts— List all external accounts linked to a customer's profilePOST /api/transfer/ach— Initiate an ACH transfer to or from a linked external account
Example
curl -X GET "https://api.banking.netevia.dev/api/transaction/externalAccountActivity?financialAccountId=fa_1a2b3c4d5e6f7890&dateFrom=2024-06-01T00%3A00%3A00Z&dateTo=2024-06-30T23%3A59%3A59Z" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"