Get external account activity

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

ParameterTypeRequiredDescription
financialAccountIdstringNoThe unique identifier of the financial account whose external activity should be retrieved.
dateFromstring (date-time)NoStart of the date range filter in ISO 8601 format (e.g., 2024-01-01T00:00:00Z).
dateTostring (date-time)NoEnd 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:

FieldTypeDescription
idstringUnique identifier for the financial activity record.
financialAccountIdstringThe ID of the financial account associated with this activity.
datestring (date-time)The date and time the transaction occurred.
sortDatestring (date-time)The date used for sorting transaction records.
balanceobjectAccount balance at the time of the transaction. Contains value (integer, in cents) and currencyCode (string).
statusstring (enum)Current transaction status. One of: OTHER, PENDING, COMPLETED, FAILED.
riskHoldbooleanIndicates whether the transaction is on a risk hold.
settlementDatestring (date-time)The date the transaction was settled (read-only, nullable).
purposestringDescription of the transaction purpose (read-only, nullable).
statusReasonCodestringCode providing additional context for the current status (nullable).
amountobjectTransaction amount. Contains value (integer, in cents), currencyCode (string), and symbol (string).
clearAmountobjectCleared amount for the transaction. Same structure as amount.
pendingAmountobjectPending portion of the transaction amount. Contains value (integer) and currencyCode (string).
namestringDisplay name or description for the transaction (nullable).
last4objectLast 4 digits info. Contains type (enum: CARD or ACCOUNT) and value (string).
typestringTransaction type (read-only, nullable).
authorizedUserstringName or ID of the authorized user who initiated the transaction, if applicable (nullable).
merchantCategorystringMerchant category associated with the transaction (nullable).
transactionSourceobjectSource transaction details. Contains typename (string), id (string), and transactionEvents (array).
rewardPointsinteger (int64)Reward points earned or applied on this transaction (nullable).
activityInfoobjectTransfer profile information. Contains fromProfile (object), toProfile (object), and historyRecords (array).
financialEventobjectThe 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

CodeWhen it happens
400Invalid query parameter format (e.g., malformed date-time value for dateFrom or dateTo).
401Token missing, expired, or invalid.
403Insufficient permissions to access external account activity for the specified account.
404The specified financialAccountId does not exist or is not linked to the authenticated customer.
500Internal server error.

Common Mistakes

  • Providing dateFrom or dateTo in a non-ISO 8601 format (e.g., 2024-01-01 instead of 2024-01-01T00:00:00Z) will result in a 400 error.
  • Omitting financialAccountId returns 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, and type fields 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 Plaid
  • GET /api/financialAccount/externalAccounts — List all external accounts linked to a customer's profile
  • POST /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"
Query Params
string
date-time
date-time
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Response

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
text/plain
application/json
text/json