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 collecter le paiement d’un client et qui filière le cycle de vie du processus de paiement à chaque étape. Tout d’abord, créez un PaymentIntent sur votre serveur et spécifiez le montant à collecter ainsi que la devise en euros
(le prélèvement automatique SEPA ne prendre en charge les autres devises). Si vous disposez déjà d’une intégration utilisant l’API Payment Intents, ajoutez sepa_
à la liste des types de moyens de paiement pour votre PaymentIntent. Spécifiez l’ID 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.
Testez les numéros IBAN
FacultatifValider le composant Element IBAN
L’Element IBAN valide les informations dès leur saisie par l’utilisateur. Pour aider vos clients à repérer d’éventuelles erreurs, nous vous conseillons d’écouter les événements change du composant Element IBAN et d’afficher les erreurs :
L’événement indiquant un changement contient d’autres paramètres qui peuvent vous aider à enrichir votre expérience utilisateur. Pour en savoir plus, consultez la documentation de Stripe.js.
FacultatifConfigurer la date de prélèvement du client
Vous pouvez contrôler la date à laquelle Stripe débite le compte bancaire d’un client à l’aide de la date butoir. La date cible doit être fixée au moins trois jours dans le futur et pas plus de 15 jours après la date actuelle.
La date butoir indique la date à laquelle les fonds doivent avoir quitté le compte du client. Vous pouvez annuler un PaymentIntent créé avec une date butoir jusqu’à trois jours ouvrables avant la date configurée.
Si la date butoir indiquée répond à l’un des critères suivants, le débit a lieu le jour ouvrable suivant :
- La date butoir est un week-end, un jour férié ou un autre jour non ouvrable.
- La date butoir est fixée moins de trois jours ouvrables dans le futur.
Ce paramètre fonctionne dans la mesure du possible. En effet, la banque de chaque client peut traiter les prélèvements à des dates différentes, en fonction des jours fériés locaux ou d’autres raisons.
FacultatifPersonnaliser les références de mandat à l’aide d’un préfixe
Vous pouvez personnaliser les références des mandats de prélèvement automatique SEPA afin de simplifier l’identification des mandats. Pour ce faire, saisissez la valeur facultative payment_
. Nous ajoutons le reference_
au début d’une séquence unique pour nous assurer que l’ensemble de la référence reste unique.
Le reference_
doit répondre aux exigences suivantes :
- Longueur maximale : 12 caractères
- Doit commencer par un chiffre ou une lettre majuscule
- Caractères autorisés :
- Lettres majuscules
- Chiffres
- Espaces
- Caractères spéciaux :
.
,/
,&
,-
,_
- Ne peut pas commencer par
STRIPE
Ajoutez tout délimiteur souhaité dans le préfixe, car nous n’en ajoutons pas par défaut. Nous réduisons les espaces de fin à un espace maximum. Avec un préfixe valide, la référence résultante comporte toujours 24 caractères.
La référence générée ressemble à EX4MPL3-19CNCI920C2M02O3
.
Code d’erreur | Message |
---|---|
invalid_ | La valeur de reference_ ne doit pas comporter plus de 12 caractères et ne peut contenir que des lettres majuscules, des chiffres, des espaces ou les caractères spéciaux / , _ , - , & et . . Elle ne peut pas commencer par STRIPE . |