Configurar una suscripción con débito directo SEPA
Obtén información sobre cómo crear y cobrar una suscripción con débito directo SEPA.
Una sesión de Checkout representa los datos de la intención de compra de tu cliente. Creas una sesión de Checkout cuando el cliente quiere iniciar una suscripción. Después de redirigir a tu cliente a una sesión de Checkout, Stripe le presentará un formulario de pago en el que podrá completar su compra. Una vez completada, el cliente será redirigido de nuevo a tu sitio.
Configurar StripeLado del servidor
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 tarifasDashboardCLI 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 EUR. El precio del producto prémium es del 15 EUR.
Para ver otros modelos de tarifas, consulta los ejemplos de Billing.
Crear una sesión de CheckoutLado del clienteLado del servidor
Agrega un botón para finalizar la 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"> <button type="submit">Checkout</button> </form> </body> </html>
Crea una sesión de Checkout con la ID de un precio existente. Asegúrate de que el modo esté configurado en subscription y de especificar al menos un precio recurrente. Puedes agregar precios únicos además de los precios recurrentes. Después de crear la sesión de Checkout, redirige a tu cliente a la URL devuelta en la respuesta.
Cuando el cliente completa correctamente su pago, se lo redirige a success_, una página de tu sitio web que le informa que su pago se realizó correctamente. Haz que el ID de sesión esté disponible en la página de éxito incluyendo la variable de la plantilla {CHECKOUT_ en el success_ como en el ejemplo anterior.
Cuando tu cliente hace click en tu logotipo en una sesión de Checkout sin completar el pago, Checkout lo redirige nuevamente a tu sitio web, a la cancel_. Por lo general, esta es la página de tu sitio web que el cliente vio antes de ser redirigido a Checkout.
Las sesiones de Checkout vencen 24 horas después de su creación de forma predeterminada.
Desde el Dashboard, habilita los métodos de pago de tus clientes que quieras aceptar. Checkout acepta varios métodos de pago.
Precaución
No te bases solo en el redireccionamiento a la success_ para detectar el inicio del pago, ya que:
- Algunos usuarios maliciosos podrían acceder directamente a la
success_y tener acceso a los bienes o servicios sin pagar.url - Los clientes no siempre llegan a la
success_después de un pago correcto, posiblemente porque cierran la pestaña del navegador antes de ser redirigidos.url
Confirmar que el pago se efectuó correctamente
Cuando tu cliente completa correctamente el pago, Stripe lo redirige a la URL que especificaste en el parámetro success_. Por lo general, esta es una página de tu sitio web que le informa al cliente que su pago se efectuó correctamente.
Sin embargo, SEPA Direct Debit es un método de pago con notificación diferida, lo que significa que los fondos no están disponibles de inmediato. Por ello, demora la gestión logística hasta que los fondos estén disponibles. Después de que el pago se efectúa correctamente, el estado del PaymentIntent subyacente cambia de processing a succeeded.
Puedes confirmar que el pago se efectuó correctamente de varias maneras:
Probar la integración
Puedes probar tu integración usando los Códigos Internacionales de Cuenta Bancaria (IBAN) que figuran a continuación. Los detalles del método de pago se recopilan para cada IBAN, pero muestran un comportamiento diferente cuando se cobran.
Prueba los IBAN
OpcionalCómo agregar un costo de instalación únicoLado del servidor
Además de especificar los precios recurrentes, puedes agregar precios únicos en modo subscription. Estos solo se incluyen en la factura inicial creada por la suscripción. Esta función resulta útil para agregar costos de instalación u otros costos únicos asociados a una suscripción. Puedes agregar un precio único a un producto existente o crear un producto nuevo con un precio nuevo.
OpcionalCrear precios y productos alineadosLado del servidor
Además de especificar los ID de los precios existentes, puedes crear precios nuevos al crear la sesión de Checkout. Primero, define un producto y luego crea una sesión de Checkout usando el ID del producto. Asegúrate de especificar price_data con los datos unit_, currency y recurring:
Si también tienes que crear productos alineados, puedes hacerlo con product_data:
OpcionalClientes existentesLado del servidor
Si ya habías creado un objeto Customer para representar a un cliente, usa el argumento customer para especificar el ID de cliente al crear una sesión de Checkout. Esto garantiza que todos los objetos creados durante la sesión estén asociados con el “Customer Object” correcto.
Cuando especificas un ID de cliente, Stripe también toma el correo electrónico almacenado en el objeto Customer para rellenar automáticamente el campo de correo electrónico en la página de Checkout. Si el cliente cambia el correo electrónico en la página de Checkout, se actualizará en el objeto Customer después de la efectivización de un pago.
OpcionalRellenar automáticamente los datos de los clientesLado del servidor
Si ya tienes el correo electrónico del cliente y quieres completarlo automáticamente en la sesión de Checkout, especifica customer_email cuando crees una sesión de Checkout.
OpcionalCómo gestionar los períodos de pruebaLado del servidor
Puedes usar trial_end o trial_period_days en la sesión de Checkout para especificar la duración del período de prueba. En este ejemplo, usamos trial_ para crear una sesión de Checkout para una suscripción con una prueba de 30 días.
Checkout muestra la siguiente información de forma automática para las suscripciones con períodos de prueba:
- Período de prueba
- Frecuencia e importe de los cargos después de vencida la prueba
Para obtener más información sobre los requisitos de cumplimiento de la normativa, consulta la guía de Billing o de soporte.
OpcionalTarifas de impuestoLado del servidor
Puedes especificar tasas impositivas (impuesto sobre las ventas, IVA, GST, etc.) en las sesiones de Checkout para aplicar impuestos a las suscripciones.
- Usa tasas impositivas fijas si conoces la tasa impositiva exacta que debes cobrar al cliente antes de que inicie al proceso de finalización de compra (por ejemplo, si solo vendes a clientes del Reino Unido y siempre cobras un 20 % de IVA).
- Con la API Prices, puedes usar tasas impositivas dinámicas si necesitas más información del cliente (por ejemplo, su dirección de envío o de facturación) antes de determinar qué tasa cobrar. Si usas tasas impositivas dinámicas, creas tasas por región (por ejemplo, un 20 % de IVA para clientes en el Reino Unido un impuesto del 7.25 % sobre las ventas para clientes de California, en Estados Unidos) y Stripe intentará asignar una de esas tasas según la ubicación del cliente.
Puedes utilizar las exportaciones de datos de Stripe para completar los informes periódicos necesarios para la remesa de impuestos. Para obtener más información, visita Declaración y remesa de impuestos.
OpcionalCómo agregar cuponesLado del servidor
Puedes aplicar cupones a las suscripciones en una sesión de Checkout estableciendo descuentos. Este cupón anula otros cupones del cliente. Si estás creando una suscripción para un cliente existente, los cupones asociados con el cliente se aplican a las facturas de la suscripción.
Cómo agregar códigos de promoción que ve el cliente
También puedes habilitar códigos de promoción que el cliente puede canjear usando el parámetro allow_promotion_codes en las sesiones de Checkout. Cuando se habilita allow_ en una sesión, Checkout incluye una casilla de canje de códigos de promoción para que tus clientes los utilicen. Crea tus cupones y códigos de promoción a través del Dashboard o la API para que tus clientes los canjeen en Checkout.
