# Configurer un abonnement avec Revolut Pay Découvrez comment créer et facturer un abonnement avec Revolut Pay. Utilisez ce guide pour configurer un *abonnement* (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) en utilisant [Revolut Pay](https://docs.stripe.com/payments/revolut-pay.md) comme moyen de paiement. # API SetupIntents > This is a API SetupIntents for when api-integration is setupintents. View the full page at https://docs.stripe.com/billing/subscriptions/revolut-pay?api-integration=setupintents. Créez et confirmez un abonnement à l’aide de deux appels à l’API. Le [premier appel à l’API](https://docs.stripe.com/billing/subscriptions/revolut-pay.md#create-setup-intent) utilise l’[API Setup Intents](https://docs.stripe.com/api/setup_intents.md) pour définir Revolut Pay comme moyen de paiement. Le [deuxième appel à l’API](https://docs.stripe.com/billing/subscriptions/revolut-pay.md#create-subscription) envoie les informations relatives au client, au produit et au moyen de paiement à [l’API Subscriptions](https://docs.stripe.com/api/subscriptions.md) pour créer un objet Subscription et confirmer un paiement en un seul appel. ## Créer un produit et un tarif [Dashboard] Les [produits](https://docs.stripe.com/api/products.md) correspondent aux articles ou services que vous vendez. Les [tarifs](https://docs.stripe.com/api/prices.md) définissent le montant et la fréquence des paiements facturés pour un produit. Le tarif prend en compte la valeur du produit, la devise que vous acceptez et s’il s’agit d’un paiement ponctuel ou récurrent. Si vous n’avez que quelques produits et tarifs, créez-les et gérez-les dans le Dashboard. Ce guide prend comme exemple un service de banque d’images qui débite ses clients d’un montant de 15 GBP pour un abonnement mensuel. Pour modéliser ceci : 1. Go to the [Products](https://dashboard.stripe.com/products?active=true) page and click **Create product**. 1. Saisissez un **Nom** pour le produit. Vous pouvez éventuellement ajouter une **Description** et télécharger une image du produit. 1. Select a **Product tax code**. Learn more about [product tax codes](https://docs.stripe.com/tax/tax-codes.md). 1. Sélectionnez **Récurrent**. Saisissez ensuite **** pour le prix et sélectionnez **** comme devise. 1. Choose whether to **Include tax in price**. You can either use the default value from your [tax settings](https://dashboard.stripe.com/test/settings/tax) or set the value manually. In this example, select **Auto**. 1. Pour **Période de facturation**, sélectionnez **Mensuel**. 1. Click **More pricing options**. Then select **Flat rate** as the pricing model for this example. Learn more about [flat rate](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) and other [pricing models](https://docs.stripe.com/products-prices/pricing-models.md). 1. Add an internal **Price description** and [Lookup key](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) to organize, query, and update specific prices in the future. 1. Cliquez sur **Suivant**. Cliquez ensuite sur **Ajouter un produit**. Après avoir créé le produit et le tarif, enregistrez l’ID de tarif de manière à pouvoir l’utiliser dans les étapes ultérieures. La page des tarifs affiche l’ID dont le format est similaire à ce qui suit : `price_G0FvDp6vZvdwRZ`. ## Créer un SetupIntent [Côté serveur] Créez un objet [SetupIntent](https://docs.stripe.com/api/setup_intents.md) pour enregistrer le moyen de paiement d’un client en vue de paiements futurs. Le `SetupIntent` permet de suivre les étapes de ce processus de configuration. ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -d confirm=true \ --data-urlencode "return_url=https://www.stripe.com" \ -d usage=off_session \ -d customer=cus_ODQluYFNl44ODI \ -d "payment_method_data[type]=revolut_pay" \ -d "payment_method_types[]=revolut_pay" \ -d "mandate_data[customer_acceptance][type]=online" \ -d "mandate_data[customer_acceptance][online][ip_address]=127.0.0.0" \ -d "mandate_data[customer_acceptance][online][user_agent]=device" ``` L’objet SetupIntent contient un `client_secret`, une clé unique que vous devez transmettre à Stripe.js côté client afin de rediriger votre acheteur vers Revolut Pay et autoriser le mandat. ## Créer un abonnement [Côté serveur] Créez un abonnement avec un tarif et un client. Définissez la valeur du paramètre `default_payment_method` sur l’ID de PaymentMethod contenu dans la réponse SetupIntent. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} \ -d "items[0][price]={{PRICE_ID}}" \ -d default_payment_method={{PAYMENT_METHOD_ID}} \ -d off_session=true ``` Dans le cadre d’un abonnement, le client est débité automatiquement selon le moyen de paiement préconfiguré par défaut. Lorsqu’un paiement aboutit, son état dans le Dashboard Stripe bascule sur **Actif**. Le tarif que vous avez configuré détermine le montant des prochaines factures. Découvrez comment [créer un abonnement avec une période d’essai gratuit](https://docs.stripe.com/billing/subscriptions/revolut-pay.md#trial-periods). # API Subscriptions > This is a API Subscriptions for when api-integration is subscription. View the full page at https://docs.stripe.com/billing/subscriptions/revolut-pay?api-integration=subscription. Créez et confirmez un objet Subscription à l’aide de deux appels à l’API. Le [premier appel à l’API](https://docs.stripe.com/billing/subscriptions/revolut-pay.md#pi-create-subscription) envoie les informations concernant le client et le produit à l’[API Subscriptions](https://docs.stripe.com/api/subscriptions.md) pour créer à la fois un objet Subscription et un objet PaymentIntent. La réponse contient un ID de PaymentIntent, que vous devez utiliser dans un appel à l’[API Payment Intents](https://docs.stripe.com/api/payment_intents.md) pour [confirmer un paiement](https://docs.stripe.com/billing/subscriptions/revolut-pay.md#pi-confirm-payment). ## Créer un produit et un tarif [Dashboard] Les [produits](https://docs.stripe.com/api/products.md) correspondent aux articles ou services que vous vendez. Les [tarifs](https://docs.stripe.com/api/prices.md) définissent le montant et la fréquence des paiements facturés pour un produit. Le tarif prend en compte la valeur du produit, la devise que vous acceptez et s’il s’agit d’un paiement ponctuel ou récurrent. Si vous n’avez que quelques produits et tarifs, créez-les et gérez-les dans le Dashboard. Ce guide prend comme exemple un service de banque d’images qui débite ses clients d’un montant de 15 GBP pour un abonnement mensuel. Pour modéliser ceci : 1. Go to the [Products](https://dashboard.stripe.com/products?active=true) page and click **Create product**. 1. Saisissez un **Nom** pour le produit. Vous pouvez éventuellement ajouter une **Description** et télécharger une image du produit. 1. Select a **Product tax code**. Learn more about [product tax codes](https://docs.stripe.com/tax/tax-codes.md). 1. Sélectionnez **Récurrent**. Saisissez ensuite **** pour le prix et sélectionnez **** comme devise. 1. Choose whether to **Include tax in price**. You can either use the default value from your [tax settings](https://dashboard.stripe.com/test/settings/tax) or set the value manually. In this example, select **Auto**. 1. Pour **Période de facturation**, sélectionnez **Mensuel**. 1. Click **More pricing options**. Then select **Flat rate** as the pricing model for this example. Learn more about [flat rate](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) and other [pricing models](https://docs.stripe.com/products-prices/pricing-models.md). 1. Add an internal **Price description** and [Lookup key](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) to organize, query, and update specific prices in the future. 1. Cliquez sur **Suivant**. Cliquez ensuite sur **Ajouter un produit**. Après avoir créé le produit et le tarif, enregistrez l’ID de tarif de manière à pouvoir l’utiliser dans les étapes ultérieures. La page des tarifs affiche l’ID dont le format est similaire à ce qui suit : `price_G0FvDp6vZvdwRZ`. ## Créer un abonnement [Côté serveur] Créez un [abonnement](https://docs.stripe.com/api/subscriptions.md) avec un tarif et un client avec l’état `incomplete` en attribuant au paramètre [payment_behavior](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) la valeur `default_incomplete`. Définissez le paramétrage `payment_settings.save_default_payment_method=on_subscription` pour enregistrer un moyen de paiement lors de l’activation de l’abonnement. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} \ -d payment_behavior=default_incomplete \ -d "items[0][price]={{PRICE_ID}}" \ -d "payment_settings[save_default_payment_method]=on_subscription" \ -d "expand[0]=latest_invoice.payments" \ -d "expand[1]=latest_invoice.confirmation_secret" ``` La réponse inclut la première [facture](https://docs.stripe.com/api/invoices.md) de l’*abonnement* (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). Celui-ci contient les paiements de la facture, qui inclut un PaymentIntent par défaut que Stripe a généré pour cette facture et la clé secrète de confirmation que vous pouvez envoyer au client afin qu’il finalise le processus de paiement en toute sécurité au lieu de lui transmettre la totalité de l’objet PaymentIntent. Renvoyez le `latest_invoice.confirmation_secret.client_secret` au front-end pour finaliser le paiement. Obtenez l’ID PaymentIntent que vous devez utiliser pour confirmer un paiement provenant de `latest_invoice.payments`. Découvrez comment [créer un abonnement avec une période d’essai gratuite](https://docs.stripe.com/billing/subscriptions/revolut-pay.md#trial-periods). ## Confirmer un paiement [Côté serveur] Confirmez un paiement avec l’API [PaymentIntents](https://docs.stripe.com/api/payment_intents.md) à l’aide de l’ID de PaymentIntent contenu dans la réponse de l’objet Subscriptions. Ajoutez ensuite l’idée de PaymentIntent à l’URL et définissez la valeur du paramètre `payment_method_types` sur `revolut_pay` : ```curl curl https://api.stripe.com/v1/payment_intents/:id/confirm \ -u "<>:" \ -d "payment_method_data[type]=revolut_pay" \ --data-urlencode "return_url=https://www.stripe.com" \ -d "mandate_data[customer_acceptance][type]=online" \ -d "mandate_data[customer_acceptance][online][ip_address]=127.0.0.0" \ -d "mandate_data[customer_acceptance][online][user_agent]=device" \ -d "mandate_data[customer_acceptance][accepted_at]=1660000000" ``` La réponse du PaymentIntent inclut l’état `requires_action`, qui indique que vos utilisateurs doivent s’identifier auprès de Revolut Pay pour effectuer le PaymentIntent. Une fois le paiement abouti, l’abonnement devient actif et le moyen de paiement est enregistré comme moyen de paiement par défaut. # Une page hébergée par Stripe > This is a Une page hébergée par Stripe for when api-integration is checkout. View the full page at https://docs.stripe.com/billing/subscriptions/revolut-pay?api-integration=checkout. Vous pouvez utiliser l’[API Checkout](https://docs.stripe.com/api/checkout/sessions.md) pour créer et confirmer un abonnement avec une page de paiement préconfigurée. ## Créer un produit et un tarif [Dashboard] Les [produits](https://docs.stripe.com/api/products.md) correspondent aux articles ou services que vous vendez. Les [tarifs](https://docs.stripe.com/api/prices.md) définissent le montant et la fréquence des paiements facturés pour un produit. Le tarif prend en compte la valeur du produit, la devise que vous acceptez et s’il s’agit d’un paiement ponctuel ou récurrent. Si vous n’avez que quelques produits et tarifs, créez-les et gérez-les dans le Dashboard. Ce guide prend comme exemple un service de banque d’images qui débite ses clients d’un montant de 15 GBP pour un abonnement mensuel. Pour modéliser ceci : 1. Go to the [Products](https://dashboard.stripe.com/products?active=true) page and click **Create product**. 1. Saisissez un **Nom** pour le produit. Vous pouvez éventuellement ajouter une **Description** et télécharger une image du produit. 1. Select a **Product tax code**. Learn more about [product tax codes](https://docs.stripe.com/tax/tax-codes.md). 1. Sélectionnez **Récurrent**. Saisissez ensuite **** pour le prix et sélectionnez **** comme devise. 1. Choose whether to **Include tax in price**. You can either use the default value from your [tax settings](https://dashboard.stripe.com/test/settings/tax) or set the value manually. In this example, select **Auto**. 1. Pour **Période de facturation**, sélectionnez **Mensuel**. 1. Click **More pricing options**. Then select **Flat rate** as the pricing model for this example. Learn more about [flat rate](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) and other [pricing models](https://docs.stripe.com/products-prices/pricing-models.md). 1. Add an internal **Price description** and [Lookup key](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) to organize, query, and update specific prices in the future. 1. Cliquez sur **Suivant**. Cliquez ensuite sur **Ajouter un produit**. Après avoir créé le produit et le tarif, enregistrez l’ID de tarif de manière à pouvoir l’utiliser dans les étapes ultérieures. La page des tarifs affiche l’ID dont le format est similaire à ce qui suit : `price_G0FvDp6vZvdwRZ`. ## Créer une session Checkout [Côté serveur] Votre client doit vous autoriser à utiliser son compte Revolut pour de futurs paiements via Stripe Checkout. Vous pourrez ensuite accepter les paiements Revolut. Ajoutez un bouton Checkout à votre site Web qui appelle un endpoint côté serveur pour créer une [session Checkout](https://docs.stripe.com/api/checkout/sessions.md). ```html Checkout
``` Créez une session Checkout en mode `subscription` pour collecter les informations requises. Après avoir créé la 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. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ --data-urlencode "success_url=https://example.com/success" \ -d "line_items[0][price]={{RECURRING_PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d "payment_method_types[0]=card" \ -d "payment_method_types[1]=revolut_pay" \ -d mode=subscription ``` ## Tester votre intégration [Côté serveur] Sélectionnez Revolut Pay comme moyen de paiement et appuyez sur S’abonner. Vous pouvez tester qu’il fonctionne en authentifiant le paiement sur la page de redirection. Le PaymentIntent passe de `requires_action` à `succeeded`.