# Guide de migration de Checkout
Découvrez comment migrer vers les dernières intégrations Stripe.

L’ancienne version de Checkout présentait aux clients une fenêtre modale pour recueillir les informations de carte, et renvoyait un jeton ou une source à votre site Web. En revanche, [Payment Links](https://docs.stripe.com/payment-links.md) et la version actuelle de [Checkout](https://docs.stripe.com/payments/checkout.md) sont des pages de paiement intelligentes hébergées par Stripe qui créent des paiements ou des *abonnements* (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). Les deux intégrations sont compatibles avec 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) dynamique, *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 réutilisation d’objets *Customer* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments) existants et de nombreuses autres fonctionnalités. Vous pouvez également [comparer d’autres intégrations de paiement](https://docs.stripe.com/payments/online-payments.md#compare-features-and-availability) si Payment Links ou Checkout ne correspondent pas à votre cas d’usage.
## Before you begin
Si vous utilisez les [SDK](https://docs.stripe.com/sdks.md) de Stripe, passez à la dernière version.
## Choisissez votre modèle économique
Pour effectuer votre migration depuis l’ancienne version de Checkout, suivez le guide correspondant le mieux à votre modèle économique. Chaque guide recommande un chemin d’intégration avec des exemples de code.
- [Catalogue de produits et tarifications dynamiques](https://docs.stripe.com/payments/checkout/migration.md#api-products)
Si vous avez un catalogue de produits particulièrement fourni ou si vous devez prendre en charge des postes créés de manière dynamique (telles que des dons ou des taxes).
- [Abonnements dynamiques](https://docs.stripe.com/payments/checkout/migration.md#api-subscriptions)
Si vous êtes un fournisseur SaaS facturant ses utilisateurs et devant prendre en charge des fonctionnalités avancées.
- [Plateformes et places de marché Connect](https://docs.stripe.com/payments/checkout/migration.md#connect)
Si vous exploitez une place de marché mettant en relation des prestataires de services et des clients.
- [Enregistrement de moyens de paiement pour utilisation ultérieure](https://docs.stripe.com/payments/checkout/migration.md#setup-mode)
Si vous êtes une entreprise qui ne facture sa clientèle qu’une fois les services rendus.
- [Catalogue de produits simple avec tarification fixe](https://docs.stripe.com/payments/checkout/migration.md#simple-products)
Si vous vendez certains produits à des prix pré-déterminés.
- [Abonnements simples](https://docs.stripe.com/payments/checkout/migration.md#simple-subscriptions)
Si vous êtes un fournisseur SaaS avec un plan d’abonnement mensuel.
En suivant le guide de migration correspondant, vous pouvez également vous référer à la [table de conversion](https://docs.stripe.com/payments/checkout/migration.md#parameter-conversion) pour une mise en correspondance des paramètres spécifiques et des options de configuration.
## Catalogue de produits et tarifications dynamiques
Si vous vendez des produits pour lesquels le montant ou les postes sont déterminés de manière dynamique (par exemple dans le cas d’un catalogue de produits particulièrement fourni ou de dons), consultez la section [Accepter des paiements ponctuels](https://docs.stripe.com/payments/accept-a-payment.md?integration=checkout).
Vous avez peut-être utilisé l’ancienne version de Checkout pour créer un token ou une source côté client, que vous avez ensuite transmis à votre serveur pour créer un paiement. Avec la version actuelle de Checkout, ce flux est inversé. Vous créez d’abord une session sur votre serveur, redirigez votre client vers Checkout et votre client est ensuite de nouveau redirigé vers votre application après le paiement.
### Avant
Avec l’ancienne version de Checkout, vous affichiez le montant et la description dynamiques et collectiez les informations de carte bancaire auprès de votre client.
```html
```
Ensuite, vous transmettiez la source ou le token généré à votre serveur pour le paiement.
#### 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"
```
### Après
Ajoutez sur votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une [session Checkout](https://docs.stripe.com/api/checkout/sessions/create.md).
```html
Buy cool new product
```
Une session Checkout est la représentation programmatique de ce que votre client voit lorsqu’il est redirigé vers le formulaire de paiement. Vous pouvez la configurer à l’aide de différentes options, par exemple :
- Les [postes](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) à facturer
- Les devises à utiliser
Indiquez une `success_url`, à savoir une page de votre site web vers laquelle rediriger votre client une fois le paiement effectué.
```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"
```
Après avoir créé une session Checkout, redirigez votre client vers l’[URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) renvoyée dans la réponse. Si vous devez traiter une commande de marchandises après le paiement, reportez-vous à la section [Traiter des paiements Checkout et Payment Links](https://docs.stripe.com/checkout/fulfillment.md).
## Abonnements dynamiques
Si vous fournissez des services par abonnement déterminés de manière dynamique ou qui nécessitent la prise en charge d’autres fonctionnalités avancées, consultez la page consacrée à la [configuration d’un abonnement](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md).
Vous avez peut-être utilisé l’ancienne version de Checkout pour créer un token ou une source côté client, que vous avez ensuite transmis à votre serveur pour créer un client ou un abonnement. Avec la version actuelle de Checkout, ce flux est inversé. Vous créez d’abord une session sur votre serveur, redirigez votre client vers Checkout et votre client est ensuite de nouveau redirigé vers votre application en cas de succès.
### Avant
Avec l’ancienne version de Checkout, vous affichiez les informations sur l’abonnement et collectiez les informations de carte bancaire auprès de votre client.
```html
```
Ensuite, vous transmettiez la source ou le token généré à votre serveur pour créer un client ou un abonnement.
#### 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
```
### Après
Ajoutez sur votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une [session Checkout](https://docs.stripe.com/api/checkout/sessions/create.md).
```html
Subscribe to cool new service
```
Une session Checkout est la représentation programmatique de ce que votre client voit lorsqu’il est redirigé vers le formulaire de paiement. Vous pouvez la configurer à l’aide de différentes options, par exemple :
- Les [postes](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) à facturer
- Les devises à utiliser
Indiquez une `success_url`, à savoir une page de votre site web vers laquelle rediriger votre client une fois le paiement effectué.
```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"
```
Après avoir créé une session Checkout, redirigez votre client vers l’[URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) renvoyée dans la réponse. Le client est redirigé vers la `success_url` une fois que le client et l’abonnement ont été créés. Si vous devez traiter une commande de services après le paiement, reportez-vous à la section [Traiter des paiements Checkout et Payment Links](https://docs.stripe.com/checkout/fulfillment.md).
## Plateformes et places de marché Connect
Si vous exploitez une plateforme ou une place de marché Connect et créez des paiements impliquant des comptes connectés, utilisez plutôt la version actuelle de Checkout.
L’exemple suivant illustre l’utilisation de l’API Checkout Sessions pour traiter un paiement direct. Vous pouvez également utiliser Checkout et Connect avec des [paiements indirects](https://docs.stripe.com/connect/destination-charges.md?platform=web&ui=stripe-hosted) et des [paiements et transferts distincts](https://docs.stripe.com/connect/separate-charges-and-transfers.md?platform=web&ui=stripe-hosted).
### Avant
Avec l’ancienne version de Checkout, vous collectiez les informations de carte bancaire auprès de votre client côté client.
```html
```
Ensuite, vous transmettiez la source ou le token généré à votre serveur pour créer le paiement au nom du compte connecté.
#### 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}}"
```
### Après
Ajoutez sur votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une [session Checkout](https://docs.stripe.com/api/checkout/sessions/create.md).
```html
Roger's Farm
```
Une session Checkout est la représentation programmatique de ce que votre client voit lorsqu’il est redirigé vers le formulaire de paiement. Vous pouvez la configurer à l’aide de différentes options, par exemple :
- Les [postes](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) à facturer
- Les devises à utiliser
Indiquez une `success_url`, à savoir une page de votre site web vers laquelle rediriger votre client une fois le paiement effectué.
```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"
```
Après avoir créé une session Checkout, redirigez votre client vers l’[URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) renvoyée dans la réponse. Si vous devez traiter une commande de marchandises ou de services après le paiement, reportez-vous à la section [Traiter des paiements Checkout et Payment Links](https://docs.stripe.com/checkout/fulfillment.md).
## Enregistrement de moyens de paiement pour utilisation ultérieure
Si vous fournissez des services pour lesquels vos clients ne sont pas facturés immédiatement, consultez le guide [Configurer des paiements ultérieurs](https://docs.stripe.com/payments/save-and-reuse.md?platform=checkout).
Vous avez peut-être utilisé l’ancienne version de Checkout pour créer un token ou une source côté client, que vous avez ensuite transmis à votre serveur afin de l’enregistrer pour une utilisation future. Avec la version actuelle de Checkout, ce flux est inversé. Vous créez d’abord une session sur votre serveur, redirigez votre client vers Checkout et votre client est ensuite de nouveau redirigé vers votre application en cas de succès.
### Avant
Avec l’ancienne version de Checkout, vous affichiez les informations sur le paiement et collectiez les informations de carte bancaire auprès de votre client.
```html
```
Ensuite, vous transmettiez le token ou la source qui en résultait à votre serveur pour à terme créer un paiement.
#### 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"
```
### Après
Ajoutez sur votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une [session Checkout](https://docs.stripe.com/api/checkout/sessions/create.md).
```html
Cleaning service
```
Une session Checkout est la représentation programmatique de ce que votre client voit lorsqu’il est redirigé vers le formulaire de paiement. Vous pouvez la configurer à l’aide de différentes options, par exemple :
- Les [postes](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) à facturer
- Les devises à utiliser
Indiquez une `success_url`, à savoir une page de votre site web vers laquelle rediriger votre client une fois le paiement effectué.
```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}"
```
Après avoir créé une session Checkout, redirigez votre client vers l’[URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) renvoyée dans la réponse pour collecter ses informations de paiement. Le client est redirigé vers la `success_url` une fois toutes les étapes effectuées. Lorsque vous souhaitez encaisser un paiement, [récupérez le SetupIntent](https://docs.stripe.com/payments/checkout/save-and-reuse.md?payment-ui=stripe-hosted#retrieve-checkout-session) de la session Checkout et utilisez-le pour préparer la transaction.
## Catalogue de produits simple avec tarification fixe
Si vous vendez des produits dont les prix sont fixes (tels que des T-shirts ou des livres numériques), consultez le guide sur les [liens de paiement](https://docs.stripe.com/payment-links/create.md). Vous avez peut-être utilisé l’ancienne version de Checkout pour créer un token ou une source sur le client, et l’avez transmis(e) à votre serveur pour créer un paiement.
### Avant
Avec l’ancienne version de Checkout, vous affichiez le montant et la description et collectiez les informations de carte bancaire auprès de votre client.
```html
```
Ensuite, vous transmettiez la source ou le token généré à votre serveur pour créer un client ou un paiement.
#### 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"
```
### Après
Créez un [produit](https://docs.stripe.com/api/products.md) et un [tarif](https://docs.stripe.com/api/prices.md) représentant le poste. L’exemple suivant crée un produit intégré. Vous pouvez également créer ces objets dans le [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"
```
Créez un [lien de paiement](https://dashboard.stripe.com/payment-links/create) dans le Dashboard en utilisant le produit et le tarif. Après avoir créé le lien, cliquez sur le **bouton Acheter** pour configurer le design et générer le code que vous pouvez copier et coller sur votre site Web.
#### HTML
```html
Purchase your new kit
```
## Abonnements simples
Si vous proposez un simple service d’abonnement (comme l’accès mensuel à un logiciel), consultez le guide sur les [liens de paiement](https://docs.stripe.com/payment-links/create.md). Vous avez peut-être utilisé l’ancienne version de Checkout pour créer un token ou une source sur le client, et l’avez transmis(e) à votre serveur pour créer un client et un abonnement.
### Avant
Avec l’ancienne version de Checkout, vous affichiez les informations sur l’abonnement et collectiez les informations de carte bancaire auprès de votre client.
```html
```
Ensuite, vous transmettiez la source ou le token généré à votre serveur pour créer un client ou un abonnement.
#### 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
```
### Après
Créez un [produit](https://docs.stripe.com/api/products.md) et un [tarif](https://docs.stripe.com/api/prices.md) représentant l’abonnement. L’exemple suivant crée un produit intégré. Vous pouvez également créer ces objets dans le [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"
```
Créez un [lien de paiement](https://dashboard.stripe.com/payment-links/create) dans le Dashboard en utilisant le produit et le tarif. Après avoir créé le lien, cliquez sur le **bouton Acheter** pour configurer le design et générer le code que vous pouvez copier et coller sur votre site Web.
#### HTML
```html
Purchase your new kit
```
## Conversion des paramètres
La version actuelle de Checkout prend en charge la plupart des fonctionnalités de l’ancienne version, mais les deux ne partagent pas la même API. Le tableau suivant compare les paramètres et les options de configuration entre l’ancienne version et la version actuelle. Pour connaître la liste complète des options de configuration, consultez la page [Sessions Checkout](https://docs.stripe.com/api/checkout/sessions.md).
| Ancienne version | Version actuelle | Conseils pour l’intégration |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `allowRememberMe` | Non pris en charge | Réutilisez les clients existants en spécifiant le paramètre `client` lors de la création d’une [Checkout Session](https://docs.stripe.com/api/checkout/sessions/create.md). Vous pouvez également activer [Link](https://docs.stripe.com/payments/link/checkout-link.md) pour permettre à vos clients d’enregistrer et de réutiliser leurs informations de paiement en toute sécurité. |
| `amount` | Calculé automatiquement comme la somme des montants sur tous les `line_items` | Le montant total est la somme des postes que vous passez dans Checkout. |
| `billingAddress` | `Session.billing_address_collection` | Checkout recueille automatiquement l’adresse de facturation lorsqu’elle est requise à des fins de prévention de la fraude ou de réglementation. Configurez ce paramètre sur `required` pour recueillir systématiquement l’adresse de facturation. |
| `closed` | Lorsqu’un client souhaite fermer la page de paiement, il ferme l’onglet du navigateur. |
| `currency` | `Session.currency` | |
| `description` | `Session.line_items.description` ou `product.description` | Si vous indiquez un prix, Checkout génère automatiquement une description pour la fréquence des paiements. Si vous définissez le paramètre `Session.line_items`, Checkout affiche le nom de chaque poste dans le paramètre`name`. |
| `email` | `Session.customer_email` | Si vous connaissez déjà l’adresse e-mail de votre client, vous pouvez la renseigner automatiquement avec [customer_email](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer_email) lorsque vous créez la session Checkout. |
| `image` | **Marque de l’entreprise** : chargez le logo ou l’icône de votre entreprise dans le Dashboard.
**Images de produit** : précisez les images pour chaque poste avec `product.images`. | Checkout utilise des images spécifiques pour la [marque](https://docs.stripe.com/payments/checkout/customization/appearance.md#branding) de votre entreprise et les produits que vous vendez. Checkout affiche votre logo d’entreprise par défaut et retourne sur l’icône de votre entreprise à côté du nom de votre entreprise. |
| `key` | Ce n’est plus un paramètre passé dans Checkout | |
| `locale` | `Session.locale` | Vous pouvez spécifier une [localité](https://docs.stripe.com/payments/checkout/custom-components.md#localization) de prise en charge lors de la création d’une Checkout Session. |
| `name` | `product.name` pour les prix précisés dans `Session.line_items` | Si vous indiquez un prix, Checkout affiche le nom du produit associé à ce prix. Si vous définissez le paramètre `Session.line_items`, Checkout affiche le paramètre `name` de chaque poste. |
| `panelLabel` | `submit_type` | Checkout personnalise automatiquement le texte du bouton en fonction des éléments que vous vendez. Pour les paiements ponctuels, utilisez [submit_type](https://docs.stripe.com/payments/checkout/custom-components.md#submit-button) pour personnaliser le texte du bouton. |
| `shippingAddress` | `session.shipping_address_collection` | Pour [collecter des informations sur l’adresse de livraison](https://docs.stripe.com/payments/collect-addresses.md?payment-ui=checkout), transmettez un tableau `allowed_countries` de pays autorisés pour l’expédition. |
| `token` ou `source` | `success_url` | Il n’y a plus de callback en JavaScript lorsque le paiement est terminé. Comme votre client paie sur une page différente, définissez la `success_url` pour rediriger votre client après qu’il a effectué le paiement. |
| `zipCode` | Automatiquement recueilli par Checkout | Checkout recueille automatiquement le code postal lorsqu’il est requis à des fins de prévention de la fraude ou de réglementation. |
## See also
- [Ajouter d’autres moyens de paiement](https://docs.stripe.com/payments/payment-methods/overview.md)
- [Collecter des adresses et des numéros de téléphone](https://docs.stripe.com/payments/collect-addresses.md)