Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
Aperçu
Billing
PrésentationÀ propos des API Billing
Abonnements
    Présentation
    Fonctionnement des abonnements
    Démarrer
    Démarrage rapide
    Planifier une intégration
    Créer une intégration
    Cas d'usage
    À propos des abonnements
    Activer le mode de facturation
    Configurer les événements liés aux abonnements
    Droits d'accès
    Factures d'abonnements
    Planifications d'abonnements
    Modèles tarifaires récurrents
    Authentification forte du client (SCA)
    Configurer des abonnements
    Configurer les méthodes de recouvrement
    Intégrez une grille tarifaire
    Définir des cycles de facturation
    Gérer les abonnements
    Migrer des abonnements vers Stripe
    Définir des quantités de produits ou d'abonnements
    Abonnements présentant des postes à la périodicité différente
    Antidater des abonnements
    Définir des périodes d'essai
    Gérer les abonnements avec paiement différé
    Appliquer des bons de réduction
    Modifier des abonnements
    Gérer les modes de paiement des abonnements
      Prélèvement automatique ACH
      Amazon Pay
      Prélèvement automatique Bacs au Royaume-Uni
      Virement bancaire
      Prélèvement automatique BECS en Australie
      Cash App Pay
      Klarna
      PayPal
      Revolut Pay
      Cartes bancaires coréennes
      Kakao Pay
      Naver Pay
      Débit préautorisé au Canada
      Prélèvement automatique SEPA dans l'UE
      iDEAL via un prélèvement SEPA
      Bancontact via un prélèvement SEPA
    Analyses
    Gérer des abonnement sur iOS
Invoicing
Facturation à la consommation
Devis
Gestion des clients
Facturation avec d'autres produits
Recouvrement de revenus
Automatisations
Tester votre intégration
Tax
Présentation
Utiliser Stripe Tax
Gérer la conformité
Rapports
Présentation
Sélectionner un rapport
Configurer des rapports
API de rapport
Rapports sur plusieurs comptes
Comptabilisation des revenus
Données
PrésentationSchéma
Rapports personnalisés
Data Pipeline
Gestion des données
AccueilRevenusSubscriptionsManage subscription payment methods

Configurer un abonnement avec PayPal

Comment créer un abonnement et débiter votre client avec PayPal.

Exemple Stripe

Découvrez l’exemple GitHub ou explorez la démo.

Suivez ce guide pour configurer un abonnement avec PayPal et Checkout.

Une session Checkout représente les détails de l’intention d’achat de votre client. Créez une session Checkout lorsqu’un client souhaite démarrer un abonnement. Après avoir redirigé un client vers une session Checkout, Stripe affiche un formulaire de paiement qui permet au client d’effectuer son achat. Une fois le paiement finalisé, Stripe redirige le client vers votre site.

Activer les paiements récurrents PayPal

Stripe active automatiquement les paiements récurrents pour la plupart des utilisateurs lorsqu’ils activent les paiements PayPal dans le Dashboard Stripe. Cependant, en raison des politiques de PayPal et des restrictions régionales, vous devrez peut-être activer manuellement les paiements récurrents PayPal dans le Dashboard.

Configurer Stripe
Côté serveur

Pour commencer, vous devez créer un compte Stripe. S’inscrire.

Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Créer des produits et tarifs récurrents

Mise en garde

L’API Prices unifie la modélisation des abonnements et des achats ponctuels sur Stripe. Les intégrations qui n’utilisent pas cette API restent prises en charge, mais certaines fonctionnalités de Checkout ne sont compatibles qu’avec Prices. Pour passer à l’API Prices, consultez le guide de migration.

Pour utiliser Checkout, vous devez d’abord créer un produit et un tarif. Vous devez créer un produit pour chacune de vos marchandises ou chacun de vos niveaux de service. Un produit peut être associé à un ou plusieurs tarifs.

Par exemple, vous pouvez créer un produit logiciel qui dispose de quatre tarifs : 10 USD par mois, 100 USD par an, 9 EUR par mois et 90 EUR par an. Vous pouvez ainsi modifier et ajouter des tarifs sans modifier les informations de vos produits sous-jacents. Pour créer des produits et des tarifs, vous pouvez soit passer par l’API, soit utiliser le Dashboard Stripe.

Si votre tarif est déterminé au moment du paiement (par exemple, lorsque le client fixe le montant d’un don) ou si vous ne souhaitez pas créer de tarif prédéfini, vous pouvez créer des tarifs en série lors de la création d’une session Checkout.

Avant de commencer à configurer les produits, assurez-vous que vous êtes dans un environnement de test. Ensuite, définissez les biens et services que vous prévoyez de vendre. Pour créer un nouveau produit et un nouveau prix :

  • Accédez à la section Produits du Dashboard.
  • Cliquez sur Ajouter un produit.
  • Sélectionnez « Récurrent » lors de la définition du tarif.
  • Configurez le plan tarifaire.

Vous pouvez définir plusieurs plans tarifaires avec différents paramètres pour chaque produit récurrent. Un ID est généré pour chaque tarif, que vous pouvez utiliser comme référence pendant le processus de paiement.

Remarque

Les produits créés dans un environnement de test peuvent être copiés en mode production afin que vous n’ayez pas à les recréer. Dans la vue détaillée du produit du Dashboard, cliquez sur Copier en mode production en haut à droite. Vous ne pouvez effectuer cette opération qu’une seule fois pour chaque produit créé dans un environnement de test. Les mises à jour ultérieures du produit de test ne sont pas répercutées sur le produit en production.

Créer une session Checkout
Côté client
Côté serveur

Ajoutez à votre site Web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une session Checkout.

index.html
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>

Paramètres de la session Checkout

Consultez la section Créer une session Checkout pour obtenir la liste complète des paramètres que vous pouvez utiliser.

Créez une session Checkout avec l’ID d’un tarif existant. Assurez-vous d’avoir défini le mode sur subscription et d’avoir transmis au moins un tarif récurrent. Vous pouvez ajouter des tarifs ponctuels en plus des tarifs récurrents. Après avoir créé la session Checkout, redirigez votre client vers l’URL renvoyée dans la réponse.

Command Line
cURL
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="paypal" \ -d "line_items[][price]"=
{{PRICE_ID}}
\ -d "line_items[][quantity]"=1 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d "cancel_url"="https://example.com/cancel" \

Une fois le paiement effectué, votre client est redirigé vers success_url. Il s’agit d’une page de votre site Web indiquant au client que le paiement a réussi. Mettez l’ID de session à disposition sur votre page de confirmation de paiement en incluant la variable de modèle {CHECKOUT_SESSION_ID} dans l’URL success_url, comme illustré ci-dessus.

Si lors d’une session Checkout, votre client clique sur votre logo sans finaliser un paiement, Checkout le redirige vers l’URL cancel_url de votre site web. Il s’agit habituellement de la page de votre site web que voit votre client avant d’être redirigé vers Checkout.

Par défaut, les sessions Checkout expirent 24 heures après leur création.

Mise en garde

Ne vous fiez pas uniquement à la redirection vers le success_url pour détecter l’initiation du paiement, sachant que :

  • Des utilisateurs malveillants pourraient accéder directement au success_url sans payer et obtenir l’accès à vos biens ou à vos services.
  • Il peut arriver que le client n’aboutisse pas au success_url à l’issue de son paiement. Il peut par exemple lui arriver de fermer l’onglet de son navigateur avant que la redirection n’intervienne.

Confirmer que le paiement a abouti

Remarque

Lorsqu’un client s’abonne à Stripe via PayPal, il reçoit deux reçus distincts : le premier de la part de Stripe, et le second de PayPal.

Une fois que votre client a mené à bien son paiement, Stripe le redirige vers l’URL que vous avez spécifiée dans le paramètre success_url. Il s’agit en général d’une page de votre site Web qui l’informe que son paiement a abouti.

Utilisez le Dashboard, un webhook personnalisé ou un plugin tiers pour recevoir des événements après le paiement comme envoyer une confirmation de commande par e-mail à votre client, enregistrer la vente dans une base de données ou lancer un workflow de livraison.

Les paiements réussis apparaissent dans la liste des paiements du Dashboard. Lorsque vous cliquez sur un paiement, vous accédez à la page d’informations correspondante. La section Récapitulatif du paiement présente les informations de facturation et la liste des articles achetés, que vous pouvez utiliser pour traiter manuellement la commande.

Récapitulatif du paiement

Remarque

Stripe peut vous aider à rester informé sur les paiements entrants en vous envoyant des notifications par e-mail chaque fois qu’un client effectue un paiement. Utilisez le Dashboard pour configurer les notifications par e-mail.

Vous pouvez utiliser des plugins comme Zapier pour automatiser la mise à jour de vos systèmes d’exécution des achats avec les informations provenant des paiements Stripe.

Voici quelques exemples d’automatisation prise en charge par les plugins :

  • Mise à jour des feuilles de calcul utilisées pour le suivi de commandes suite à des paiements ayant abouti
  • Mise à jour des systèmes de gestion d’inventaire suite à des paiements ayant abouti
  • Déclenchement de notifications aux équipes internes du service client en utilisant des applications de messagerie ou de chat

Tester l'intégration

Testez votre intégration PayPal avec vos clés API de test en accédant à la page de redirection. Vous pouvez tester l’aboutissement du paiement en l’authentifiant sur la page de redirection. Le PaymentIntent passera alors de l’état requires_action à succeeded.

Pour tester un échec d’authentification de l’utilisateur, utilisez vos clés API de test et accédez à la page de redirection. Sur cette page, cliquez sur Échec du paiement test. Votre PaymentIntent bascule alors de l’état requires_action à requires_payment_method.

FacultatifAjouter des frais d'installation ponctuels
Côté serveur

En mode subscription, vous pouvez transmettre des tarifs récurrents, mais également ajouter des tarifs ponctuels. Ces tarifs ne s’appliquent qu’à la première facture générée par un abonnement. Cette fonctionnalité permet d’ajouter des frais initiaux ou d’autres types de frais ponctuels à un abonnement.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="paypal" \ -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" \ -d "success_url"="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d "cancel_url"="https://example.com/cancel"

FacultatifCréer des tarifs et produits en série
Côté serveur

Lors de la création d’une session Checkout, vous pouvez transmettre des ID de tarifs existants, mais aussi définir des tarifs. Commencez par définir un Product, puis créez une session Checkout à l’aide de l’ID de produit et transmettez-le dans le paramètre price_data avec les informations unit_amount, currency, et recurring :

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"=paypal \ -d line_items[0][price_data][unit_amount]=5000 \ -d line_items[0][price_data][currency]=eur \ -d line_items[0][price_data][product]=
{{PRODUCT_ID}}
\ -d line_items[0][price_data][recurring][interval]=month \ -d line_items[0][quantity]=1 \ -d mode=subscription \ -d success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d cancel_url="https://example.com/cancel"

Si vous avez également besoin de créer des produits en série, vous pouvez le faire à l’aide du paramètre product_data :

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"=paypal \ -d "line_items[][price_data][currency]"=eur \ -d "line_items[][price_data][product_data][name]"=T-shirt \ -d "line_items[][price_data][unit_amount]"=2000 \ -d "line_items[][quantity]"=1 \ -d "mode"="subscription" \ -d success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d cancel_url="https://example.com/cancel"

FacultatifClients existants
Côté serveur

Si vous avez déjà créé un objet Customer pour représenter un client, utilisez l’argument customer pour transmettre son ID lors de la création d’une session Checkout. Vous pouvez ainsi vous assurer que tous les objets créés pendant la session seront associés au bon objet Customer.

Lorsque vous transmettez un ID de client, Stripe utilise également l’adresse e-mail enregistrée dans l’objet Customer pour renseigner automatiquement le champ correspondant de la page Checkout. Si le client change son adresse e-mail sur la page Checkout, l’objet Customer sera mis à jour une fois qu’un paiement aura été traité.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer"=
{{CUSTOMER_ID}}
-d "payment_method_types[]"="paypal" \ -d "line_items[][price]"=
{{PRICE_ID}}
\ -d "line_items[][quantity]"=1 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success" \ -d "cancel_url"="https://example.com/cancel"

FacultatifRenseigner les données automatiquement
Côté serveur

Si vous avez précédemment collecté l’adresse e-mail de votre client et que vous souhaitez la renseigner automatiquement dans la session Checkout, transmettez le paramètre customer_email lors de la création de la session.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d customer_email="customer@example.com" \ -d "payment_method_types[]"=paypal \ -d "line_items[][price]"=
{{PRICE_ID}}
\ -d "line_items[][quantity]"=1 \ -d mode=subscription \ -d success_url="https://example.com/success" \ -d cancel_url="https://example.com/cancel"

FacultatifGérer les périodes d'essai
Côté serveur

Vous pouvez utiliser trial_end ou trial_period_days sur la session Checkout pour spécifier la durée de la période d’essai. Dans cet exemple, nous utilisons trial_period_days pour créer une session Checkout pour un abonnement avec une période d’essai de 30 jours.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"=paypal \ -d "line_items[][price]"=
{{PRICE_ID}}
\ -d "line_items[][quantity]"=1 \ -d "subscription_data[trial_period_days]"=30 \ -d mode=subscription \ -d success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d cancel_url="https://example.com/cancel"

Checkout affiche les informations suivantes automatiquement pour les abonnements avec essais :

  • Période d’essai
  • Fréquence et montant des frais après expiration de la période d’essai

Pour obtenir plus d’informations sur les exigences de conformité, veuillez consulter le guide de facturation ou d’assistance.

FacultatifTaux de taxe
Côté serveur

Pour appliquer des taxes aux abonnements, vous pouvez préciser des taux de taxe (taxe de vente, TVA, GST, etc.) dans les sessions Checkout.

  • Utilisez des taux de taxe fixes lorsque vous connaissez le taux de taxe exact applicable à vos clients avant qu’ils n’engagent le processus de paiement (par exemple, si vous ne vendez qu’à des clients basés au Royaume-Uni et que vous facturez toujours une TVA de 20 %).
  • Avec l’API Prices, vous pouvez utiliser des taux de taxe dynamiques lorsque vous avez besoin de davantage d’informations sur votre client (par exemple, son adresse de facturation ou de livraison) pour déterminer le taux de taxe à lui appliquer. Avec les taux de taxe dynamiques, vous créez des taux de taxe propres à chaque région : par exemple, un taux de TVA de 20 % pour vos clients basés au Royaume-Uni et de 7,25 % pour vos clients basés en Californie. Stripe tente ensuite d’apparier la localisation de vos clients à l’un de ces taux de taxe.

Configurez subscription_data.default_tax_rates pour appliquer un taux de taxe par défaut à un abonnement utilisant Checkout.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"=paypal \ -d "line_items[][price]"=
{{PRICE_ID}}
\ -d "line_items[][quantity]"=1 \ -d "subscription_data[default_tax_rates][]"="{{TAX_RATE_ID}}" \ -d mode=subscription \ -d success_url="https://example.com/success" \ -d cancel_url="https://example.com/cancel"

Vous pouvez également spécifier des line_items.tax_rates ou des subscription_data.items.tax_rates pour appliquer des taux de taxe à des plans ou des postes de facture spécifiques.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="paypal" \ -d "line_items[][price]"=
{{PRICE_ID}}
\ -d "line_items[][quantity]"=1 \ -d "line_items[][tax_rates][0]"="{{TAX_RATE_ID}}" \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success" \ -d "cancel_url"="https://example.com/cancel"

Vous pouvez utiliser les exportations de données de Stripe pour renseigner les rapports périodiques nécessaires dans le cadre du reversement des taxes. Veuillez consulter la page Déclaration et versement des taxes pour obtenir plus d’informations.

FacultatifAjouter des bons de réduction
Côté serveur

Vous pouvez appliquer des bons de réduction aux abonnements dans une session Checkout en configurant des ristournes. Les bons de réduction priment sur tous les autres bons du client. Si vous créez un abonnement pour un client existant, tout bon de réduction associé au client est appliqué aux factures à l’abonnement.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"=paypal \ -d "line_items[][price]"=
{{PRICE_ID}}
\ -d "line_items[][quantity]"=1 \ -d "discounts[][coupon]"="{{COUPON_ID}}" \ -d "mode"="subscription" \ -d success_url="https://example.com/success" \ -d cancel_url="https://example.com/cancel"

Ajouter des codes promotionnels destinés aux clients

Vous pouvez également activer des codes promotionnels en utilisant le paramètre allow_promotion_codes dans les sessions Checkout. Lorsque allow_promotion_codes est activé sur une session Checkout, vos clients voient une case de code promotionnel s’afficher. Créez vos bons de réduction et codes promotionnels via le Dashboard ou l’API afin que vos clients puissent les utiliser dans Checkout.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="paypal" \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][price_data][currency]"="eur" \ -d "line_items[0][price_data][product]=
{{PRODUCT_ID}}
"
\ -d "line_items[0][price_data][recurring][interval]=month" \ -d "line_items[0][quantity]"=1 \ -d "allow_promotion_codes"="true" \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success" \ -d "cancel_url"="https://example.com/cancel"

Voir aussi

  • Personnaliser votre intégration
  • Gérer les abonnements à l’aide du portail client
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Rejoignez notre programme d'accès anticipé.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc