# Guía de migración de Checkout Aprende a migrar a las últimas integraciones de Stripe. ![](https://b.stripecdn.com/docs-statics-srv/assets/migration.4db0b4061fb36d6a43762c3f23ef9c00.png) La versión heredada de Checkout presentaba a los clientes un cuadro de diálogo para recopilar los datos de tarjeta y devolvía un token o una fuente a tu sitio web. En cambio, [Payment Links](https://docs.stripe.com/payment-links.md) y la nueva versión de [Checkout](https://docs.stripe.com/payments/checkout.md) son páginas de pagos inteligentes alojadas por Stripe que crean pagos o *suscripciones* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis). Ambas integraciones admiten Apple Pay, Google Pay, *3D Secure dinámico* (3D Secure (3DS) provides an additional layer of authentication for credit card transactions that protects businesses from liability for fraudulent card payments), *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients), la reutilización de *clientes* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments) existentes y muchas otras funcionalidades. También puedes [comparar otras integraciones de pago](https://docs.stripe.com/payments/online-payments.md#compare-features-and-availability) si Payment Links o Checkout no se ajustan a tu caso de uso. ## Before you begin Si usas las [SDK](https://docs.stripe.com/sdks.md) de Stripe, actualiza a la última versión. ## Elige tu modelo de negocio Para migrar de la versión heredada de Checkout, sigue la guía que se ajuste mejor a tu modelo de negocio. Cada guía recomienda una ruta de integración junto con un código de ejemplo. - [Catálogo de productos y precios dinámicos](https://docs.stripe.com/payments/checkout/migration.md#api-products) Por ejemplo, tienes un gran catálogo de productos o necesitas compatibilidad para ítems de factura generados en forma dinámica (como donaciones o impuestos). - [Suscripciones dinámicas](https://docs.stripe.com/payments/checkout/migration.md#api-subscriptions) Si eres proveedor de SaaS que factura a sus usuarios y necesita compatibilidad para funciones avanzadas. - [Plataformas y marketplaces Connect](https://docs.stripe.com/payments/checkout/migration.md#connect) Si operas un marketplace que conecta a proveedores de servicios con clientes. - [Cómo guardar métodos de pago para uso futuro](https://docs.stripe.com/payments/checkout/migration.md#setup-mode) Si operas una empresa que les cobra a los clientes recién después de la prestación de los servicios. - [Catálogo simple de productos con precios fijos](https://docs.stripe.com/payments/checkout/migration.md#simple-products) Si vendes algunos productos con precios predeterminados. - [Suscripciones simples](https://docs.stripe.com/payments/checkout/migration.md#simple-subscriptions) Si eres un proveedor de SaaS con un plan de suscripción mensual. Al seguir la guía de migración correspondiente, también puedes consultar la [tabla de conversión](https://docs.stripe.com/payments/checkout/migration.md#parameter-conversion) para establecer las correspondencias de los parámetros y las opciones de configuración específicos. ## Catálogo de productos y precios dinámicos Si vendes productos en los que el importe o las partidas se determinan de forma dinámica (por ejemplo, un gran catálogo de productos o donaciones), consulta [aceptar pagos únicos](https://docs.stripe.com/payments/accept-a-payment.md?integration=checkout). Es posible que hayas utilizado la versión heredada de Checkout para crear un token o una fuente en el cliente, y que lo hayas pasado a tu servidor para crear un cargo. La versión actual de Checkout revierte este flujo: crea una sesión en su servidor, redirige a su cliente a Checkout, quien luego es redirigido a su aplicación después del pago. ### Antes Con la versión heredada de Checkout, mostrabas el importe y la descripción dinámicos y recopilabas los datos de la tarjeta del cliente. ```html
``` A continuación, enviabas el token o la fuente resultante a tu servidor y efectuabas el cargo. #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -d "email"="customer@example.com" \ -d "source"="{{STRIPE_TOKEN}}" curl https://api.stripe.com/v1/charges \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \ -d "description"="Custom t-shirt" \ -d "amount"="{{ORDER_AMOUNT}}" \ -d "currency"="usd" ``` ### Después Agrega un botón de confirmación de compra a tu sitio web que llame a un punto de conexión del lado del servidor para crear una [sesión de Checkout](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Buy cool new product
``` Una sesión de Checkout es la representación mediante programación de lo que ve tu cliente cuando es redirigido al formulario de pago. Puedes configurarla con opciones como estas: - [Partidas](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) a cobrar - Monedas a utilizar Incluye una `success_url` con la URL de una página de tu sitio web a la que se redirige al cliente después de que efectiviza el pago. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=Custom 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" ``` Después de crear una sesión de Checkout, redirige a tu cliente a la [url](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) devuelta en la respuesta. Si necesitas completar los productos comprados después del pago, consulta [Completar los pagos de Checkout y Payment Link payments](https://docs.stripe.com/checkout/fulfillment.md). ## Suscripciones dinámicas Si prestas servicios de suscripción que se determinan en forma dinámica o necesitan compatibilidad con otras funcionalidades avanzadas, consulta [cómo configurar una suscripción](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md). Es posible que hayas utilizado la versión heredada de Checkout para crear un token o una fuente en el cliente, y que lo hayas pasado a tu servidor para crear un cliente y una suscripción. La versión actual de Checkout revierte este flujo: primero creas una sesión en tu servidor, rediriges a tu cliente a Checkout, quien luego es redirigido de nuevo a tu aplicación cuando tiene éxito. ### Antes Con la versión heredada de Checkout, mostrabas los datos de la suscripción y recopilabas los datos de la tarjeta del cliente. ```html
``` A continuación, enviabas el token o la fuente resultante a tu servidor para crear un cliente y una suscripción. #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -d "email"="customer@example.com" \ -d "source"="{{STRIPE_TOKEN}}" curl https://api.stripe.com/v1/subscriptions \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \ -d "items[0][price]"="{PRICE_ID}" \ -d "trial_period_days"=30 ``` ### Después Agrega un botón de confirmación de compra a tu sitio web que llame a un punto de conexión del lado del servidor para crear una [sesión de Checkout](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Subscribe to cool new service
``` Una sesión de Checkout es la representación mediante programación de lo que ve tu cliente cuando es redirigido al formulario de pago. Puedes configurarla con opciones como estas: - [Partidas](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) a cobrar - Monedas a utilizar Incluye una `success_url` con la URL de una página de tu sitio web a la que se redirige al cliente después de que efectiviza el pago. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d "subscription_data[trial_period_days]=30" \ -d mode=subscription \ --data-urlencode "success_url=https://example.com/success" ``` Después de crear una sesión de Checkout, redirige a tu cliente a la [url](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) devuelta en la respuesta. El cliente es redirigido a la `success_url` después de haber creado el cliente y la suscripción. Si necesitas cumplir con los servicios adquiridos después del pago, consulta [Completar los pagos de Checkout y Payment Link payments](https://docs.stripe.com/checkout/fulfillment.md). ## Plataformas y marketplaces Connect Si operas una plataforma o marketplace Connect y creas pagos que involucran cuentas conectadas, piensa en usar la versión actual de Checkout. En el siguiente ejemplo se muestra el uso de la API Checkout Sessions para procesar un cargo Direct. También puedes usar Checkout y Conectar con [cargos a un destino](https://docs.stripe.com/connect/destination-charges.md?platform=web&ui=stripe-hosted) y [cargos y envíos de fondos separados](https://docs.stripe.com/connect/separate-charges-and-transfers.md?platform=web&ui=stripe-hosted). ### Antes Con la versión heredada de Checkout, recopilarás los datos de la tarjeta de tu cliente del lado del cliente. ```html
``` A continuación, enviabas el token o la fuente resultante a tu servidor y efectuabas el cargo en nombre de la cuenta conectada. #### curl ```bash curl https://api.stripe.com/v1/charges \ -u <>: \ -d "source"="{{TOKEN_ID}}" \ -d "description"="10 cucumbers from Roger\"s Farm" \ -d "amount"=2000 \ -d "currency"="usd" \ -d "application_fee_amount"=200 \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" ``` ### Después Agrega un botón de confirmación de compra a tu sitio web que llame a un punto de conexión del lado del servidor para crear una [sesión de Checkout](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Roger's Farm
``` Una sesión de Checkout es la representación mediante programación de lo que ve tu cliente cuando es redirigido al formulario de pago. Puedes configurarla con opciones como estas: - [Partidas](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) a cobrar - Monedas a utilizar Incluye una `success_url` con la URL de una página de tu sitio web a la que se redirige al cliente después de que efectiviza el pago. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "line_items[0][price_data][currency]=usd" \ --data-urlencode "line_items[0][price_data][product_data][name]=Cucumbers from Roger's Farm" \ -d "line_items[0][price_data][unit_amount]=200" \ -d "line_items[0][quantity]=10" \ -d "payment_intent_data[application_fee_amount]=200" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success" ``` Después de crear una sesión de Checkout, redirige a tu cliente a la [url](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) devuelta en la respuesta. Si necesitas cumplir con los bienes o servicios comprados después del pago, consulta [Cumplir con los pagos de Checkout y Payment Link](https://docs.stripe.com/checkout/fulfillment.md). ## Cómo guardar métodos de pago para uso futuro Si prestas servicios que no cobras de inmediato a tus clientes, consulta [cómo configurar pagos futuros](https://docs.stripe.com/payments/save-and-reuse.md?platform=checkout). Es posible que hayas utilizado la versión heredada de Checkout para crear un token o una fuente en el cliente, y que lo hayas pasado a tu servidor para guardarlo para su uso posterior. La versión actual de Checkout revierte este flujo: primero creas una sesión en tu servidor, rediriges a tu cliente a Checkout, quien luego es redirigido de nuevo a tu aplicación cuando tiene éxito. ### Antes Con la versión heredada de Checkout, mostrabas los datos del cargo y recopilabas los datos de la tarjeta del cliente. ```html
``` A continuación, enviarás el token o la fuente resultante a tu servidor para, en última instancia, crear un cargo. #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -d "email"="customer@example.com" \ -d "source"="{{STRIPE_TOKEN}}" curl https://api.stripe.com/v1/charges \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \ -d "description"="Cleaning service" \ -d "amount"="{{ORDER_AMOUNT}}" \ -d "currency"="usd" ``` ### Después Agrega un botón de confirmación de compra a tu sitio web que llame a un punto de conexión del lado del servidor para crear una [sesión de Checkout](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Cleaning service
``` Una sesión de Checkout es la representación mediante programación de lo que ve tu cliente cuando es redirigido al formulario de pago. Puedes configurarla con opciones como estas: - [Partidas](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) a cobrar - Monedas a utilizar Incluye una `success_url` con la URL de una página de tu sitio web a la que se redirige al cliente después de que complete la configuración del pago. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d mode=setup \ -d currency=usd \ --data-urlencode "success_url=https://example.com/success?session_id={CHECKOUT_SESSION_ID}" ``` Después de crear una sesión de Checkout, redirige a tu cliente a la [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) que se devuelve en la respuesta para recopilar los datos del método de pago. Se redirigirá al cliente a la `success_url` una vez completado el flujo. Cuando tengas todo listo para cobrar un pago, [recupera el SetupIntent](https://docs.stripe.com/payments/checkout/save-and-reuse.md?payment-ui=stripe-hosted#retrieve-checkout-session) de la sesión de Checkout y úsalo para preparar la transacción. ## Catálogo simple de productos con precios fijos Si vendes productos con precios fijos (como camisetas o libros electrónicos), consulta la guía sobre [enlaces de pago](https://docs.stripe.com/payment-links/create.md). Es posible que hayas utilizado la versión heredada de Checkout para crear un token o una fuente en el cliente, y que lo hayas pasado a tu servidor para crear un cargo. ### Antes Con la versión heredada de Checkout, mostrabas el importe y la descripción y recopilabas los datos de la tarjeta de tu cliente. ```html
``` A continuación, enviabas el token o la fuente resultante a tu servidor para crear un cliente y un cargo. #### Curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -d "email"="{{STRIPE_EMAIL}}" \ -d "source"="{{STRIPE_TOKEN}}" curl https://api.stripe.com/v1/charges \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \ -d "description"="T-shirt" \ -d "amount"=500 \ -d "currency"="usd" ``` ### Después Crea un [producto](https://docs.stripe.com/api/products.md) y un [precio](https://docs.stripe.com/api/prices.md) que representen el artículo. El siguiente ejemplo crea el producto en línea. También puedes crear estos objetos en el [Dashboard](https://dashboard.stripe.com/test/products). ```curl curl https://api.stripe.com/v1/prices \ -u "<>:" \ -d currency=usd \ -d unit_amount=500 \ -d "product_data[name]=T-shirt" ``` Crea un [enlace de pago](https://dashboard.stripe.com/payment-links/create) en el Dashboard con el Producto y el Precio. Después de crear el enlace, haz clic en el **botón Comprar** para configurar el diseño y generar el código que puedes copiar y pegar en tu sitio web. #### HTML ```html

Purchase your new kit

``` ## Suscripciones simples Si ofreces un servicio de suscripción sencillo (como el acceso mensual al software), consulta la guía en [enlaces de pago](https://docs.stripe.com/payment-links/create.md). Es posible que hayas utilizado la versión heredada de Checkout para crear un token o una fuente en el cliente, y que lo hayas pasado a tu servidor para crear un cliente y una suscripción. ### Antes Con la versión heredada de Checkout, mostrabas los datos de la suscripción y recopilabas los datos de la tarjeta del cliente. ```html
``` A continuación, enviabas el token o la fuente resultante a tu servidor para crear un cliente y una suscripción. #### Curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -d "email"="{{STRIPE_EMAIL}}" \ -d "source"="{{STRIPE_TOKEN}}" curl https://api.stripe.com/v1/subscriptions \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \ -d "items[][price]"="{PRICE_ID}" \ -d "items[][quantity]"=1 ``` ### Después Crea un [producto](https://docs.stripe.com/api/products.md) y un [precio](https://docs.stripe.com/api/prices.md) que representen la suscripción. El siguiente ejemplo crea el producto en línea. También puedes crear estos objetos en el [Dashboard](https://dashboard.stripe.com/test/products). ```curl curl https://api.stripe.com/v1/prices \ -u "<>:" \ -d currency=usd \ -d unit_amount=2000 \ -d "recurring[interval]=month" \ -d "product_data[name]=Gold Tier" ``` Crea un [enlace de pago](https://dashboard.stripe.com/payment-links/create) en el Dashboard con el Producto y el Precio. Después de crear el enlace, haz clic en el **botón Comprar** para configurar el diseño y generar el código que puedes copiar y pegar en tu sitio web. #### HTML ```html

Purchase your new kit

``` ## Conversión de parámetros La versión actual de Checkout admite la mayoría de las funcionalidades de la versión heredada. Sin embargo, no comparten la misma API. En la tabla siguiente se establece las correspondencias de los parámetros y las opciones de configuración entre la versión heredada y la versión actual. Para obtener una lista completa de las opciones de configuración, consulta [Checkout Sessiones](https://docs.stripe.com/api/checkout/sessions.md). | Versión heredada | Versión actual | Consejos de integración | | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `allowRememberMe` | No compatible | Especifica el parámetro `customer` cuando crees una [Checkout Session](https://docs.stripe.com/api/checkout/sessions/create.md) a fin de reutilizar clientes existentes. También puedes habilitar [Link](https://docs.stripe.com/payments/link/checkout-link.md) para permitir que tus clientes guarden y reutilicen de forma segura su información de pago. | | `amount` | Se calcula automáticamente como la suma de los importes de todos los `line_items` | El importe total corresponde a la suma de los ítems de factura especificados en Checkout. | | `billingAddress` | `Session.billing_address_collection` | Checkout recopila automáticamente la dirección de facturación cuando es obligatorio a efectos de la prevención del fraude o conforme a la normativa. Establece este parámetro en `required` para recopilar siempre la dirección de facturación. | | `closed` | Cuando un cliente quiere cerrar Checkout, cierra la pestaña del navegador. | | `currency` | `Session.currency` | | | `description` | `Session.line_items.description` o `product.description` | Si especificas un precio, Checkout muestra una descripción generada automáticamente sobre la frecuencia con que se producen los pagos. Si especificas `Session.line_items`, Checkout muestra el `name` de cada ítem de factura. | | `email` | `Session.customer_email` | Si ya conoces el correo electrónico de tu cliente, puedes completarlo previamente con [customer_email](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer_email) al crear la sesión de Checkout. | | `image` | **Imagen de marca de la empresa**: sube el logotipo o el ícono de tu empresa en el Dashboard. \** Imágenes del producto **: Especifica imágenes para cada partida con `product.images`. | Checkout usa imágenes específicas para la [imagen de marca](https://docs.stripe.com/payments/checkout/customization/appearance.md#branding) de tu empresa y para los productos que vendes. Checkout muestra el logotipo de tu empresa por defecto y recurre al ícono de empresa junto al nombre de tu empresa. | | `key` | Parámetro que ya no se especifica en Checkout | | | `locale` | `Session.locale` | Puedes especificar una [configuración regional](https://docs.stripe.com/payments/checkout/custom-components.md#localization) admitida cuando crees una Checkout Session. | | `name` | `product.name` para precios especificados en `Session.line_items` | Si especificas un precio, Checkout le muestra al cliente el nombre del producto al que pertenece el precio. Si especificas `Session.line_items`, Checkout muestra el `name` de cada ítem de factura. | | `panelLabel` | `submit_type` | Checkout personaliza el texto del botón de forma automática en función de los artículos que vendes. A fin de personalizar el texto del botón para pagos puntuales, utiliza [submit_type](https://docs.stripe.com/payments/checkout/custom-components.md#submit-button). | | `shippingAddress` | `session.shipping_address_collection` | [Recopila los datos de la dirección de envío](https://docs.stripe.com/payments/collect-addresses.md?payment-ui=checkout) especificando una matriz de `allowed_countries` a los que quieres hacer envíos. | | `token` o `source` | `success_url` | Ya no hay una devolución de llamada en JavaScript al completarse el pago. Como tu cliente paga en otra página, establece la `success_url` a la que redirigirás al cliente después de que haya completado el pago. | | `zipCode` | Recopilado automáticamente por Checkout | Checkout recopila automáticamente el código postal cuando es obligatorio a efectos de la prevención del fraude o conforme a la normativa. | ## See also - [Agregar más métodos de pago](https://docs.stripe.com/payments/payment-methods/overview.md) - [Recopilar direcciones y números de teléfono](https://docs.stripe.com/payments/collect-addresses.md)