> ## 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 check deposits

> Retrieve a paginated list of check deposits, optionally filtered by account.

Returns checks deposited into Lemma accounts, ordered by most recent first. Results are [paginated](/api-reference/pagination).

## Query parameters

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

<ParamField query="limit" type="integer" default="10">
  The number of check deposits 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 check deposit objects for the requested page.

  <Expandable title="Check deposit object">
    <ResponseField name="id" type="string">
      Unique identifier for the check deposit.
    </ResponseField>

    <ResponseField name="amount" type="integer">
      The check amount in cents.
    </ResponseField>

    <ResponseField name="status" type="string">
      The processing status of the check. One of `pending`, `submitted`, `returned`,
      or `rejected`.
    </ResponseField>

    <ResponseField name="transaction_id" type="string | null">
      The ID for the transaction created by the check deposit. Null if no
      transaction has been created yet.
    </ResponseField>

    <ResponseField name="inbound_mail_item_id" type="string | null">
      The mail item this check was found in. Null if the check was not received via
      lockbox mail.
    </ResponseField>

    <ResponseField name="hold" type="object | null">
      Fund hold details. Present when deposited funds are held before becoming
      available. Null if there is no hold.

      <Expandable title="Hold object">
        <ResponseField name="status" type="string">
          The hold status. One of `held` or `complete`.
        </ResponseField>

        <ResponseField name="automatically_releases_at" type="string">
          [ISO 8601](/api-reference/timestamps) timestamp of when the hold will
          automatically release.
        </ResponseField>

        <ResponseField name="released_at" type="string | null">
          [ISO 8601](/api-reference/timestamps) timestamp of when the hold was
          released. Null if the hold has not been released yet.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="return" type="object | null">
      Return details, if the check deposit was returned.

      <Expandable title="Return object">
        <ResponseField name="returned_at" type="string">
          [ISO 8601](/api-reference/timestamps) timestamp of when the check deposit
          was returned.
        </ResponseField>

        <ResponseField name="reason" type="string | null">
          Why the check deposit was returned.
        </ResponseField>

        <ResponseField name="return_transaction_id" type="string | null">
          The transaction created when the check deposit was returned.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="micr" type="object | null">
      Fields read from the check's [MICR
      line](https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition). Null
      when we have not submitted the check for deposit.

      <Expandable title="MICR object">
        <ResponseField name="routing_number" type="string">
          The routing number printed on the check.
        </ResponseField>

        <ResponseField name="account_number" type="string">
          The account number printed on the check.
        </ResponseField>

        <ResponseField name="auxiliary_on_us" type="string | null">
          An additional identifier from the MICR line. Business checks typically
          encode the check number here rather than in `serial_number`.
        </ResponseField>

        <ResponseField name="serial_number" type="string | null">
          The check number. For business checks, this may be null — look at
          `auxiliary_on_us` instead.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="has_next" type="boolean">
  Whether more check deposits 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": "check_deposit_Tm6bXn9hRw3pFk7c",
        "amount": 100000,
        "status": "submitted",
        "transaction_id": "transaction_Ab5cDx3nKv8bTh2d",
        "inbound_mail_item_id": "inbound_mail_item_Kv7nWp3hTx9cBd5m",
        "hold": {
          "status": "held",
          "automatically_releases_at": "2026-03-19T14:00:00Z",
          "released_at": null
        },
        "return": null,
        "micr": {
          "routing_number": "021000021",
          "account_number": "9876543210",
          "auxiliary_on_us": null,
          "serial_number": "00012345"
        }
      }
    ],
    "has_next": false,
    "cursor": null
  }
  ```
</ResponseExample>
