Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
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
    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
      Stablecoins
      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
Rapports sur plusieurs comptes
API de rapport
Comptabilisation des revenus
Données
Présentation
Requête sur les données de l'entreprise
Sigma
Data Pipeline
Importer des données externes
États-Unis
Français (France)
AccueilRevenusSubscriptionsManage subscription payment methods

Configurer un abonnement par prélèvement automatique SEPA

Découvrez comment créer et facturer un abonnement avec le prélèvement automatique SEPA.

Exemple Stripe

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

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

Configurer Stripe
Côté serveur

Installez le client Stripe de votre choix :

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'

Installez l’interface de ligne de commande de Stripe (facultatif). Elle vous permet de tester vos webhooks et de créer vos produits et tarifs.

Command Line
homebrew
Installer à partir d'une source
No results
# Install Homebrew to run this command: https://brew.sh/ brew install stripe/stripe-cli/stripe # Connect the CLI to your dashboard stripe login

Pour davantage d’options d’installation, consultez la page consacrée à l’interface de ligne de commande Stripe.

Créer le modèle tarifaire
Dashboard
CLI Stripe

Créez vos produits et leurs tarifs dans le Dashboard ou via l’interface de ligne de commande Stripe.

Cet exemple utilise un service à tarif fixe avec deux options de niveau de service différentes : Basic et Premium. Pour chaque option de niveau de service, vous devez créer un produit et un tarif récurrent. (Si vous souhaitez ajouter un paiement ponctuel, par exemple des frais d’installation, créez un troisième produit avec un tarif unique. Par souci de simplicité, cet exemple n’inclut pas de paiement ponctuels.)

Dans cet exemple, chaque produit est facturé mensuellement. Le tarif du produit de base est de 5 EUR. Celui du produit premium est de 15 EUR.

Accédez à la page Ajouter un produit et créez deux produits. Ajoutez un tarif pour chaque produit, avec une période de facturation mensuelle récurrente :

  • Produit Premium : service Premium avec fonctionnalités supplémentaires

    • Prix : Appuyez sur Payer 15 EUR.
  • Produit de base : service de base avec fonctionnalités minimales

    • Prix : Forfaitaire | 5 EUR

Après avoir créé vos tarifs, enregistrez les ID de tarif de manière à pouvoir les utiliser dans d’autres étapes. Les ID de tarif se présentent sous la forme suivante : price_G0FvDp6vZvdwRZ.

Lorsque vous le souhaitez, cliquez sur le bouton Copier en mode production en haut à droite de la page pour dupliquer votre produit de l’environnement de test en mode production.

Pour les autres modèles tarifaires, consultez ces exemples de facturation.

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

Reportez-vous à la section Créer une session Checkout pour obtenir la liste complète des paramètres pouvant être utilisés.

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[]"="sepa_debit" \ -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.

Dans votre Dashboard, activez les moyens de paiement que vous souhaitez accepter de vos clients. Checkout prend en charge plusieurs moyens de paiement.

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

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. En général, il s’agit d’une page de votre site Web qui l’informe que son paiement a abouti.

Toutefois, SEPA Direct Debit est un moyen de paiement à notification différée, ce qui signifie que les fonds ne sont pas immédiatement disponibles. Pour cette raison, retardez le traitement de la commande jusqu’à ce que les fonds soient disponibles. Une fois le paiement effectué, l’état sous-jacent du PaymentIntent passe de processing à succeeded.

Vous pouvez confirmer la réussite du paiement de différentes manières :

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.

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.

Tester l'intégration

Vous pouvez tester votre intégration en utilisant les IBAN ci-dessous. Les détails du moyen de paiement sont collectés pour chaque IBAN, mais présentent un comportement différent lorsqu’ils sont débités.

Testez les numéros IBAN
Numéro de compteDescription
DE89370400440532013000L'état du PaymentIntent passe de processing à succeeded.
DE08370400440532013003L'état du PaymentIntent passe de processing à succeededau bout d'au moins trois minutes.
DE62370400440532013001L'état du PaymentIntent passe de processing à requires_payment_method.
DE78370400440532013004L'état du PaymentIntent passe de processing à requires_payment_methodau bout d'au moins trois minutes.
DE35370400440532013002L'état du PaymentIntent passe de processing à succeeded, mais un litige est immédiatement créé.
DE65370400440000343434Le paiement échoue avec un code d'erreur charge_exceeds_source_limit , car le montant du paiement entraîne un dépassement de la limite hebdomadaire de volume de paiement du compte.
DE27370400440000121212Le paiement échoue avec un code d'erreur charge_exceeds_weekly_limit , car le montant du paiement dépasse la limite du volume de transactions du compte.
DE65370400440002222227Échec du paiement avec un code d’échec insufficient_funds.

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. Vous pouvez ajouter un tarif ponctuel à un produit existant ou créer un nouveau produit avec un nouveau prix.

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[]"="sepa_debit" \ -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 créer de nouveaux tarifs. Commencez par définir un produit, puis créez une session Checkout à l’aide de l’ID du produit. Assurez-vous de transmettre 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[]"=sepa_debit \ -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[]"=sepa_debit \ -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[]"="sepa_debit" \ -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[]"=sepa_debit \ -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[]"=sepa_debit \ -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[]"=sepa_debit \ -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[]"="sepa_debit" \ -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[]"=sepa_debit \ -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[]"="sepa_debit" \ -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.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc