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

# List Merchants

> List all your merchants with their Stripe charge-readiness in a single call

Returns every organization (merchant) owned by your account together with its Stripe Connect status — in one call, instead of fetching status per organization. Read-only and strictly scoped to your own organizations.

Status is served from cache (no per-merchant Stripe round trip), so this endpoint is fast and safe to poll. To force a live re-sync for a specific merchant, use [`GET /v1/organizations/{organization_id}/payments/status?refresh=true`](/api-reference/payments/status).

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.telzino.com/v1/payments/merchants" \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.telzino.com/v1/payments/merchants',
    { headers: { 'Authorization': 'Bearer YOUR_ACCESS_TOKEN' } }
  );

  const { merchants } = await response.json();

  const ready = merchants.filter(m => m.can_accept_payments);
  console.log(`${ready.length} of ${merchants.length} merchants are charge-ready`);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.telzino.com/v1/payments/merchants',
      headers={'Authorization': 'Bearer YOUR_ACCESS_TOKEN'}
  )

  merchants = response.json()['merchants']
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "merchants": [
      {
        "organization_id": "123e4567-e89b-12d3-a456-426614174000",
        "merchant_name": "Acme Solar",
        "stripe_account_id": "acct_1AbC2DeFgHiJkLmN",
        "account_status": "active",
        "charges_enabled": true,
        "payouts_enabled": true,
        "details_submitted": true,
        "can_accept_payments": true
      },
      {
        "organization_id": "456e7890-e89b-12d3-a456-426614174001",
        "merchant_name": "Best Plumbing",
        "stripe_account_id": null,
        "account_status": "not_started",
        "charges_enabled": false,
        "payouts_enabled": false,
        "details_submitted": false,
        "can_accept_payments": false
      }
    ],
    "count": 2
  }
  ```

  ```json 401 theme={null}
  {
    "error": "unauthorized",
    "error_description": "User payload not found"
  }
  ```
</ResponseExample>

## Response Fields

### Merchants Array

| Field                 | Type           | Description                                                                                                        |
| --------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------ |
| `organization_id`     | string         | Merchant UUID                                                                                                      |
| `merchant_name`       | string         | Organization display name                                                                                          |
| `stripe_account_id`   | string \| null | Stripe connected account id, or `null` if onboarding hasn't started                                                |
| `account_status`      | string         | `not_started`, `onboarding`, `active`, or `restricted` — see [Payments Overview](/api-reference/payments/overview) |
| `charges_enabled`     | boolean        | Whether Stripe allows this account to accept charges                                                               |
| `payouts_enabled`     | boolean        | Whether Stripe allows payouts to the merchant's bank                                                               |
| `details_submitted`   | boolean        | Whether the merchant has finished submitting onboarding details                                                    |
| `can_accept_payments` | boolean        | Convenience flag: `true` only when `account_status` is `active` **and** `charges_enabled`                          |

### Top Level

| Field   | Type   | Description                  |
| ------- | ------ | ---------------------------- |
| `count` | number | Number of merchants returned |

<Note>
  Merchants that have never begun onboarding still appear, with `account_status: "not_started"` and a `null` `stripe_account_id`. Call [Start Merchant Onboarding](/api-reference/payments/onboarding) to get them set up.
</Note>
