Commet
  • Pricing
Log InTry out
Introducción

Inicio rápido

Aprender

Administrar planesConfigurar featuresModelos de consumoAddonsPacks de créditosCódigos promocionalesGrupos de planesPrecios regionalesPagos únicosPeríodos de pruebaOfertas introductorias

Recursos

Referencia del SDKVersionado de APIManejo de erroresTestingCLI

Plugins

Better Auth
DocumentaciónRecursosConstruir con AIAPI ReferenceWebhooks

Períodos de prueba

Ofrece trials gratis en planes pagos en Commet con cobro automático cuando termina el trial.

Un período de prueba permite que los clientes usen tu producto antes de ser cobrados. Configura los días de trial en un plan y cada nueva suscripción obtiene un trial automáticamente.

Componentes del trial

ComponenteDescripciónEjemplo
Trial DaysDuración del trial gratis antes del cobro7, 14, 30
Per IntervalCada intervalo de cobro puede tener días de trial distintosMensual: 14 días, Anual: 30 días
Skip TrialSaltar el trial para clientes específicos vía SDKskipTrial: true

Configurar días de trial en el dashboard

En el dashboard, ve a Plans, edita un plan y define Trial Days en cada intervalo de precio. Los días de trial se configuran por precio del plan, no por cliente. Cada intervalo (mensual, trimestral, anual) puede tener su propia duración de trial. Los planes free no pueden tener trials.

Crear una suscripción con trial

No se necesitan cambios de código para habilitar trials. La suscripción comienza en estado trialing automáticamente cuando el plan tiene días de trial configurados.

const { data } = await commet.subscriptions.create({
  customerId: 'user_123',
  planCode: 'pro',
})

// data.status → 'trialing'
// data.trialEndsAt → '2026-01-15T00:00:00.000Z'
redirect(data.checkoutUrl)
response = commet.subscriptions.create(
    customer_id='user_123',
    plan_code='pro',
)

# response.data['status'] → 'trialing'
# response.data['trial_ends_at'] → '2026-01-15T00:00:00.000Z'
redirect(response.data['checkout_url'])
result, err := client.Subscriptions.Create(ctx, &commet.CreateSubscriptionParams{
    CustomerID: "user_123",
    PlanCode:   "pro",
})

// result.Data.Status → "trialing"
// result.Data.TrialEndsAt → "2026-01-15T00:00:00.000Z"
// redirect(result.Data.CheckoutURL)
ApiResponse<Subscription> result = commet.subscriptions().create("user_123", "pro");

// result.getData().getStatus() → "trialing"
// result.getData().getTrialEndsAt() → "2026-01-15T00:00:00.000Z"
// redirect(result.getData().getCheckoutUrl())
$result = $commet->subscriptions->create(
    customerId: 'user_123',
    planCode: 'pro',
);

// $result->data['status'] → 'trialing'
// $result->data['trialEndsAt'] → '2026-01-15T00:00:00.000Z'
redirect($result->data['checkoutUrl']);
curl -X POST https://commet.co/api/subscriptions \
  -H "x-api-key: $COMMET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "user_123",
    "planCode": "pro"
  }'

Saltar un trial

const { data } = await commet.subscriptions.create({
  customerId: 'user_123',
  planCode: 'pro',
  skipTrial: true,
})
response = commet.subscriptions.create(
    customer_id='user_123',
    plan_code='pro',
    skip_trial=True,
)
skipTrial := true
result, err := client.Subscriptions.Create(ctx, &commet.CreateSubscriptionParams{
    CustomerID: "user_123",
    PlanCode:   "pro",
    SkipTrial:  &skipTrial,
})
CreateSubscriptionParams params = CreateSubscriptionParams.builder()
    .customerId("user_123")
    .planCode("pro")
    .skipTrial(true)
    .build();
ApiResponse<Subscription> result = commet.subscriptions().create(params);
$result = $commet->subscriptions->create(
    customerId: 'user_123',
    planCode: 'pro',
    skipTrial: true,
);
curl -X POST https://commet.co/api/subscriptions \
  -H "x-api-key: $COMMET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "user_123",
    "planCode": "pro",
    "skipTrial": true
  }'

skipTrial es la única forma de saltar el trial de un plan para un cliente específico.

Verificar el estado del trial

const { data } = await commet.subscriptions.get('user_123')

if (data.status === 'trialing') {
  const trialEnd = new Date(data.trialEndsAt)
}
response = commet.subscriptions.get(customer_id='user_123')

if response.data['status'] == 'trialing':
    trial_end = datetime.fromisoformat(response.data['trial_ends_at'])
result, err := client.Subscriptions.Get(ctx, "user_123")

if result.Data.Status == "trialing" {
    trialEnd, _ := time.Parse(time.RFC3339, result.Data.TrialEndsAt)
    _ = trialEnd
}
ApiResponse<Subscription> result = commet.subscriptions().get("user_123");

if ("trialing".equals(result.getData().getStatus())) {
    Instant trialEnd = Instant.parse(result.getData().getTrialEndsAt());
}
$result = $commet->subscriptions->get('user_123');

if ($result->data['status'] === 'trialing') {
    $trialEnd = new DateTime($result->data['trialEndsAt']);
}
curl "https://commet.co/api/subscriptions/active?customerId=user_123" \
  -H "x-api-key: $COMMET_API_KEY"

Más información

  • Cómo funcionan los períodos de prueba

Relacionado

  • Administrar planes — Configura días de trial en los precios del plan
  • Administrar suscripciones — Suscribe clientes a planes
  • Manejar pagos fallidos — Qué pasa después de que termina el trial

¿Cómo está esta guía?

Pagos únicos

Vende acceso de por vida o compras únicas con un solo cargo y sin cobros recurrentes.

Ofertas introductorias

Configura descuentos automáticos en los primeros ciclos de cobro para nuevos clientes en Commet.

En esta página

Componentes del trial
Configurar días de trial en el dashboard
Crear una suscripción con trial
Saltar un trial
Verificar el estado del trial
Más información
Relacionado