Configurer un abonnement par prélèvement automatique Bacs
Découvrez comment créer et facturer un abonnement avec le prélèvement automatique Bacs.
Suivez ce guide pour configurer un abonnement avec le prélèvement automatique Bacs comme moyen de paiement et Checkout.
Configurer StripeCôté serveur
Pour commencer, vous devez créer un compte Stripe. Inscrivez-vous maintenant.
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Créer des produits et tarifs récurrents
Mise en garde
L’API Prices unifie la modélisation des abonnements et des achats ponctuels sur Stripe. Les intégrations qui n’utilisent pas cette API restent prises en charge, mais certaines fonctionnalités de Checkout ne sont compatibles qu’avec Prices. Pour passer à l’API Prices, consultez le guide de migration.
Pour utiliser Checkout, vous devez d’abord créer un produit et un tarif. Vous devez créer un produit pour chacune de vos marchandises ou chacun de vos niveaux de service. Un produit peut être associé à un ou plusieurs tarifs.
Par exemple, vous pouvez créer un produit logiciel qui dispose de quatre tarifs : 10 € par mois, 100 € par an, 9 GBP par mois et 90 GBP par an. Vous pouvez ainsi modifier et ajouter des tarifs sans modifier les informations de vos produits sous-jacents. Pour créer des produits et des tarifs, vous pouvez passer par l’API ou utiliser le Dashboard Stripe.
Si votre tarif est déterminé au moment du paiement (par exemple, lorsque le client fixe le montant d’un don) ou si vous ne souhaitez pas créer de tarif prédéfini, vous pouvez créer des tarifs en série lors de la création d’une session Checkout.
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 le 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 le paiement
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, Bacs 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 avez à votre disposition plusieurs numéros de compte bancaire de test dans un environnement de test pour vérifier que cette intégration est prête.
| Code guichet | Numéro de compte | Description |
|---|---|---|
| 10-88-00 | 00012345 | Le paiement aboutit et la facture bascule sur paid. |
| 10-88-00 | 90012345 | Le paiement aboutit au bout de trois minutes et la facture bascule sur paid. |
| 10-88-00 | 33333335 | Le paiement échoue avec un code d’échec debit_ et l’objet Invoice bascule sur open. L’objet Mandate devient inactive et le PaymentMethod ne peut plus être utilisé. |
| 10-88-00 | 93333335 | Le paiement échoue au bout de trois minutes avec un code d’échec debit_ et l’objet Invoice bascule sur open. L’objet Mandate devient inactive et le PaymentMethod ne peut plus être utilisé. |
| 10-88-00 | 22222227 | Le paiement échoue avec un code d’échec insufficient_ et l’objet Invoice bascule sur open. L’objet Mandate reste active et le PaymentMethod peut à nouveau être utilisé. |
| 10-88-00 | 92222227 | Le paiement échoue au bout de trois minutes avec un code d’échec insufficient_ et l’objet Invoice bascule sur open. L’objet Mandate reste active et le PaymentMethod peut à nouveau être utilisé. |
| 10-88-00 | 55555559 | Le paiement aboutit au bout de trois minutes et l’état de la facture passe à paid, mais un litige est immédiatement créé. |
| 10-88-00 | 00033333 | La création du moyen de paiement aboutit, mais le mandat est refusé par la banque du client et passe immédiatement à l’état inactif. |
| 10-88-00 | 00044444 | La demande de mise en place d’un prélèvement automatique Bacs échoue immédiatement en raison d’un numéro de compte non valide et le client est invité à mettre à jour ses informations avant de soumettre sa demande. Les données de paiement ne sont pas collectées. |
Pour vos tests, vous pouvez utiliser l’un des numéros de compte fournis ci-dessus. Cependant, dans la mesure où le traitement des paiements par prélèvement automatique Bacs prend plusieurs jours, privilégiez les numéros de compte de test qui fonctionnent avec un délai de trois minutes, de manière à mieux simuler le comportement en situation réelle.
Remarque
Par défaut, Stripe envoie automatiquement des e-mails de notification au client lors de la collecte initiale de ses données de paiement et chaque fois qu’un débit est ensuite effectué sur son compte. Ces notifications ne sont pas envoyées dans les environnements de test.
FacultatifAjouter des frais de configuration 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.
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 définir des tarifs. Commencez par définir un Product, puis créez une session Checkout à l’aide de l’ID de produit et transmettez-le dans le paramètre 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.
