Ir a contenido
Crea una cuenta o inicia sesión
Logotipo de la documentación de Stripe
/
Pregúntale a la IA
Crear cuentaIniciar sesión
Empezar
Pagos
Ingresos
Plataformas y marketplaces
Gestión del dinero
Recursos para desarrolladores
API y SDKAyuda
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
Desarrolla una integración en la aplicación
Pagos en persona
Terminal
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
    Resumen
    Pagos bancarios instantáneos
    Klarna en Link
    De un vistazo
    Link con Checkout
    Link con Elements para la web
    Link con Elements para dispositivos móviles
    Link con Invoicing
    Guías de integración
    Integraciones de pago de Link
    Crea una página del proceso de compra personalizada que incluya Link
    Configura los pagos futuros usando Elements y Link
Escenarios de pago
Administrar múltiples divisas
Flujos de pagos personalizados
Capacidad adquirente flexible
Orquestación
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
Estados Unidos
Español (España)
InicioPagosFaster checkout with Link

Crea una página del proceso de compra personalizada que incluya Link

Integra Link utilizando el Payment Element o el Link Authentication Element.

Esta guía te explica cómo aceptar pagos con Link utilizando API Payment Intents y Payment Element o Link Authentication Element.

Hay tres maneras de proteger la dirección de correo electrónico de un cliente para la autenticación e inscripción en Link:

  • Especifica una dirección de correo electrónico: puedes enviar una dirección de correo electrónico al Payment Element usando defaultValues. Si ya recolectas la dirección de correo electrónico o el número de teléfono del cliente en el flujo del proceso de compra, te recomendamos este enfoque.
  • Recolecta una dirección de correo electrónico: puedes recolectar una dirección de correo electrónico directamente en el Payment Element. Si no recolectas la dirección de correo electrónico en ninguna parte del flujo del proceso de compra, te recomendamos este enfoque.
  • Link Authentication Element: puedes usar Link Authentication Element para crear un único campo de entrada de correo electrónico tanto para la recolección de correos electrónicos como para la autenticación de Link. Te recomendamos que lo hagas si usas el Address Element.
Autenticarse o registrarse con Link directamente en Payment Element durante el proceso de pago

Recolectar una dirección de correo electrónico del cliente para la autenticación o registro de Link

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

Stripe utiliza un objeto PaymentIntent para representar tu intención de cobrarle un pago a un cliente y hace un seguimiento de los intentos de cobro y de los cambios en el estado del pago a lo largo del proceso.

Un diagrama de resumen de todo el flujo de pago

Si recopilas datos de la tarjeta para usarla en el futuro con Setup Intents, enumera los métodos de pago manualmente en lugar de usar métodos de pago dinámicos. Para utilizar Link sin métodos de pago dinámicos, actualiza tu integración para pasar link a payment_method_types.

Al crear un PaymentIntent, ofrece a tus clientes de forma dinámica los métodos de pago más relevantes, incluido Link, mediante el uso de métodos de pago dinámicos. Para usar métodos de pago dinámicos, no incluyas el parámetro payment_method_types. Opcionalmente, también puede habilitar automatic_payment_methods.

Nota

Cuando tu integración no establece el parámetro payment_method_types, algunos métodos de pago se activan automáticamente, incluidas las tarjetas y los monederos.

Para añadir Link a tu integración de Elements usando métodos de pago dinámicos:

  1. Activa Link en la configuración del método de pago del Dashboard.
  2. Si tienes una integración existente que enumera manualmente los métodos de pago, elimina el parámetro payment_method_types de tu integración.

Recupera el secreto del cliente

El PaymentIntent incluye un secreto de cliente que el lado del cliente utiliza para completar el proceso de pago de forma segura. Puedes usar diferentes métodos para pasar el secreto del cliente al lado del cliente.

Recupera el secreto de cliente de un punto de conexión en tu servidor, utilizando la función fetch del navegador. Este enfoque es mejor si tu lado del cliente es una aplicación de una sola página, en particular una construida con un marco de front-end moderno como React. Crea el punto de conexión del servidor que se utiliza para el secreto de cliente:

main.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

Y luego busca el secreto del cliente con JavaScript del lado del cliente:

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Recopila el correo electrónico del cliente

Link autentica a un cliente utilizando su dirección de correo electrónico. Según tu flujo del proceso de compra, tienes las siguientes opciones: enviar un correo electrónico al Payment Element, recolectarlo directamente en el Payment Element o utilizar el Link Authentication Element. De estas, Stripe recomienda enviar una dirección de correo electrónico del cliente al Payment Element si está disponible.

Si alguno de los siguientes puntos se te aplica:

  • Quieres un componente único y optimizado para la recolección de correos electrónicos y la autenticación de Link.
  • Debes recolectar una dirección de envío de tu cliente.

A continuación, utiliza el flujo de integración que implemente estos elementos: el Link Authentication Element, el Payment Element y el Address Element opcional.

Una página de finalización de compra habilitada para Link tiene el Link Authentication Element al principio, seguido por el Address Element y el Payment Element al final. También puedes mostrar el Link Authentication Element en páginas separadas, en este mismo orden, para flujos del proceso de compra de varias páginas.

Crea un formulario de pago usando múltiples Elements

Crea un formulario de pago usando múltiples Elements

La integración funciona de la siguiente manera:

Configura tu formulario de pago
Lado del cliente

Ahora puedes configurar tu formulario de pago personalizado con los componentes prediseñados de la interfaz de usuario de Elements. La dirección de tu página de pago debe empezar por https:// en lugar de por http:// para que tu integración funcione. Puedes probar tu integración sin usar HTTPS. Habilita HTTPS cuando esté todo listo para aceptar pagos reales.

El Link Authentication Element renderiza una entrada de dirección de correo electrónico. Cuando Link hace coincidir el correo electrónico de un cliente con una cuenta de Link existente, envía al cliente un código seguro único a su teléfono para realizar la autenticación. Si el cliente autentica su identidad correctamente, Stripe muestra automáticamente las direcciones guardadas en Link y los métodos de pago para que puedan usarlos.

Esta integración también crea el Payment Element, que renderiza un formulario dinámico que permite a tu cliente elegir un tipo de método de pago. El formulario recolecta automáticamente todos los datos de pagos necesarios para el tipo de método de pago elegido por el cliente. El Payment Element también gestiona la visualización de los métodos de pago guardados en Link para los clientes autenticados.

Configura Stripe Elements

Instala React Stripe.js y el cargador de Stripe.js desde el registro público npm.

Command Line
npm install --save @stripe/react-stripe-js @stripe/stripe-js

En tu página de pago, ajusta tu formulario de pago con el componente Elements y especifica el secreto de cliente del paso anterior. Si ya recolectas el correo electrónico del cliente en otra parte de tu formulario, reemplaza la entrada existente por el linkAuthenticationElement​.

Si no recolectas el correo electrónico, añade el linkAuthenticationElement​ a tu flujo del proceso de compra. Debes colocar el linkAuthenticationElement antes del ShippingAddressElement (opcional si recolectas direcciones de envío) y el PaymentElement para que Link rellene automáticamente los datos guardados de Link de tu cliente en el ShippingAddressElement y el PaymentElement. También puedes especificar la opción de apariencia personalizando los Elements para que coincidan con el diseño de tu sitio.

Si tienes el correo electrónico del cliente, especifícalo en la opción defaultValues del linkAuthenticationElement. De este modo, se completa automáticamente la dirección de correo electrónico y se inicia el proceso de autenticación de Link.

Si tienes otros datos del cliente, especifícalos en el objeto defaultValues.billingDetails para el PaymentElement. Al completar previamente la mayor cantidad de información posible se simplifica la creación y reutilización de cuentas de Link para tus clientes.

A continuación, especifica los componentes linkAuthenticationElement y PaymentElement en tu formulario de pago:

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { Elements, LinkAuthenticationElement, PaymentElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Customize the appearance of Elements using the Appearance API. const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto';

No es necesario que linkAuthenticationElement, PaymentElement y ShippingAddressElement estén en la misma página. Si tienes un proceso en el que la información de contacto del cliente, los datos de envío y los datos de pago se muestran al cliente en pasos separados, puedes mostrar cada Element en el paso o la página correspondiente. Incluye el linkAuthenticationElement como el formulario de entrada de correo electrónico en el paso de recolección de información de contacto para asegurarte de que el cliente pueda aprovechar al máximo que Link le rellene los datos de envío y pago.

Si recolectas el correo electrónico de tu cliente con el Link Authentication Element al principio del flujo del proceso de compra, no es necesario que lo muestres de nuevo en las páginas de envío o pago.

Recuperar una dirección de correo electrónico

Puedes recuperar los datos de la dirección de correo electrónico utilizando la propiedad onChange en el componente linkAuthenticationElement. El controlador onChange se activa cada vez que el usuario actualiza el campo de correo electrónico o cuando se rellena automáticamente un correo electrónico de cliente guardado.

<linkAuthenticationElement onChange={(event) => { setEmail(event.value.email); }} />

Rellena automáticamente la dirección de correo electrónico de un cliente

El Link Authentication Element acepta una dirección de correo electrónico. Proporcionar la dirección de correo electrónico de un cliente activa el flujo de autenticación de Link en cuanto el cliente llega a la página de pago utilizando la opción defaultValues.

<linkAuthenticationElement options={{defaultValues: {email: 'foo@bar.com'}}}/>

OpcionalRellena automáticamente los datos adicionales del cliente
Lado del cliente

Si lo tienes, el rellenado automático de la información del cliente agiliza aún más el proceso de compra y reduce la introducción manual de datos.

Si utilizas Link Authentication Element, añade el objeto defaultValues.billingDetails al Payment Element para completar automáticamente el nombre y el número de teléfono del cliente, así como sus direcciones de envío. Al completar previamente la mayor cantidad posible de la información de tu cliente, simplificas la creación y reutilización de la cuenta de Link.

Información completada previamente en el formulario de suscripción de Link.

Rellena automáticamente la dirección de correo electrónico, el número de teléfono y el nombre de tu cliente para simplificar el proceso de creación de cuenta de Link

Puedes proporcionar los siguientes valores al objeto defaultValues.billingDetails:

ValorObligatorioFormato
nameOpcionalcadena
phoneOpcionalcadena
addressOpcionalEl objeto JSON con los campos postal_code y country. Todos los campos son cadenas.

Un Payment Element con todos los valores completados previamente tiene un aspecto similar a los siguientes ejemplos:

<PaymentElement options={{ defaultValues: { billingDetails: { name: 'John Doe', phone: '888-888-8888', address: { postal_code: '10001', country: 'US', } }, }, }} />;

OpcionalRecopila direcciones de envío
Lado del cliente

Para recolectar direcciones, crea un nodo DOM vacío para que el Address Element se procese en él. El Address Element debe mostrarse después del Link Authentication Element para que Link rellene automáticamente los datos guardados de la dirección de un cliente:

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { Elements, LinkAuthenticationElement, AddressElement, PaymentElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Customize the appearance of Elements using the Appearance API. const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto'; const CheckoutPage = ({clientSecret}) => ( <Elements stripe={stripe} options={{clientSecret, appearance, loader}}> <CheckoutForm /> </Elements> ); export default function CheckoutForm() { return ( <form> <h3>Contact info</h3> <LinkAuthenticationElement /> <h3>Shipping</h3> <AddressElement options={{mode: 'shipping', allowedCountries: ['US']}} /> <h3>Payment</h3> <PaymentElement /> <button type="submit">Submit</button> </form> ); }

Muestra el AddressElement antes del PaymentElement. El PaymentElement detecta de manera dinámica los datos de dirección recopilados por el AddressElement, oculta los campos innecesarios y recopila los datos adicionales de la dirección de facturación que sean necesarios.

Recupera la información de la dirección

El AddressElement pasa de forma automática la dirección de envío cuando un cliente envía el pago, pero también puedes recuperar los datos de la dirección en el front-end usando la propiedad onChange. El controlador onChange envía un evento cuando el usuario actualiza cualquier campo en el Element Address o después de elegir las direcciones guardadas:

<AddressElement onChange={(event) => { setAddressState(event.value); }} />

Completar previamente una dirección de envío

Usa defaultValues para rellenar los datos de la dirección y acelerar el proceso de compra de tus clientes.

<AddressElement options={{ mode: 'shipping', defaultValues: { name: 'Jane Doe', address: { line1: '354 Oyster Point Blvd', line2: '', city: 'South San Francisco', state: 'CA', postal_code: '94080', country: 'US', } } }}>

OpcionalPersonaliza el diseño
Lado del cliente

Después de añadir estos Elements a tu página, puedes personalizar su apariencia para que encajen con el resto de tu diseño:

Personaliza el diseño de tus Elements

Personaliza el diseño de tus Elements

Envía el pago a Stripe
Lado del cliente

Usa stripe.confirmPayment para efectivizar el pago con los datos recolectados de tu cliente en los diferentes formularios de Elements. Proporciona una return_url a esta función para indicar a dónde Stripe redirige al usuario después de efectivizar el pago.

Es posible que primero se redirija al usuario a un sitio intermedio, como una página de autorización bancaria, antes de que Stripe lo redirija al return_url.

De forma predeterminada, los pagos con tarjeta o bancarios redireccionan inmediatamente al return_url cuando un pago se efectúa correctamente. Si no quieres redirigir al return_url, puedes usar if_required para cambiar el comportamiento.

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { useStripe, useElements, Elements, LinkAuthenticationElement, PaymentElement, // If collecting shipping AddressElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto'; const CheckoutPage =({clientSecret}) => ( <Elements stripe={stripe} options={{clientSecret, appearance, loader}}> <CheckoutForm /> </Elements> ); export default function CheckoutForm() { const stripe = useStripe(); const elements = useElements(); const handleSubmit = async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ elements, confirmParams: { return_url: "https://example.com/order/123/complete", }, }); if (error) { // handle error } }; return ( <form onSubmit={handleSubmit}> <h3>Contact info</h3> <LinkAuthenticationElement /> {/* If collecting shipping */} <h3>Shipping</h3> <AddressElement options={{mode: 'shipping', allowedCountries: ['US']}} /> <h3>Payment</h3> <PaymentElement /> <button type="submit">Submit</button> </form> ); }

La return_url corresponde a una página en tu sitio web que proporciona el estado del pago del PaymentIntent cuando renderizas la página de retorno. Cuando Stripe redirecciona al cliente a la return_url, puedes usar los siguientes parámetros de consulta de URL para verificar el estado del pago. También puedes adjuntar tus propios parámetros de consulta cuando proporciones la return_url. Estos parámetros de consulta se conservan durante todo el proceso de redireccionamiento.

ParámetroDescripción
payment_intentEl identificador único del PaymentIntent
payment_intent_client_secretEl secreto de cliente del objeto PaymentIntent.

OpcionalSeparar la autorización y la captura
Lado del servidor

Link acepta la autorización y la captura por separado. Debes capturar un pago con Link autorizado en el transcurso de 7 días a partir de la autorización. De lo contrario, la autorización se cancela automáticamente y no puedes capturar el pago.

Indicarle a Stripe que autorice solamente

Para indicar que quieres separar la autorización y la captura, establece capture_method en manual al crear el PaymentIntent. Este parámetro le indica a Stripe que solo debe autorizar el importe en el método de pago del cliente.

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 "payment_method_types[]"=link \ -d "payment_method_types[]"=card \ -d amount=1099 \ -d currency=usd \ -d capture_method=manual

Capturar los fondos

Una vez que la autorización se realiza correctamente, el estado del PaymentIntent pasa a requires_capture. Para capturar los fondos autorizados, realiza una petición de captura del PaymentIntent. De forma predeterminada, se captura el importe total autorizado; no puedes capturar más de ese importe, pero sí menos.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents/
{{PAYMENT_INTENT_ID}}
/capture
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount_to_capture=750

Opcional Cancela la autorización

Si necesitas cancelar una autorización, puedes cancelar el PaymentIntent.

Gestionar eventos posteriores al pago
Lado del servidor

Stripe envía un evento payment_intent.succeeded cuando se efectiviza el pago. Usa un webhook para recibir estos eventos y ejecutar acciones, como enviar a tu cliente un correo electrónico de confirmación del pedido, registrar la venta en una base de datos o iniciar el flujo de trabajo de envíos.

Configura tu integración para recibir notificaciones de estos eventos en lugar de esperar una devolución de llamada del cliente. Cuando esperas una devolución de llamada del cliente, el cliente puede cerrar la ventana del navegador o salir de la aplicación antes de que se ejecute la devolución de llamada. Si configuras tu integración para recibir notificaciones de eventos asincrónicos, podrás aceptar diferentes tipos de métodos de pago con una sola integración.

Además de gestionar el evento payment_intent.succeeded, también puedes gestionar otros dos eventos importantes cuando cobras pagos con el Payment Element:

EventoDescripciónAcción
payment_intent.succeededSe envía desde Stripe cuando un cliente ha efectivizado un pago correctamente.Envía al cliente una confirmación del pedido y completa el pedido.
payment_intent.payment_failedSe envía desde Stripe cuando el cliente ha intentado hacer el pago, pero no se ha hecho efectivo.Si un pago ha pasado de processing a payment_failed, ofrece al cliente otro intento de pago.

Prueba la integración

Precaución

No almacenes datos de usuarios reales en las cuentas de Link del entorno de prueba. Úsalas como si estuvieran disponibles para el público, porque estas cuentas de prueba están asociadas con tu clave publicable.

Actualmente, Link solo funciona con tarjetas de crédito, tarjetas de débito y compras con cuentas bancarias cualificadas de EE. UU. Link requiere el registro del dominio.

Puedes crear cuentas en el entorno de prueba para Link usando cualquier dirección de correo electrónico válida. La siguiente tabla muestra los valores fijos de código de acceso de un solo uso que Stripe acepta para autenticar las cuentas en el entorno de prueba:

ValorResultado
Otros 6 dígitos que no aparezca a continuaciónCompletado correctamente
000001Error, el código no es válido
000002Error, el código ha caducado
000003Error, se ha superado el número máximo de intentos

Para probar métodos de pago específicos, consulta los ejemplos de prueba del Payment Element.

Varias fuentes de financiación

A medida que Stripe añade compatibilidad para fuentes de financiamiento adicional, no necesitas actualizar la integración. Stripe las acepta automáticamente con el mismo tiempo de liquidación de transacciones y garantías que los pagos con tarjeta y cuenta bancaria.

Autenticación de tarjetas y 3D Secure

Link acepta la autenticación mediante 3D Secure 2 (3DS2) para pagos con tarjeta. 3DS2 requiere que los clientes completen un paso más de verificación con el emisor de la tarjeta al pagar. Los pagos que se han autenticado correctamente con 3D Secure están cubiertos por una transferencia de responsabilidad.

Para activar los flujos de comprobación de la autenticación mediante 3DS2 con Link en un entorno de prueba, usa la siguiente tarjeta de prueba con cualquier CVC, código postal y fecha de caducidad futura: .

En un entorno de prueba, el proceso de autenticación muestra una página de autenticación ficticia. En esa página, puedes autorizar o cancelar la del pago. Al autorizar la del pago, se simula una autenticación correcta y se te redirige a la URL de retorno especificada. Si haces clic en el botón Error, se simula un intento de autenticación fallido.

Para obtener más información, consulta la página de Autenticación mediante 3D Secure.

Nota

Al probar flujos de 3DS, solo las tarjetas de prueba para 3DS2 activarán la autenticación en Link.

OpcionalMostrar los datos guardados por el cliente
Lado del servidor
Lado del cliente

Además de mostrar tus propias direcciones y métodos de pago guardados para un cliente, puedes mostrar sus datos guardados en Link.

Si un cliente tiene guardado más de un método de pago, Stripe muestra las tres tarjetas utilizadas más recientemente guardadas en el cliente, además de los métodos de pago que el cliente haya guardado con Link.

Vista previa de los datos guardados del cliente

Para ello, crea una clave efímera y envíala a tu front end junto con el ID del cliente. La información que contiene el objeto customer es confidencial: no puedes recuperarla directamente en Stripe.js. La clave efímera concede acceso temporal a los datos de customer.

Command Line
curl
Ruby
Python
PHP
Node.js
No results
curl https://api.stripe.com/v1/ephemeral_keys \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -H "Stripe-Version: 2025-10-29.clover" \ -d "customer"="{{CUSTOMER_ID}}" \ 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_types[]"="link" \ -d "payment_method_types[]"="card"

En el lado del cliente, obtén las customerOptions con clientSecret.

(async () => { const response = await fetch('/secret'); const {clientSecret, customerOptions} = await response.json(); })

A continuación, especifica los valores customerOptions.ephemeralKey y customerOptions.customer para la opción customerOptions del grupo Elements. También debes especificar el indicador elements_customers_beta_1 de la versión beta al cargar la instancia de Stripe.

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { useStripe, useElements, Elements, LinkAuthenticationElement, PaymentElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
, { apiVersion: '2025-10-29.clover', betas: ['elements_customers_beta_1'], }); const appearance = {/* ... */}; const loader = 'auto'; const CheckoutPage =({ clientSecret, customerOptions, }) => ( <Elements stripe={stripe} options={{ clientSecret, appearance, loader, customerOptions, }}> <CheckoutForm /> </Elements> );

OpcionalGuarda los métodos de pago de Link
Lado del servidor
Lado del cliente

Puedes guardar los métodos de pago de Link para futuros pagos fuera de la sesión o suscripciones, pero no para futuros pagos durante la sesión. Para ello, debes adjuntarlo a un Customer. Crea un objeto customer cuando tu cliente cree una cuenta en tu empresa. A continuación, especifica el customer al crear tu PaymentIntent.

Cuando un nuevo cliente tenga su primera transacción con tu empresa, crea un objeto customer en Stripe para almacenar sus datos para usarlos en el futuro.

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 "automatic_payment_methods[enabled]"=true \ -d customer=
"{{CUSTOMER_ID}}"
\ -d setup_future_usage=off_session

En la última versión de la API, especificar el parámetro automatic_payment_methods es opcional porque Stripe habilita sus funciones de forma predeterminada.

Cuando lo tengas todo listo para volver a cobrarle a tu cliente, usa el customer y el ID del PaymentMethod resultante para crear un nuevo PaymentIntent. Establece off_session en true. Esto hace que el PaymentIntent envíe un error si se requiere autenticación cuando tu cliente no está utilizando activamente tu sitio o aplicación.

Command Line
curl
CLI de Stripe
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 \ # In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default. -d "automatic_payment_methods[enabled]"=true \ -d customer="{{CUSTOMER_ID}}" \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ -d return_url="https://example.com/order/123/complete" \ -d off_session=true \ -d confirm=true

Comunica a tus clientes qué es Stripe

Stripe recoge información sobre las interacciones de los clientes con Elements para brindarte servicios, prevenir el fraude y mejorar sus servicios. Entre los datos recogidos, se incluyen el uso de cookies y direcciones IP para identificar qué Elements ha visto un cliente durante una sola sesión del proceso de compra. Tú eres responsable de divulgar y obtener todos los derechos y consentimientos necesarios para que Stripe use los datos de estas maneras. Para obtener más información, visita nuestro centro de privacidad.

Véase también

  • ¿Qué es Link?
  • Link con Elements
  • Link en el Payment Element
  • Explora el Link Authentication Element
  • Link en diferentes integraciones de pago
¿Te ha sido útil la página?
SíNo
  • ¿Necesitas ayuda? Ponte en contacto con el equipo de soporte.
  • 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