---
title: "Suscripción y plan actual del workspace"
method: GET
path: "/billing/subscription"
tags: ["Billing"]
---

# Suscripción y plan actual del workspace

`GET /billing/subscription`

## Request

- Base URL: `https://api.met.meteor.com.co/api/v1`
- URL: `https://api.met.meteor.com.co/api/v1/billing/subscription`
- Auth: one of:
  - `bearer` (a scheme the document does not define)
  - HTTP bearer

El plan en el que está el workspace hoy y el estado de su suscripción. Combínalo con `/billing/access` para saber no solo qué plan tiene sino si puede operar.

## Response `200`

- object: Sobre en el que viaja toda respuesta correcta de la API. El recurso está en `data`. Los SDKs oficiales lo desenvuelven por ti; un cliente hecho a mano tiene que leer `.data`.
  - `success` true, required: Siempre `true` en una respuesta 2xx.
  - `data` CurrentSubscriptionResponseDto, required
    - `plan` PlanWithFeaturesDto, required
      - `allow_custom` boolean, required: `true` si admite condiciones negociadas por fuera del precio de lista.
      - `allowed_models` string[], required: Modelos habilitados por el plan, con su nombre de marca.
      - `api_daily_quota` number, nullable: Peticiones de API incluidas por día (UTC), sumando todas las API keys del workspace: API, SDK, CLI y MCP. Los complementos «Peticiones de API» lo amplían. Al llegar al tope se responde `429` `daily_request_limit_exceeded` hasta el reinicio del día, salvo enviar WhatsApp (`channels:send`), que cuenta pero no se frena. `null` = sin tope.
      - `automation_daily_quota` number, nullable: Ejecuciones de automatización incluidas por día (UTC). Ausente = sin techo.
      - `automation_monthly_quota` number, nullable: Obsoleta: el límite pasó a ser diario. Se conserva vacía por compatibilidad.
      - `automation_rate_limit_rpm` number, nullable: Declarada pero sin efecto: ningún camino la aplica hoy.
      - `call_minutes_monthly_quota` number, nullable: Techo de minutos/mes de llamada atendida por el Met. `null` = ilimitado.
      - `call_outbound_daily_quota` number, nullable: Techo de llamadas salientes al día. `null` = ilimitado.
      - `call_recording_days` number, nullable: Días que se conserva el audio de la llamada. Máximo 90.
      - `contacts_limit_soft` boolean: `true` = llegar a `max_contacts` frena el alta de contactos pero no bloquea el workspace. Para planes gratis, donde el tope lo cruza el tráfico entrante y no una acción del cliente.
      - `created_at` string, required
      - `description` string, nullable, required
      - `display_order` number, required: Orden en el que se muestra en la página de precios, ascendente.
      - `feature_keys` string[], required: Claves de las funcionalidades incluidas en el plan.
      - `icon_url` string, nullable, required
      - `id` number, required
      - `initial_bonus_usd` number, required: Energía de regalo que se acredita al activar el plan, en USD.
      - `max_contacts` number, required: Techo de contactos en el CRM.
      - `max_members` number, required: Techo de miembros del equipo.
      - `max_mets` number, required: Techo de Mets configurables.
      - `name` string, required
      - `price_monthly_usd` number, required
      - `price_yearly_usd` number, required
      - `sdk_only` boolean: `true` en el plan para desarrolladores, que no aparece en el pricing normal.
      - `slug` string, required: Identificador estable del plan. Es el que conviene guardar, no el `id`.
      - `social_accounts_max` number, nullable: Cuentas de red social conectables en total —líneas de WhatsApp, páginas de Messenger y cuentas de Instagram, sumadas—. `null` = sin tope, que es lo que tienen los planes pagos. Un plan con 1 admite UNA cuenta entre las tres redes, no una por red.
      - `status` 'active' | 'inactive' | 'hidden', required: Solo los `active` aparecen en el listado público de planes.
      - `stripe_price_id_monthly` string, nullable, required: Precio de Stripe que usa el checkout mensual.
      - `stripe_price_id_yearly` string, nullable, required: Precio de Stripe que usa el checkout anual.
      - `support_tier` 'community' | 'basic' | 'custom' | 'priority', nullable, required: Nivel de soporte incluido, que define el SLA.
      - `updated_at` string, required
    - `subscription` WorkspaceSubscriptionDto, required
      - `billing_cycle` 'monthly' | 'yearly', required
      - `canceled_at` string, nullable, required: Cuándo se pidió la cancelación. El servicio sigue hasta `current_period_end`.
      - `created_at` string, required
      - `current_period_end` string, nullable, required: Cuándo vence el período ya pagado.
      - `current_period_start` string, nullable, required
      - `fallback_plan_id` number, nullable: Plan al que DEGRADA la suscripción cuando vence la prueba, en vez de quedar inactiva. `null` = comportamiento normal (se desactiva). Lo siembra el registro cuando el dueño comercial del referido tiene el beneficio que lo otorga.
      - `id` number, required
      - `last_change_source` 'admin' | 'stripe' | 'user' | 'system', nullable, required: Qué originó el último cambio de estado.
      - `last_changed_at` string, nullable, required
      - `plan_id` number, required
      - `referred_by` number, nullable, required: Partner o miembro que refirió el workspace.
      - `status` 'trial' | 'active' | 'grace_period' | 'inactive' | 'deactivated' | 'energy_depleted' | 'suspended' | 'contacts_limit', required: `trial` y `active` operan con normalidad; `grace_period` es el margen tras un cobro fallido; `inactive` nunca llegó a pagar y `deactivated` pagó y se fue; `energy_depleted`, `suspended` y `contacts_limit` son bloqueos operativos.
      - `stripe_customer_id` string, nullable, required: Cliente de Stripe del workspace. Es un identificador, no un medio de pago.
      - `stripe_subscription_id` string, nullable, required
      - `trial_ends_at` string, nullable, required
      - `updated_at` string, required
      - `workspace_id` number, required

## Other responses

- `400`: La request no es válida: un campo no pasa validación, falta un parámetro requerido o el recurso no admite la transición solicitada.
- `401`: API key ausente, inválida, revocada o expirada — o el workspace está bloqueado.
- `403`: La key está autenticada pero no puede ejecutar esta operación: scope faltante, capacidad deshabilitada, modo test restringido o recurso fuera de su cartera.
- `404`: El recurso no existe o no está disponible dentro del alcance de la key. No revela la existencia de recursos de otros tenants.
- `429`: Se superó el límite por minuto de la key o la cuota del plan. Respeta `Retry-After`; el SDK ya reintenta solo.
- `500`: Error del servidor o del Met que ejecutaba. El SDK reintenta los 5xx con backoff.

---

[API](https://skmtc.dev/meteor/apis/met-public-api.md) · [All operations](https://skmtc.dev/meteor/apis/met-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meteor/apis/met-public-api/revisions/5d9ca294295c?raw)
