Configurer un abonnement avec Sofort et par prélèvement automatique SEPA
Découvrez comment créer et facturer un abonnement avec Sofort et le prélèvement automatique SEPA.
Avertissement
New businesses can’t accept SOFORT payments and our financial partners are in the process of discontinuing SOFORT. For more information, read our support page.
Sofort est un moyen de paiement à usage unique qui nécessite l’authentification de chaque paiement par le client. Une fois le paiement authentifié par votre client, Stripe enregistre l’IBAN de votre client dans un paiement par prélèvement SEPA. Vous pouvez alors utiliser ce paiement par prélèvement SEPA pour accepter des paiements ultérieurs.
Grâce à cette intégration, Stripe prélève le premier paiement de l’abonnement via Sofort afin de collecter les coordonnées bancaires de votre client. Si vous proposez un essai gratuit, Stripe prélève 1 EUR à votre client via Sofort afin de collecter ses coordonnées bancaires, puis le rembourse immédiatement.
Une session Checkout affiche les détails de l’intention d’achat de votre client. Vous créez une session lorsque ce dernier souhaite démarrer un abonnement. Après que le client est redirigé vers votre session Checkout, Stripe lui présente un formulaire de paiement qui lui permet d’effectuer son achat. Une fois son achat réalisé, il est redirigé 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 à l’aide de l’ID d’un tarif existant. Assurez-vous que le mode est défini sur subscription
et veillez à transmettre au moins un tarif récurrent. Vous pouvez également ajouter des tarifs ponctuels en plus des tarifs récurrents. Une fois la session Checkout créée, redirigez votre client vers l’URL renvoyée dans la réponse.
Lorsque vous créez une session, vous pouvez spécifier des payment_
ou laisser Stripe choisir automatiquement des moyens de paiement en fonction des paramètres de votre Dashboard. Si vous ne spécifiez pas de payment_
, vous devez activer les paiements Sofort récurrents dans le Dashboard. Cela active les prélèvements automatiques SEPA uniquement pour les paiements Sofort récurrents, et non pas comme moyen de paiement à part entière.
Une fois le paiement effectué, votre client est redirigé vers l’URL 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.
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 le 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.
Sofort est un moyen de paiement à notification différée, ce qui signifie que les fonds ne sont pas immédiatement disponibles. Lors d’un paiement Sofort, la mise à disposition des fonds prend généralement 14 jours ouvrables. Nous vous recommandons donc de ne traiter la commande que lorsque les fonds sont disponibles sur votre compte. Une fois le paiement effectué, l’état du PaymentIntent sous-jacent passe de processing
à succeeded
.
Stripe recommande de traiter les commandes lorsqu’elles sont à l’état processing
. En moyenne, environ 0,2 % des paiements Sofort échouent après être passés à l’état processing
.
Il existe plusieurs façons de confirmer que le paiement a abouti :
Tester l'intégration
En utilisant vos clés API de test, sélectionnez Sofort comme moyen de paiement et cliquez sur le bouton S’abonner. Après avoir confirmé, vous êtes redirigé vers une page de test avec des options pour valider ou non le paiement. Les paiements Sofort restent en attente pendant 3 minutes en mode test.
- Cliquez sur Autorisation du paiement test pour tester le cas où la configuration réussit.
- Cliquez sur Échec du paiement test pour tester le cas où le client ne parvient pas à s’authentifier.