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
    Resumen
    Aceptar un pago
    Divisas
    Pagos rechazados
    Transferencias
    Pagos recurrentes
    Autenticación mediante 3D Secure
    Reembolsar y cancelar pagos
    Saldos y plazos de liquidación
    Recibos
    Administra eventos de webhook
    Preparación para la SCA
    API anteriores
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
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
InicioPagosAbout Stripe payments

Aceptar un pago

Acepta pagos en línea de forma segura.

Crea un formulario de pago o usa una página del proceso de compra prediseñada para comenzar a aceptar pagos en línea.

Redirige a una página de pagos alojada en Stripe Checkout. Descubre cómo esta integración se compara con los otros tipos de integración de Stripe.

Vista previa del proceso de compra

Esfuerzo de integración

Poca programación

Tipo de integración

Redirigir a la página de pagos alojada en Stripe

Personalización de la interfaz de usuario

Personalización limitada

Pruébalo

Primero, regístrate para obtener una cuenta de Stripe.

Utiliza 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'

Redirige a tu cliente a Stripe Checkout
Lado del cliente
Lado del servidor

Añade un botón de finalización de compra en tu sitio web que llame a un punto de conexión del lado del servidor para crear una Checkout Session.

También puedes crear una sesión de Checkout para un cliente existente, lo que te permite rellenar automáticamente los campos de Checkout con información de contacto conocida y unificar tu historial de compras para ese cliente.

checkout.html
<html> <head> <title>Buy cool new product</title> </head> <body> <!-- Use action="/create-checkout-session.php" if your server is PHP based. --> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>

Una Checkout Session es la representación programática de lo que ve tu cliente cuando se le redirecciona al formulario de pago. Puedes configurarla con opciones como las siguientes:

  • Partidas individuales que se cobrarán
  • Divisas que se usarán

Debes rellenar success_url con el valor de la URL de una página en tu sitio web a la que Checkout redirige al cliente después de que efectiviza el pago. También puedes proporcionar opcionalmente un valor cancel_url de una página en tu sitio web a la que Checkout redirige al cliente si finaliza el proceso de pago antes de que se complete.

Nota

De forma predeterminada, las Checkout Sessions caducan a las 24 horas de crearse.

Después de crear una sesión de Checkout, redirige al cliente a la URL devuelta en la respuesta.

Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# This example sets up an endpoint using the Sinatra framework. require 'json' require 'sinatra' require 'stripe' # Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/create-checkout-session' do session = Stripe::Checkout::Session.create({ line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], mode: 'payment', # These placeholder URLs will be replaced in a following step. success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', }) redirect session.url, 303 end

Métodos de pago

De forma predeterminada, Stripe habilita las tarjetas y otros métodos de pago comunes. Puedes activar o desactivar métodos de pago individuales en el Dashboard de Stripe. En Checkout, Stripe evalúa la divisa y las restricciones y, a continuación, presenta al cliente de forma dinámica los métodos de pago admitidos.

Para ver cómo se muestran tus métodos de pago a los clientes, introduce un ID de transacción o establece el importe y la divisa de un pedido en el Dashboard.

Puedes habilitar Apple Pay y Google Pay en la configuración de métodos de pago. De forma predeterminada, Apple Pay está habilitado y Google Pay está deshabilitado. Sin embargo, en algunos casos Stripe las filtra incluso cuando están habilitadas. Filtramos Google Pay si habilitas el impuesto automático sin recopilar la dirección de envío.

Las páginas alojadas en Stripe de Checkout no necesitan cambios de integración para habilitar Apple Pay o Google Pay. Stripe gestiona estos pagos igual que otros pagos con tarjeta.

Confirma tu punto de conexión

Confirma que tu punto de conexión sea accesible iniciando tu servidor web (por ejemplo, localhost:4242) y ejecutando el siguiente comando:

Command Line
curl -X POST -is "http://localhost:4242/create-checkout-session" -d ""

Deberías ver una respuesta en tu terminal de este estilo:

Command Line
HTTP/1.1 303 See Other Location: https://checkout.stripe.com/c/pay/cs_test_... ...

Pruebas

Ya deberías tener un botón de finalización de compra en funcionamiento que redireccione al cliente a Stripe Checkout.

  1. Haz clic en el botón de finalización de compra.
  2. Se te redireccionará al formulario de pago de Stripe Checkout.

Si tu integración no funciona, haz lo siguiente:

  1. Abre la pestaña Red en las herramientas para desarrolladores de tu navegador.
  2. Haz clic en el botón de finalización de compra y confirma que se le haya enviado una petición XHR a tu punto de conexión de lado del servidor (POST /create-checkout-session).
  3. Verifica que la petición devuelva un código de estado 200.
  4. Usa console.log(session) dentro del oyente de clic del botón para confirmar que se hayan devuelto los datos correctos.

Muestra una página de confirmación
Lado del cliente
Lado del servidor

Es importante que tu cliente vea una página de confirmación después de haber enviado correctamente el formulario de pago. Aloja esta página en tu sitio.

Crea una pequeña página de confirmación:

success.html
<html> <head><title>Thanks for your order!</title></head> <body> <h1>Thanks for your order!</h1> <p> We appreciate your business! If you have any questions, please email <a href="mailto:orders@example.com">orders@example.com</a>. </p> </body> </html>

A continuación, actualiza el punto de conexión de creación de la sesión de Checkout para usar esta nueva página:

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 "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]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="http://localhost:4242/success.html" \ --data-urlencode cancel_url="http://localhost:4242/cancel.html"

Nota

Si quieres personalizar tu página de confirmación, lee la guía para personalizar la página de confirmación.

Pruebas

  1. Haz clic en el botón de finalización de compra.
  2. Completa los datos del pago con la información de la tarjeta de prueba:
    • Introduce 4242 4242 4242 4242 como número de tarjeta.
    • Introduce cualquier fecha futura como fecha de caducidad.
    • Introduce cualquier número de 3 dígitos como CVC.
    • Introduce cualquier código postal de facturación.
  3. Haz clic en Pagar.
  4. Se te redirigirá a tu nueva página de confirmación.

A continuación, busca el nuevo pago en el Dashboard de Stripe. Los pagos efectuados correctamente aparecen en la del Dashboard lista de pagos. Cuando haces clic en un pago, te redirige a la página de datos del pago. La sección Resumen de pagos contiene información de facturación y la lista de artículos comprados, que puedes usar para completar el pedido manualmente.

Administrar eventos posteriores al pago

Stripe envía un evento checkout.session.completed cuando un cliente completa un pago de Checkout Session. Usa la herramienta webhook Dashboard o sigue las indicaciones de la guía de webhooks para recibir y gestionar estos eventos, que pueden hacer que hagas lo siguiente:

  • Envía un correo electrónico de confirmación del pedido a tu cliente.
  • Registra la venta en una base de datos.
  • Inicia el flujo de trabajo de un envío.

Escucha estos eventos en lugar de esperar a que el cliente sea redirigido a tu sitio web. No es fiable activar el cumplimiento únicamente desde la página de inicio de Checkout. Configurar tu integración para escuchar eventos asincrónicos te permite aceptar diferentes tipos de métodos de pago con una sola integración.

Encontrarás más detalles en nuestra guía para completar pedidos con Checkout.

Gestiona los siguientes eventos al cobrar pagos con Checkout:

EventoDescripciónAcción
checkout.session.completedSe envía cuando un cliente completa correctamente una sesión de Checkout.Envía al cliente una confirmación del pedido y completa el pedido.
checkout.session.async_payment_succeededSe envía cuando se efectúa correctamente un pago realizado con un método de pago retrasado, como una deuda directa ACH.Envía al cliente una confirmación del pedido y completa el pedido.
checkout.session.async_payment_failedSe envía cuando falla un pago realizado con un método de pago retrasado, como una deuda directa ACH.Avisa al cliente del fallo y haz que vuelva durante la sesión para intentar el pago de nuevo.

Prueba tu integración

Para probar la integración de tu formulario de pago alojado en Stripe:

  1. Crear una sesión de Checkout.
  2. Completa los datos del pago con un método de la siguiente tabla.
    • Introduce cualquier fecha futura como fecha de caducidad.
    • Introduce cualquier número de 3 dígitos como CVC.
    • Introduce cualquier código postal de facturación.
  3. Haz clic en Pagar. Se te redirigirá a tu success_url.
  4. Ve al Dashboard y busca el pago en la página Transacciones. Si tu pago se ha efectuado correctamente, lo verás en esa lista.
  5. Haz clic en tu pago para ver más detalles, como un resumen de Checkout con la información de facturación y la lista de artículos comprados. Puedes usar esta información para completar el pedido.

Más información sobre probar la integración.

Número de tarjetaSituaciónCómo hacer pruebas
El pago con tarjeta se realiza correctamente y no requiere autenticación.Rellena el formulario de tarjeta de crédito con el número de tarjeta y cualquier fecha de caducidad, CVC y código postal.
El pago con tarjeta requiere autenticación.Rellena el formulario de tarjeta de crédito con el número de tarjeta y cualquier fecha de caducidad, CVC y código postal.
La tarjeta se rechaza con un código de rechazo como, por ejemplo, insufficient_funds.Rellena el formulario de tarjeta de crédito con el número de tarjeta y cualquier fecha de caducidad, CVC y código postal.
La tarjeta UnionPay tiene una longitud variable de 13-19 dígitos.Rellena el formulario de tarjeta de crédito con el número de tarjeta y cualquier fecha de caducidad, CVC y código postal.

Consulta Pruebas para obtener información adicional para probar tu integración.

Tarjetas de prueba

NúmeroDescripción
La transacción se efectúa correctamente y el pago se procesa de inmediato.
Para que el pago se realice correctamente, se requiere la autenticación mediante 3D Secure 2.
Siempre da error con el código de pago rechazado insufficient_funds.

OpcionalCrear productos y precios

Cómo dejar que los clientes decidan qué pagar

Puedes configurar tu sesión de Checkout para aceptar propinas y donaciones o vender productos y servicios con pagos a voluntad.

Antes de crear una sesión de Checkout, puedes crear Productos y Precios por adelantado. Usa productos para representar diferentes bienes físicos o niveles de servicio y Precios para representar los precios de cada producto.

Por ejemplo, puedes crear una camiseta como producto con un precio de 20 USD. Esto te permite actualizar y añadir precios sin necesidad de cambiar los detalles de tus productos subyacentes. Puedes crear productos y precios con el Dashboard de Stripe o con la API. Obtén más información sobre Cómo funcionan los productos y los precios.

La API solo necesita un name para crear un producto. Checkout muestra los atributos name, description, e images del producto que ofrezcas.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/products \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name=T-shirt

A continuación, crea un Precio para definir cuánto cobrarás por tu producto. Esto incluye el coste del producto y la divisa que se va a utilizar.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d product=
{{PRODUCT_ID}}
\ -d unit_amount=2000 \ -d currency=usd

Cada precio que crees tiene un ID. Al crear una Checkout Session, haz referencia al ID del precio y a la cantidad. Si vendes en varias divisas, haz que tu Precio esté en múltiples divisas. El proceso de compra determina la divisa local del cliente automáticamente y la presenta si el Precio lo admite.

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=payment \ -d "line_items[0][price]"={{PRICE_ID}} \ -d "line_items[0][quantity]"=1 \ --data-urlencode success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ --data-urlencode cancel_url="https://example.com/cancel"

OpcionalRellenar automáticamente los datos del cliente
Lado del servidor

Si ya has recopilado el correo electrónico de tu cliente y quieres que se rellene automáticamente en la Checkout Session, especifica customer_email al crear una Checkout Session.

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
:"
\ --data-urlencode customer_email="customer@example.com" \ -d "line_items[0][price]"=
{{PRICE_ID}}
\ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success" \ --data-urlencode cancel_url="https://example.com/cancel"

OpcionalGuardar los datos de los métodos de pago
Lado del servidor

De forma predeterminada, los métodos de pago que se utilizan para hacer un pago único con Checkout no están disponibles para usarlos en el futuro.

Guarda métodos de pago para cargarlos fuera de la sesión

Puedes configurar Checkout para guardar los métodos de pago utilizados para realizar un pago único especificando el argumento payment_intent_data.setup_future_usage. Esto es útil si necesitas capturar un método de pago registrado para usarlo en comisiones futuras, como comisiones de cancelación o de no presentación.

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_creation=always \ -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]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success.html" \ --data-urlencode cancel_url="https://example.com/cancel.html" \ -d "payment_intent_data[setup_future_usage]"=off_session

Si utilizas Checkout en el modo subscription, Stripe guarda automáticamente el método de pago para cargar los pagos posteriores. Los métodos de pago con tarjeta guardados para los clientes que utilizan el modo setup_future_usage o subscription no aparecen para las compras de devolución en Checkout (consulta más información sobre esto a continuación). Te recomendamos que utilices el texto personalizado para incluir un enlace a las condiciones pertinentes relativas al uso de la información de pago guardada.

Precaución

Las leyes internacionales de privacidad son complicadas y tienen muchos matices. Te recomendamos que te pongas en contacto con tu equipo legal y de privacidad antes de implementar setup_future_usage, ya que podría afectar a tu marco existente de cumplimiento de la normativa de privacidad. Consulta la guía emitida por el Consejo Europeo de Protección para obtener más información sobre cómo guardar los datos de pago.

Guarda los métodos de pago para completarlos automáticamente en Checkout

De forma predeterminada, el proceso de compra utiliza Link para ofrecer a tus clientes la opción de guardar y reutilizar de forma segura su información de pago. Si prefieres gestionar los métodos de pago tú mismo, utiliza saved_payment_method_options.payment_method_save al crear una sesión de proceso de compra para permitir que tus clientes guarden sus métodos de pago para futuras compras durante el proceso de compra.

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_creation=always \ -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]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success.html" \ --data-urlencode cancel_url="https://example.com/cancel.html" \ -d "saved_payment_method_options[payment_method_save]"=enabled

Si se especifica este parámetro en el modo de pago o suscripción, se muestra una casilla de verificación opcional que permite a los clientes guardar explícitamente su método de pago para futuras compras. Cuando los clientes marcan esta casilla, Checkout guarda el método de pago con allow_redisplay: siempre. Checkout utiliza este parámetro para determinar si un método de pago puede completarse automáticamente en futuras compras. Cuando uses saved_payment_method_options.payment_method_save, no necesitarás transferir setup_future_usage para guardar el método de pago.

Para usar saved_payment_method_options.payment_method_save se requiere un Customer. Para guardar un nuevo cliente, establece el valor de la sesión de Checkout customer_creation en always. De lo contrario, la sesión no guarda el cliente ni el método de pago.

Si no se especifica payment_method_save o si el cliente no acepta guardar el método de pago, Checkout aún guarda los métodos de pago creados en modo subscription o que utilizan setup_future_usage. Estos métodos de pago tienen un valor allow_redisplay de limited, lo que evita que se rellenen previamente para devolver compras y te permite cumplir con las reglas de la red de tarjetas y las normativas de protección de datos. Aprende a cambiar el comportamiento predeterminado habilitado por estos modos y cómo cambiar o anular el comportamiento allow_redisplay.

Nota

Puedes usar Checkout para guardar tarjetas y otros métodos de pago para cargarlas fuera de la sesión, pero Checkout solo rellena automáticamente las tarjetas guardadas. Descubre cómo rellenar automáticamente tarjetas guardadas. Para guardar un método de pago sin un pago inicial, usa Checkout en el modo de configuración.

Permite que los clientes eliminen los métodos de pago guardados

Para permitir que tus clientes eliminen un método de pago guardado para que no vuelva a aparecer en pagos futuros, usa saved_payment_method_options.payment_method_remove al crear una sesión de Checkout.

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]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success.html" \ --data-urlencode cancel_url="https://example.com/cancel.html" \ -d "saved_payment_method_options[payment_method_remove]"=enabled

El cliente no puede eliminar un método de pago si está vinculado a una suscripción activa y el cliente no tiene un método de pago predeterminado guardado para los pagos de facturas y suscripciones.

OpcionalSeparar la autorización y la captura
Lado del servidor

Stripe acepta los pagos con tarjeta en dos pasos, de modo que primero puedes autorizar una tarjeta y luego capturar los fondos. Cuando Stripe autoriza un pago, el emisor de la tarjeta garantiza los fondos y retiene el importe del pago en la tarjeta del cliente. Luego, tienes un cierto período para capturar los fondos, dependiendo de la tarjeta). Si no capturas el pago antes de que caduque la autorización, el pago se cancela y el emisor libera los fondos retenidos.

Separar la autorización de la captura es útil si necesitas tomar medidas adicionales entre la confirmación de que el cliente puede pagar y el cobro de los fondos. Por ejemplo, si vendes artículos de existencias limitadas y un cliente compra un producto con Checkout, es posible que tengas que confirmar si hay existencias del artículo antes de capturar el pago y completar la compra. Para conseguirlo, usa el siguiente flujo de trabajo:

  1. Confirma que Stripe ha autorizado el método de pago del cliente.
  2. Consulta tu sistema de gestión de inventario para confirmar que el artículo sigue disponible.
  3. Actualiza tu sistema de gestión de inventario para indicar que un cliente ha comprado el artículo.
  4. Captura el pago del cliente.
  5. Si la compra se realiza correctamente, informa a tu cliente en tu página de confirmación.

Para indicar que deseas separar la autorización y la captura, debes establecer el valor de payment_intent_data.capture_method en manual al crear la sesión de Checkout. Esto le indica a Stripe que solo debe autorizar el importe de la tarjeta del cliente.

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 "line_items[0][price]"={{PRICE_ID}} \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ -d "payment_intent_data[capture_method]"=manual \ --data-urlencode success_url="https://example.com/success.html" \ --data-urlencode cancel_url="https://example.com/cancel.html"

Para capturar un pago no capturado, puedes utilizar el punto de conexión del Dashboard o de captura. La captura de pagos mediante programación requiere acceso a los PaymentIntent creados durante la sesión de Checkout, que puedes obtener desde el objeto Session.

OpcionalGestión de cuentas de clientes
Sin programación

Permite a tus clientes gestionar sus propias cuentas compartiendo un enlace a tu portal de clientes. El portal de clientes permite a los clientes iniciar sesión con su correo electrónico para gestionar las suscripciones, actualizar los métodos de pago, etc.

Véase también

  • Añade descuentos
  • Recauda impuestos
  • Recopila ID fiscales
  • Añade envío
  • Personaliza tu imagen de marca
¿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
Code quickstart
Guías relacionadas
API Elements Appearance
Más escenarios de pago
Cómo funcionan las tarjetas