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.
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 StripeCôté serveur
Installez le client Stripe de votre choix :
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.
Pour davantage d’options d’installation, consultez la page consacrée à l’interface de ligne de commande Stripe.
Créer le modèle tarifaireDashboardCLI 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.
Pour les autres modèles tarifaires, consultez ces exemples de facturation.
Créer une session CheckoutCôté clientCôté serveur
Ajoutez à votre site web un bouton de paiement qui appelle un endpoint côté serveur afin de créer une session Checkout.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
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.
Une fois le paiement effectué, votre client est redirigé vers success_. 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_ dans l’URL success_, 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_ 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_ pour détecter l’initiation du paiement, sachant que :
- Des utilisateurs malveillants pourraient accéder directement au
success_sans payer et obtenir l’accès à vos biens ou à vos services.url - Il peut arriver que le client n’aboutisse pas au
success_à l’issue de son paiement. Il peut par exemple lui arriver de fermer l’onglet de son navigateur avant que la redirection n’intervienne.url
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_. 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 :
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
FacultatifAjouter des frais d'installation ponctuelsCô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.
FacultatifCréer des tarifs et produits en sérieCô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_, currency et recurring :
Si vous avez également besoin de créer des produits en série, vous pouvez le faire à l’aide du paramètre product_data :
FacultatifClients existantsCô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é.
FacultatifRenseigner les données automatiquementCô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.
FacultatifGérer les périodes d'essaiCô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_ pour créer une session Checkout pour un abonnement avec une période d’essai de 30 jours.
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 taxeCô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.
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éductionCô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.
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_ 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.
