Addons
Ofrece features opcionales que los clientes pueden activar en sus suscripciones por un precio adicional.
Los addons son features opcionales con su propio precio y modelo de consumo que los clientes activan en sus suscripciones. Extienden una suscripción sin modificar el plan base — piensa en SSO, canales SMS o soporte premium.
Cómo funcionan los addons
| Aspecto | Descripción |
|---|---|
| Precio | Precio base fijo por período de cobro, prorrateado al activarse |
| Cargo al activar | Cargo inmediato por los días restantes del período actual |
| Cobro recurrente | El precio base se suma al recibo del plan en cada ciclo |
| Desactivación | Sin reembolso — la feature se detiene de inmediato |
| Acceso a la feature | La feature del addon aparece junto a las features del plan |
Cada addon se mapea a exactamente una feature. Al activarse, esa feature queda disponible a través de features.get, features.check y features.list — igual que cualquier feature del plan.
Modelos de consumo
Los addons declaran su propio modelo de consumo. Los addons booleanos son compatibles con cualquier plan. Los demás modelos requieren coincidir con el modelo del plan.
| Modelo | Descripción | Planes compatibles | Ejemplo |
|---|---|---|---|
| Boolean | Desbloquea acceso, sin tracking de uso | Todos los planes | SSO, cumplimiento HIPAA |
| Metered | Unidades incluidas + excedente al cierre del período | Planes Metered | SMS: 1000 incluidos, $0.03/extra |
| Credits | El uso consume del pool de créditos del plan | Planes Credits | Resúmenes IA: 5 créditos/uso |
| Balance | El uso descuenta del pool de balance del plan | Planes Balance | Procesamiento de imágenes: $0.015/unidad |
Los addons Credits y Balance consumen del pool compartido del plan — no hay un pool separado para el addon. Si el pool se agota, la feature del addon también queda bloqueada.
Crear addons en el dashboard
Ve a Add-ons y haz clic en Create Add-on. Configura el nombre, precio base, feature y modelo de consumo. Para addons Metered, define las unidades incluidas y la tarifa de excedente. Para Credits, define el costo en créditos por unidad.
El dropdown de feature solo muestra features que no están asignadas a otro addon. Una vez creado, el addon queda disponible para cualquier cliente cuyo plan sea compatible.
Disponibilidad por estado de la suscripción
Los addons se pueden activar en cualquier suscripción con un método de pago:
| Estado | Puede activar addons |
|---|---|
| Active | Sí |
| Trialing | Sí — la tarjeta se capturó en el checkout del trial |
| Free plan | Sí — la primera compra pide un método de pago |
Administrar addons
Los addons se gestionan a través del dashboard y del customer portal. La activación y desactivación no están disponibles vía API o SDK.
| Acción | Dónde |
|---|---|
| Crear / archivar addons | Dashboard → Add-ons |
| Activar / desactivar | Dashboard (detalle de suscripción) o Customer Portal |
| Listar addons activos | API, Dashboard o Customer Portal |
Acceso a features
Las features de los addons funcionan exactamente igual que las features del plan — sin manejo especial:
const customer = commet.customer('user_123')
// Verificar addon booleano
const sso = await customer.features.get('sso')
// { access: true, type: 'boolean', enabled: true }
// Registrar uso de addon metered
await customer.usage.track('sms_messages', 50)
// Listar todas las features (plan + addons combinados)
const features = await customer.features.list()customer = commet.customer('user_123')
# Verificar addon booleano
sso = customer.features.get('sso')
# { 'access': True, 'type': 'boolean', 'enabled': True }
# Registrar uso de addon metered
customer.usage.track('sms_messages', value=50)
# Listar todas las features (plan + addons combinados)
features = customer.features.list()customer := client.Customer("user_123")
// Verificar addon booleano
sso, _ := customer.Features.Get(ctx, "sso")
// sso.Data.Access == true, sso.Data.Type == "boolean"
// Registrar uso de addon metered
customer.Usage.Track(ctx, "sms_messages", commet.WithValue(50))
// Listar todas las features (plan + addons combinados)
features, _ := customer.Features.List(ctx)CustomerContext customer = commet.customer("user_123");
// Verificar addon booleano
ApiResponse<Feature> sso = customer.features().get("sso");
// sso.getData().isAccess() == true
// Registrar uso de addon metered
customer.usage().track(
TrackParams.builder("sms_messages").value(50).build()
);
// Listar todas las features (plan + addons combinados)
ApiResponse<List<Feature>> features = customer.features().list();$customer = $commet->customer('user_123');
// Verificar addon booleano
$sso = $customer->features->get('sso');
// [ 'access' => true, 'type' => 'boolean', 'enabled' => true ]
// Registrar uso de addon metered
$customer->usage->track('sms_messages', value: 50);
// Listar todas las features (plan + addons combinados)
$features = $customer->features->list();# Verificar addon booleano
curl "https://commet.co/api/features/sso?customerId=user_123" \
-H "x-api-key: $COMMET_API_KEY"
# Registrar uso de addon metered
curl -X POST https://commet.co/api/usage/events \
-H "x-api-key: $COMMET_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"feature": "sms_messages",
"customerId": "user_123",
"value": 50
}'
# Listar todas las features (plan + addons combinados)
curl "https://commet.co/api/features?customerId=user_123" \
-H "x-api-key: $COMMET_API_KEY"Comportamiento de cobro
Cargo al activar
Cuando un cliente activa un addon de $50/mes en el día 11 de un período de 31 días (20 días restantes):
| Valor | |
|---|---|
| Precio completo | $50.00 |
| Prorrateado | $50 × (20/31) = $32.26 |
| Tipo de recibo | addon_activation |
El cargo va a Stripe de inmediato con su propio recibo.
Recibos recurrentes
A partir del siguiente ciclo de cobro completo, el precio base del addon aparece como una línea separada en el recibo del plan:
Plan Pro (base) $99.00
API Calls: 12,500 (2,500 excedente × $0.01)$25.00
Addons
SMS Channel (base) $15.00
SMS: 1,800 (800 excedente × $0.03) $24.00
SSO $50.00
Subtotal $213.00Multi-moneda
Los precios de los addons se definen en USD. Para suscripciones en monedas no USD, el precio se convierte usando el tipo de cambio del plan — el mismo mecanismo que se usa para los precios base de los planes.
Customer portal
Los clientes pueden autogestionar addons desde el portal:
- Addons disponibles — ver addons compatibles con su precio
- Activar — diálogo de confirmación con vista previa del cargo prorrateado
- Addons activos — administrar addons activos
- Desactivar — instantáneo, sin reembolso
Los addons cuya feature ya existe en el plan del cliente se ocultan del portal automáticamente.
Más información
Relacionado
- Modelos de consumo — Metered, Credits y Balance explicados
- Configurar features — Define las features que los addons pueden desbloquear
- Packs de créditos — Otra forma de extender las capacidades del plan
- Administrar suscripciones — Ciclo de vida y gestión de suscripciones
- Customer Portal — Donde los clientes activan addons
¿Cómo está esta guía?