# Guía de migración de Checkout Cómo 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 aceptan Apple Pay, Google Pay, *3D Secure* (3D Secure (3DS) provides an additional layer of authentication for credit card transactions that protects businesses from liability for fraudulent card payments) dinámico, *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), 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 funciones. 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 los [SDK](https://docs.stripe.com/sdks.md) de Stripe, actualiza a la última versión. ## Elige tu modelo de negocio Para migrar desde la versión heredada de Checkout, sigue la guía que mejor represente 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 un 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 de productos sencillos con precios fijos](https://docs.stripe.com/payments/checkout/migration.md#simple-products) Si vendes algunos productos con precios predeterminados. - [Suscripciones sencillas](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 obtener un mapeo de parámetros y opciones de configuración específicos. ## Catálogo de productos y precios dinámicos Si vendes productos para los que determinas importes o ítems de factura dinámicos (p. ej., porque tienes un gran catálogo de productos o donaciones), consulta [cómo aceptar pagos puntuales](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 invierte este flujo: tú creas una sesión en tu servidor y rediriges a tu cliente a Checkout, que después le redirige a tu aplicación tras el 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 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](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Buy cool new product
``` 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](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) que se cobrarán - Divisas que se van a utilizar Incluye una `success_url` con la URL de una página en tu sitio web a la que se redirige al cliente después de que complete 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 al 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 Checkout y Enlace de Pago](https://docs.stripe.com/checkout/fulfillment.md). ## Suscripciones dinámicas Si ofreces servicios de suscripción determinados de forma dinámica o necesitas compatibilidad para otras funciones avanzadas, consulta [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 invierte este flujo: primero creas una sesión en tu servidor y rediriges a tu cliente a Checkout, que después le redirige a tu aplicación si se realiza correctamente. ### 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 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](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Subscribe to cool new service
``` 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](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) que se cobrarán - Divisas que se van a utilizar Incluye una `success_url` con la URL de una página en tu sitio web a la que se redirige al cliente después de que complete 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 Checkout Session, redirige al cliente a la [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) devuelta en la respuesta. El cliente será redirigido a la `success_url` una vez que se hayan creado el cliente y la suscripción. Si necesitas completar los servicios adquiridos después del pago, consulta [Completar los pagos de Checkout y Payment Link](https://docs.stripe.com/checkout/fulfillment.md). ## Plataformas y marketplaces Connect Si tienes una plataforma o marketplace de Connect y realizas pagos con cuentas conectadas, considera la posibilidad de usar la versión actual de Checkout. El siguiente ejemplo muestra el uso de la API Checkout Sessions para procesar un cargo directo. También puedes usar Checkout y Connect con [cargos indirectos](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 antigua versión de Checkout, recopilabas los datos de 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 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](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Roger's Farm
``` 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](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) que se cobrarán - Divisas que se van a utilizar Incluye una `success_url` con la URL de una página en tu sitio web a la que se redirige al cliente después de que complete 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 al 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 bienes o servicios adquiridos después del pago, consulta [Completar los pagos de Checkout y Payment Link](https://docs.stripe.com/checkout/fulfillment.md). ## Cómo guardar métodos de pago para un uso futuro Si ofreces servicios que no cobran a los clientes de inmediato, consulta [configuración de 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 invierte este flujo: primero creas una sesión en tu servidor, y rediriges a tu cliente a Checkout, que después le redirige a tu aplicación si se realiza correctamente. ### 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, enviabas 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 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](https://docs.stripe.com/api/checkout/sessions/create.md). ```html Cleaning service
``` 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](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) que se cobrarán - Divisas que se van 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 completar 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 Checkout Session, redirige al cliente a la [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) devuelta en la respuesta para recopilar los datos del método de pago. El cliente será redirigido a `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 Checkout Session 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 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 cargo. ### Antes Con la versión heredada de Checkout, mostrabas el importe y la descripció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 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 [Product](https://docs.stripe.com/api/products.md) y un [Price](https://docs.stripe.com/api/prices.md) que representen la partida. 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 [Payment Link](https://dashboard.stripe.com/payment-links/create) en el Dashboard utilizando el Product y el Price. 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 [Product](https://docs.stripe.com/api/products.md) y un [Price](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 [Payment Link](https://dashboard.stripe.com/payment-links/create) en el Dashboard utilizando el Product y el Price. 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 es compatible con la mayoría de las funciones de la versión heredada. Sin embargo, no comparten la misma API. La tabla siguiente muestra 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 Sessions](https://docs.stripe.com/api/checkout/sessions.md). | Versión heredada | Versión actual | Consejos de integración | | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `allowRememberMe` | No compatible | Reutiliza los clientes existentes especificando el parámetro `customer` al crear una [Checkout Sessions](https://docs.stripe.com/api/checkout/sessions/create.md). También puedes habilitar [Link](https://docs.stripe.com/payments/link/checkout-link.md) para que tus clientes puedan guardar y reutilizar 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 las partidas de factura especificadas 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 la que se producen los pagos. Si especificas `Session.line_items`, Checkout muestra el `name` de cada partida. | | `email` | `Session.customer_email` | Si ya conoces el correo electrónico de tu cliente, puedes rellenarlo 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**: carga el logotipo o icono de tu empresa en el Dashboard. **Imágenes del producto**: Especifica imágenes para cada partida con `product.images`. | Checkout utiliza imágenes específicas para la [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 de forma predeterminada y cambia al icono de tu empresa junto con el 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) aceptada al crear una sesión de proceso de compra. | | `name` | `product.name` para precios especificados en `Session.line_items` | Si especificas un precio, Checkout le muestra al cliente el nombre del producto asociado con ese precio y cliente. Si especificas `Session.line_items`, Checkout muestra el `name` de cada ítem de factura. | | `panelLabel` | `submit_type` | El proceso de compra personaliza el texto del botón automáticamente en función de los artículos que vendes. Para 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 - [Añadir 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)