Accepter un paiement par prélèvement SEPA
Découvrez comment accepter les paiements par prélèvement SEPA.
Remarque
Lorsque vous traitez des paiements par prélèvement automatique SEPA à l’aide de l’ID de créancier de Stripe, nous vous recommandons d’utiliser la page de paiement prédéfinie afin de collecter les mandats de prélèvement automatique SEPA.
Accepter un paiement par prélèvement SEPA sur votre site Web consiste à créer un objet afin de suivre un paiement, à recueillir les informations de moyen de paiement et la confirmation du mandat, puis à envoyer le paiement à Stripe pour traitement. Stripe utilise cet objet de paiement, le PaymentIntent, pour suivre et gérer les états successifs du paiement jusqu’à son exécution.
Vous pouvez également configurer le PaymentMethod d’un prélèvement automatique SEPA en demandant à votre client d’authentifier ses coordonnées bancaires à l’aide de Bancontact, d’iDEAL ou de Sofort.
Configurer StripeCôté serveur
Pour commencer, il vous faut un compte Stripe. Inscrivez-vous.
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Créer ou récupérer un clientCôté serveur
Pour réutiliser un compte de prélèvement automatique SEPA à l’occasion de paiements ultérieurs, le compte en question doit être associé à un objet Customer.
Vous devez créer un objet Customer lorsque votre client crée un compte auprès de votre entreprise. L’association de l’ID de l’objet Customer à votre propre représentation interne d’un client vous permettra de récupérer et d’utiliser ultérieurement les informations du moyen de paiement stockées.
Créez ou récupérez un client afin de l’associer à ce paiement. Ajoutez le code suivant à votre serveur pour créer le nouveau client.
Créer un PaymentIntentCôté serveur
Un PaymentIntent est un objet qui représente votre intention d’encaisser le paiement d’un client et suit le cycle de vie du processus de paiement étape par étape. Pour commencer, créez un PaymentIntent sur votre serveur et précisez le montant à encaisser ainsi que la devise eur
(le prélèvement automatique SEPA fonctionne uniquement avec celle-ci). Si vous avez déjà créé une intégration à l’aide de l’API Payment Intents, ajoutez sepa_
à la liste des types de moyens de paiement relative à votre PaymentItent. Précisez l’identifiant du client.
Pour enregistrer le compte de prélèvement automatique SEPA en vue de le réutiliser, définissez le paramètre setup_future_usage sur off_
. Le prélèvement automatique SEPA accepte uniquement la valeur off_
pour ce paramètre.
Recueillir les informations du moyen de paiement et la confirmation du mandatCôté client
Vous pouvez à présent collecter les informations de paiement de votre client avec Stripe Elements. Elements est un ensemble de composants d’interface utilisateur préconfigurés pour la collecte des informations de paiement.
Un composant Element contient une balise iframe qui envoie de manière sécurisée les informations de paiement à Stripe par une connexion HTTPS. Pour que votre intégration fonctionne, l’adresse de votre page de règlement doit aussi commencer par https:// au lieu de http://.
Vous pouvez tester votre intégration sans utiliser le protocole HTTPS. Activez-le au moment d’accepter des paiements en mode production.
Configurer Stripe Elements
Envoyer le paiement à StripeCôté client
Au lieu de transmettre au client l’objet PaymentIntent dans son intégralité, utilisez la clé secrète du client de l’étape 3. Cette clé est différente de vos clés API qui servent à authentifier les requêtes à l’API Stripe.
La clé secrète du client doit être utilisée avec prudence, car elle peut servir à finaliser le paiement. Elle ne doit être ni enregistrée, ni intégrée dans des URL, ni dévoilée à d’autres personnes que votre client.
Confirmer la réussite du PaymentIntent
Le prélèvement automatique SEPA étant un moyen de paiement à notification différée, les fonds ne sont pas disponibles immédiatement. Une fois le paiement envoyé, l’état du PaymentIntent
passe de requires_
à processing
. À la réussite du paiement, l’état du PaymentIntent passe de processing
à succeeded
.
Les événements suivants sont envoyés lorsque le PaymentIntent change d’état :
Événement | Description | Étapes suivantes |
---|---|---|
payment_ | Le paiement du client a bien été envoyé à Stripe. | Attendez que le paiement effectué réussisse ou échoue. |
payment_ | Le paiement du client a abouti. | Traitez la commande de biens ou de services de votre client. |
payment_ | Le paiement du client a été refusé. | Envoyez un e-mail ou une notification push au client pour lui demander d’utiliser un autre moyen de paiement. |
Nous vous recommandons d’utiliser des webhooks afin de confirmer que le paiement a abouti et pour signaler au client que le paiement a été effectué.
Veuillez noter que, les paramètres setup_future_usage et customer ayant été définis, le PaymentMethod sera associé à l’objet Customer dès lors que le paiement passera à l’état processing
. Cette association survient quelle que soit l’issue du paiement (succès ou échec).
Tester l'intégration
Stripe vous fournit plusieurs numéros de test que vous pouvez utiliser pour vous assurer que votre intégration est prête à passer en mode production. Utilisez les numéros de test de prélèvement SEPA lorsque vous testez votre intégration Checkout avec un prélèvement SEPA.