GEThttps://api.veriko.mx/v1/billing/subscription

Consultar suscripción activa del usuario

Audiencia
public
Autenticación
API key
Permiso
billing:read_self

Devuelve la suscripción activa del usuario autenticado con el plan vigente, el modelo de facturación, las fechas del ciclo actual, el límite efectivo y el resumen de cuota. El campo source indica el origen: stripe (pago Stripe), admin_granted (otorgada manualmente) o system_default (plan gratuito por defecto). Cada usuario tiene siempre exactamente una suscripción activa: la respuesta nunca incluye data: null. El resumen de uso (used, remaining, resets_at, limit) vive en meta.quota para que clientes que solo leen el slug por data.attributes no se vean obligados a parsear la cuota. Acepta autenticación por API key. Si el módulo de facturación está deshabilitado responde 503 con código billing_disabled. Para ver los planes disponibles a los que cambiar usa GET /v1/plans; para el consumo del ciclo actual usa GET /v1/usage/summary (la resets_at que devuelve es el mismo current_period_end de esta suscripción).

Petición
curl -X GET 'https://api.veriko.mx/v1/billing/subscription' \
  -H 'Authorization: Bearer veriko_••••'

Ejemplo en Python — próximamente.

Ejemplo en JavaScript — próximamente.

Ejemplo en PHP — próximamente.

Respuesta 200BillingSubscriptionResponse — Suscripción activa del usuario con plan, ciclo y cuota.
CampoTipoDescripción
dataobject

Payload principal de la respuesta. La forma varía según el endpoint (objeto, array, o envelope JSON:API con type, id, attributes).

type*string

Tipo del recurso, fijo para esta operación. Forma parte de la identidad del recurso en la envoltura JSON:API. Siempre billing_subscription.

p. ej. billing_subscription
id*string

ID local de la fila de suscripciones (entero como string). NO es el ID de Stripe — ese va en attributes.stripe_subscription_id.

p. ej. 4218
attributes*object

Suscripción activa del usuario. Cada usuario tiene exactamente una fila activa: el origen viene en source. Los campos trial_*, cancel_* y stripe_subscription_id son nulos cuando no aplican (planes gratuitos por defecto, concesiones de administrador o estados estables). Todos los timestamps están en UTC con sufijo Z.

plan_slugstring

Slug del plan activo (free, basic, pro, …).

p. ej. pro
plan_namestring

Nombre legible del plan para mostrar en UI.

p. ej. Pro
billing_modelstring

Modelo de facturación del plan. free — sin cobro; tiered — cuota fija; metered — se cobra por consumo; hybrid — cuota fija más consumo.

p. ej. hybrid
sourcestring

Origen de la suscripción. stripe = pago Stripe activo. admin_granted = otorgado manualmente por un administrador. system_default = plan gratuito por defecto, creado automáticamente para usuarios sin facturación activa.

p. ej. stripe
statusstring

Estado del ciclo de vida de la suscripción. active, trialing y past_due cuentan como "acceso habilitado". past_due es periodo de gracia: Stripe Smart Retries está reintentando el cobro. canceled — terminada; unpaid — con cobros fallidos y sin gracia; incomplete e incomplete_expired — el primer pago nunca se completó; paused — en pausa.

p. ej. active
current_period_startstring (date-time)

Timestamp ISO 8601 en UTC con sufijo Z explícito. Ejemplo: "2026-05-01T05:14:38Z". Cada campo *_at, *_end, *_start, *_date de la API usa esta forma. El descriptor compañero en meta.datetime permite afirmar el contrato en tiempo de ejecución sin volver a leer este spec. El new Date(value) nativo del navegador, el datetime.fromisoformat (≥3.11) de Python y el time.Parse(time.RFC3339) de Go parsean este formato directamente.

p. ej. 2026-05-01T05:14:38Z
current_period_endstring (date-time)

Timestamp ISO 8601 en UTC con sufijo Z explícito. Ejemplo: "2026-05-01T05:14:38Z". Cada campo *_at, *_end, *_start, *_date de la API usa esta forma. El descriptor compañero en meta.datetime permite afirmar el contrato en tiempo de ejecución sin volver a leer este spec. El new Date(value) nativo del navegador, el datetime.fromisoformat (≥3.11) de Python y el time.Parse(time.RFC3339) de Go parsean este formato directamente.

p. ej. 2026-05-01T05:14:38Z
currencystring

Moneda del ciclo activo. MXN son pesos mexicanos y USD, dólares estadounidenses.

p. ej. MXN
billing_intervalstring

Cadencia de facturación. once se usa para concesiones de administrador o ciclos sin renovación automática. month cobra cada mes y year, cada año.

p. ej. month
overage_enabledboolean

true si el usuario aceptó cobro por excedente en un plan hybrid. Cuando es true, effective_limit salta de included_validations a monthly_validation_limit.

p. ej. false
included_validationsinteger | nullanulable

Validaciones incluidas en el plan antes del overage. null para planes sin distinción incluido/overage.

p. ej. 500
monthly_validation_limitinteger

Tope mensual del plan. En hybrid con overage_enabled=true actúa como tope duro; en planes tiered/metered/free es el límite principal.

p. ej. 10000
beneficiaries_maxinteger

Tope de beneficiarios del plan activo. -1 = ilimitado (default de todos los planes hasta que pricing fije un valor); >=0 actúa como tope duro.

p. ej. -1
effective_limitinteger

Límite efectivo de validaciones para el ciclo actual, ya aplicado la corrección administrativo (si existe) y la regla de overage_enabled. Es el número contra el que se decide si una validación se atiende o se rechaza.

p. ej. 500
is_stripeboolean

Atajo: equivale a source == "stripe".

p. ej. true
stripe_subscription_idstring | nullanulable

ID de la suscripción Stripe. null cuando source != "stripe".

p. ej. sub_1OaBcDeFgHiJk2
grant_reasonstring | nullanulable

Motivo registrado cuando la suscripción fue otorgada por un administrador. null si source != "admin_granted".

p. ej. cortesía soporte
cancel_at_period_endboolean

true cuando la suscripción está programada para cancelarse al cierre del ciclo (vía POST /billing/subscription/cancel o portal Stripe legacy).

p. ej. false
cancel_atstring | nullanulable

Timestamp explícito de cancelación programada (formato moderno del Stripe Customer Portal). Mutuamente excluyente con cancel_at_period_end a nivel API de Stripe, pero ambos pueden aparecer reflejados localmente.

p. ej. 2026-04-30T10:15:00Z
canceled_atstring | nullanulable

Timestamp de cancelación ya consumada. null mientras la suscripción está activa.

p. ej. 2026-04-30T10:15:00Z
trial_startstring | nullanulable

Inicio del periodo de prueba, null si no hay trial.

p. ej. 2026-04-30T10:15:00Z
trial_endstring | nullanulable

Fin del periodo de prueba, null si no hay trial.

p. ej. 2026-04-30T10:15:00Z
metaobject

Metadatos de la respuesta, incluyendo versión de la API, prefijo de ruta, identificador único de la petición y marca temporal del servidor en UTC.

versionstring

Versión de la API que procesó la petición.

p. ej. 1.47.0
api_versionstring

Versión del prefijo de ruta de la API (ej. v1).

p. ej. v1
request_idstring

Identificador único de la petición (hex).

p. ej. a1b2c3d4e5f6
datetimeobject

Descriptor compañero presente en el bloque meta de cada respuesta (y en el meta del cuerpo de los webhooks salientes). Permite a los clientes afirmar el contrato de zona horaria sin releer el spec.

p. ej. {"timezone":"UTC","format":"ISO 8601"}
timezone*string

Siempre UTC — la zona canónica para cada campo datetime del cuerpo.

p. ej. UTC
format*string

Siempre ISO 8601 — sufijo Z explícito en cada datetime.

p. ej. ISO 8601
linksobject

Enlaces de paginación o relacionados, presentes solo cuando el endpoint devuelve una colección paginada.

Códigos de respuestaGET /v1/billing/subscription
CódigoClaseDescripciónCuerpo
2002xxSuscripción activa del usuario con plan, ciclo y cuota.BillingSubscriptionResponse
4014xxSe requiere autenticación o las credenciales son inválidasErrorResponse
5035xxbilling_disabled — el módulo de facturación está desactivado.ErrorResponse
Errores de GET /v1/billing/subscription
CódigoClaveEjemplo
401unauthorized

Credenciales de autenticación ausentes o inválidas.

Envelope
meta.request_id
c4d5e6f7a8b9