Ir a contenido
Crea una cuenta
o
inicia sesión
Logotipo de la documentación de Stripe
/
Pregúntale a la IA
Crear cuenta
Iniciar sesión
Empezar
Pagos
Ingresos
Plataformas y marketplaces
Gestión del dinero
Recursos para desarrolladores
Resumen
Acerca de Stripe Payments
Actualiza tu integración
Análisis de pagos
Pagos por Internet
ResumenEncuentra tu caso de usoUsa Managed Payments
Utiliza Payment Links
Usa una página de proceso de compra prediseñada
Crea una integración personalizada con Elements
    Resumen
    Compara Checkout Sessions con PaymentIntents
    Guías QuickStart
    Diseña una integración avanzada
    Personaliza el estilo
    Gestiona los métodos de pago
    Recolecta información adicional
    Crea la integración de las suscripciones
    Actualizaciones dinámicas
    Añadir descuentos
    Recaudar impuestos sobre tus pagos
    Canjear créditos
    Permite que los clientes paguen en su divisa local
    Save and retrieve customer payment methods
      Guarda el método de pago utilizado para un pago
      Guarda un método de pago sin realizar ningún pago
    Envía recibos y facturas pagadas
    Acepta pagos manualmente en tu servidor
    Autoriza y captura un pago por separado
    Elements con registro de cambios beta de la API Checkout Sessions
Desarrolla una integración en la aplicación
Métodos de pago
Añadir métodos de pago
Gestiona los métodos de pago
Proceso de compra más rápido con Link
Interfaces de pago
Payment Links
Checkout
Elements para la web
Payments en la aplicación
Escenarios de pago
Administrar múltiples divisas
Flujos de pagos personalizados
Capacidad adquirente flexible
Orquestación
Pagos en persona
Terminal
Más allá de los pagos
Constituye tu empresa
Criptomonedas
Comercio agéntico
Financial Connections
Climate
Comprender el fraude
Protección antifraude de Radar
Gestiona disputas
Verificar identidades
InicioPagosBuild a custom integration with ElementsSave and retrieve customer payment methods

Guarda el método de pago de un cliente sin realizar un pago

Más información sobre cómo guardar un método de pago y cobrar más tarde.

La API Checkout Sessionsen modo deconfiguración te permite guardar los datos de pago de un cliente sin que se haya realizado un pago inicial. Esta opción resulta útil si quieres hacer el onboarding de clientes ahora, realizar la configuración de pagos y cobrarles más adelante usando la API Payment Intents cuando no estén conectados.

Utiliza esta integración para configurar pagos recurrentes o crear pagos puntuales cuyo importe final se determinará más adelante, por lo general, después de que el cliente reciba el servicio.

Transacciones con tarjeta presente

Las transacciones con tarjeta presente, como la recopilación de datos de la tarjeta mediante Stripe Terminal, se procesan de manera diferente para guardar el método de pago.

Cumplimiento de la normativa

Al guardar los datos de pago de un cliente, eres responsable del cumplimiento de todas las leyes, normativas y reglas de red aplicables. Estos requisitos generalmente se aplican si deseas guardar el método de pago de tu cliente para su uso futuro, como para mostrarle el método de pago de un cliente en el flujo del proceso de compra para una compra futura o aceptar un pago cuando no esté utilizando activamente su sitio web o aplicación. Añade a tu sitio web o aplicación las condiciones que detallen cómo planeas guardar los datos del método de pago y permitir que los clientes acepten.

Cuando guardas un método de pago, solo puedes usarlo para el consumo específico que has incluido en tus condiciones. Para cargar un método de pago cuando un cliente está desconectado y guardarlo como una opción para futuras compras, asegúrate de obtener explícitamente el consentimiento del cliente para este uso específico. Por ejemplo, incluye una casilla de verificación que indique «Guardar mi método de pago para usarlo en el futuro» para obtener el consentimiento.

Para cobrar a un cliente cuando esté desconectado, asegúrate de que tus condiciones incluyan lo siguiente:

  • La aceptación por parte del cliente de que inicies un pago o una serie de pagos en su nombre para transacciones específicas.
  • El plazo de pagos y la frecuencia previstos (por ejemplo, si los cargos son por cuotas programadas, pagos por suscripción o recargas no programadas).
  • Cómo determinas el importe del pago.
  • Tu Política de cancelación, si el método de pago es para un servicio de suscripción.

Asegúrate de mantener un registro de la aceptación por escrito de estas condiciones por parte de tu cliente.

Nota

Si necesitas usar la confirmación manual del lado del servidor o tu integración requiere presentar los métodos de pago por separado, consulta nuestra guía alternativa.

Configurar Stripe
Lado del servidor

Primero, crea una cuenta de Stripe o inicia sesión.

Usa nuestras bibliotecas oficiales para acceder a la API de Stripe desde tu aplicación:

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'

Crea un objeto Customer
Lado del servidor

Para configurar un método de pago para pagos futuros, debes adjuntarlo a un cliente. Crea un objeto de Customer cuando tu cliente cree una cuenta en tu empresa. Los objetos de Customer permiten reutilizar los métodos de pago y hacer el seguimiento de múltiples pagos.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Usa el modo de configuración
Lado del servidor

Crea una Checkout Session con mode=setup.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=setup \ -d ui_mode=custom \ -d currency=usd

Vincula el método de pago a un cliente
Lado del servidor

Si no creaste la Checkout Session con un cliente existente, usa el ID del PaymentMethod para vincular el método de pago a un cliente.

De lo contrario, el método de pago se adjunta automáticamente al cliente que proporcionaste al crear la Checkout Session.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_methods/
{{PAYMENT_METHOD_ID}}
/attach
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}

Recupera el método de pago
Lado del servidor

Una vez que el cliente completa correctamente su Checkout Session, gestiona el webhook checkout.session.completed. Recupera el objeto Session en el webhook y, a continuación, haz lo siguiente:

  • Obtén el valor de la clave setup_intent, que es el ID de SetupIntent creado durante la Checkout Session.
  • Usa el ID del SetupIntent para recuperar el objeto SetupIntent. El objeto devuelto contiene un ID del payment_method que puedes adjuntar a un cliente en el siguiente paso.

Obtén más información sobre cómo configurar webhooks.

Carga el método de pago más tarde
Lado del servidor

Después de vincular el PaymentMethod a un cliente, puedes hacer un pago fuera de sesión con un PympyIntent:

  • Establece cliente al ID del cliente y payment_method al ID del método de pago.
  • Define off_session como true para indicar que el cliente no está en tu flujo del proceso de compra durante un intento de pago y no puede completar una petición de autenticación realizada por un socio, como un emisor de tarjeta, un banco u otra institución de pago. Si, durante tu flujo del proceso de compra, un socio solicita autenticación, Stripe solicita exenciones utilizando información del cliente de una transacción anterior de durante la sesión. Si no se cumplen las condiciones de exención, el PaymentIntent podría generar un error.
  • Establece el valor de la propiedad confirmar del PaymentIntent como true, lo que hace que la confirmación se produzca inmediatamente al crear el PaymentIntent.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd \ -d customer=
{{CUSTOMER_ID}}
\ -d payment_method=
{{PAYMENT_METHOD_ID}}
\ -d off_session=true \ -d confirm=true

Cuando se produce un error en un intento de pago, también falla la petición con un código de estatus HTTP 402, y el estatus del PaymentIntent es requires_payment_method. Debes enviar una notificación al cliente para que vuelva a tu aplicación (por ejemplo, mediante un correo electrónico o una notificación en la aplicación) y dirija a tu cliente a una nueva sesión de pago para que seleccione otro método de pago.

Command Line
cURL
Stripe CLI
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 "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=1099 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ -d ui_mode=custom \ --data-urlencode return_url="https://example.com/return"
¿Te ha sido útil la página?
SíNo
  • ¿Necesitas ayuda? Ponte en contacto con el equipo de soporte.
  • Únete a nuestro programa de acceso anticipado.
  • Echa un vistazo a nuestro registro de cambios.
  • ¿Tienes alguna pregunta? Ponte en contacto con el equipo de ventas.
  • ¿LLM? Lee llms.txt.
  • Con tecnología de Markdoc