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

# list_bank_statements — List available statement months

> Reference for the list_bank_statements MCP tool. Discover which statement months exist for an organization's accounts with cursor-based pagination.

The `list_bank_statements` tool returns the statement months that actually exist for an organization's accounts. Each row confirms a document is available. Use it to discover valid `accountId` and `statementMonth` pairs before calling `download_bank_statement`. The token must carry the `statements.read` scope and every request must include `intent` and `organizationId`.

## Scope

Required OAuth scope: `statements.read`

## Input

**organizationId** `string` *required*

The organization to query. Must be one of the organizations the token can access.

**fromMonth** `string`

Inclusive start month in strict `YYYY-MM` format. Must be a real calendar month.

**toMonth** `string`

Inclusive end month in strict `YYYY-MM` format. Must be a real calendar month. Rejected if inverted (`fromMonth` > `toMonth`) or if either value is not a real month.

**cursor** `string`

Opaque pagination cursor from a previous response. Keep the same `pageSize` when following cursors. Never parse, edit, or reuse a cursor across different filter sets.

**pageSize** `integer` (default: 50)

Number of results per page. Must be between 1 and 100.

**intent** `string` *required*

What the user asked for and why this call serves it, in 1 to 500 characters. Required on every tool call. See [Common tool arguments](https://mcp.docs.relayfi.com/concepts/transport.md#common-tool-arguments).

## Output

**data** `Statement[]` *required*

Array of statement rows. Each row confirms a document actually exists.

**Statement**

**object** `string` *required*

Always `"statement"`.

**organizationId** `string` *required*

Organization the statement belongs to.

**accountId** `string` *required*

Account the statement belongs to.

**accountName** `string | null` *required*

Display name of the account at the time of the statement. May be `null`.

**month** `string` *required*

Statement month in `YYYY-MM` format.

**pagination** `object` *required*

Cursor-based pagination metadata.

**Pagination**

**hasNextPage** `boolean` *required*

Whether more results are available.

**pageSize** `integer` *required*

Number of results in this page.

**nextCursor** `string`

Opaque cursor to fetch the next page. Present only when `hasNextPage` is `true`.

## Example

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 8,
  "method": "tools/call",
  "params": {
    "name": "list_bank_statements",
    "arguments": {
      "intent": "User asked which monthly statements are available for 2026.",
      "organizationId": "org_1",
      "fromMonth": "2026-01",
      "toMonth": "2026-08",
      "pageSize": 10
    }
  }
}
```

```json Response theme={null}
{
  "jsonrpc": "2.0",
  "id": 8,
  "result": {
    "structuredContent": {
      "data": [
        {
          "object": "statement",
          "organizationId": "org_1",
          "accountId": "acc_1",
          "accountName": "Operating",
          "month": "2026-08"
        }
      ],
      "pagination": {
        "hasNextPage": false,
        "pageSize": 10
      }
    }
  }
}
```

## Notes

* Each row confirms a document actually exists. Months without a statement are never synthesized.
* Your agent must not claim a statement exists unless it appears in this list.
* Follow `nextCursor` until `hasNextPage` is `false`. Keep the same `pageSize` on every page.
* If an invalid cursor is supplied, the tool returns an MCP error: `The pagination cursor is invalid. Restart pagination without a cursor and keep the same pageSize for subsequent pages.`

> [card] [download\_bank\_statement](https://mcp.docs.relayfi.com/tools/download-bank-statement.md)
>
> Download a statement after discovering it here.

> [card] [Result conventions](https://mcp.docs.relayfi.com/concepts/results.md)
>
> Learn how pagination and dual-channel output work across all tools.


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