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

# Listado de suscripciones

> Obtiene las suscripciones creadas en tu cuenta con filtros y paginación.

### Parámetros de consulta

<ParamField query="page" type="number" placeholder="1" default={1}>
  Página que deseas consultar.
</ParamField>

<ParamField query="per_page" type="number" placeholder="20" default={20}>
  Cantidad de registros por página (máx. 100).
</ParamField>

<ParamField query="status" type="string" placeholder="active">
  Filtra por estados (`created`, `active`, `unpaid`, `pass_due`, `frozen`, `canceled`, `finished`).
</ParamField>

<ParamField query="customer_id" type="string" placeholder="9dd4158b-0e45-42bc-b56f-a4c1f856814d">
  Filtra por el ID de un cliente existente. [Crear cliente](/client/customers/create).
</ParamField>

<ParamField query="plan_id" type="string" placeholder="9ddfcfc1-7b5e-490c-9731-4aabd986908e">
  Filtra por el ID de un plan existente. [Crear plan](/client/plans/create).
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.onepay.la/v1/subscriptions?page=1&per_page=20&status=active \
    -H "Authorization: Bearer sk_test_xxx"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.onepay.la/v1/subscriptions?page=1&per_page=20&status=active', {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer sk_test_xxx'
    }
  });
  const data = await response.json();
  console.log(data.data); // Array de suscripciones
  console.log(data.current_page); // Página actual
  ```

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

  url = "https://api.onepay.la/v1/subscriptions"
  headers = {
      "Authorization": "Bearer sk_test_xxx"
  }
  params = {
      "page": 1,
      "per_page": 20,
      "status": "active"
  }

  response = requests.get(url, headers=headers, params=params)
  data = response.json()
  print(data["data"])  # Array de suscripciones
  print(data["current_page"])  # Página actual
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init();

  $url = "https://api.onepay.la/v1/subscriptions?" . http_build_query([
      "page" => 1,
      "per_page" => 20,
      "status" => "active"
  ]);

  curl_setopt_array($ch, [
      CURLOPT_URL => $url,
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_HTTPHEADER => [
          "Authorization: Bearer sk_test_xxx"
      ]
  ]);

  $response = curl_exec($ch);
  $data = json_decode($response, true);

  print_r($data["data"]); // Array de suscripciones
  echo $data["current_page"]; // Página actual

  curl_close($ch);
  ?>
  ```
</RequestExample>

### Response

<ResponseField name="data" type="array">
  Colección de suscripciones.

  <ResponseField name="id" type="string">
    Identificador único de la suscripción (UUID).
  </ResponseField>

  <ResponseField name="name" type="string">
    Nombre comercial de la suscripción.
  </ResponseField>

  <ResponseField name="status" type="string">
    Estado actual (`active`, `unpaid`, `pass_due`, `canceled`, `finished`, `frozen`).
  </ResponseField>

  <ResponseField name="description" type="string">
    Descripción enriquecida (puede contener HTML).
  </ResponseField>

  <ResponseField name="internal_id" type="string">
    Identificador interno que usas en tu sistema.
  </ResponseField>

  <ResponseField name="plan_id" type="string">
    ID del plan asociado, si aplica.
  </ResponseField>

  <ResponseField name="coupon_id" type="string">
    ID del cupón aplicado.
  </ResponseField>

  <ResponseField name="reference_price_in_cents" type="string">
    Precio de referencia en centavos como string.
  </ResponseField>

  <ResponseField name="currency" type="string">
    Moneda en formato ISO-4217 (ej. `COP`).
  </ResponseField>

  <ResponseField name="amount_in_cents" type="number">
    Valor base cobrado en cada ciclo.
  </ResponseField>

  <ResponseField name="cicle_frequency" type="string">
    Frecuencia de cobro: `weekly`, `monthly`, `annual`, etc.
  </ResponseField>

  <ResponseField name="cicles" type="number">
    Cantidad máxima de ciclos; `null` para indefinido.
  </ResponseField>

  <ResponseField name="current_cicle" type="number">
    Ciclo actual procesado.
  </ResponseField>

  <ResponseField name="allows" type="object">
    Configuración de métodos de pago permitidos para la suscripción.
  </ResponseField>

  <ResponseField name="suggest_auto_debit" type="boolean">
    Indica si se sugiere activar débito automático durante el onboarding del cliente.
  </ResponseField>

  <ResponseField name="start_date" type="date">
    Fecha programada de inicio.
  </ResponseField>

  <ResponseField name="end_date" type="date">
    Fecha de finalización si aplica.
  </ResponseField>

  <ResponseField name="trial" type="object">
    Información de periodo de prueba (`has_trial`, `trial_days`, `start_trial_date`).
  </ResponseField>

  <ResponseField name="payment_mode" type="string">
    Modo de cobro (`request`, `auto_debit`, etc.).
  </ResponseField>

  <ResponseField name="remember_to_pay_before" type="number">
    Días de anticipación para recordatorios de pago.
  </ResponseField>

  <ResponseField name="cancel_after_no_payment_before" type="number">
    Número de ciclos fallidos antes de cancelar automáticamente.
  </ResponseField>

  <ResponseField name="complex_payments" type="array">
    Pagos con valores diferenciados por ciclo.
  </ResponseField>

  <ResponseField name="metadata" type="object">
    Atributos personalizados que acompañan la suscripción.
  </ResponseField>

  <ResponseField name="customer" type="object">
    Resumen del cliente asociado.
  </ResponseField>

  <ResponseField name="plan" type="object">
    Información del plan enlazado, cuando existe.
  </ResponseField>

  <ResponseField name="created_at" type="date">
    Fecha de creación de la suscripción.
  </ResponseField>

  <ResponseField name="updated_at" type="date">
    Fecha de última actualización.
  </ResponseField>
</ResponseField>

<ResponseField name="current_page" type="number">
  Número de la página actual
</ResponseField>

<ResponseField name="first_page_url" type="string">
  URL para acceder a la primera página de resultados
</ResponseField>

<ResponseField name="from" type="number">
  Índice inicial del primer elemento en la página actual
</ResponseField>

<ResponseField name="next_page_url" type="string">
  URL para acceder a la siguiente página de resultados. Será `null` si es la última página
</ResponseField>

<ResponseField name="path" type="string">
  URL base de la API sin los parámetros de paginación
</ResponseField>

<ResponseField name="per_page" type="number">
  Cantidad de elementos por página
</ResponseField>

<ResponseField name="prev_page_url" type="string">
  URL para acceder a la página anterior. Será `null` si es la primera página
</ResponseField>

<ResponseField name="to" type="number">
  Índice final del último elemento en la página actual
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "9ddfcfc1-7b5e-490c-9731-4aabd986908e",
        "name": "SpectreSaaS",
        "status": "active",
        "description": "<p>1 Free</p><p>2 COP 449.000</p>",
        "internal_id": "SaaSSpectre",
        "plan_id": null,
        "coupon_id": null,
        "reference_price_in_cents": "44900000",
        "currency": "COP",
        "amount_in_cents": 44900000,
        "cicle_frequency": "monthly",
        "cicles": null,
        "current_cicle": 2,
        "allows": {
          "cards": true,
          "accounts": true,
          "card_extra": false,
          "realtime": false,
          "pse": true,
          "transfiya": true
        },
        "start_date": "2025-01-05T00:00:00.000000Z",
        "end_date": null,
        "trial": {
          "has_trial": false,
          "start_trial_date": null,
          "trial_days": 0
        },
        "complex_payments": [
          {
            "amount_in_cents": 134700000,
            "apply_on_cicle": 1,
            "for_cicles": 1,
            "label": "Noviembre - Diciembre - Enero",
            "target_price": "44900000"
          }
        ],
        "features": [],
        "metadata": null,
        "created_at": "2025-01-02T19:24:48.000000Z",
        "updated_at": "2025-02-05T16:01:24.000000Z",
        "customer": {
          "id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
          "first_name": "Empresa",
          "last_name": "SAS",
          "email": "empresa@empresa.com",
          "phone": "+573221234567",
          "document": "1234567890",
          "document_type": "RUT"
        }
      }
    ],
    "current_page": 1,
    "first_page_url": "https://api.onepay.la/v1/subscriptions?page=1",
    "from": 1,
    "next_page_url": null,
    "path": "https://api.onepay.la/v1/subscriptions",
    "per_page": 20,
    "prev_page_url": null,
    "to": 1
  }
  ```
</ResponseExample>
