Ir a contenido
Crea una cuenta o Inicia sesión
Logotipo de Stripe Docs
/
Pregúntale a la IA
Crear una cuentaIniciar sesión
Empieza ahora
Pagos
Ingresos
Plataformas y marketplaces
Gestión del dinero
Recursos para desarrolladores
API y SDKAyuda
Resumen
Billing
ResumenAcerca de las API de facturación
Suscripciones
    Resumen
    Cómo funcionan las suscripciones
    Empieza ahora
    Inicio rápido
    Planificar una integración
    Crear una integración
    Casos de uso
    Acerca de las suscripciones
    Habilitar modo de facturación
    Configurar eventos de suscripción
    Derechos
    Facturas de suscripciones
    Calendarios de suscripciones
    Modelos de tarifas recurrentes
    Configurar suscripciones
    Configurar métodos de cobro
    Inserta un cuadro de tarifas
    Establecer ciclos de facturación
    Administración de suscripciones
    Migrar suscripciones a Stripe
    Establecer cantidades de productos o suscripciones
    Suscripciones a intervalos combinados
    Suscripciones con fechas pasadas
    Configura períodos de prueba
    Gestionar suscripciones con pago diferido
    Aplica cupones
    Modificar suscripciones
    Gestionar métodos de pago de suscripciones
      Débito directo ACH
      Amazon Pay
      Débito directo Bacs en el Reino Unido
      Transferencia bancaria
      Débito directo BECS en Australia
      Cash App Pay
      Klarna
      PayPal
      Revolut Pay
      Tarjetas coreanas
      Kakao Pay
      Naver Pay
      Débito preautorizado en Canadá
      Débito directo SEPA en la UE
      Stablecoins
      iDEAL con débito directo SEPA
      Bancontact con débito directo SEPA
    Análisis
    Administrar suscripciones en iOS
Invoicing
Cobro por consumo
Presupuestos
Gestión de clientes
Gestión de cobros con otros productos
Recuperación de ingresos
Automatizaciones
Prueba tu integración
Impuesto
Resumen
Usa Stripe Tax
Gestiona el cumplimiento de la normativa
Elaboración de informes
Resumen
Seleccionar un informe
Configura informes
Informes para varias cuentas
API de informes
Reconocimiento de ingresos
Datos
Resumen
Consultar datos de empresas
Sigma
Data Pipeline
Importa los datos externos
Estados Unidos
Español (América Latina)
InicioIngresosSubscriptionsManage subscription payment methods

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.

Ejemplo de Stripe

Echa un vistazo al ejemplo en GitHub o explora la demostración.

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 Stripe
Lado del servidor

Instala el cliente de Stripe que prefieras:

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Instala la CLI de Stripe (opcional). La CLI te permite hacer pruebas de webhooks y puedes ejecutarla para crear productos y precios.

Command Line
homebrew
Instalar desde fuente
No results
# Install Homebrew to run this command: https://brew.sh/ brew install stripe/stripe-cli/stripe # Connect the CLI to your dashboard stripe login

Para obtener más opciones de instalación, consulta Empezar a usar la CLI de Stripe.

Crear el modelo de tarifas
Dashboard
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 EUR. El precio del producto prémium es del 15 EUR.

Ve a la página Agregar un producto y crea dos productos. Agrega un precio a cada producto, cada uno con un período de facturación mensual recurrente:

  • Producto prémium: servicio prémium con más funcionalidades

    • Precio: Tarifa plana | 15 EUR
  • Producto básico: servicio básico con las funcionalidades mínimas

    • Precio: Tarifa plana | 5 EUR

Después de crear los precios, registra los ID de precio para usarlos en otros pasos. Los ID de precio se ven así: price_G0FvDp6vZvdwRZ.

Cuando esté todo listo, usa el botón Copiar en modo activo, en la parte superior derecha de la página, para clonar el producto y pasarlo de entorno de prueba a modo activo.

Para ver otros modelos de tarifas, consulta los ejemplos de Billing.

Crear una sesión de Checkout
Lado del cliente
Lado 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.

index.html
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>

Parámetros de la sesión de Checkout

Consulta Crea una sesión de Checkout para obtener una lista completa de los parámetros que pueden usarse.

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.

Command Line
cURL
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="sepa_debit" \ -d "line_items[][price]"=
"{{PRICE_ID}}"
\ -d "line_items[][quantity]"=1 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d "cancel_url"="https://example.com/cancel" \

Cuando el cliente completa correctamente su pago, se lo redirige a success_url, 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_SESSION_ID} en el success_url 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_url. 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_url para detectar el inicio del pago, ya que:

  • Algunos usuarios maliciosos podrían acceder directamente a la success_url y tener acceso a los bienes o servicios sin pagar.
  • Los clientes no siempre llegan a la success_url después de un pago correcto, posiblemente porque cierran la pestaña del navegador antes de ser redirigidos.

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_url. 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:

Los pagos efectuados correctamente aparecen en la lista de pagos del Dashboard. Al hacer clic en un pago, se te dirigirá a la página de información del pago. La sección Resumen de la compra contiene información de facturación y la lista de artículos comprados, que puedes usar para completar el pedido manualmente.

Nota

Stripe puede ayudar a que te mantengas actualizado respecto de los pagos entrantes mediante notificaciones por correo electrónico cada vez que un cliente efectúa un pago correctamente. Usa el Dashboard para configurar notificaciones de correo electrónico.

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
Número de cuentaDescripción
DE89370400440532013000El estado del PaymentIntent pasa de processing a succeeded.
DE08370400440532013003El estado del PaymentIntent pasa de processing a succeeded después de al menos tres minutos.
DE62370400440532013001El estado del PaymentIntent pasa de processing a requires_payment_method.
DE78370400440532013004El estado del PaymentIntent pasa de processing a requires_payment_method después de al menos tres minutos.
DE35370400440532013002El estado del PaymentIntent pasa de processing a succeeded, pero se crea inmediatamente una disputa.
DE65370400440000343434El pago falla con un código de falla charge_exceeds_source_limit debido a que el monto del pago hace que la cuenta exceda su límite de volumen de pago semanal.
DE27370400440000121212El pago falla con un código de error charge_exceeds_weekly_limit debido a que el monto del pago excede el límite de volumen de transacciones de la cuenta.
DE65370400440002222227Se produce un error en el pago con un código de error insufficient_funds.

OpcionalCómo agregar un costo de instalación único
Lado 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.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="sepa_debit" \ -d "line_items[0][price]"="{{RECURRING_PRICE_ID}}" \ -d "line_items[0][quantity]"=1 \ -d "line_items[1][price]"="{{ONE_TIME_PRICE_ID}}" \ -d "line_items[1][quantity]"=1 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d "cancel_url"="https://example.com/cancel"

OpcionalCrear precios y productos alineados
Lado 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_amount, currency y recurring:

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"=sepa_debit \ -d line_items[0][price_data][unit_amount]=5000 \ -d line_items[0][price_data][currency]=eur \ -d line_items[0][price_data][product]=
"{{PRODUCT_ID}}"
\ -d line_items[0][price_data][recurring][interval]=month \ -d line_items[0][quantity]=1 \ -d mode=subscription \ -d success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d cancel_url="https://example.com/cancel"

Si también tienes que crear productos alineados, puedes hacerlo con product_data:

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"=sepa_debit \ -d "line_items[][price_data][currency]"=eur \ -d "line_items[][price_data][product_data][name]"=T-shirt \ -d "line_items[][price_data][unit_amount]"=2000 \ -d "line_items[][quantity]"=1 \ -d "mode"="subscription" \ -d success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d cancel_url="https://example.com/cancel"

OpcionalClientes existentes
Lado 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.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer"=
"{{CUSTOMER_ID}}"
-d "payment_method_types[]"="sepa_debit" \ -d "line_items[][price]"=
"{{PRICE_ID}}"
\ -d "line_items[][quantity]"=1 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success" \ -d "cancel_url"="https://example.com/cancel"

OpcionalRellenar automáticamente los datos de los clientes
Lado 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.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d customer_email="customer@example.com" \ -d "payment_method_types[]"=sepa_debit \ -d "line_items[][price]"=
"{{PRICE_ID}}"
\ -d "line_items[][quantity]"=1 \ -d mode=subscription \ -d success_url="https://example.com/success" \ -d cancel_url="https://example.com/cancel"

OpcionalCómo gestionar los períodos de prueba
Lado 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_period_days para crear una sesión de Checkout para una suscripción con una prueba de 30 días.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"=sepa_debit \ -d "line_items[][price]"=
"{{PRICE_ID}}"
\ -d "line_items[][quantity]"=1 \ -d "subscription_data[trial_period_days]"=30 \ -d mode=subscription \ -d success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d cancel_url="https://example.com/cancel"

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 impuesto
Lado 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.

Configura subscription_data.default_tax_rates para aplicar una tasa impositiva predeterminada a una suscripción creada con Checkout.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"=sepa_debit \ -d "line_items[][price]"=
"{{PRICE_ID}}"
\ -d "line_items[][quantity]"=1 \ -d "subscription_data[default_tax_rates][]"="{{TAX_RATE_ID}}" \ -d mode=subscription \ -d success_url="https://example.com/success" \ -d cancel_url="https://example.com/cancel"

También puedes especificar line_items.tax_rates o subscription_data.items.tax_rates para aplicar tasas impositivas a planes o partidas de factura específicos.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="sepa_debit" \ -d "line_items[][price]"=
"{{PRICE_ID}}"
\ -d "line_items[][quantity]"=1 \ -d "line_items[][tax_rates][0]"="{{TAX_RATE_ID}}" \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success" \ -d "cancel_url"="https://example.com/cancel"

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 cupones
Lado 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.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"=sepa_debit \ -d "line_items[][price]"=
"{{PRICE_ID}}"
\ -d "line_items[][quantity]"=1 \ -d "discounts[][coupon]"="{{COUPON_ID}}" \ -d "mode"="subscription" \ -d success_url="https://example.com/success" \ -d cancel_url="https://example.com/cancel"

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_promotion_codes 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.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="sepa_debit" \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][price_data][currency]"="eur" \ -d "line_items[0][price_data][product]=
{{PRODUCT_ID}}
"
\ -d "line_items[0][price_data][recurring][interval]=month" \ -d "line_items[0][quantity]"=1 \ -d "allow_promotion_codes"="true" \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success" \ -d "cancel_url"="https://example.com/cancel"

Consulta también

  • Personaliza tu integración
  • Administra suscripciones con el portal de clientes
¿Te fue útil esta página?
SíNo
  • ¿Necesitas ayuda? Ponte en contacto con soporte.
  • Echa un vistazo a nuestro registro de cambios.
  • ¿Tienes alguna pregunta? Contacto.
  • ¿LLM? Lee llms.txt.
  • Con tecnología de Markdoc