> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nova.net/llms.txt
> Use this file to discover all available pages before exploring further.

# List a financial account's transactions

> List a financial account's transactions, newest first.



## OpenAPI

````yaml /openapi.yaml get /v1/financial_accounts/{fa_id}/transactions
openapi: 3.0.4
info:
  title: Nova API
  version: 1.24.0
  contact:
    name: Nova Engineering
    email: support@nova.net
  description: >-
    The Nova API exposes programmatic access to fund operations including
    distributions, vehicles, entities, contacts, and financial accounts.
    Authentication is via OAuth2 client_credentials with per-scope
    authorization. Requests identify the acting organization with the
    `X-Organization-Id` header, which is optional when the access token is bound
    to an organization or the integration has access to exactly one.
servers:
  - url: https://api.nova.net
  - url: https://api.nova-sandbox.net
security:
  - OAuth2: []
tags:
  - name: Authentication
    description: OAuth2 client_credentials token exchange
  - name: Distributions
    description: Manage distributions
  - name: Entities
    description: Manage entities
  - name: Payment Instructions
    description: Manage payment instructions for entities
  - name: Contacts
    description: Manage contacts
  - name: Organizations
    description: Read organizations
  - name: Vehicles
    description: Read vehicles
  - name: Financial Accounts
    description: Read a vehicle's financial accounts and balances
paths:
  /v1/financial_accounts/{fa_id}/transactions:
    get:
      tags:
        - Financial Accounts
      summary: List a financial account's transactions
      description: List a financial account's transactions, newest first.
      operationId: listFinancialAccountTransactions
      parameters:
        - schema:
            type: string
            minLength: 31
            maxLength: 31
            pattern: ^fa_[A-Za-z0-9]+$
            description: ID of the financial account
            example: fa_RoYxEYPaMtOgRX7lDYzfxVE14uPK
          required: true
          description: ID of the financial account
          name: fa_id
          in: path
        - schema:
            type: string
            enum:
              - created_at
              - settled_at
            default: settled_at
            description: >-
              Sort by creation or settlement time, newest first. When sorting by
              `settled_at`, transactions where `settled_at: null` are listed
              first.
          required: false
          description: >-
            Sort by creation or settlement time, newest first. When sorting by
            `settled_at`, transactions where `settled_at: null` are listed
            first.
          name: sort_by
          in: query
        - schema:
            allOf:
              - $ref: '#/components/schemas/DateOrDateTime'
              - description: >-
                  Filter results where `sort_by` time is at or after this.


                  **Note:** when sorting by `settled_at`, specifying `after`
                  skips transactions where `settled_at: null`.


                  Type: [`DateOrDateTime`](/types/date-or-date-time) _ISO 8601
                  Date or Date and time_
          required: false
          description: >-
            Filter results where `sort_by` time is at or after this.


            **Note:** when sorting by `settled_at`, specifying `after` skips
            transactions where `settled_at: null`.


            Type: [`DateOrDateTime`](/types/date-or-date-time) _ISO 8601 Date or
            Date and time_
          name: after
          in: query
        - schema:
            allOf:
              - $ref: '#/components/schemas/DateOrDateTime'
              - description: >-
                  Filter results where `sort_by` time is before this.


                  The bound is exclusive, so `before=2026-02-01T00:00:00`
                  includes values until 23:59:59 January 31, 2026.


                  Type: [`DateOrDateTime`](/types/date-or-date-time) _ISO 8601
                  Date or Date and time_
          required: false
          description: >-
            Filter results where `sort_by` time is before this.


            The bound is exclusive, so `before=2026-02-01T00:00:00` includes
            values until 23:59:59 January 31, 2026.


            Type: [`DateOrDateTime`](/types/date-or-date-time) _ISO 8601 Date or
            Date and time_
          name: before
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 100
            description: The maximum number of items to return.
          required: false
          description: The maximum number of items to return.
          name: limit
          in: query
        - schema:
            type: string
            minLength: 48
            maxLength: 367
            pattern: ^page_[A-Za-z0-9]+$
            description: >-
              Opaque cursor from a previous response `next_page_url`; returns
              the results after it
            example: page_V8rYrurkxXEHmnqsLn8OUJXrWWhmgPkiLSuIz7OkgNL
          required: false
          description: >-
            Opaque cursor from a previous response `next_page_url`; returns the
            results after it
          name: page
          in: query
        - schema:
            type: string
            minLength: 48
            maxLength: 367
            pattern: ^page_[A-Za-z0-9]+$
            description: >-
              Opaque cursor from a previous response `previous_page_url`;
              returns the results before it
            example: page_V8rYrurkxXEHmnqsLn8OUJXrWWhmgPkiLSuIz7OkgNL
          required: false
          description: >-
            Opaque cursor from a previous response `previous_page_url`; returns
            the results before it
          name: page_before
          in: query
        - schema:
            type: array
            items:
              type: string
              minLength: 31
              maxLength: 33
              pattern: ^tx_[A-Za-z0-9]+$
              example: tx_5dr8SFDbv7rZ2aj4Qm9XcLpT2wHk
            minItems: 1
            maxItems: 100
            description: >-
              Return only the resources with these ids. Repeat the parameter for
              each id (max 100). All matches return in one page.


              NOTE: cannot be combined with `page`, `page_before`, `limit`,
              `after`, or `before`.
          required: false
          description: >-
            Return only the resources with these ids. Repeat the parameter for
            each id (max 100). All matches return in one page.


            NOTE: cannot be combined with `page`, `page_before`, `limit`,
            `after`, or `before`.
          name: id
          in: query
        - $ref: '#/components/parameters/OrganizationId'
      responses:
        '200':
          description: List of transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionList'
        '400':
          description: >-
            Invalid financial account ID, pagination parameters, `id` filter, or
            `X-Organization-Id` header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Missing required OAuth scope or organization access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Financial account not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          headers:
            Retry-After:
              schema:
                type: integer
                description: >-
                  Seconds until the rate-limit window resets. Present on 429
                  responses.
              required: true
              description: >-
                Seconds until the rate-limit window resets. Present on 429
                responses.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: Upstream service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - OAuth2:
            - financial_accounts:read
components:
  schemas:
    DateOrDateTime:
      type: string
      format: date-time
      example: '2026-09-09T09:00:00-07:00'
      x-mint:
        post:
          - DateOrDateTime
      description: >-
        Type: [`DateOrDateTime`](/types/date-or-date-time) _ISO 8601 Date or
        Date and time_
    TransactionList:
      type: object
      properties:
        object:
          type: string
          enum:
            - list
          description: Object type identifier.
          example: list
        data:
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
          description: The page of items.
        next_page_url:
          type: string
          nullable: true
          description: >-
            URL for the next page of the list, or `null` when there are no more
            pages.
          example: >-
            /v1/financial_accounts/fa_5dr8SFDbv7rZ2aj4/transactions?page=page_5dr8SFDbv7rZ2aj4&limit=10
        previous_page_url:
          type: string
          nullable: true
          description: >-
            URL for the previous page of the list, or `null` when there are
            none.
          example: >-
            /v1/financial_accounts/fa_5dr8SFDbv7rZ2aj4/transactions?page_before=page_8VtqLBv3xJpY7mk2&limit=10
        has_more:
          type: boolean
          description: >-
            Whether there are more items available after this page. Deprecated:
            `next_page_url` is non-null exactly when more pages exist.
          deprecated: true
        url:
          type: string
          description: >-
            Path identifying this list. Deprecated: on lists embedded in another
            object, or returned by a create, it may not be a GET endpoint you
            can call. Follow `next_page_url` / `previous_page_url` to paginate.
          example: /v1/financial_accounts/fa_5dr8SFDbv7rZ2aj4/transactions
          deprecated: true
      required:
        - object
        - data
        - next_page_url
        - previous_page_url
        - has_more
        - url
      additionalProperties: false
      x-mint:
        post:
          - List
      description: 'Type: [`List`](/types/list) _A page of results_'
    Error:
      type: object
      properties:
        object:
          type: string
          enum:
            - error
          description: Object type identifier.
          example: error
        type:
          $ref: '#/components/schemas/ApiErrorType'
        code:
          $ref: '#/components/schemas/ApiErrorCode'
        message:
          type: string
          description: Human-readable error message intended for developers, not end-users.
        status:
          type: integer
          description: HTTP status code.
          example: 404
        doc_url:
          type: string
          format: uri
          description: Link to the documentation page for this error `code`.
          example: https://docs.nova.net/errors/parameter_invalid_integer
        request_id:
          type: string
          description: Request identifier for support inquiries.
        invalid-params:
          type: array
          items:
            type: object
            properties:
              code:
                $ref: '#/components/schemas/ApiErrorCode'
              name:
                type: string
                description: The request parameter that caused the error.
              reason:
                type: string
                description: Human-readable explanation of why the parameter is invalid.
              value:
                oneOf:
                  - type: string
                  - type: number
                  - type: boolean
                  - nullable: true
                description: >-
                  The value of the request parameter that caused the error, if
                  applicable.
              conflicts_with:
                type: string
                description: >-
                  For conflict errors, the id of the existing resource this
                  parameter conflicts with.
            required:
              - code
              - name
              - reason
          description: The request parameters that caused the error, if applicable.
      required:
        - object
        - type
        - code
        - message
        - status
      example:
        object: error
        type: invalid_request_error
        code: parameter_invalid_integer
        message: One or more fields failed validation.
        status: 400
        doc_url: https://docs.nova.net/errors/parameter_invalid_integer
        invalid-params:
          - code: parameter_invalid_integer
            name: query.limit
            value: 200
            reason: 'Too big: expected number to be <=100'
    OrganizationId:
      type: string
      minLength: 32
      maxLength: 32
      pattern: ^org_[A-Za-z0-9]+$
      description: >-
        ID of the organization the request acts on. Optional when the access
        token is bound to a specific `organization`, or when the integration has
        access to exactly one organization.
      example: org_EkzhrUc3U6C0UbxNBlK7WLz51ofT
    Transaction:
      type: object
      properties:
        object:
          type: string
          enum:
            - transaction
          description: Object type identifier.
          example: transaction
        livemode:
          type: boolean
          description: >-
            Whether this object exists in live mode (`true`) or test mode
            (`false`).
        id:
          type: string
          minLength: 31
          maxLength: 33
          pattern: ^tx_[A-Za-z0-9]+$
          description: ID of the transaction
          example: tx_jlZBEplxMpzsPGL9IdboNDvQ1jFV
        financial_account:
          type: string
          minLength: 31
          maxLength: 31
          pattern: ^fa_[A-Za-z0-9]+$
          description: ID of the financial account this transaction belongs to
          example: fa_RoYxEYPaMtOgRX7lDYzfxVE14uPK
        source:
          $ref: '#/components/schemas/TransactionSource'
        workflow:
          $ref: '#/components/schemas/TransactionWorkflow'
        amount:
          type: integer
          nullable: true
          example: -50000
          description: >-
            Signed amount in cents. Positive amounts are credits, and negative
            amounts are debits. Can be null in some pending cases, but never
            once `settled_at` is set.
        currency:
          $ref: '#/components/schemas/Currency'
        balance:
          type: integer
          nullable: true
          example: 950000
          description: >-
            Running balance after the entry. Null when the bank holds no entry
            for the row.
        status:
          $ref: '#/components/schemas/TransactionStatus'
        description:
          type: string
          nullable: true
          example: Wire to Acme LLC, Chase **7862
          description: Short label, when the bank supplies one.
        created_at:
          $ref: '#/components/schemas/UtcDateTime'
        updated_at:
          $ref: '#/components/schemas/UtcDateTime'
        settled_at:
          allOf:
            - $ref: '#/components/schemas/UtcDateTime'
            - nullable: true
      required:
        - object
        - livemode
        - id
        - financial_account
        - source
        - workflow
        - amount
        - currency
        - balance
        - status
        - description
        - created_at
        - updated_at
        - settled_at
      additionalProperties: false
    ApiErrorType:
      type: string
      enum:
        - authentication_error
        - permission_error
        - invalid_request_error
        - not_found_error
        - request_timeout_error
        - conflict_error
        - unprocessable_entity_error
        - rate_limit_error
        - api_error
      description: Machine-readable high-level error category.
    ApiErrorCode:
      oneOf:
        - type: string
          enum:
            - unauthorized
            - forbidden
            - resource_not_found
            - request_timeout
            - conflict
            - idempotency_mismatch
            - rate_limit_exceeded
            - internal_error
            - not_implemented
            - bad_gateway
        - $ref: '#/components/schemas/ValidationCode'
      description: Machine-readable high-level error code.
    TransactionSource:
      oneOf:
        - $ref: '#/components/schemas/TransactionWireSource'
          title: Wire
        - $ref: '#/components/schemas/TransactionOtherSource'
          title: Others
        - nullable: true
          title: No source yet
      x-mint:
        post:
          - TransactionSource
      description: >-
        Type: [`TransactionSource`](/types/transaction#source) _What caused this
        entry. Null when the transaction has not reached the bank._
    TransactionWorkflow:
      oneOf:
        - $ref: '#/components/schemas/TransactionDistributionWorkflow'
        - nullable: true
      x-mint:
        post:
          - TransactionWorkflow
      description: >-
        Type: [`TransactionWorkflow`](/types/transaction#workflow) _Nova
        workflow this transaction is related to (e.g. distribution). `null` for
        out-of-band bank activity, or non-nova related transactions. New
        workflow types will be added._
    Currency:
      type: string
      enum:
        - USD
      example: USD
      x-mint:
        post:
          - Currency
      description: >-
        Type: [`Currency`](/types/currency) _ISO 4217 currency code (USD-only
        currently)_
    TransactionStatus:
      type: string
      enum:
        - pending
        - processing
        - completed
        - rejected
        - returned
        - cancelled
        - failed
        - unknown
      example: completed
      x-mint:
        post:
          - TransactionStatus
      description: >-
        Type: [`TransactionStatus`](/types/transaction#status) _Where the
        transaction is in its lifecycle_
    UtcDateTime:
      type: string
      format: date-time
      example: '2026-01-01T09:00:00.000Z'
      x-mint:
        post:
          - UtcDateTime
      description: 'Type: [`UtcDateTime`](/types/utc-date-time) _Date and time in UTC_'
    ValidationCode:
      type: string
      enum:
        - parameter_missing
        - parameter_unknown
        - parameter_invalid
        - parameter_invalid_string
        - parameter_invalid_string_empty
        - parameter_invalid_integer
        - validation_error
      description: Machine-readable validation error code.
    TransactionWireSource:
      type: object
      properties:
        type:
          type: string
          enum:
            - wire
        id:
          type: string
          minLength: 32
          maxLength: 32
          pattern: ^txg_[A-Za-z0-9]+$
          description: >-
            Opaque grouping key. Every entry of one money movement repeats it
            (fees, reversals, returns).
          example: txg_CHyy6emsi8QiwMa2Oe4uNn3Z0TVX
        memo:
          type: string
          nullable: true
          description: >-
            Originator-to-beneficiary information. Null means unknown, not
            empty.
      required:
        - type
        - id
        - memo
      additionalProperties: false
      description: >-
        A wire sent from or received into this account. Carries the bank message
        fields.
    TransactionOtherSource:
      type: object
      properties:
        type:
          type: string
          enum:
            - ach
            - transfer
            - other
        id:
          type: string
          minLength: 32
          maxLength: 32
          pattern: ^txg_[A-Za-z0-9]+$
          description: >-
            Opaque grouping key. Every entry of one money movement repeats it
            (fees, reversals, returns).
          example: txg_CHyy6emsi8QiwMa2Oe4uNn3Z0TVX
      required:
        - type
        - id
      additionalProperties: false
      description: >-
        A non-wire bank payment (`ach`), an on-platform transfer, or any other
        cause.
    TransactionDistributionWorkflow:
      type: object
      properties:
        type:
          type: string
          enum:
            - distribution
        id:
          type: string
          minLength: 32
          maxLength: 32
          pattern: ^dst_[A-Za-z0-9]+$
          description: ID of the distribution
          example: dst_tQaOR74NP2DZ9mg3votpOnCqAuGs
        payment:
          type: string
          minLength: 33
          maxLength: 33
          pattern: ^dpmt_[A-Za-z0-9]+$
          description: ID of the distribution payment
          example: dpmt_sSTfFdsytyOearj36zDNcmXn1pJ4
        entity:
          type: string
          minLength: 32
          maxLength: 32
          pattern: ^ent_[A-Za-z0-9]+$
          description: ID of the entity the payment went to
          example: ent_H0hdMOc5E5QMTEcGVZKegvLNCB6p
      required:
        - type
        - id
        - payment
        - entity
      additionalProperties: false
      description: A distribution payment.
  parameters:
    OrganizationId:
      schema:
        $ref: '#/components/schemas/OrganizationId'
      required: false
      description: >-
        ID of the organization the request acts on. Optional when the access
        token is bound to a specific `organization`, or when the integration has
        access to exactly one organization.
      name: X-Organization-Id
      in: header
  securitySchemes:
    OAuth2:
      type: oauth2
      description: >-
        OAuth2 client_credentials grant for server-to-server access. Onboard via
        your Nova admin to receive a `client_id` and `client_secret`, then `POST
        /oauth/token` to exchange them for a short-lived access token. Send the
        token as `Authorization: Bearer <access_token>` on every authenticated
        request. Tokens expire after 3600 seconds — refresh by re-exchanging
        credentials.
      flows:
        clientCredentials:
          tokenUrl: /oauth/token
          scopes:
            organizations:read: Read organization data
            organizations:write: Create or update organization data
            organizations:*: Full access to organization data
            distributions:read: Read distribution data
            distributions:write: Create or update distributions
            distributions:*: Full access to distributions
            vehicles:read: Read vehicle data
            vehicles:write: Create or update vehicles
            vehicles:*: Full access to vehicles
            entities:read: Read entity data
            entities:write: Create or update entities
            entities:*: Full access to entities
            contacts:read: Read contact data
            contacts:write: Create or update contacts
            contacts:*: Full access to contacts
            financial_accounts:read: Read financial account data
            financial_accounts:write: Create or update financial accounts
            financial_accounts:*: Full access to financial accounts

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.