Calendarios de suscripciones
Obtén información sobre los calendarios de suscripciones y cómo usarlos.
Usa calendarios de suscripciones para hacer cambios automáticos a lo largo del tiempo. Puedes crear suscripciones directamente a través de un calendario o puedes agregar un calendario a una suscripción existente. Usa el atributo fases para definir los cambios que quieras hacer a la suscripción. Una vez que el calendario completa todas las fases, finaliza conforme a su end_behavior.
Estos son algunos de los cambios que puedes querer programar:
- Iniciar una suscripción en una fecha futura
- Antedatar una suscripción a una fecha pasada
- Cambiar la categoría del plan de suscripción
Los calendarios de suscripciones están disponibles tanto en el Dashboard de Stripe Billing como en la API. A continuación, puede ver un breve video sobre cómo funcionan los calendarios de suscripciones en el Dashboard:
Calendarios de suscripciones en el Dashboard
En el resto de este documento, se da más detalles sobre los calendarios de suscripciones. Para ver una lista de ejemplos, consulta la página casos de uso.
Fases
Al crear un calendario de suscripciones, usa el atributo fases para definir cuándo se producirán los cambios y qué propiedades de la suscripción deberás modificar. Por ejemplo, podrías ofrecer un cupón de 50 % descuento durante los primeros tres meses de una suscripción. En este caso, deberías crear un calendario de suscripción cuya primera fase durara tres meses y tuviera un cupón de 50 % de descuento. En la segunda fase, la suscripción recuperaría el costo normal y el cupón se eliminaría. Las fases deben ser secuenciales, es decir, que solo una fase puede estar activa en un determinado momento. Puedes tener hasta 10 fases.
Configura la duración de una fase
El intervalo de un precio determina con qué frecuencia se cobra una suscripción. Por ejemplo, si el intervalo es mensual, se cobra todos los meses. Las fases tienen un atributo iteraciones que usas para especificar cuánto debe durar cada fase. Multiplica este valor por el intervalo para determinar la duración de la fase. Si un calendario de suscripción usa un precio con un intervalo mensual y estableces iterations=2
, la fase dura dos meses.
La end_
de una fase debe ser la start_
de la siguiente fase. El uso de iterations
establece la start_
y la end_
correctas en forma automática. Puedes configurar estos valores manualmente, pero Stripe recomienda usar iterations
. Como la configuración manual de las fechas de inicio y finalización puede dar lugar a errores, úsala solamente para casos de uso avanzados.
Transición a la siguiente fase
La transición de una fase a otra se hace automáticamente al alcanzar la end_
de una fase. Cuando comienza una fase, Stripe actualiza la suscripción basándose en los atributos de la siguiente fase. Puedes, como alternativa, activar el prorrateo para acreditarle al usuario el tiempo o los ítems no utilizados del plan.
Usa las pruebas
Para agregar períodos de prueba, debes definir el final del período de prueba en una fase. Si quieres que la fase completa sea un período de prueba, establece el mismo valor para trial_
y para el parámetro end_
de la fase. Si quieres que el período de prueba solo dure parte de la fase, también puedes establecer la fecha trial_
un poco antes de end_
. Al programar actualizaciones, debes especificar el nuevo parámetro trial_
de cada fase.
Completa un calendario
Los calendarios de suscripciones finalizan después de que se completa la última fase. No se elimina la suscripción, pero ya no estará asociada al calendario. Si quieres cancelar una suscripción después de que se completa la última fase del calendario, puedes establecer end_behavior en cancel
.
Herencia de atributos de fases
Cuando se activa una fase, todos los atributos definidos en la fase también se establecen en la suscripción. Después de la finalización de la fase, los atributos siguen siendo los mismos a menos que se los modifique en la siguiente fase o el calendario no tenga una configuración predeterminada. Puedes definir algunos atributos tanto en los calendarios como en las fases. Por ejemplo:
Si uno de estos atributos se define en el calendario, se convierte en el valor predeterminado para todas las fases. Cuando la misma propiedad se define tanto en el calendario como en la fase, el atributo de la fase anula el atributo del calendario. Este comportamiento se explica mejor a continuación:
Atributo de calendario presente | Atributo de fase presente | Resultado |
---|---|---|
No | No | Se establece de manera predeterminada en la configuración del cliente o de la cuenta |
Sí | No | Atributo de calendario definido |
Sí | Sí | Atributo de fase definido |
No | Sí | Atributo de fase definido |
Usa los metadatos de la fase
Puedes usar las fases de programación de suscripción para establecer metadatos en la suscripción subyacente. Esto te permite controlar los metadatos de una suscripción con actualizaciones programadas.
Obtén información sobre cómo copiar los metadatos de las suscripciones en las facturas de suscripciones.
Crea calendarios de suscripciones
Encontrarás ejemplos más completos en la página de casos de uso, pero a continuación se da un ejemplo básico de cómo crear un calendario de suscripción usando un cliente. Si se crea un calendario de esta manera, también se creará la suscripción.
Nota
A diferencia de cuando se crea una suscripción directamente, la primera factura de un calendario de suscripciones con collection_
establecido en charge_
se comporta como si fuera una factura recurrente y no se finaliza de inmediato en el momento en el que se crea la suscripción del calendario. El estado inicial de la factura es draft
y Stripe la finaliza alrededor de una hora después de su creación.
Esto significa que, por ejemplo, al crear un calendario de suscripciones con cobros automáticos usando start_
, también se crean una suscripción y una factura en estado draft
. Tienes una hora para modificar la factura. Luego, la factura pasa a tener el estado open
o paid
, según el resultado del intento asincrónico de pago en el momento de la finalización.
Actualiza los calendarios de suscripciones
En los calendarios de suscripciones, solo puedes actualizar las fases actuales y futuras.
Vista previa de una factura
Usa el parámetro calendario en create preview para obtener una vista previa de la próxima factura de un calendario de suscripción.
Vista previa de la creación y actualizaciones del calendario
Usa los parámetros en schedule_details para obtener una vista previa de cómo crear o actualizar un calendario de suscripción. Especifica un calendario existente para decirle a Stripe si se trata de una creación o una actualización.
Especifica todas las fases actuales y futuras para las que accederás a una vista previa.
Por ejemplo, el siguiente código muestra una vista previa de la primera factura de un calendario de suscripciones con la fase 1
’ que dura 12
períodos de facturación.
Consideraciones adicionales
Los calendarios de suscripciones generalmente siguen las mismas restricciones que las suscripciones, pero también incoporan algunas propias. Además, la interacción entre los calendarios de suscripciones y las suscripciones puede producir un comportamiento inesperado. Revisa las siguientes secciones para comprender las limitaciones, el comportamiento del producto y las prácticas recomendadas generales al usar los calendarios de suscripciones.
Restricciones
- Solo puedes definir hasta 10 fases actuales o futuras a la vez en un calendario de suscripciones. Las fases pasadas no se contabilizan para este límite.
- Las fases de programación de suscripciones también siguen las mismas restricciones que las suscripciones al crear fases de calendarios de suscripciones con varios ítems.
Limitaciones del Dashboard
Puedes crear y actualizar calendarios de suscripciones sin código en el Dashboard.
En el Dashboard, puedes establecer los siguientes ajustes de forma global en todas las fases, pero no por fases:
- Umbrales de facturación
- Métodos de pago
- Configuración de factura
- Descripción de la suscripción
- Días de prueba (solo funciona con la primera fase)
Los siguientes parámetros no son compatibles con el Dashboard:
- Metadatos del programa de suscripciones
- Metadatos del ítem de fase
- Moneda
- Todos los parámetros de Connect
La suscripción se actualiza cuando se adjunta un calendario
Usa los calendarios de suscripciones para modificar las suscripciones automáticamente cuando pase el tiempo y se ingrese la siguiente fase del calendario. Algunos cambios que realizas directamente en la suscripción se propagan a las fases del calendario de suscripciones, pero otros no. Esto significa que el calendario de suscripciones podría reescribir cualquier modificación que realices directamente en la suscripción cuando se ingrese a la siguiente fase.
Cuando programes cambios en una suscripción, sigue estas prácticas recomendadas:
- Si una suscripción tiene un calendario de suscripciones adjunto, usa la API Subscription Schedule para modificar la suscripción, en lugar de la API Subscriptions.
- Almacena las ID del calendario de suscripciones junto con la ID de la suscripción para futuras actualizaciones de la API. La ID del calendario de suscripciones se devuelve cuando usas la API para crearla o a través del webhook subscription_schedule.created cuando Stripe la crea en forma automática, como cuando un cliente programa un cambio a un plan inferior en el Portal del cliente.
- Descarta las ID del calendario de suscripciones cuando se publique un calendario de suscripciones. Puedes realizar cambios en las suscripciones directamente o crear un nuevo calendario de suscripciones. El ID del calendario se devuelve cuando se publica con la API o a través del evento de webhook subscription_schedule.released cuando se publica el calendario de suscripción.
- De ser posible, usa el Dashboard para modificar las suscripciones, lo que actualiza automáticamente cualquier calendario de suscripción adjunto.
Específicamente, cuando cambias cualquiera de los siguientes atributos de suscripción directamente en una suscripción, esta acción podría crear automáticamente una nueva fase de calendario de suscripciones:
discounts
tax_
rates items
trial_
,end trial_
,settings trial_
start application_
fee_ percent add_
invoice_ items automatic_
tax
Por ejemplo, considera una suscripción con dos ítems. La suscripción tiene un calendario de suscripciones adjunto con una sola fase, que refleja el estado actual de la suscripción. Si usas la API para eliminar uno de los ítems, esto divide automáticamente la fase del calendario de suscripciones adjunto en dos fases:
- La fase que acaba de terminar y tenía dos ítems de suscripción
- La nueva fase que tiene solo un elemento en la suscripción
Cuando las fases del cronograma de suscripción se dividen automáticamente, las siguientes propiedades se copian de la fase actual a la nueva fase:
proration_
behavior billing_
cycle_ anchor cancel_
at_ period_ end description
metadata
pause_
collection
Además, Stripe podría copiar los siguientes atributos de suscripción de nivel superior en el calendario de suscripciones o en sus default_
:
Atributo de suscripción | Se ha copiado a la nueva fase de calendario de suscripciones | Copiado en el calendario de suscripciones default_ |
---|---|---|
coupon | X | |
trial_ | X | |
tax_ | X | |
application_ | X | X |
discounts | X | |
collection_ | X | X |
invoice_ | X | X |
default_ | X | X |
default_ | X | X |
transfer_ | X | X |
on_ | X | X |
billing_ | X | X |
currency | X | |
add_ | X | |
automatic_ | X | X |
items. | X |
Las actualizaciones de metadata
de suscripción no se propagan a un calendario de suscripciones adjunto.