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.
# 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 tarifaireDashboardCLI Stripe
Les modèles de tarification récurrents représentent les produits ou services que vous vendez, leur coût, la devise que vous acceptez pour les paiements et la période de service pour les abonnements. Pour élaborer le modèle de tarification, créez des produits (ce que vous vendez) et des prix (combien et à quelle fréquence facturer vos produits).
Cet exemple utilise une tarification forfaitaire avec deux options de niveau de service différentes : basique et premium. Pour chaque option de niveau de service, vous devez créer un produit et un prix récurrent. Pour ajouter des frais uniques, tels que des frais d’installation, créez un troisième produit avec un prix unique.
Chaque produit est facturé à intervalles mensuels. Le prix du produit basique est de 5 EUR. Le prix du produit premium est de 15 EUR. Voir le guide des tarifs forfaitaires pour un exemple à trois niveaux.
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_.
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 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.
curl https://api.stripe.com/v1/checkout/sessions \ -u: \ -d "line_items[][price]"=sk_test_VePHdqKTYQjKNInc7u56JBrQ\ -d "line_items[][quantity]"=1 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \"{{PRICE_ID}}"
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.
Lorsque votre client clique sur votre logo dans une session Checkout sans effectuer de paiement, Checkout le redirige vers le site Web que le client consultait 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 success_ pour détecter l’initiation d’un paiement, car :
- Des utilisateurs malveillants pourraient accéder directement au
success_sans payer et obtenir l’accès à vos biens ou à vos services.url - Après un paiement réussi, les clients peuvent fermer l’onglet de leur navigateur avant d’être redirigés vers
success_.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.
Cependant, 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, il convient de retarder le traitement de la commande jusqu’à ce que les fonds soient disponibles. Une fois le paiement effectué, l’état sous-jacent de la 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 des détails de ce paiement. La section Récapitulatif du Checkout contient 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
Utilisez ces IBAN de test avec le Payment Element pour tester votre intégration prélèvement automatique SEPA. Le Payment Element valide automatiquement l’IBAN et affiche le mandat lorsque vous saisissez l’une de ces valeurs de test.
| Numéro de compte | Token | Description |
|---|---|---|
FR1420041010050500013M02606 | pm_ | L'état du PaymentIntent passe de processing à succeeded. |
FR3020041010050500013M02609 | pm_ | L'état du PaymentIntent passe de processing à succeededau bout d'au moins trois minutes. |
FR8420041010050500013M02607 | pm_ | L'état du PaymentIntent passe de processing à requires_. |
FR7920041010050500013M02600 | pm_ | L'état du PaymentIntent passe de processing à requires_au bout d'au moins trois minutes. |
FR5720041010050500013M02608 | pm_ | L'état du PaymentIntent passe de processing à succeeded, mais un litige est immédiatement créé. |
FR9720041010050000000343434 | pm_ | Le paiement échoue avec un code d'erreur charge_ , car le montant du paiement entraîne un dépassement de la limite hebdomadaire de volume de paiement du compte. |
FR5920041010050000000121212 | pm_ | Le paiement échoue avec un code d'erreur charge_ , car le montant du paiement dépasse la limite du volume de transactions du compte. |
FR9720041010050000002222227 | pm_ | Échec du paiement avec un code d’échec insufficient_. |