Ir a contenido
Crea una cuenta
o
Inicia sesión
Logotipo de Stripe Docs
/
Pregúntale a la IA
Crear una cuenta
Iniciar sesión
Empieza ahora
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 electrónicos
ResumenEncuentra tu caso de usoUsar pagos administrados
Usa Payment Links
Usar una página del proceso de compra prediseñada
Crear una integración personalizada con Elements
    Resumen
    Compara Checkout Sessions y PaymentIntents
    Guías de inicio rápido
    Diseña una integración avanzada
    Personaliza el estilo
    Gestiona los métodos de pago
    Recopila información adicional
    Crear una integración de suscripciones
    Actualizaciones dinámicas
    Agregar descuentos
    Cobra impuestos sobre tus pagos
    Canjear créditos
    Permite que los clientes paguen en su moneda local
    Guardar y recuperar métodos de pago del cliente
      Guarda el método de pago usado para un pago
      Guarda el método de pago sin realizar un pago
    Envía recibos y facturas pagadas
    Aprueba 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
Agrega métodos de pago
Gestiona los métodos de pago
Finalización de compra más rápida con Link
Interfaces de pago
Payment Links
Checkout
Elements para la web
Pagos dentro de la aplicación
Escenarios de pago
Administrar varias monedas
Flujos de pago 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 contra fraudes de Radar
Gestionar 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

Aprende a guardar un método de pago y a aceptar pagos más tarde.

La API Checkout Sessions en el modo de configuración te permite guardar los datos de pago de un cliente sin un pago inicial. Esto es útil si deseas incorporar clientes ahora, configurarlos para los pagos, y cobrarles utilizando la API Payment Intents en el futuro (cuando están fuera de línea).

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 recibe el servicio.

Transacciones con tarjeta presente

Las transacciones con tarjeta presente, como recopilar los datos de la tarjeta a través del Terminal de Stripe, utilizan un proceso diferente para guardar el método de pago.

Cumplimiento de la normativa

Al guardar los datos de pago de un cliente, eres responsable de cumplir 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 mostrarle el método de pago de un cliente en el flujo de confirmación de compra para una compra futura o cobrarle cuando no esté utilizando activamente tu sitio web o aplicación. Agrega condiciones a tu sitio web o aplicación que indiquen cómo planeas guardar los datos del método de pago y permite que los clientes las acepten.

Cuando guardas un método de pago, solo puedes usarlo para el uso específico que hayas 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 no está conectado, asegúrate de que sus Condiciones incluyen lo siguiente:

  • El acuerdo del cliente para que puedas iniciar un pago o una serie de pagos en su nombre para transacciones específicas.
  • El momento y la frecuencia previstos de los pagos (por ejemplo, si los cargos son por cuotas programadas, pagos de suscripción o recargas no programadas).
  • Cómo determinas el importe de 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 del acuerdo por escrito de tu cliente en relación con estos términos.

Nota

Si necesitas utilizar la confirmación manual del lado del servidor o su 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'

Crear 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
:"

Utiliza 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

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

Si no has creado la sesión de Checkout con un cliente existente, utiliza el identificador del PaymentMethod para adjuntar el método de pago a un cliente.

De lo contrario, el método de pago se vincula 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}}

Recuperar el método de pago
Lado del servidor

Después de que un cliente complete con éxito su proceso de compra, 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.
  • Utiliza el ID de SetupIntent para recuperar el objeto SetupIntent. El objeto devuelto contiene un ID depayment_method que puedes adjuntar a un cliente en el siguiente paso.

Más información sobre configuración de webhooks.

Cobra al método de pago más tarde
Lado del servidor

Después de adjuntar el PaymentMethod a un cliente, puedes realizar un pago off-session utilizando un PaymentIntent:

  • Establece customer como ID del cliente y payment_method como ID del método de pago.
  • Establece off_session como true para indicar que el cliente no se encuentra en su flujo de compra durante un intento de pago y no puede autenticar una solicitud realizada por un socio, como un emisor de tarjeta, un banco u otra entidad de pago. Si, durante tu flujo de compra, un socio solicita la autenticación, Stripe solicita exenciones utilizando la información del cliente de una transacción anterior durante la sesión. Si no se cumplen las condiciones para la exención, el PaymentIntent podría dar lugar a un error.
  • Establece el valor de la propiedad confirm 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

Si un intento de pago falla, la solicitud también falla con un código de estado HTTP 402, y el estado de PaymentIntent es requires_payment_method. Notifica a tu cliente que regrese a tu solicitud (por ejemplo, mediante un correo electrónico o una notificación dentro de la aplicación) y dirígelo a una nueva Checkout Session 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 fue útil esta página?
SíNo
  • ¿Necesitas ayuda? Ponte en contacto con soporte.
  • Únete a nuestro programa de acceso anticipado.
  • Echa un vistazo a nuestro registro de cambios.
  • ¿Tienes alguna pregunta? Contacto.
  • ¿LLM? Lee llms.txt.
  • Con tecnología de Markdoc