# Listar tiendas

`GET https://api.fiscalisto.com/v1/store_connections`

Las más recientes primero, también las desconectadas.

## Parámetros

| Nombre | Dónde | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `limit` | consulta |  | Cuántos por página, de 1 a 100. Por omisión 10. |
| `starting_after` | consulta |  | El id del último de la página anterior, para la siguiente. |
| `issuer` | consulta |  | El emisor (iss_…). Puede omitirse si la llave o la cuenta tienen uno solo. |

## Con el SDK de TypeScript

```ts
import { Fiscalisto } from "fiscalisto";

// La llave viene de FISCALISTO_API_KEY.
const fiscalisto = new Fiscalisto();

for await (const item of fiscalisto.storeConnections.list()) {
  console.log(item.id);
}
```

## Con el SDK de Python

```python
from fiscalisto import Fiscalisto

# La llave viene de FISCALISTO_API_KEY.
fiscalisto = Fiscalisto()

for item in fiscalisto.store_connections.list():
    print(item["id"])
```

## Con el SDK de PHP

```php
<?php

use Fiscalisto\Fiscalisto;

// La llave viene de FISCALISTO_API_KEY.
$fiscalisto = new Fiscalisto();

foreach ($fiscalisto->storeConnections->list() as $item) {
    echo $item['id'], "\n";
}
```

## Con el SDK de .NET

```csharp
using Fiscalisto;

// La llave viene de FISCALISTO_API_KEY.
var fiscalisto = new FiscalistoClient();

await foreach (var item in fiscalisto.StoreConnections.ListAutoPagingAsync())
    Console.WriteLine(item.Id);
```

## Con el SDK de Go

```go
package main

import (
	"context"
	"fmt"
	"log"

	fiscalisto "fiscalisto.com/go"
)

func main() {
	// La llave viene de FISCALISTO_API_KEY.
	client, err := fiscalisto.NewClient("")
	if err != nil {
		log.Fatal(err)
	}
	ctx := context.Background()

	for item, err := range client.StoreConnections.ListAutoPaging(ctx, nil) {
		if err != nil {
			log.Fatal(err)
		}
		fmt.Println(item.ID)
	}
}
```

## Con el SDK de Java

```java
import com.fiscalisto.FiscalistoClient;

// La llave viene de FISCALISTO_API_KEY.
var fiscalisto = new FiscalistoClient();

for (var item : fiscalisto.storeConnections().listAutoPaging()) {
    System.out.println(item.getId());
}
```

## Respuesta 200

Correcto.

Un objeto `StoreConnectionList`:

| Campo | Tipo | Siempre viene | Descripción |
| --- | --- | --- | --- |
| `object` | `"list"` | sí | Qué tipo de objeto es («invoice», «customer»…). |
| `data` | arreglo de objeto | sí | Los objetos de esta página. |
| `data[].id` | string | sí | Identificador del objeto, con su prefijo (iss_, inv_, ret_, cus_, prd_, emp_, bat_, brn_, whs_, stm_, adj_, evt_, whe_). |
| `data[].livemode` | boolean | sí | true en producción (llaves fk_live_), false en pruebas (fk_test_). Lo de pruebas no vale ante el SAT. |
| `data[].object` | `"store_connection"` | sí | Qué tipo de objeto es («invoice», «customer»…). |
| `data[].issuer` | string | sí | El emisor dueño de la tienda. |
| `data[].platform` | `shopify`, `mercadolibre` | sí | shopify o mercadolibre. |
| `data[].shop` | string o null | sí | El dominio de la tienda de Shopify, o el id del vendedor en Mercado Libre (al autorizar). |
| `data[].status` | `pending`, `active`, `disconnected` | sí | pending (Mercado Libre espera que el vendedor autorice en authorize_url), active o disconnected. |
| `data[].authorize_url` | string o null | sí | Si está pending: la página de Mercado Libre donde el vendedor autoriza (vale un día; cada consulta da una nueva). Si no, null. |
| `data[].settings` | objeto | sí | Cómo se vuelve ticket cada pedido. |
| `data[].settings.product_key` | string o null | sí | c_ClaveProdServ de lo que vende, o null. |
| `data[].settings.unit_key` | string o null | sí | c_ClaveUnidad, o null (la de la clave del producto). |
| `data[].settings.iva` | `0`, `0.16`, `0.08`, `exento` | sí | Tasa de IVA incluida en los precios. |
| `data[].settings.description` | string o null | sí | El concepto fijo de cada ticket, o null (el pedido y sus artículos). |
| `data[].settings.folio_prefix` | string | sí | Lo que va antes del número del pedido en el folio. |
| `data[].settings.payment_form` | string o null | sí | c_FormaPago cuando la del pedido no está en payment_forms, o null. |
| `data[].settings.payment_forms` | objeto | sí | c_FormaPago por pasarela o tipo de pago. |
| `data[].settings.auto_invoice` | boolean o null | sí | Mercado Libre: si se timbra al momento con los datos fiscales del comprador; null en Shopify. |
| `data[].orders_count` | integer | sí | Cuántos pedidos se han vuelto tickets. (de -9007199254740991 a 9007199254740991) |
| `data[].last_order_at` | string (date-time) o null | sí | Cuándo llegó el último, o null. |
| `data[].last_error` | objeto o null | sí | El último problema (un pedido en dólares, un ticket que ya se facturó cuando se canceló el pedido…), o null. |
| `data[].last_error.message` | string | sí | Qué pasó. |
| `data[].last_error.at` | string (date-time) o null | sí | Cuándo. |
| `data[].created_at` | string (date-time) o null | sí | Cuándo se conectó. |
| `has_more` | boolean | sí | true si hay más: pida la siguiente con starting_after igual al id del último. |
| `url` | string | sí | La ruta de esta lista. |

```json
{
  "object": "list",
  "data": [
    {
      "id": "stc_OufpKqnrvx9p3Kd8sLm2XyT5uBcW8sKdLx",
      "object": "store_connection",
      "livemode": false,
      "issuer": "iss_OufpKqnrvx9p",
      "platform": "shopify",
      "shop": "mi-tienda.myshopify.com",
      "status": "active",
      "authorize_url": null,
      "settings": {
        "product_key": "53101600",
        "unit_key": null,
        "iva": "0.16",
        "description": null,
        "folio_prefix": "SHOP-",
        "payment_form": null,
        "payment_forms": {
          "paypal": "31"
        },
        "auto_invoice": null
      },
      "orders_count": 128,
      "last_order_at": "2026-10-25T10:12:44-06:00",
      "last_error": null,
      "created_at": "2026-10-01T09:00:00-06:00"
    }
  ],
  "has_more": false,
  "url": "/v1/store_connections"
}
```

## Errores

Puede responder 400, 401, 403, 404, 429, 500 con el cuerpo de error de siempre; cada código está en https://fiscalisto.com/docs/api/errores.md.
