# Fonctionnement de Checkout

Comment utiliser Checkout pour encaisser des paiements sur votre site Web.

Checkout est une intégration de paiement low-code qui permet de créer un formulaire personnalisable afin d’encaisser des paiements.

Les fonctionnalités intégrées de Checkout vous permettent de réduire votre temps de développement. Il accepte plus de 100&nbsp;moyens de paiement, dont [Link](https://docs.stripe.com/payments/link.md), qui permet à vos clients d’enregistrer leurs informations pour un paiement plus rapide. Vous pouvez accepter des paiements en intégrant Checkout directement sur votre site web, en redirigeant les clients vers une page de paiement hébergée par Stripe ou en créant une page personnalisée avec [Stripe Elements](https://docs.stripe.com/payments/elements.md). Checkout gère aussi bien les [achats ponctuels](https://docs.stripe.com/payments/online-payments.md) que les [abonnements](https://docs.stripe.com/subscriptions.md).

Vous pouvez également personnaliser Checkout et accéder à d’autres fonctionnalités avec [Checkout Sessions](https://docs.stripe.com/api/checkout/sessions.md) et le Dashboard Stripe. Pour obtenir la liste complète des fonctionnalités, consultez ses [fonctionnalités intégrées et personnalisables](https://docs.stripe.com/payments/checkout/how-checkout-works.md#features).

# Page entièrement hébergée

![](https://docs.stripecdn.com/how_it_works_hosted.7eedb1ea7079a84bb6a89e1cc033bfed06963fb60f5fb9d94c649fc7e04efb2c.mp4)
## Cycle de vie de Checkout

1. Lorsque les clients sont prêts à finaliser leur achat, votre application crée une nouvelle `Checkout Session`.
2. La `Checkout Session` fournit une URL qui redirige les clients vers une page de paiement hébergée par Stripe.
3. Vos clients saisissent leurs informations de paiement sur la page dédiée et finalisent la transaction.
4. À l’issue de la transaction, un *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) [traite la commande](https://docs.stripe.com/checkout/fulfillment.md) à l’aide de l’événement [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed).

Un diagramme illustrant le cycle de vie d’une intégration de page hébergée (See full diagram at https://docs.stripe.com/payments/checkout/how-checkout-works)

```text
[Client] -- Envoi des informations de commande --> [Serveur]
[Serveur] -- Créer une Checkout Session --> [API Stripe]
[API Stripe] -- checkout.session.created: Renvoyer la Checkout Session --> [Serveur]
[Serveur] -- Redirigez le client vers l’URL issue de la Checkout Session --> [Stripe Checkout]
[Stripe Checkout] -- Le client effectue le paiement --> [Stripe Checkout]
[Stripe Checkout] -- Le client est redirigé vers votre application --> [Client]
[API Stripe] -- checkout.session.completed: Gestion du traitement --> [Serveur]
```

## Intégration avec peu de code

Checkout nécessite un minimum de code et constitue le meilleur choix pour la plupart des intégrations, grâce à ses fonctionnalités préconfigurées et à ses options de personnalisation. Vous pouvez intégrer Checkout en créant une `Checkout Session` et en collectant les informations de paiement de vos clients. Les paiements sont collectés en redirigeant les clients vers une [page de paiement](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=stripe-hosted) hébergée par Stripe.

[Comparez Checkout](https://docs.stripe.com/payments/online-payments.md#compare-features-and-availability) à d’autres options de paiement Stripe pour déterminer celle qui vous convient le mieux. Checkout permet d’afficher des formulaires de paiement pour collecter les informations de paiement des clients, valider les cartes, gérer les erreurs, etc.

## Fonctionnalités

| Caractéristique                                                                                                                         | Personnalisable |
| --------------------------------------------------------------------------------------------------------------------------------------- | --------------- |
| Prise en charge des wallets et de Link                                                                                                  | Intégré         |
| Design mobile adaptatif                                                                                                                 | Intégré         |
| Mise en conformité avec la SCA                                                                                                          | Intégré         |
| Utilisation de CAPTCHA                                                                                                                  | Intégré         |
| Conformité PCI                                                                                                                          | Intégré         |
| Validation de carte                                                                                                                     | Intégré         |
| Messages d’erreur                                                                                                                       | Intégré         |
| [Quantités ajustables](https://docs.stripe.com/payments/checkout/adjustable-quantity.md)                                                | Intégré         |
| [Collecte automatique des taxes](https://docs.stripe.com/tax/checkout.md)                                                               | Intégré         |
| Prise en charge de nombreuses langues                                                                                                   | Intégré         |
| [Adaptive Pricing](https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing.md)                                     | Intégré         |
| [Managed Payments](https://docs.stripe.com/payments/managed-payments/how-it-works.md)                                                   | Personnalisable |
| [Collecte des taxes](https://docs.stripe.com/payments/checkout/taxes.md)                                                                | Personnalisable |
| [Adaptation à votre marque au niveau des couleurs, boutons et polices](https://docs.stripe.com/payments/checkout/customization.md)      | Personnalisable |
| [Articles facultatifs](https://docs.stripe.com/payments/checkout/optional-items.md)                                                     | Personnalisable |
| [Moyens de paiement internationaux](https://docs.stripe.com/payments/dashboard-payment-methods.md)                                      | Personnalisable |
| [Mises à niveau d’abonnements](https://docs.stripe.com/payments/checkout/upsells.md)                                                    | Personnalisable |
| [Domaines personnalisés](https://docs.stripe.com/payments/checkout/custom-domains.md) (uniquement pour les pages entièrement hébergées) | Personnalisable |
| [Envoi de reçus par e-mail](https://docs.stripe.com/receipts.md)                                                                        | Personnalisable |
| [Application de réductions](https://docs.stripe.com/payments/checkout/discounts.md)                                                     | Personnalisable |
| [Page de confirmation de paiement personnalisée](https://docs.stripe.com/payments/checkout/custom-success-page.md)                      | Personnalisable |
| [Récupération des paniers abandonnés](https://docs.stripe.com/payments/checkout/abandoned-carts.md)                                     | Personnalisable |
| [Remplissage automatique des informations de paiement avec Link](https://docs.stripe.com/payments/link/checkout-link.md)                | Personnalisable |
| [Collecte des numéros fiscaux](https://docs.stripe.com/tax/checkout/tax-ids.md)                                                         | Personnalisable |
| [Collecte des informations de livraison](https://docs.stripe.com/payments/collect-addresses.md?payment-ui=checkout)                     | Personnalisable |
| [Collecter les numéros de téléphone](https://docs.stripe.com/payments/checkout/phone-numbers.md)                                        | Personnalisable |
| [Définition de la date de début de facturation de l’abonnement](https://docs.stripe.com/payments/checkout/billing-cycle.md)             | Personnalisable |

### Marquage personnalisé

Vous pouvez configurer les polices, les couleurs, les icônes et les styles de champ de votre page de paiement hébergée par Stripe à l’aide des [paramètres de marque](https://dashboard.stripe.com/settings/branding/checkout) dans le Dashboard. Pour plus d’informations, consultez la rubrique [Personnaliser votre intégration](https://docs.stripe.com/payments/checkout/customization.md).

### Domaines personnalisés

Si vous utilisez la [fonctionnalité de domaine personnalisé](https://docs.stripe.com/payments/checkout/custom-domains.md) de Stripe, vous pouvez servir les pages Checkout hébergées par Stripe sur un sous-domaine de votre domaine personnalisé, cependant cette fonctionnalité est payante. Pour en savoir plus, consultez la section dédiée aux [frais et tarifs](https://stripe.com/pricing).

## Session Checkout

La `Session Checkout` est une représentation programmatique de ce que vos clients voient sur la page de paiement. Après avoir créé une `session Checkout`, redirigez vos clients vers son URL pour finaliser l’achat. Lorsque les clients finalisent leur achat, vous pouvez [traiter leurs commandes](https://docs.stripe.com/checkout/fulfillment.md) en configurant une [destination d’événement](https://docs.stripe.com/events/set-up-events.md) pour traiter les événements de la `session Checkout`. Cet extrait de code issu du [guide de démarrage rapide](https://docs.stripe.com/checkout/quickstart.md) est un exemple de création de `session Checkout` dans votre application.

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "line_items[0][price]={{PRICE_ID}}" \
  -d "line_items[0][quantity]=1" \
  -d mode=payment \
  --data-urlencode "success_url=https://example.com/success" \
  -d integration_identifier=hosted_web_0001
```

### Paiements ponctuels et récurrents

Permettez à vos clients d’effectuer des paiements ponctuels ou de souscrire à un produit ou à un service en définissant le paramètre [mode](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) dans une `Checkout Session`.

| Mode                                                                    | Type d’achat                                                                                  |
| ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| Paiement                                                                | Achats ponctuels                                                                              |
| [Abonnement](https://docs.stripe.com/billing/subscriptions/overview.md) | - Achats récurrents
  - Panier mixte&nbsp;: achats récurrents combinés à des achats ponctuels |

### Panier mixte

Dans Checkout, créez un panier mixte permettant à vos clients d’acheter simultanément des postes d’abonnement et des postes ponctuels. Pour créer un panier mixte, définissez le paramètre `mode` sur `subscription` et incluez les ID de tarif (`price_data`) pour chaque line_item du tableau [line_items](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items). Les ID de tarif proviennent d’objets Price créés à l’aide du Dashboard ou de l’API Stripe et vous permettent d’enregistrer des informations sur votre catalogue de produits dans Stripe.

Vous pouvez également utiliser [price_data](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items-price_data) pour référencer les informations d’une base de données externes relatives à vos tarifs et produits, sans pour autant stocker les informations du catalogue de produits sur Stripe. Pour en savoir plus, consultez la page consacrée à la [création d’une intégration pour les abonnements](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md).

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "line_items[0][price]={{RECURRING_PRICE_ID}}" \
  -d "line_items[0][quantity]=1" \
  -d "line_items[1][price]={{ONE_TIME_PRICE_ID}}" \
  -d "line_items[1][quantity]=1" \
  -d mode=subscription \
  --data-urlencode "success_url=https://example.com/success" \
  -d integration_identifier=hosted_web_0001
```

### Moyens de paiement

Vous pouvez afficher, activer et désactiver différents moyens de paiement à tout moment dans le [Dashboard Stripe](https://dashboard.stripe.com/settings/payment_methods). Stripe active certains moyens de paiement par défaut. Nous pourrons également activer d’autres moyens de paiement après vous en avoir informé(e). Consultez notre [liste complète des moyens de paiement](https://docs.stripe.com/payments/payment-methods/overview.md).

### Enregistrer les informations de paiement et les moyens de paiement par défaut

Vous pouvez [enregistrer les informations de paiement pour une utilisation ultérieure](https://docs.stripe.com/payments/save-and-reuse.md) en transmettant un paramètre d’API lors de la création d’une `Checkout Session`. Les options disponibles pour l’enregistrement des informations de paiement sont les suivantes&nbsp;:

- **Paiement unique**&nbsp;: si votre `Checkout Session` utilise le mode `payment`, définissez le paramètre [payment_intent_data.setup_future_usage](https://docs.stripe.com/payments/payment-intents.md#future-usage).
- **Paiement des abonnements**&nbsp;: si votre `Checkout Session` utilise le mode `subscription`, Stripe enregistre le moyen de paiement par défaut.
- [Plusieurs moyens de paiement enregistrés](https://docs.stripe.com/payments/accept-a-payment.md?platform=web&ui=checkout#save-payment-method-details)&nbsp;: si un client a enregistré plusieurs moyens de paiement, vous pouvez définir l’un d’eux comme moyen de paiement par défaut en indiquant son ID dans [configuration.customer.billing.default_payment_method](https://docs.stripe.com/api/v2/core/accounts/object.md#v2_account_object-configuration-customer-billing-default_payment_method) (objet `Account`) ou [invoice_settings.default_payment_method](https://docs.stripe.com/api/customers/object.md#customer_object-invoice_settings-default_payment_method) (objet `Customer`). Toutefois, ces moyens de paiement ne sont pas proposés lors des achats ultérieurs dans Checkout.

> #### Utiliser l’API Accounts v2 pour représenter les clients
> 
> L’API Accounts&nbsp;v2 est généralement disponible pour les utilisateurs de Connect et en aperçu public pour les autres utilisateurs de Stripe. Si vous avez accès à l’aperçu Accounts&nbsp;v2, vous devez spécifier une [version d’aperçu](https://docs.stripe.com/api-v2-overview.md#sdk-and-api-versioning) dans votre code.
> 
> Pour accéder à l’aperçu Accounts&nbsp;v2, rendez-vous sur [aperçus et fonctionnalités de Account](https://dashboard.stripe.com/settings/previews) dans votre Dashboard et activez **Moyens de paiement réutilisables pour les virements internationaux**.
> 
> Dans la plupart des cas d’usage, nous vous recommandons de [modéliser vos clients en tant qu’objets Account configurés par le client](https://docs.stripe.com/accounts-v2/use-accounts-as-customers.md), plutôt que d’utiliser des objets [Customer](https://docs.stripe.com/api/customers.md).

### Clients invités

Vous pouvez représenter un client de votre entreprise soit sous forme d’objet [Account](https://docs.stripe.com/api/v2/core/accounts/object.md) configuré par le client, soit sous forme d’objet [Customer](https://docs.stripe.com/api/customers/object.md). Ces objets stockent les informations relatives à chaque client et les associent à leurs abonnements et à leurs paiements. Les `Checkout Sessions` qui n’utilisent pas de clients existants ou n’en créent pas sont associées à des [clients invités](https://docs.stripe.com/payments/checkout/guest-customers.md).

> #### Utiliser l’API Accounts v2 pour représenter les clients
> 
> L’API Accounts&nbsp;v2 est généralement disponible pour les utilisateurs de Connect et en aperçu public pour les autres utilisateurs de Stripe. Si vous avez accès à l’aperçu Accounts&nbsp;v2, vous devez spécifier une [version d’aperçu](https://docs.stripe.com/api-v2-overview.md#sdk-and-api-versioning) dans votre code.
> 
> Pour accéder à l’aperçu Accounts&nbsp;v2, rendez-vous sur [aperçus et fonctionnalités de Account](https://dashboard.stripe.com/settings/previews) dans votre Dashboard et activez **Moyens de paiement réutilisables pour les virements internationaux**.
> 
> Dans la plupart des cas d’usage, nous vous recommandons de [modéliser vos clients en tant qu’objets Account configurés par le client](https://docs.stripe.com/accounts-v2/use-accounts-as-customers.md), plutôt que d’utiliser des objets [Customer](https://docs.stripe.com/api/customers.md).

### Date d’expiration

Par défaut, une `Checkout Session` expire au bout de 24&nbsp;heures.

Vous pouvez définir une durée d’expiration personnalisée pour une `Checkout Session` en renseignant le paramètre [expires_at](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-expires_at). Celle-ci peut être comprise entre 30&nbsp;minutes et 24&nbsp;heures après la création de la `Checkout Session`.

Vous pouvez également [faire expirer](https://docs.stripe.com/api/checkout/sessions/expire.md) une `Checkout Session`.

## Finaliser une transaction

Pour automatiser les flux de travail métier après une transaction, configurez une [destination d’événement](https://docs.stripe.com/events/set-up-events.md) et créez un [gestionnaire d’endpoint webhook](https://docs.stripe.com/webhooks/quickstart.md). Voici les événements et automatisations qu’il est recommandé d’activer&nbsp;:

- Traiter l’événement [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) pour réaliser les commandes lorsqu’un client termine son achat.
- Traitez l’événement [checkout.session.expired](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.expired) pour renvoyer les articles dans votre inventaire ou envoyer aux utilisateurs un e-mail d’[abandon de panier](https://docs.stripe.com/payments/checkout/abandoned-carts.md) lorsqu’ils ne valident pas l’achat et que leur panier est sur le point d’expirer.

## Gestion des risques

Pour prévenir la fraude, Stripe utilise des modèles d’IA qui analysent les indicateurs disponibles afin de distinguer les paiements frauduleux des paiements légitimes. En activant [Radar](https://docs.stripe.com/radar/optimize-risk-factors.md) dans Checkout, Stripe s’appuie sur les données de son réseau pour détecter et bloquer les transactions frauduleuses sur l’ensemble de vos intégrations.

Checkout combine les données de session, le contexte de l’appareil et du navigateur, ainsi que les informations sur le cycle de vie du paiement pour fournir un contexte à Radar et améliorer sa précision. Il propose également des interventions ciblées qui renforcent la sécurité des transactions à risque élevé tout en réduisant les frictions pour les clients de confiance.

## Paiement pour les agents

Les pages Stripe Checkout disposent d’une structure et de commandes étiquetées conçues pour aider les clients à finaliser leur paiement, tout en permettant aux agents automatisés de comprendre et de parcourir ces pages. Elles sont également adaptées aux clients ayant des besoins en matière d’accessibilité, tels que ceux qui utilisent des lecteurs d’écran.

Pour prendre en charge les flux de paiement générés par un agent, Stripe fournit également des instructions techniques lorsque celui-ci doit consulter une page Stripe Checkout. Ces instructions peuvent fournir des détails importants tels que la devise, les limites et les étapes suivantes, afin d’aider les agents à finaliser l’achat avec moins de frictions et d’erreurs.


## See also

- [Démarrer rapidement avec Checkout](https://docs.stripe.com/checkout/quickstart.md)
- [Réaliser vos commandes](https://docs.stripe.com/checkout/fulfillment.md)
- [Collecter les taxes dans Checkout](https://docs.stripe.com/payments/checkout/taxes.md)
- [Gérer un inventaire limité avec Checkout](https://docs.stripe.com/payments/checkout/managing-limited-inventory.md)
- [Convertir automatiquement les devises en devises locales grâce à Adaptive Pricing](https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing.md)
