# Suscripciones con fechas pasadas

Cómo antedatar las suscripciones.

Antedatar una suscripción te permite establecer la fecha de inicio en el pasado. Esto puede ser útil cuando se migra a Stripe o se llevan registros. Usa `backdate_start_date` para establecer la fecha de inicio en el pasado. Puedes elegir si facturar al cliente por el tiempo transcurrido. También puedes establecer la próxima fecha de facturación.

## Before you begin

- A partir de la [versión 2025-04-30 de la API](https://docs.stripe.com/changelog/basil.md#2025-04-30.preview), el funcionamiento de la anticipación depende del [billing_mode](https://docs.stripe.com/api/subscription_schedules/create.md#create_subscription_schedule-billing_mode) de la suscripción:
  - Usa `billing_mode=classic` para crear una única partida de factura prorrateada para el período antedatado.
  - 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 crees la suscripción. Puedes cobrarles por ese acceso.

#### Dashboard

Para cobrar por el tiempo anticipado mediante el Dashboard, realiza lo siguiente:

1. Ve a la página de **Pagos** > [Suscripciones](https://dashboard.stripe.com/subscriptions).
2. Haz click en **+Crear suscripción**.
3. Busca o agrega un cliente.
4. Ingresa el precio y la información del producto.
5. 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.
6. Selecciona la fecha en la que quieres que comience el período de facturación.
7. (Opcional) Configura las opciones **Pago** o **Adelanto**.
8. Haz clic en **Crear suscripción**. La suscripción comienza en la fecha que seleccionaste.

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) por el tiempo transcurrido entre la fecha de inicio retroactiva y la fecha actual.

### Cómo calcula Stripe los cargos retroactivos

Con `billing_mode=flexible`, Stripe crea una partida diferente para cada período de facturación natural en el período retroactivo, como si Stripe hubiera facturado cada ciclo normalmente.

Con `billing_mode=classic`, Stripe crea un único monto prorrateado. Para calcularlo, Stripe utiliza un intervalo de facturación hipotético que comienza el `backdate_start_date`. Por ejemplo, para una suscripción mensual que se factura el primer día de cada mes:

- **Con fecha retroactiva al 15 de febrero (año no bisiesto):** el mes hipotético va del 15 de febrero al 15 de marzo (28 días). El cargo del 15 de febrero al 1 de marzo cubre 14 de esos 28 días, la mitad del cargo mensual normal.
- **Con fecha retroactiva al 15 de enero:** el mes hipotético va del 15 de enero al 15 de febrero (31&nbsp;días). El cargo del 15 de enero al 1 de febrero cubre 17 de esos 31 días, aproximadamente el 54.8&nbsp;% del cargo mensual normal.

Considera la fecha retroactiva como la fecha de inicio original. La fecha de inicio actualizada es cuando comienza el primer período de facturación completo.

#### 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 "<<YOUR_SECRET_KEY>>:" \
  -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) por el tiempo transcurrido entre la fecha de inicio retroactiva y la fecha actual.

### Cómo calcula Stripe los cargos retroactivos

Con `billing_mode=flexible`, Stripe crea una partida diferente para cada período de facturación natural en el período retroactivo, como si Stripe hubiera facturado cada ciclo normalmente.

Con `billing_mode=classic`, Stripe crea un único monto prorrateado. Para calcularlo, Stripe utiliza un intervalo de facturación hipotético que comienza el `backdate_start_date`. Por ejemplo, para una suscripción mensual que se factura el primer día de cada mes:

- **Con fecha retroactiva al 15 de febrero (año no bisiesto):** el mes hipotético va del 15 de febrero al 15 de marzo (28 días). El cargo del 15 de febrero al 1 de marzo cubre 14 de esos 28 días, la mitad del cargo mensual normal.
- **Con fecha retroactiva al 15 de enero:** el mes hipotético va del 15 de enero al 15 de febrero (31&nbsp;días). El cargo del 15 de enero al 1 de febrero cubre 17 de esos 31 días, aproximadamente el 54.8&nbsp;% del cargo mensual normal.

Considera la fecha retroactiva como la fecha de inicio original. La fecha de inicio actualizada es cuando comienza el primer período de facturación completo.

#### Checkout

## Checkout

> La creación de suscripciones retroactivas con [Checkout](https://docs.stripe.com/payments/checkout.md) se encuentra en [versión preliminar privada](https://docs.stripe.com/release-phases.md).

### Cómo aplicar retroactividad a las suscripciones en Checkout

Enter your email to request access.

```bash
curl https://docs.stripe.com/preview/register \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Referer: https://docs.stripe.com/billing/subscriptions/backdating" \
  -d '{"email": "EMAIL", "preview": "checkout_beta_preview"}'
```

### Antes de comenzar

- Usa la [versión de la API](https://docs.stripe.com/api/versioning.md) `2026-09-30.preview`
- Usa el parámetro [items](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-items), en lugar de `mode` y `line_items`.
- La retroactividad de Checkout no admite el [modo de facturación clásico](https://docs.stripe.com/billing/subscriptions/billing-mode/compare.md). Si se omite `billing_mode`, el valor predeterminado es `flexible`.
- Esta versión preliminar no admite [pruebas sin cargo](https://docs.stripe.com/payments/checkout/free-trials.md).

### Cómo crear una suscripción retroactiva con Checkout

Para cobrar el tiempo retroactivo mediante [Checkout](https://docs.stripe.com/payments/subscriptions.md), crea un objeto Checkout&nbsp;Session con `items[].subscription` y especifica `customer`, `price` y `backdate_start_date`. Para obtener más información, consulta la [referencia de la API de partidas de suscripción](https://docs.stripe.com/api/checkout/sessions/create.md?api-version=2026-09-30.preview#create_checkout_session-items-subscription).

Reemplaza la `backdate_start_date` de ejemplo por una marca de tiempo Unix en el pasado, como máximo un período de facturación anterior a la fecha actual.

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-09-30.preview" \
  --data-urlencode "success_url=https://example.com/checkout/success?session_id={CHECKOUT_SESSION_ID}" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][type]=subscription" \
  -d "items[0][subscription][backdate_start_date]=1575176400" \
  -d "items[0][subscription][billing_mode][type]=flexible" \
  -d "items[0][subscription][items][0][price]={{PRICE_ID}}"
```

La respuesta contiene `session.url`. Stripe completa la referencia de la suscripción creada después de que el cliente complete el proceso de compra.

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 correspondientes al tiempo transcurrido entre la fecha de inicio retroactiva y la fecha actual. Stripe generará partidas independientes para cada período de facturación natural que tuvo lugar durante el período retroactivo. Esto significa que cada ciclo se trata como si Stripe lo hubiera facturado normalmente durante ese tiempo.

## Cómo antedatar sin cobrar a los usuarios

Puedes antedatar una suscripción sin cobrarle al cliente por el período antedatado (por ejemplo, si estás migrando a Stripe). Pasa `proration_behavior: 'none'` cuando crees la suscripción. Esto establece `start_date` en el mismo valor que `backdate_start_date` sin crear un cargo por ese tiempo.

> Si usas `proration_behavior: 'none'` con `billing_mode=flexible`, no se genera ninguna factura para los periodos de facturación retroactivos. Como el modo de facturación flexible calcula los prorrateos de crédito sobre la base de los importes debitados previamente, el hecho de no tener débitos para los periodos retroactivos significa que las posteriores actualizaciones o cancelaciones de la suscripción no generan prorrateos de crédito para ese tiempo. Esto difiere del modo de facturación clásico, que calcula los prorrateos de crédito de forma independiente a los débitos anteriores. Para obtener más información, consulta [Comparar los modos de facturación clásico y flexible](https://docs.stripe.com/billing/subscriptions/billing-mode/compare.md#subsequent-proration-behavior-after-backdating-without-an-initial-charge).

## Cómo antedatar y definir la delimitación del ciclo de facturación

Para antedatar una suscripción y establecer el anclaje del ciclo de facturación en una fecha futura, combina `backdate_start_date` con `billing_cycle_anchor`. Esto crea una partida prorrateada en la próxima factura por el tiempo transcurrido entre la fecha de inicio antedatada y el anclaje del ciclo de facturación. Cuando migras suscripciones a Stripe, puedes transferir sus próximas fechas de facturación desde tu sistema anterior y, al mismo tiempo, cobrarles a los clientes por el tiempo transcurrido.

Por ejemplo, vas a migrar el 15 de octubre. Una suscripción comenzó el 1 de septiembre y la próxima fecha de facturación es el 1 de noviembre. Para migrar la suscripción, crea una suscripción nueva con las siguientes características:

- `backdate_start_date` establecida en el 1 de septiembre.
- `billing_cycle_anchor` establecido en el 1 de noviembre.

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -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&nbsp;de marzo con el valor de `backdate_start_date` establecido en el 1&nbsp;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&nbsp;meses que comienzan a partir del 1&nbsp;de enero). Dado que la duración de 2&nbsp;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&nbsp;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`.

## See also

- [Calendarios de suscripciones](https://docs.stripe.com/billing/subscriptions/subscription-schedules.md)
- [Migrar suscripciones a Stripe](https://docs.stripe.com/billing/subscriptions/migrate-subscriptions.md)
