---
title: "List Investment Transactions"
method: GET
path: "/investment-transactions"
tags: ["Investment Transactions"]
---

# List Investment Transactions

`GET /investment-transactions`

## Request

- Base URL: `https://api.finta.io/v1`
- URL: `https://api.finta.io/v1/investment-transactions`
- Auth: HTTP bearer

Returns investment transactions (buys, sells, dividends, etc.) for a specific bank connection. Currently only available for Plaid connections with the Investments product enabled.

## Query parameters

- `bankConnectionId` string, uuid, required
- `accountIds` string
- `startDate` string, date
- `endDate` string, date
- `limit` integer
- `cursor` string

## Response `200`

List of investment transactions with securities

- InvestmentTransactionsListResponse
  - `data` object, required
    - `investmentTransactions` InvestmentTransaction[], required: List of investment transactions
      - `id` string, required: Unique identifier for the investment transaction
      - `accountId` string, required: ID of the account this transaction belongs to
      - `securityId` string, nullable, required: ID of the security. Use this to look up security details in the securities array. Null for cash transactions.
      - `type` 'buy' | 'sell' | 'cancel' | 'cash' | 'fee' | 'transfer' | 'other', nullable, required: Transaction type (buy, sell, cancel, cash, fee, transfer, other)
      - `subtype` string, nullable, required: Transaction subtype (e.g., 'trade', 'dividend', 'contribution', 'withdrawal')
      - `date` string, date, required: Date of the transaction (ISO 8601 format)
      - `quantity` number, required: Number of shares/units involved in the transaction. Negative for sells.
      - `price` number, required: Price per share/unit at time of transaction
      - `amount` number, required: Total transaction amount. Negative for outflows (buys), positive for inflows (sells, dividends).
      - `fees` number, required: Fees associated with the transaction
      - `currency` string, nullable, required: ISO 4217 currency code (e.g., 'USD')
      - `description` string, required: Human-readable description of the transaction
      - `provider` 'Plaid', required: The data provider for this transaction (currently only Plaid)
    - `securities` Security[], required: List of securities referenced by the transactions in this response
      - `id` string, required: Unique identifier for the security
      - `symbol` string, nullable, required: Ticker symbol (e.g., 'AAPL', 'VTI')
      - `name` string, nullable, required: Full name of the security
      - `type` string, nullable, required: Security type (e.g., 'equity', 'etf', 'mutual fund', 'fixed income')
  - `meta` object, required
    - `count` integer, required: Number of transactions in this response
    - `totalCount` integer, required: Total number of transactions available
    - `hasMore` boolean, required: Whether more results are available
    - `nextPage` string, nullable, required: URL to fetch the next page of results. Null if no more results are available.

## Other responses

- `400`: Bad request - Invalid query parameters
- `401`: Unauthorized - missing, invalid, disabled or expired API key
- `403`: API access requires active pro subscription or trial
- `404`: Bank connection not found
- `429`: Rate limit exceeded - retry after the `retryAfter` timestamp
- `500`: Internal server error. Failures during authentication return MiddlewareErrorResponse; failures inside the endpoint return ErrorResponse.
- `502`: Provider service unavailable

---

[API](https://skmtc.dev/finta/apis/finta-api.md) · [All operations](https://skmtc.dev/finta/apis/finta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/finta/apis/finta-api/revisions/80b98582afde?raw)
