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

# List transactions

> Retrieve a paginated list of transactions for a bank account.

Returns transactions ordered by most recent first. Results are [paginated](/api-reference/pagination).

## Query parameters

<ParamField query="account_id" type="string" required>
  Filter transactions to a specific bank account, prefixed with `account_`. You
  can find account IDs using the [List bank
  accounts](/api-reference/list-bank-accounts) endpoint.
</ParamField>

<ParamField query="limit" type="integer" default="10">
  The number of transactions to return. Maximum is 100.
</ParamField>

<ParamField query="cursor" type="string">
  Cursor from the previous response. Omit to fetch from the beginning.
</ParamField>

## Response

<ResponseField name="data" type="object[]">
  The list of transaction objects for the requested page.

  <Expandable title="Transaction object">
    <ResponseField name="id" type="string">
      Unique identifier for the transaction.
    </ResponseField>

    <ResponseField name="account_id" type="string">
      The ID of the bank account this transaction belongs to.
    </ResponseField>

    <ResponseField name="amount" type="integer">
      The transaction amount in cents. Positive for credits (money in), negative
      for debits (money out).
    </ResponseField>

    <ResponseField name="occurred_at" type="string">
      [ISO 8601](/api-reference/timestamps) timestamp of when the transaction
      occurred.
    </ResponseField>

    <ResponseField name="source" type="object">
      Information about the origin of the transaction.

      <Expandable title="Source object">
        <ResponseField name="category" type="string">
          The type of transaction source. We will add additional values for this
          enum over time; your application should be able to handle such additions
          gracefully. Not every transaction source will have additional details.
        </ResponseField>

        <ResponseField name="account_transfer_intention" type="object">
          <Expandable title="Account Transfer Intention object">
            <ResponseField name="description" type="string">
              The description given to this internal transfer between accounts.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="ach_transfer_intention" type="object">
          <Expandable title="ACH Transfer Intention object">
            <ResponseField name="statement_descriptor" type="string">
              The statement descriptor for this ACH transfer.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="ach_transfer_return" type="object">
          <Expandable title="ACH Transfer Return object">
            <ResponseField name="trace_number" type="string">
              The ACH trace number.
            </ResponseField>

            <ResponseField name="raw_return_reason_code" type="string">
              The raw return reason code.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="acquiring_card_payment" type="object">
          A payment received from a patient or payer via credit card.
        </ResponseField>

        <ResponseField name="acquiring_card_payment_fee" type="object">
          A fee charged for processing a card payment.
        </ResponseField>

        <ResponseField name="acquiring_chargeback" type="object">
          A chargeback dispute initiated by the cardholder.
        </ResponseField>

        <ResponseField name="acquiring_chargeback_fee" type="object">
          A fee charged by the card processor for handling a chargeback dispute.
        </ResponseField>

        <ResponseField name="acquiring_chargeback_reversal" type="object">
          A reversal of a chargeback that was previously filed by the cardholder.
        </ResponseField>

        <ResponseField name="acquiring_refund" type="object">
          A refund issued to a patient or payer who paid via credit card.
        </ResponseField>

        <ResponseField name="acquiring_refund_fee" type="object">
          A fee charged by the card processor for handling a refund.
        </ResponseField>

        <ResponseField name="card_authorization" type="object">
          <Expandable title="Card Authorization object">
            <ResponseField name="merchant_category_code" type="string">
              The merchant category code (MCC).
            </ResponseField>

            <ResponseField name="merchant_country" type="string">
              The merchant's country.
            </ResponseField>

            <ResponseField name="presentment_amount" type="string">
              The amount in the presentment currency.
            </ResponseField>

            <ResponseField name="presentment_currency" type="string">
              The presentment currency.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="card_financial" type="object">
          <Expandable title="Card Financial object">
            <ResponseField name="merchant_category_code" type="string">
              The merchant category code (MCC).
            </ResponseField>

            <ResponseField name="merchant_country" type="string">
              The merchant's country.
            </ResponseField>

            <ResponseField name="presentment_amount" type="string">
              The amount in the presentment currency.
            </ResponseField>

            <ResponseField name="presentment_currency" type="string">
              The presentment currency.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="card_refund" type="object">
          <Expandable title="Card Refund object">
            <ResponseField name="merchant_category_code" type="string">
              The merchant category code (MCC).
            </ResponseField>

            <ResponseField name="merchant_country" type="string">
              The merchant's country.
            </ResponseField>

            <ResponseField name="presentment_amount" type="string">
              The amount in the presentment currency.
            </ResponseField>

            <ResponseField name="presentment_currency" type="string">
              The presentment currency.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="card_settlement" type="object">
          <Expandable title="Card Settlement object">
            <ResponseField name="merchant_category_code" type="string">
              The merchant category code (MCC).
            </ResponseField>

            <ResponseField name="merchant_country" type="string">
              The merchant's country.
            </ResponseField>

            <ResponseField name="presentment_amount" type="string">
              The amount in the presentment currency.
            </ResponseField>

            <ResponseField name="presentment_currency" type="string">
              The presentment currency.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="check_deposit_acceptance" type="object">
          <Expandable title="Check Deposit Acceptance object">
            <ResponseField name="account_number" type="string">
              The check issuer's account number.
            </ResponseField>

            <ResponseField name="routing_number" type="string">
              The check issuer's routing number.
            </ResponseField>

            <ResponseField name="serial_number" type="string | null">
              The check number.
            </ResponseField>

            <ResponseField name="auxiliary_on_us" type="string | null">
              The auxiliary on-us field from the check.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="check_deposit_return" type="object">
          <Expandable title="Check Deposit Return object">
            <ResponseField name="return_reason" type="string">
              The reason the check deposit was returned.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="inbound_ach_transfer" type="object">
          <Expandable title="Inbound ACH Transfer object">
            <ResponseField name="trace_number" type="string">
              The ACH trace number.
            </ResponseField>

            <ResponseField name="originator_company_name" type="string">
              The name of the originating company.
            </ResponseField>

            <ResponseField name="originator_company_id" type="string">
              The ID of the originating company.
            </ResponseField>

            <ResponseField name="originator_company_entry_description" type="string">
              The entry description set by the originator.
            </ResponseField>

            <ResponseField name="originator_company_descriptive_date" type="string | null">
              The descriptive date set by the originator.
            </ResponseField>

            <ResponseField name="originator_company_discretionary_data" type="string | null">
              Discretionary data set by the originator.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="inbound_check_adjustment" type="object">
          <Expandable title="Inbound Check Adjustment object">
            <ResponseField name="reason" type="string">
              The reason for the check adjustment.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="inbound_real_time_payments_transfer_confirmation" type="object">
          <Expandable title="Inbound Real-Time Payments Transfer Confirmation object">
            <ResponseField name="debtor_name" type="string">
              The name of the sender.
            </ResponseField>

            <ResponseField name="creditor_name" type="string">
              The name of the creditor.
            </ResponseField>

            <ResponseField name="transaction_identification" type="string">
              The RTP transaction ID.
            </ResponseField>

            <ResponseField name="unstructured_remittance_information" type="string | null">
              Free-form remittance information.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="inbound_wire_reversal" type="object">
          <Expandable title="Inbound Wire Reversal object">
            <ResponseField name="input_message_accountability_data" type="string">
              The Fedwire input message accountability data (IMAD).
            </ResponseField>

            <ResponseField name="return_reason_code" type="string | null">
              The return reason code.
            </ResponseField>

            <ResponseField name="return_reason_additional_information" type="string | null">
              Additional information about the return reason.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="inbound_wire_transfer" type="object">
          <Expandable title="Inbound Wire Transfer object">
            <ResponseField name="input_message_accountability_data" type="string | null">
              The Fedwire input message accountability data (IMAD).
            </ResponseField>

            <ResponseField name="debtor_name" type="string | null">
              The name of the sender.
            </ResponseField>

            <ResponseField name="debtor_address_line1" type="string | null">
              The sender's address.
            </ResponseField>

            <ResponseField name="creditor_name" type="string | null">
              The name of the creditor.
            </ResponseField>

            <ResponseField name="unstructured_remittance_information" type="string | null">
              Free-form remittance information.
            </ResponseField>

            <ResponseField name="end_to_end_identification" type="string | null">
              The end-to-end ID.
            </ResponseField>

            <ResponseField name="unique_end_to_end_transaction_reference" type="string | null">
              The unique end-to-end transaction reference (UETR).
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="lemma_customer_deposit_bonus" type="object">
          A deposit bonus credited by Lemma.
        </ResponseField>

        <ResponseField name="lemma_customer_fee" type="object">
          A fee charged by Lemma.
        </ResponseField>

        <ResponseField name="lemma_customer_subscription_fee" type="object">
          A recurring subscription fee charged by Lemma.
        </ResponseField>

        <ResponseField name="lemma_loan" type="object">
          A loan draw from or a payment toward a Lemma loan.
        </ResponseField>

        <ResponseField name="real_time_payments_transfer_acknowledgement" type="object">
          <Expandable title="Real-Time Payments Transfer Acknowledgement object">
            <ResponseField name="unstructured_remittance_information" type="string | null">
              Free-form remittance information.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="wire_transfer_intention" type="object">
          <Expandable title="Wire Transfer Intention object">
            <ResponseField name="message_to_recipient" type="string">
              The message to the recipient.
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="counterparty" type="object | null">
      The other party in the transaction, if known.

      <Expandable title="Counterparty object">
        <ResponseField name="type" type="string">
          The kind of account the counterparty is. One of `bank_account`,
          `external_account`, or `fixed_fee_loan`.
        </ResponseField>

        <ResponseField name="bank_account" type="object | null">
          <Expandable title="Bank account object">
            <ResponseField name="id" type="string">
              The Lemma bank account ID of the other account in the transfer.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="external_account" type="object | null">
          <Expandable title="External account object">
            <ResponseField name="id" type="string">
              The [saved recipient](/api-reference/saved-recipients) ID the
              money was sent to.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="fixed_fee_loan" type="object | null">
          <Expandable title="Fixed fee loan object">
            <ResponseField name="id" type="string">
              The Lemma fixed fee loan ID of the other account in the transfer.
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="has_next" type="boolean">
  Whether more transactions exist after this page.
</ResponseField>

<ResponseField name="cursor" type="string | null">
  Pass this value as `cursor` on the next request to fetch the following page.
  `null` when this is the last page.
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "transaction_Wp5mRx3nKv8bTh2d",
        "account_id": "account_Rv4nBt8xKw2pMh6s",
        "amount": 325000,
        "occurred_at": "2026-03-12T16:45:00Z",
        "source": {
          "category": "lemma_customer_deposit_bonus"
        },
        "counterparty": null
      },
      {
        "id": "transaction_Fy7cNw4hBk9tXj6s",
        "account_id": "account_Rv4nBt8xKw2pMh6s",
        "amount": -150000,
        "occurred_at": "2026-03-11T10:20:00Z",
        "source": {
          "category": "ach_transfer_intention"
        },
        "counterparty": {
          "type": "external_account",
          "external_account": {
            "id": "external_account_Bx5nTm8hKw3pVd7c"
          }
        }
      }
    ],
    "has_next": true,
    "cursor": "eyJvY2N1cmVkX2F0IjoiMjAyNi0wMy0xMVQxMDoyMDowMFoiLCJpZCI6InRyYW5zYWN0aW9uX0Z5N2NOdzRoQms5dFhqNnMifQ"
  }
  ```
</ResponseExample>
