# Cambia el precio de las suscripciones existentes Aprende a cambiar de categoría de suscripción cambiando el precio. Esta guía se centra en el uso de la API Subscriptions para administrar las suscripciones de clientes. También puedes implementar el [portal de clientes](https://docs.stripe.com/customer-management.md) para proporcionar un Dashboard alojado por Stripe donde los clientes puedan administrar sus suscripciones y los datos de pago. Cuando un cliente cambia su suscripción, tú debes cambiar el ítem de suscripción para que refleje la nueva selección. Por ejemplo, un cliente puede cambiar a un nivel prémium o a un plan inferior de nivel básico, lo que te pedirá que reemplaces el precio subyacente de ese ítem de suscripción. Puedes hacerlo usando varios métodos diferentes. > #### Use the Accounts v2 API to represent customers > > If your integration uses [customer-configured Accounts](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer), replace `Customer` and event references in the code examples with the equivalent Accounts v2 API references. For more information, see [Represent customers with Account objects](https://docs.stripe.com/connect/use-accounts-as-customers.md). ## Recuperar los identificadores Independientemente del método que elijas, deberás proporcionar identificadores para los objetos que estás actualizando. Usa el método de [suscripciones de listas](https://docs.stripe.com/api/subscriptions/list.md) con un filtro pertinente (como la ID de cliente) para encontrar la suscripción y el ítem que se actualizará. ```curl curl -G https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} ``` Devuelve el conjunto de suscripciones para el cliente especificado, desde donde puedes recuperar el ID de suscripción (`id`), cualquier ID de ítem de suscripción (`items.data.id`) y el ID de precio de los ítems de suscripción (`items.data.price.id`). ```json { "object": "list", "url": "/v1/subscriptions", "has_more": false, "data": [ {"id": "su_1NXPiE2eZvKYlo2COk9fohqA", "object": "subscription", "application": null, "application_fee_percent": null, "automatic_tax": { "enabled": false },"items": { "object": "list", "data": [ { "id": "si_OK3pbS1dvdQYJP", "object": "subscription_item", "billing_thresholds": null, "created": 1690208774, "metadata": {},"price": { "id": "price_1NOhvg2eZvKYlo2CqkpQDVRT", "object": "price" } } ] } } ] } ``` ## Actualizar la suscripción [Actualiza una suscripción](https://docs.stripe.com/api.md#update_subscription) e incluye los siguientes parámetros: - `item ID`: debes especificar el ítem de suscripción para reemplazar el precio actual por el nuevo precio. De lo contrario, si actualizas la suscripción con un nuevo precio, se *agregará* un nuevo ítem de suscripción y ambos precios estarán activos en la suscripción. - `item price`: proporciona el identificador del precio de reemplazo. - `item quantity`: la actualización de un precio de suscripción revierte automáticamente la cantidad al valor predeterminado de `1`. Si la cantidad de suscripción vigente es distinta de `1` y deseas conservar ese valor, debes incluirla en la actualización. ```curl curl https://api.stripe.com/v1/subscriptions/sub_xxxxxxxxx \ -u "<>:" \ -d "items[0][id]={{SUB_ITEM_ID}}" \ -d "items[0][price]={{NEW_PRICE_ID}}" ``` > Debes especificar el ítem de suscripción para reemplazar el precio actual por el nuevo. De lo contrario, se *agregará* el nuevo precio, por lo que ambos precios estarán activos para la suscripción. Como alternativa, puedes eliminar el ítem de suscripción actual y crear un nuevo ítem de suscripción con el precio actualizado. ```curl curl https://api.stripe.com/v1/subscriptions/sub_xxxxxxxxx \ -u "<>:" \ -d "items[0][id]={{SUB_ITEM_ID}}" \ -d "items[0][deleted]=true" \ -d "items[1][price]={{NEW_PRICE_ID}}" ``` ## Actualizar el ítem de la suscripción [Actualiza un ítem de suscripción](https://docs.stripe.com/api/subscription_items/update.md) con los siguientes parámetros: - [precio](https://docs.stripe.com/api/subscription_items/update.md#update_subscription_item-price): Proporciona el identificador del precio de reemplazo. - [cantidad](https://docs.stripe.com/api/subscription_items/update.md#update_subscription_item-quantity): Actualizar el precio de una suscripción revierte automáticamente la cantidad al valor predeterminado de `1`. Si la cantidad de suscripción existente es diferente de `1` y deseas conservar ese valor, debes incluirlo en la actualización. Usa esta opción si no tienes que hacer ningún otro cambio a nivel de la suscripción. ```curl curl https://api.stripe.com/v1/subscription_items/si_xxxxxxxxx \ -u "<>:" \ -d price={{NEW_PRICE_ID}} ``` ## Períodos de facturación Si ambos precios tienen los mismos períodos de facturación (combinación de `interval` e `interval_count`), la suscripción conserva las mismas fechas de facturación. Si los precios tienen diferentes períodos de facturación, el nuevo precio se factura en el nuevo intervalo, a partir del día del cambio. Por ejemplo, cambiar a un cliente de una suscripción mensual a otra no cambia las fechas de facturación. Sin embargo, cambiar a un cliente de una suscripción mensual a una anual cambia la fecha de facturación a la fecha del cambio. Cambiar a un cliente de una suscripción mensual a otra mientras se introduce un período de prueba, también mueve la fecha de facturación (hasta la finalización de la prueba). ### Calendarios de suscripciones Si vas a cambiar una suscripción al final de su período de facturación, considera la posibilidad de usar un [calendario de suscripciones](https://docs.stripe.com/billing/subscriptions/subscription-schedules.md#changing-subscriptions) para gestionar la transición. Si usas calendarios de suscripciones, sigue las [prácticas recomendadas](https://docs.stripe.com/billing/subscriptions/subscription-schedules.md#subscription-schedule-sub-updates) para evitar sobrescribir de forma inesperada la suscripción. ## Cobro por consumo con medidores de cobro Los detalles sobre las actualizaciones de mitad de ciclo de los precios asociados a un medidor de cobro se describen en la sección de [modelos de precios](https://docs.stripe.com/billing/subscriptions/usage-based/manage-billing-setup.md#mid-cycle-updates). Especificar `clear_usage` cuando se actualiza un precio con un medidor de cobro no tiene ningún efecto. ## Cobro por consumo con registros de consumo (Legacy) Si tienes un precio por consumo medido respaldado por registros de consumo heredados y actualizas a un nuevo precio de registros de consumo, el consumo se transfiere al precio nuevo. ```curl curl https://api.stripe.com/v1/subscriptions/sub_xxxxxxxxx \ -u "<>:" \ -d "items[0][id]={{SUB_ITEM_ID}}" \ -d "items[0][price]={{NEW_PRICE_ID}}" \ -d "items[0][clear_usage]=true" ``` ## Prorrata Cambiar de suscripción suele implicar un [prorrateo](https://docs.stripe.com/billing/subscriptions/prorations.md) para aplicar el nuevo precio a los días restantes del período de cobro. Puedes anticiparle a tu cliente los gastos adicionales que pudieran resultar de un cambio de precio. Para ello, facilítale la [vista previa de un prorrateo](https://docs.stripe.com/billing/subscriptions/prorations.md#preview-proration). Como alternativa, puedes [deshabilitar los prorrateos](https://docs.stripe.com/billing/subscriptions/prorations.md#disable-prorations). ### Pago inmediato Stripe intenta inmediatamente el pago cuando se restablece la delimitación del ciclo de facturación de una suscripción. Aprende más sobre [cómo restablecer la delimitación del ciclo de facturación de una suscripción](https://docs.stripe.com/billing/subscriptions/billing-cycle.md#changing). Si la facturación se hace de inmediato, pero el pago requerido falla, la solicitud de cambio de suscripción se realizará correctamente y el estado de la suscripción será `past_due`. Para facturarle a un cliente de inmediato por un cambio en una suscripción en el mismo período de facturación, configura `proration_behavior` en `always_invoice`. De esta manera, se calcula el prorrateo y se genera de inmediato 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) después de hacer el cambio. Combina esta configuración con las [actualizaciones pendientes](https://docs.stripe.com/billing/subscriptions/pending-updates.md) para que la suscripción no se actualice, a menos que el pago se realice correctamente en la nueva factura. ### Prorrateos de crédito Se emiten prorrateos en forma de crédito cuando los clientes reducen sus suscripciones o cancelan items antes de que finalice su período de facturación. Stripe ofrece dos métodos para calcular estos prorrateos, según la configuración de [facturación_mode](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-billing_mode) de tu suscripción. Consulta [Prorrateos de crédito](https://docs.stripe.com/billing/subscriptions/prorations.md#credit-prorations) para obtener más información. ### Gestionar precios y cantidades de importe cero Si realizaste la suscripción de un cliente a un precio de importe cero (por ejemplo, como prueba), cambiar el precio a un importe distinto de cero genera una factura y restablece el [período de facturación](https://docs.stripe.com/billing/subscriptions/change-price.md#billing-periods) a la fecha del cambio. Si realizaste la suscripción de un cliente a un precio con un importe distinto de cero y una cantidad de cero, cambiar la cantidad a un número distinto de cero no genera una factura ni restablece el período de facturación. ## See also - [Período de facturación (ciclo)](https://docs.stripe.com/billing/subscriptions/billing-cycle.md) - [Cómo cancelar y suspender suscripciones](https://docs.stripe.com/billing/subscriptions/cancel.md) - [Actualiza la API Subscription](https://docs.stripe.com/api.md#update_subscription)