# Suscripciones con fechas pasadas Cómo antedatar las suscripciones. Puedes poner un fecha anterior a una suscripción para cobrar a los clientes por un período ya transcurrido. Esto suele utilizarse durante la migración a Stripe o para fines contables. El campo `backdate_start_date` especifica la fecha a la que se antedata la suscripción. También tienes la opción de cobrar a los clientes por el período transcurrido y establecer la siguiente fecha de cobro. ## Consideraciones sobre el modo de facturación A partir de la [versión de API 2025-04-30](https://docs.stripe.com/changelog/basil.md#2025-04-30.preview), el comportamiento de la configuración de una fecha anterior depende del [billing_mode](https://docs.stripe.com/api/subscription_schedules/create.md#create_subscription_schedule-billing_mode) de tu suscripción: ### Before Usa `billing_mode=classic` para crear una única partida de factura prorrateada para el período antedatado. ### After Utiliza `billing_mode=flexible` para generar una partida por cada período de facturación natural que se produzca durante el período con fecha anterior, que se comporta de manera similar a una facturación normal. > No se puede antedatar cuando una factura tiene más de 250 partidas, que es el límite predeterminado. ## Cómo antedatar y cobrar a los usuarios A veces, los usuarios pueden tener acceso a tu servicio antes de que se cree la suscripción y quieres cobrarles por ese acceso. #### Dashboard Para cobrarles a los usuarios por este período a través del Dashboard: 1. Ve a la página de **Pagos** > **Suscripciones**. 1. Haz click en **+Crear suscripción**. 1. Busca o agrega un cliente. 1. Ingresa el precio y la información del producto. 1. En la sección **Datos de la suscripción**, selecciona las fechas de inicio y finalización de la suscripción. Para antedatarla, selecciona una fecha de inicio pasada. 1. Selecciona la fecha en la que quieres que comience el período de facturación. 1. (Opcional) Configura las opciones **Pago** o **Adelanto**. 1. Haz clic en **Crear suscripción**. La suscripción comienza en la fecha que seleccionaste. #### API Para cobrar por el tiempo antedatado utilizando la API, crea una suscripción antedatada especificando `customer`, `price` y `backdate_start_date`. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d backdate_start_date=1575176400 \ -d "items[0][price]={{PRICE_ID}}" ``` Esto crea una *factura* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice) con cargos por el tiempo transcurrido entre la fecha de inicio antedatada y la fecha de hoy. Si una suscripción tiene `billing_mode=classic`, Stripe crea un único importe prorrateado para el período con fecha anterior sobre la base de un intervalo imaginario a partir de la fecha de inicio anterior. Por ejemplo, si tienes un período de facturación mensual que comienza el primero del mes y estableces `backdate_start_date` en el 15 de febrero (en un año no bisiesto), Stripe calcula el prorrateo sobre la base de un mes imaginario que abarca del 15 de febrero al 15 de marzo. Debido a que febrero tiene 28 días, el importe prorrateado de los 14 días comprendidos entre el 15 de febrero y el 1 de marzo es exactamente la mitad del importe de un cargo mensual normal. Del mismo modo, si estableces la `backdate_start_date` en 15 de enero, Stripe basa el cálculo del prorrateo en un mes imaginario que va del 15 de enero al 15 de febrero. Ese mes imaginario tiene 31 días, por lo que el importe prorrateado para los 17 días que van del 15 de enero al 1 de febrero es de 17 dividido 31 (aproximadamente 0.548) de un cargo mensual normal. También puedes ver el cálculo considerando la fecha de inicio antedatada como la fecha de inicio original. El comienzo del primer período de facturación completo se convierte en la fecha de inicio actualizada. Si una suscripción tiene `billing_mode=flexible`, Stripe genera partidas separadas para cada período de facturación natural que se produjo durante el período con fecha anterior. Esto significa que cada ciclo se trata como si Stripe lo facturara con normalidad durante ese período. ## Cómo antedatar sin cobrar a los usuarios También puedes poner una fecha anterior a una suscripción sin cobrarle al cliente por el período antedatado, que puedes usar si estás migrando a Stripe. Para hacerlo, especifica `proration_behavior:' none '` al crear la suscripción. Eso establece la `start_date` en el mismo valor que `backdate_start_date`, pero no le cobra al cliente el tiempo antedatado. ## Cómo antedatar y definir la delimitación del ciclo de facturación Puedes combinar `backdate_start_date` con `billing_cycle_anchor` para antedatar una suscripción y establecer el anclaje del ciclo de cobro en una fecha futura. Esto crea un elemento prorrateado en la siguiente factura por el tiempo transcurrido entre la fecha de inicio antedatada y el anclaje del ciclo de cobro. Puedes usar esto si estás migrando a Stripe y necesitas transferir la próxima fecha de cobro de tus suscripciones mientras cobras a los clientes por el tiempo transcurrido. Digamos que es 15 de octubre y estás migrando a Stripe. Tienes una suscripción que se inició el 1 de septiembre y la próxima fecha de cobro es el 1 de noviembre. Para migrar esa suscripción, crea una nueva suscripción y define 1 de septiembre como `backdate_start_date` y 1 de noviembre como `billing_cycle_anchor`. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d backdate_start_date=1575176400 \ -d billing_cycle_anchor=1572580800 \ -d "items[0][price]={{PRICE_ID}}" ``` En este ejemplo, se emite de inmediato una factura con un importe prorrateado por el tiempo transcurrido entre el 1 de septiembre y el 1 de noviembre. También se establece el 1 de septiembre como `start_date` de la suscripción. Stripe emite la próxima factura el 1 de noviembre. ## Anticipación de fecha y descuentos Cuando aplicas un [cupón](https://docs.stripe.com/billing/subscriptions/coupons.md) a una suscripción con fecha anterior, la duración del cupón comienza a contar desde la fecha de inicio anterior, no desde la fecha en que realizas la llamada API. Esto significa que la duración del cupón se consume durante el período con fecha anterior. Por ejemplo, si creas una suscripción el 1 de marzo con el valor de `backdate_start_date` establecido en el 1 de enero y aplicas un cupón con `duration=repeating` y `duration_in_months=2`, el cupón se aplica a los períodos de facturación de enero y febrero (los 2 meses que comienzan a partir del 1 de enero). Dado que la duración de 2 meses del cupón se consumió por completo en el período anterior, no se aplica a la factura de marzo ni a ninguna factura futura, y el descuento se elimina de la partida de suscripción. Si quieres que el cupón se aplique a las facturas actuales y futuras después del período con fecha anterior, la duración del cupón debe ser mayor que la de dicho período. Si usamos el mismo ejemplo, un cupón con `duration_in_months=3` cubriría enero, febrero y marzo, y el descuento se aplicaría a la primera factura después del período con fecha anterior. > Si la duración de un cupón es inferior o igual a la del período con fecha anterior, el descuento solo se aplica a las facturas incluidas en dicho período. No se transferirá a ninguna factura nueva después de la fecha anterior. En la siguiente tabla, se resume cómo interactúa la duración del cupón con la anticipación de fecha: | | | | | Duración del cupón | Comportamiento con anticipación de fecha | | `una vez` | Se aplica solo a la primera factura, que cubre el período con fecha anterior. | | `repetir` (N meses) | La duración comienza a partir de la fecha de inicio anterior. Si N es menor o igual que el período con fecha anterior, el descuento vence antes de que se creen facturas futuras. | | `siempre` | Se aplica a todas las facturas, incluidas las del período anterior y todas las futuras. No hay consideraciones especiales. | ## Cómo antedatar una actualización Para establecer la fecha de entrada en vigor de los [prorrateos](https://docs.stripe.com/billing/subscriptions/prorations.md) al actualizar una suscripción, usa el parámetro [proration_date](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-proration_date). Especifica una marca de tiempo Unix entera que se produzca dentro del período actual de los elementos de la suscripción. Si la suscripción usa un calendario de suscripciones, asegúrate de que la marca de tiempo sea anterior a la fecha de inicio de la siguiente fase del calendario. Puedes establecer la `proration_date` antes del período actual solo durante el primer período de una suscripción antedatada. En este caso, la `proration_date` debe ser la misma o posterior a la `subscription[start_date]` (fecha de inicio anterior). En todos los demás casos, `proration_date` no puede ser anterior a `current_period_start`.