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

# List All Payments — GET /payments

> Retrieve a paginated, filterable list of your Blockra payments. Filter by status, asset, date range, and amount. Requires the payments:read scope.

Returns a paginated list of payments for your account, newest first. Supports filtering by status, asset, date range, and amount, as well as customisable sort order. Requires the `payments:read` scope.

## Request

**`GET https://api.blockra.io/payments`**

### Query parameters

<ParamField query="page" default="1" type="integer">
  Page number (1-based).
</ParamField>

<ParamField query="limit" default="25" type="integer">
  Items per page. Maximum `100`.
</ParamField>

<ParamField query="sort" type="string">
  Field to sort by: `id`, `total`, `asset`, `status`, or `created_at`. Defaults to `created_at`.
</ParamField>

<ParamField query="order" default="desc" type="string">
  Sort direction: `asc` or `desc`.
</ParamField>

<ParamField query="filter_id" type="string">
  Filter to an exact payment ID.
</ParamField>

<ParamField query="filter_email" type="string">
  Substring match on the associated customer email.
</ParamField>

<ParamField query="filter_asset" type="string">
  Comma-separated list of coins to include (e.g. `BTC,ETH`). Pair with `filter_asset_op=is_not` to exclude the listed assets.
</ParamField>

<ParamField query="filter_asset_op" type="string">
  Operator for `filter_asset`: `is` (include, default) or `is_not` (exclude).
</ParamField>

<ParamField query="filter_status" type="string">
  Comma-separated statuses to include (e.g. `completed,pending`). Pair with `filter_status_op=is_not` to exclude.
</ParamField>

<ParamField query="filter_status_op" type="string">
  Operator for `filter_status`: `is` (include, default) or `is_not` (exclude).
</ParamField>

<ParamField query="total_min" type="number">
  Minimum net fiat amount filter.
</ParamField>

<ParamField query="total_max" type="number">
  Maximum net fiat amount filter.
</ParamField>

<ParamField query="start_date" type="string">
  ISO date string — return payments created on or after this date (e.g. `2026-01-01`).
</ParamField>

<ParamField query="end_date" type="string">
  ISO date string — return payments created before this date.
</ParamField>

## Response

Returns a `200` with a paginated result object wrapped in the standard `data` envelope.

<ResponseField name="items" type="array">
  Array of payment objects for the current page.
</ResponseField>

<ResponseField name="total" type="integer">
  Total number of payments matching the current filters.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.blockra.io/payments?limit=10&filter_status=completed&sort=created_at&order=desc" \
    -H "X-API-Key: bk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  ```

  ```ts Node.js theme={null}
  const params = new URLSearchParams({
    limit: "10",
    filter_status: "completed",
    sort: "created_at",
    order: "desc",
  });
  const res = await fetch(`https://api.blockra.io/payments?${params}`, {
    headers: { "X-API-Key": process.env.BLOCKRA_API_KEY! },
  });
  const { data } = await res.json();
  // data.items is the array of payments
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": {
      "items": [
        {
          "id": "pay_a1b2c3d4e5f6g7h8i9j0k1l2",
          "status": "completed",
          "asset": "LTC",
          "net_fiat": 9.77,
          "fiat_currency": "USD",
          "reference": "order_1234",
          "created_at": "2026-07-08T12:39:00.000Z"
        }
      ],
      "total": 1,
      "page": 1,
      "limit": 10,
      "total_pages": 1
    },
    "error": null
  }
  ```
</ResponseExample>
