Get the list of external bank accounts

Get External Bank Accounts

The GET /api/financialAccounts/external/v2 endpoint retrieves a list of all external bank accounts linked to the authenticated user's profile. Each account record includes masked account details, bank name, account type, balance information, and the provider used to connect the account (such as Finicity or Plaid). This endpoint enables partners to present users with a unified view of their external financial accounts within the platform.

Endpoint

GET /api/financialAccounts/external/v2

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 displaying a summary or management view of all external accounts a user has connected through Finicity or Plaid. It is useful when building account selection UIs for ACH transfers, verifying which external accounts are active, or auditing the external accounts associated with a profile before initiating financial operations.

Response

200 OK

Returns an array of external financial account objects.

externalfinancialaccount object

FieldTypeDescription
typenamestringThe type name classification of the external account object
externalBankAccountTypeinteger (enum)Numeric type code for the external bank account (0 = standard external account)
idstringUnique identifier for the external bank account record
namestringDisplay name of the external bank account
externalBankAccountDetailsobjectNested object containing masked account and routing details (see below)
providerstringThe aggregation provider used to link the account (e.g., Finicity, Plaid)
createdAtstring (date-time)ISO 8601 timestamp when the external account was linked
accountStatusstringCurrent status of the external account (e.g., ACTIVE, INACTIVE)
updatedAtstring (date-time)ISO 8601 timestamp of the last update to the external account record
bankNamestringName of the external bank institution
ownersanyAccount owner information, if available
balanceInfoobjectNested object containing balance details (see below)

externalBankAccountDetails object

FieldTypeDescription
last4stringLast 4 digits of the external account number
typestringAccount type at the external institution (e.g., checking, savings)
routingNumberstringABA routing number of the external bank
createdAtstring (date-time)ISO 8601 timestamp when the account details record was created
updatedAtstring (date-time)ISO 8601 timestamp when the account details record was last updated
accountNumberstringFull account number (masked in responses for security)

balanceInfo object

FieldTypeDescription
datestring (date-time)Date and time of the last balance snapshot
valuenumber (double)Balance amount at the time of the last snapshot
currencystringCurrency code for the balance (e.g., USD)
[
  {
    "typename": "ExternalBankAccount",
    "externalBankAccountType": 0,
    "id": "ext-acct-0a1b2c3d-4e5f-6789-abcd-ef0123456789",
    "name": "My Chase Checking",
    "externalBankAccountDetails": {
      "last4": "7890",
      "type": "checking",
      "routingNumber": "021000021",
      "createdAt": "2025-03-10T14:22:00Z",
      "updatedAt": "2025-11-01T09:05:00Z",
      "accountNumber": "XXXXXXXXXX"
    },
    "provider": "Plaid",
    "createdAt": "2025-03-10T14:22:00Z",
    "accountStatus": "ACTIVE",
    "updatedAt": "2025-11-01T09:05:00Z",
    "bankName": "Chase Bank",
    "owners": null,
    "balanceInfo": {
      "date": "2026-06-07T18:00:00Z",
      "value": 4250.75,
      "currency": "USD"
    }
  },
  {
    "typename": "ExternalBankAccount",
    "externalBankAccountType": 0,
    "id": "ext-acct-9f8e7d6c-5b4a-3210-fedc-ba9876543210",
    "name": "Wells Fargo Savings",
    "externalBankAccountDetails": {
      "last4": "3456",
      "type": "savings",
      "routingNumber": "121042882",
      "createdAt": "2025-07-18T10:11:00Z",
      "updatedAt": "2026-01-20T16:45:00Z",
      "accountNumber": "XXXXXXXXXX"
    },
    "provider": "Finicity",
    "createdAt": "2025-07-18T10:11:00Z",
    "accountStatus": "ACTIVE",
    "updatedAt": "2026-01-20T16:45:00Z",
    "bankName": "Wells Fargo",
    "owners": null,
    "balanceInfo": {
      "date": "2026-06-07T18:00:00Z",
      "value": 12800.00,
      "currency": "USD"
    }
  }
]

Error Codes

CodeWhen it happens
401Token missing, expired, or invalid
403Insufficient permissions to access external accounts for this profile
404No profile found for the authenticated user
500Internal server error

Common Mistakes

  • Calling this endpoint without a valid Bearer token results in a 401 error; ensure the token has not expired (10-minute lifetime) and refresh via POST /api/auth/refresh when needed.
  • External accounts are only available for personal customers who have connected accounts via Finicity or Plaid; calling this endpoint for a profile with no linked external accounts returns an empty array, not a 404.
  • The accountNumber field in externalBankAccountDetails is masked in the response for security; do not rely on it for full account number retrieval.
  • The balanceInfo.value reflects the last cached balance snapshot, not a real-time balance; the balanceInfo.date field indicates when the snapshot was taken.

Related Endpoints

  • POST /api/financialAccounts/external — Link a new external bank account via Finicity or Plaid
  • DELETE /api/financialAccounts/external/{id} — Remove a linked external bank account
  • GET /api/financialAccounts/v2 — Retrieve the list of internal Netevia financial accounts
  • POST /api/transfers/ach — Initiate an ACH transfer to or from a linked external account

Example

curl -X GET https://api.banking.netevia.dev/api/financialAccounts/external/v2 \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"
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