Crear una integración de suscripciones
Crear y administrar las suscripciones para aceptar pagos recurrentes.

Personalizar el logotipo, las imágenes y los colores.
Usa formularios prediseñados alojados para hacer cobros y administrar suscripciones.
Clona un modelo de integración desde GitHub.
Para obtener una versión más completa de esta guía, consulta la sección de inicio rápido para integraciones de Billing.
Explora el ejemplo en GitHub o la demostración.
Lo que podrás hacer
En esta guía, se describe cómo vender suscripciones mensuales de precio fijo usando Stripe Checkout.
En esta guía, se explica cómo hacer lo siguiente:
- Modelar tu empresa creando un catálogo de productos
- Agregar una sesión de Checkout a tu sitio, incluidos un botón y las páginas de confirmación y cancelación
- Supervisar los eventos de suscripción y brindar acceso a tu servicio
- Configura el portal de clientes
- Agregar una sesión del portal de clientes a tu sitio, incluidos un botón y el redireccionamiento
- Permitir que tus clientes administren sus suscripciones a través del portal
- Aprenda a usar el modo facturación flexible para acceder a un comportamiento de facturación mejorado y funcionalidades adicionales.
Después de completar la integración, puedes ampliarla a lo siguiente:
- Muestra impuestos
- Aplica descuentos
- Ofrece a los clientes un período de prueba gratuito
- Agregar más métodos de pago
- Integra la página de facturas alojadas
- Usa Checkout en modo de configuración
- Configura el modelo de cobro por consumo, los niveles de tarifas y las tarifas según el consumo
- Administra prorrateos
- Permite que los clientes se suscriban a varios productos
- Integra derechos para gestionar el acceso a las funcionalidades de tu producto
Configurar Stripe
Instala el cliente de Stripe que prefieras:
Instala la CLI de Stripe (opcional). La CLI te permite hacer pruebas de webhooks y puedes ejecutarla para crear productos y precios.
Para obtener más opciones de instalación, consulta Empezar a usar la CLI de Stripe.
Crear el modelo de tarifasDashboard o CLI de Stripe
Crea los productos con sus precios en el Dashboard o con la CLI de Stripe.
Este ejemplo utiliza un servicio de precio fijo con dos niveles de servicio diferentes: básico y prémium. Para cada opción de nivel de servicio, debes crear un producto y un precio recurrente. (Si quieres agregar un cargo puntual, como el costo de instalación, crea un tercer producto con un precio puntual. Para simplificar, este ejemplo no incluye un cargo puntual).
En este ejemplo, cada producto se factura mensualmente. El precio del producto básico es del 5 USD. El precio del producto prémium es del 15 USD.
Si ofreces múltiples intervalos de facturación, usa Checkout para aumentar las ventas destinadas a los clientes con intervalos de facturación más prolongados y obtener más ingresos por adelantado.
Para ver otros modelos de tarifas, consulta los ejemplos de Billing.
Crear una sesión de CheckoutCliente y servidor
Agrega un botón de finalización de compra en tu sitio web que llame a un punto de conexión del lado del servidor para crear una sesión de Checkout.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <!-- Note: If using PHP set the action to /create-checkout-session.php --> <input type="hidden" name="priceId" value="price_G0FvDp6vZvdwRZ" /> <button type="submit">Checkout</button> </form> </body> </html>
En el back-end de tu aplicación, define un punto de conexión que cree la sesión para que el front-end haga la llamada. Necesitas estos valores:
- El ID de precio de la suscripción por la que el cliente ha creado la cuenta (tu front-end especifica este valor).
- Tu
success_
, una página en tu sitio web a la que Checkout redirige al cliente después de que efectúa el pago.url
Como opción, puedes proporcionar cancel_
, una página en tu sitio web a la que Checkout redirige al cliente si cancela el proceso de pago. En esta llamada, también puedes configurar una delimitación del ciclo de cobros para tu suscripción.
Si creaste un precio único en el paso 2, especifica también el ID de ese precio. Después de crear una Checkout Session, debes redirigir a tu cliente a la URL que se devuelve en la respuesta.
Puedes habilitar un comportamiento de suscripción más preciso y predecible cuando creas una sesión de proceso de compra al configurar billing_
como flexible
. Debes usar la versión Stripe API 2025-06-30.basil o posterior.
Nota
Puedes usar lookup_keys para obtener los precios en lugar de los ID de los precios. Consulta la aplicación de ejemplo para ver un ejemplo.
En este ejemplo, success_
se personaliza agregando el ID de sesión. Para obtener más información sobre este enfoque, consulta la sección Personaliza la página de confirmación de la documentación.
Desde el Dashboard, habilita los métodos de pago de tus clientes que quieras aceptar. Checkout admite varios métodos de pago.
Dar acceso a las suscripciones y monitorearlasServidor
Después de crear una cuenta para la suscripción, el cliente regresa a tu sitio web en el success_
, que inicia un webhook checkout.
. Cuando recibes un evento checkout.
, puedes dar acceso a la suscripción. Sigue prestando el servicio todos los meses (si el cobro es mensual) mientras recibas eventos invoice.
. Si recibes un evento invoice.
, deberás avisarle al cliente y remitirlo al portal de clientes para que actualice su método de pago.
Para determinar el siguiente paso para la lógica de tu sistema, comprueba el tipo de evento y analiza la carga de cada objeto de evento, como invoice.
. Almacena los objetos de evento subscription.
y customer.
en tu base de datos para su verificación.
For testing purposes, you can monitor events in the Events tab of Workbench. For production, set up a webhook endpoint and subscribe to appropriate event types. If you don’t know your STRIPE_
key, navigate to the destination details view of the Webhooks tab in Workbench to view it.
Como mínimo, debes monitorear estos tipos de eventos:
Nombre del evento | Descripción |
---|---|
checkout. | Se envía cuando un cliente completa correctamente la sesión de Checkout, notificándote una nueva compra. |
invoice. | Se envía en cada intervalo de facturación cuando un pago se efectúa correctamente. |
invoice. | Se envía en cada intervalo de facturación si hay un problema con el método de pago del cliente. |
Para ver más eventos que se pueden monitorear, consulta la sección Webhooks de suscripciones.
Configurar el portal de clientesDashboard
El portal de clientes permite que tus clientes administren directamente sus suscripciones y facturas actuales.
Usa el Dashboard para configurar el portal. Como mínimo, asegúrate de configurarlo de modo tal que los clientes puedan actualizar sus métodos de pago. Consulta Cómo integrar el portal de clientes para obtener más información sobre otros parámetros de configuración.
Crear una sesión del portalServidor
Define an endpoint that creates the customer portal session for your frontend to call. Here CUSTOMER_
refers to the customer ID created by a Checkout Session that you saved while processing the checkout.
event. You can also set a default redirect link for the portal in the Dashboard.
Especifica un valor return_
opcional para la página en tu sitio web a la que se redireccionará al cliente una vez que termine de gestionar la suscripción:
Dirigir a los clientes al portalCliente
En el front-end, agrega un botón a la página de la dirección success_
que proporcione un enlace al portal de clientes:
<html> <head> <title>Manage Billing</title> </head> <body> <form action="/customer-portal" method="POST"> <!-- Note: If using PHP set the action to /customer-portal.php --> <button type="submit">Manage Billing</button> </form> </body> </html>
Después de salir del portal de clientes, el cliente regresa a tu sitio web a la dirección return_
. Sigue monitoreando los eventos para hacer un seguimiento del estado de la suscripción del cliente.
Si configuras el portal de clientes para permitir acciones como cancelar una suscripción, consulta Cómo integrar el portal de clientes para ver qué otros eventos puedes monitorear.
Probar tu integración
Prueba métodos de pago
Usa la siguiente tabla para probar diferentes métodos y escenarios de pago.
Método de pago | Escenario | Cómo hacer la prueba |
---|---|---|
Débito directo BECS | Tu cliente paga correctamente con débito directo BECS. | Completa el formulario con el número de cuenta 900123456 y BSB 000-000 . El PaymentIntent confirmado pasa inicialmente al estado processing y, tres minutos más tarde, a succeeded . |
Débito directo BECS | El pago de tu cliente falla con un código de error account_ . | Completa el formulario con el número de cuenta 111111113 y BSB 000-000 . |
Tarjeta de crédito | El pago con tarjeta se efectúa correctamente y no requiere autenticación. | Completa el formulario de tarjeta de crédito con el número de tarjeta 4242 4242 4242 4242 y cualquier fecha de vencimiento, CVC y código postal. |
Tarjeta de crédito | El pago con tarjeta requiere autenticación. | Completa el formulario de tarjeta de crédito con el número de tarjeta 4000 0025 0000 3155 y cualquier fecha de vencimiento, CVC y código postal. |
Tarjeta de crédito | La tarjeta es rechazada con el código insufficient_ . | Completa el formulario de tarjeta de crédito con el número de tarjeta 4000 0000 0000 9995 y cualquier fecha de vencimiento, CVC y código postal. |
Débito directo SEPA | Tu cliente paga correctamente con débito directo SEPA. | Completa el formulario con el número de cuenta AT321904300235473204 . El PaymentIntent confirmado pasa inicialmente al estado “en proceso” y, tres minutos más tarde, a “completado”. |
Débito directo SEPA | El estado de PaymentIntent de tu cliente pasa de processing a requires_ . | Completa el formulario con el número de cuenta AT861904300235473202 . |
Eventos de monitoreo
Configura webhooks para recibir notificaciones de los eventos de cambios en las suscripciones, como actualizaciones y cancelaciones. Obtén más información sobre los webhooks de suscripciones. Puedes consultar los eventos en el Dashboard o con la CLI de Stripe.
Para obtener más detalles sobre cómo probar tu integración con Billing, lee la guía.