Prorrateos
Administra los prorrateos para suscripciones modificadas.
El aspecto más complejo a la hora de modificar suscripciones existentes son los prorrateos, mediante los que se le cobra al cliente un porcentaje del costo de la suscripción para reflejar un uso parcial. En esta página se explica cómo funcionan los prorrateos con las suscripciones y cómo administrarlos para tus clientes.
Cómo funcionan los prorrateos
Por ejemplo, actualizar o degradar una suscripción puede generar cargos prorrateados. Si un cliente pasa de un plan mensual de USD 10 a una opción de USD 20, se le cobrarán importes prorrateados por el tiempo que utilizó cada opción. Si el cambio se produjera a mitad del período de facturación, al cliente se le cobraría USD 5 adicionales: -USD 5 por el tiempo no utilizado conforme al precio inicial y USD 10 por el tiempo restante conforme al nuevo precio.
El prorrateo garantiza que al cliente se le cobre el importe correcto, pero puede traer aparejados importes de pago diferentes de los previstos. Los prorrateos negativos no se le reembolsan al cliente automáticamente ni los positivos se le cobran de inmediato, aunque ambas acciones pueden realizarse en forma manual.
Puedes previsualizar el prorrateo para ver el importe antes de aplicar los cambios. Para obtener más información sobre cómo funcionan los prorrateos de crédito, lee nuestra guía.
Prorrateos y descuentos
Todas las partidas de factura prorrateadas (prorations = true
) se establecen en discountable = false
. Los descuentos aplicados a una factura con prorrateos solo se aplican a las partidas de factura y las partidas factura no prorrateadas. Todos los descuentos aplicados anteriormente a la suscripción y que afecten al importe del prorrateo se reflejan en el importe de la partida de factura por prorrateo.
Los no prorrateos muestran ajustes de descuento en discount_amounts.
Qué desencadena los prorrateos
De forma predeterminada, los siguientes casos dan como resultado un prorrateo:
- El cambio a un precio con un costo base diferente.
- El cambio a un precio con un intervalo de cobro diferente.
- La incorporación de un período de prueba a una suscripción activa
- El cambio de la cantidad.
- Suscripciones bajo licencia (por usuario) (porque se les cobra al inicio de cada período de cobro)
Crear manualmente tus propios prorrateos
Para calcular tus propios prorrateos fuera de Stripe y agregarlos a la suscripción, especifica add_invoice_items con un unit_
negativo (igual al importe del prorrateo calculado) en estos puntos de conexión:
- Crea una suscripción
- Actualiza una suscripción
- Crea un calendario de suscripciones
- Actualiza los calendarios de suscripciones
Cuándo se aplican los prorrateos
Los prorrateos solo se aplican a los cargos que ocurren antes del ciclo de cobro. El modelo de cobro por consumo no está sujeto al prorrateo.
El importe prorrateado se calcula en cuanto la API actualiza la suscripción. El momento de inicio y finalización del período de facturación en curso se utilizan para calcular el costo de la suscripción antes y después del cambio.
Prorrateos y facturas impagas
Stripe calcula los prorrateos según el estado de la suscripción en el momento de la actualización, asumiendo que las facturas anteriores de la suscripción se pagarán eventualmente. Si un cliente cambia su suscripción y tiene una factura impaga para el período actual, es posible que reciba un crédito por el tiempo no utilizado en el plan de mayor precio, incluso si aún no pagó ese tiempo.
Para evitar el crédito por el tiempo impago, puedes deshabilitar los prorrateos cuando la última factura de la suscripción esté impaga. Al actualizar la suscripción, establece proration_behavior en none
. Selecciona uno de los siguientes enfoques:
- Para mantener el ciclo de facturación original: Crea manualmente una factura puntual para los cargos nuevos.
- Para aceptar pagos de inmediato por el nuevo plan y reiniciar el ciclo de facturación: configura
billing_
acycle_ anchor now
. Para obtener más información, consulta Restablecer el ciclo de facturación a la hora actual.
Cualquiera de estos enfoques puede generar un doble pago si el cliente termina pagando la factura anterior. Para evitarlo, anula la factura no pagada.
Impuestos y prorrateos
Para obtener más información sobre cómo funcionan los impuestos con los prorrateos, consulta la sección Cobra impuestos sobre pagos recurrentes.
Prorrateos de crédito
Credit prorations are issued when customers downgrade their subscriptions or cancel subscription items before the end of their billing period. Stripe offers two approaches for calculating credit prorations, depending on whether you set your subscription’s billing_mode to classic
or flexible
.
Lógica de cálculo sin prorrateos
In the following scenario, you upgrade a 10 USD monthly subscription to 20 USD with the proration_
set to none
for 10 days. There’s no previous debit to base it on. Later, you downgrade the subscription to 10 USD per month with the proration_
set to always_
.
Para configurar este escenario, primero se crea una suscripción de 10 USD por mes el 1 de abril:
La respuesta incluye la factura creada para esta suscripción:
{ id: "sub_123", latest_invoice: { id: "in_123", total: 10_00, currency: "usd" } }
A continuación, el 11 de abril, actualiza la suscripción a 20 USD por mes sin crear prorrateos:
La última factura no se modifica porque proration_
es none
:
{ id: "sub_123", latest_invoice: { id: "in_123" } }
Finalmente, el 21 de abril, reduces el nivel de la suscripción a 10 USD por mes y creas prorrateos:
Clásica | Flexible |
---|---|
The billing_ proration calculation logic creates a credit proration based on the current price, even though the customer never paid the 20 USD monthly rate. The latest invoice credits a third of the month for 20 USD (-6.67 USD), even though the customer never paid for the price_ price. It also debits a third of the month for 10 USD (3.33 USD). | The calculation logic enabled with billing_ creates a credit proration based on the last price billed for the subscription item. In this case, the latest invoice credits a third of a month for the 10 USD monthly price billed on April 1 (3.33 USD) and debits a third of the month for the 10 USD price (3.33 USD). The credit and debit cancel out so the invoice total is 0 USD. |
|
|
Lógica de cálculo para cupones aplicados a varios ítems de suscripción
Stripe pondera el cupón amount_
en el prorrateo del crédito para evitar la sobrefacturación.
En el siguiente escenario, un cupón de 5 USD se asigna de manera desigual a una suscripción mensual de 25 USD para un ítem de 10 USD y un ítem de 20 USD.
Para configurar este escenario, crea una suscripción con varios items y un cupón el 1 de febrero:
Lo que devuelve esta respuesta:
{ id: "sub_123", latest_invoice: { id: "in_123", total: 25_00, currency: "usd", lines: { data: [ { id: "ili_1", amount: 10_00, price: "price_10_monthly", discount_amounts: [{ discount: "di_a", amount: 1_66 }] }, { id: "ili_2", amount: 20_00, price: "price_20_monthly", discount_amounts: [{ discount: "di_a", amount: 3_34 }] }, ] } } }
To cancel the 10 USD monthly subscription item using billing_
:
Para cancelar el mismo ítem usando billing_
:
Clásica | Flexible |
---|---|
El comportamiento predeterminado distribuye un cupón de 5 USD entre cada item (2.5 USD por item). Al cancelar el item más económico (5 USD), se genera un reembolso de 2.5 USD. Stripe calcula el total con la fórmula -0. . | The flexible behavior reflects the proportional discount applied to the canceled item, rather than potentially applying the full discount amount to the proration calculation. Stripe calculates the total using the formula -0. . |
|
|
Previsualizar un prorrateo
Puedes crear una vista previa de la factura para previsualizar los cambios en una suscripción. Esta llamada API no modifica la suscripción. En cambio, devuelve la próxima factura en función de los parámetros especificados. Cambiar el price
o la quantity
genera un prorrateo. En este ejemplo, se cambia el price
y se establece una fecha para el prorrateo.
Puedes expandir la siguiente respuesta de ejemplo para ver:
- El crédito por el tiempo no utilizado conforme al precio anterior en las líneas 36-38.
- El costo por el tiempo de uso conforme al nuevo precio en las líneas 107-109.
- El nuevo subtotal y el total de la factura en las líneas 276-279.
{ "id": "upcoming_in_1OujwkClCIKljWvsq5v2ICAN", "account_country": "US", "account_name": "Test account", "amount_due": 3627, "amount_paid": 0, "amount_remaining": 3627, "application_fee_amount": null, "attempt_count": 0, "attempted": false,
Usa esta información para confirmar los cambios con el cliente antes de modificar la suscripción. Debido a que Stripe prorratea hasta los segundos, los importes prorrateados pueden cambiar entre el momento en que se previsualizan y el momento en que se realiza la actualización. Para evitarlo, especifica un subscription_
en la factura al previsualizar el cambio. Cuando actualices la suscripción, puedes especificar la misma fecha con el parámetro proration_
en la suscripción para que el prorrateo se calcule al mismo tiempo.
Controla el comportamiento de prorrateo
El prorrateo se controla mediante el parámetro proration_behavior, que tiene tres opciones de parámetros posibles: create_
, always_
, y none
.
Comportamiento predeterminado
El parámetro predeterminado para proration_
es create_
, que crea partidas de factura de prorrateo cuando corresponda. Estas partidas de prorrateo solo se facturan de inmediato cuando se dan ciertas condiciones.
Crear prorrateos inmediatos
Para cobrar de inmediato a un cliente por un cambio en una suscripción en el mismo ciclo de cobro, establece proration_
en always_
cuando modifiques la suscripción. De este modo, se calcula el prorrateo y, luego, se genera inmediatamente una factura.
Deshabilitar prorrateos
Para deshabilitar los prorrateos por solicitud, establece el parámetro proration_
en none
. Ningún parámetro desactiva todos los prorrateos futuros de una suscripción. Para deshabilitar los prorrateos de manera indefinida, establece proration_
en none
para cada solicitud que genere prorrateos:
Si se han deshabilitado los prorrateos, al generarse la siguiente factura, se les facturará a los cliente el importe total conforme al nuevo precio.