> ## 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 inbound ACH transfers

> Retrieve a paginated list of inbound ACH transfers, optionally filtered by account.

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

## Query parameters

<ParamField query="account_id" type="string">
  Filter inbound ACH transfers 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 inbound
  ACH transfers across every account you can access.
</ParamField>

<ParamField query="limit" type="integer" default="10">
  The number of inbound ACH transfers 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 inbound ACH transfer objects for the requested page.

  <Expandable title="Inbound ACH transfer object">
    <ResponseField name="id" type="string">
      Unique identifier for the inbound ACH transfer.
    </ResponseField>

    <ResponseField name="account_id" type="string">
      The Lemma account the transfer moves money into or out of.
    </ResponseField>

    <ResponseField name="amount" type="integer">
      The transfer amount in cents. A positive amount indicates a credit pushed
      into the account. A negative amount indicates a debit pulled from the
      account.
    </ResponseField>

    <ResponseField name="status" type="string">
      Current status of the inbound ACH transfer.

      <Expandable title="possible values">
        * `pending` — awaiting action, will resolve automatically if none is taken.

        * `declined` — we declined the transfer.

        * `accepted` — the transfer was accepted.

        * `returned` — the transfer was returned.
      </Expandable>
    </ResponseField>

    <ResponseField name="standard_entry_class_code" type="string">
      The Standard Entry Class code for the transfer.
    </ResponseField>

    <ResponseField name="effective_date" type="string">
      The date the transfer is effective.
    </ResponseField>

    <ResponseField name="automatically_resolves_at" type="string">
      [ISO 8601](/api-reference/timestamps) timestamp of when the transfer
      automatically resolves if we take no action.
    </ResponseField>

    <ResponseField name="originator_company_name" type="string">
      The name of the company or person that sent the transfer.
    </ResponseField>

    <ResponseField name="originator_company_entry_description" type="string">
      A description of the transfer set by the originator.
    </ResponseField>

    <ResponseField name="trace_number" type="string">
      A 15 digit number set by the sending bank; used with the amount and date to
      identify the transfer.
    </ResponseField>

    <ResponseField name="transaction_id" type="string | null">
      The settled transaction, once the transfer posts.
    </ResponseField>

    <ResponseField name="settled_at" type="string | null">
      [ISO 8601](/api-reference/timestamps) timestamp of when the transfer
      settled.
    </ResponseField>

    <ResponseField name="accepted_at" type="string | null">
      [ISO 8601](/api-reference/timestamps) timestamp of when we accepted the
      transfer.
    </ResponseField>

    <ResponseField name="declined" type="object | null">
      Decline details, if we declined the transfer.

      <Expandable title="Decline object">
        <ResponseField name="declined_at" type="string">
          [ISO 8601](/api-reference/timestamps) timestamp of when we declined the
          transfer.
        </ResponseField>

        <ResponseField name="reason" type="string | null">
          Why the transfer was declined.
        </ResponseField>
      </Expandable>
    </ResponseField>

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

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

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

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

<ResponseField name="has_next" type="boolean">
  Whether more inbound ACH transfers 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": "inbound_ach_transfer_Wp5mRx3nKv8bTh2d",
        "account_id": "account_Rv4nBt8xKw2pMh6s",
        "amount": 12500,
        "status": "accepted",
        "standard_entry_class_code": "corporate_credit_or_debit",
        "effective_date": "2026-05-01",
        "automatically_resolves_at": "2026-05-02T00:00:00Z",
        "originator_company_name": "Acme Insurance",
        "originator_company_entry_description": "HCCLAIMPMT",
        "trace_number": "021000021000001",
        "transaction_id": "transaction_Ab5cDx3nKv8bTh2d",
        "settled_at": null,
        "accepted_at": "2026-05-01T12:00:00Z",
        "declined": null,
        "returned": null
      }
    ],
    "has_next": false,
    "cursor": null
  }
  ```
</ResponseExample>
