# Liens profonds sur le portail client Concevez des flux client rationalisés avec l'API du portail client. Si votre intégration utilise des [Accounts configurés par le client](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer), remplacez les références `Customer` et événement dans les exemples de code par les références équivalentes de l’API Accounts v2. Pour plus d’informations, consultez la page [Représenter des clients avec des objets Account](https://docs.stripe.com/connect/use-accounts-as-customers.md). Le [portail client](https://docs.stripe.com/customer-management.md) vous permet de donner à vos clients la possibilité de gérer leurs abonnements et leurs moyens de paiement par eux-mêmes. Si vous souhaitez simplifier les actions de vos clients et personnaliser davantage les flux de travail entre votre propre application et Stripe, vous pouvez créer un [flux](https://docs.stripe.com/api/customer_portal/sessions/object.md#portal_session_object-flow) pour le portail client. ## Flux du portail client Un *flux* est un lien profond personnalisable vers le portail client. Les flux du portail vous permettent de : 1. Créer un lien profond directement vers la page de l’action spécifiée que votre client doit exécuter. Les composants de navigation dans le reste du portail client sont masqués afin que votre client ne se concentre que sur l’action en question. 1. Personnaliser le comportement de redirection une fois que le client a mené à bien l’action : redirigez-le immédiatement vers votre propre URL, vers une page de confirmation hébergée ou vers la page d’accueil du portail. 1. Personnalisez le flux avec des options uniques telles que des codes promotionnels pré-renseignés ou des messages personnalisés. ### Types de flux Le [type](https://docs.stripe.com/api/customer_portal/sessions/create.md#create_portal_session-flow_data-type) d’un flux définit le flux ou l’action que votre client exécutera. Les types de flux actuellement disponibles sont les suivants : | Type de flux | Description | Exemple | | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `payment_method_update` | Utilisez `payment_method_update` pour permettre à votre client d’ajouter un nouveau moyen de paiement. Le moyen de paiement est défini est défini en tant que `customer.invoice_settings.default_payment_method`. | ![Exemple de flux de mise à jour du moyen de paiement](https://b.stripecdn.com/docs-statics-srv/assets/payment_method_update.6f92b4642ce28020952f263360c83014.png) Flux de mise à jour du moyen de paiement | | `subscription_cancel` | Utilisez `subscription_cancel` pour permettre à votre client de résilier un abonnement donné. Vous pouvez personnaliser si l’abonnement annule immédiatement ou à la fin de la période en mettant à jour la configuration de votre portail via l’[API](https://docs.stripe.com/api/customer_portal/configurations/object.md#portal_configuration_object-features-subscription_cancel-mode) ou le [Dashboard](https://dashboard.stripe.com/test/settings/billing/portal). | ![Exemple de flux de résiliation de l'abonnement](https://b.stripecdn.com/docs-statics-srv/assets/subscription_cancel.6943958d0358b97241a1f4d2703d3bfb.png) Flux de résiliation de l’abonnement | | `subscription_update` | Utilisez `subscription_update` pour permettre à votre client de sélectionner différentes options de mise à jour, telles que le passage à un abonnement supérieur ou inférieur, ou la mise à jour du volume de son abonnement actuel. Vous pouvez personnaliser les offres disponibles en mettant à jour la configuration de votre portail via l’[API](https://docs.stripe.com/api/customer_portal/configurations/object.md#portal_configuration_object-features-subscription_update-products) ou le [Dashboard](https://dashboard.stripe.com/test/settings/billing/portal). | ![Exemple de flux de mise à jour de l'abonnement](https://b.stripecdn.com/docs-statics-srv/assets/subscription_update.8426206cdf98ba10d04680b782644b67.png) Flux de mise à jour de l’abonnement | | `subscription_update_confirm` | Utilisez `subscription_update_confirm` pour permettre à votre client de confirmer une mise à jour spécifique de son abonnement. Vous pouvez utiliser cette option lorsque vous disposez de votre propre page de tarifs, mais que vous souhaitez vous décharger de l’affichage des détails de la mise à jour, tels que la facture à venir et les calculs au prorata, de la gestion des échecs de paiement ou de la gestion de [l’authentification 3D Secure](https://docs.stripe.com/payments/3d-secure.md). Vous pouvez également spécifier un bon de réduction ou un code promotionnel à appliquer lors de la mise à jour de l’abonnement. Vous pouvez l’utiliser pour des campagnes promotionnelles lorsque vous offrez une réduction pour passer à une autre offre. | ![Exemple de flux de confirmation de mise à mise à jour de l'abonnement](https://b.stripecdn.com/docs-statics-srv/assets/subscription_update_confirm.5a06b658cc8a15971fdfae54fc7708da.png) Flux de confirmation de la mise à jour de l’abonnement | ## Créer un flux > Les flux du portail client sont une extension de l’[API du portail client](https://docs.stripe.com/api/customer_portal/sessions/create.md). Suivez d’abord les instructions générales pour [intégrer le portail client à l’API](https://docs.stripe.com/customer-management/integrate-customer-portal.md) avant d’utiliser ce guide. Pour créer un flux, spécifiez [flow_data](https://docs.stripe.com/api/customer_portal/sessions/create.md#create_portal_session-flow_data) lorsque vous créez une session de portail. Définissez le [type](https://docs.stripe.com/api/customer_portal/sessions/create.md#create_portal_session-flow_data-type) de flux que votre client doit exécuter. En fonction du `type` de flux, vous devrez peut-être transmettre des données supplémentaires, telles qu’un ID d’abonnement. Vous trouverez ci-dessous des exemples de configuration de chaque type de flux. #### Mise à jour du moyen de paiement ```curl curl https://api.stripe.com/v1/billing_portal/sessions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ --data-urlencode "return_url=https://example.com/account/overview" \ -d "flow_data[type]=payment_method_update" ``` #### Annulation d’abonnement Transmettez la propriété `subscription` à annuler dans `subscription_cancel[subscription]`. ```curl curl https://api.stripe.com/v1/billing_portal/sessions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ --data-urlencode "return_url=https://example.com/account/overview" \ -d "flow_data[type]=subscription_cancel" \ -d "flow_data[subscription_cancel][subscription]={{SUBSCRIPTION_ID}}" ``` #### Mise à jour d'abonnement Transmettez la propriété `subscription` à mettre à jour dans `subscription_update[subscription]`. [Configurez votre portail](https://docs.stripe.com/customer-management/integrate-customer-portal.md#configure) pour définir les produits et les tarifs affichés sur la page en tant qu’options de mise à jour possibles. ```curl curl https://api.stripe.com/v1/billing_portal/sessions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ --data-urlencode "return_url=https://example.com/account/overview" \ -d "flow_data[type]=subscription_update" \ -d "flow_data[subscription_update][subscription]={{SUBSCRIPTION_ID}}" ``` #### Confirmation de mise à jour de l’abonnement Transmettez la propriété `subscription` à actualiser dans `subscription_update_confirm[subscription]`. Vous devez également préciser les postes à modifier dans l’abonnement en transmettant à `subscription_update_confirm[items]` un tableau comportant les `items`. Tout d’abord, récupérez les `items` de l’abonnement actuel en récupérant l’objet `subscription` et en vérifiant [items.data](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items-data). Ensuite, récupérez l’`id`du poste d’abonnement à mettre à jour et transmettez-le dans le tableau `subscription_update_confirm[items]`. Vous pouvez ensuite spécifier un nouveau paramètre `price` ou `quantity` sur le poste afin que votre client puisse le confirmer. Actuellement, un seul poste peut être indiqué et les abonnements comportant plusieurs postes ne peuvent pas être mis à jour. ```curl curl https://api.stripe.com/v1/billing_portal/sessions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ --data-urlencode "return_url=https://example.com/account/overview" \ -d "flow_data[type]=subscription_update_confirm" \ -d "flow_data[subscription_update_confirm][subscription]={{SUBSCRIPTION_ID}}" \ -d "flow_data[subscription_update_confirm][items][0][id]={{SUBSCRIPTIONITEM_ID}}" \ -d "flow_data[subscription_update_confirm][items][0][quantity]=1" \ -d "flow_data[subscription_update_confirm][items][0][price]={{PRICE_ID}}" \ -d "flow_data[subscription_update_confirm][discounts][0][coupon]={{COUPON_ID}}" ``` L’`url` de la session du portail pour la réponse est désormais un lien profond vers le flux que vous avez créé. Utilisez cette URL pour rediriger les clients vers le flux du portail depuis votre site. ## Personnaliser le comportement après exécution Une fois que votre client a correctement exécuté le flux, il voit s’afficher une page de confirmation localisée qui affiche les détails de la mise à jour effectuée. Vous pouvez personnaliser le message de confirmation qui s’affiche sur cette page, rediriger votre client vers l’URL de votre choix ou le rediriger vers la page d’accueil du portail client où les détails complets de son compte lui sont présentés. Pour personnaliser ce comportement, définissez [after_completion](https://docs.stripe.com/api/customer_portal/sessions/create.md#create_portal_session-flow_data-after_completion) sur `flow_data`. L’exemple suivant permet à votre client de résilier son abonnement et le redirige ensuite vers votre propre site : ```curl curl https://api.stripe.com/v1/billing_portal/sessions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ --data-urlencode "return_url=https://example.com/account/overview" \ -d "flow_data[type]=subscription_cancel" \ -d "flow_data[subscription_cancel][subscription]={{SUBSCRIPTION_ID}}" \ -d "flow_data[after_completion][type]=redirect" \ --data-urlencode "flow_data[after_completion][redirect][return_url]=https://example.com/account/subscription_canceled" ``` > La `return_url` de niveau supérieur est un lien vers votre site Web sur lequel le client peut cliquer à tout moment (s’il décide de ne pas résilier, par exemple). Le `flow_data[after_completion][redirect][return_url]` est un lien vers votre site Web après qu’un client a résilié son abonnement.