Configurer un abonnement payé par prélèvement automatique BECS en Australie
Découvrez comment créer et facturer un abonnement par prélèvement automatique BECS.
Remarque
Contrairement à ce qui est indiqué dans ce guide, nous recommandons aux nouveaux utilisateurs d’utiliser le composant Payment Element plutôt que Stripe Elements. Le composant Payment Element propose un chemin d’intégration avec peu de code et des optimisations de conversion intégrées. Pour connaître la procédure à suivre, consultez la documentation consacrée à la création d’un abonnement.
Suivez ce guide pour configurer un abonnement avec le prélèvement automatique BECS comme moyen de paiement.
Créer un produit et un tarifDashboard
Les produits correspondent aux articles ou services que vous vendez. Les tarifs définissent le montant et la fréquence des paiements facturés pour un produit. Le tarif prend en compte la valeur du produit, la devise que vous acceptez et s’il s’agit d’un paiement ponctuel ou récurrent. Si vous n’avez que quelques produits et tarifs, créez-les et gérez-les dans le Dashboard.
Ce guide prend comme exemple un service de banque d’images qui débite ses clients d’un montant de 15 AUD pour un abonnement mensuel. Pour modéliser ceci :
- Go to the Products page and click Create product.
- Saisissez un Nom pour le produit. Vous pouvez éventuellement ajouter une Description et télécharger une image du produit.
- Select a Product tax code. Learn more about product tax codes.
- Sélectionnez Récurrent. Saisissez ensuite pour le prix et sélectionnez comme devise.
- Choose whether to Include tax in price. You can either use the default value from your tax settings or set the value manually. In this example, select Auto.
- Pour Période de facturation, sélectionnez Mensuel.
- Click More pricing options. Then select Flat rate as the pricing model for this example. Learn more about flat rate and other pricing models.
- Add an internal Price description and Lookup key to organize, query, and update specific prices in the future.
- Cliquez sur Suivant. Cliquez ensuite sur Ajouter un produit.
Après avoir créé le produit et le tarif, enregistrez l’ID de tarif de manière à pouvoir l’utiliser dans les étapes ultérieures. La page des tarifs affiche l’ID dont le format est similaire à ce qui suit : price_
.
Créer un SetupIntentCôté serveur
Un SetupIntent est un objet qui représente votre intention de configurer le moyen de paiement d’un client en vue de paiements ultérieurs. Le SetupIntent
suivra les étapes de ce processus de configuration. Dans le cas d’un prélèvement automatique BECS, ces étapes prévoient notamment l’obtention d’un mandat auprès du client et le suivi de sa validité tout au long de son cycle de vie.
Créez un SetupIntent sur votre serveur en définissant payment_method_types sur au_
:
L’objet SetupIntent
renvoyé contient une propriété client_
. Transmettez la clé secrète du client à l’application côté client pour continuer le processus de configuration.
Recueillir les informations du moyen de paiement et la confirmation du mandatCôté client
Vous êtes prêt à collecter les informations de paiement sur le client avec Stripe Elements. Elements est un ensemble de composants d’interface utilisateur prédéfinis 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 les informations du moyen de paiement à StripeCôté client
Au lieu de transmettre au client l’objet SetupIntent
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 envoyées à l’API Stripe.
La clé secrète du client doit être manipulée avec prudence, car elle permet de mettre en œuvre la configuration. Ne l’enregistrez pas, ne l’intégrez pas dans des URL et ne la dévoilez à personne d’autre que votre client.
Créer un client avec un PaymentMethodCôté serveur
La création d’abonnements nécessite un client, qui représente le client achetant votre produit. Le tarif que vous avez créé étant facturé mensuellement, vous devez ajouter un moyen de paiement enregistré au client afin que les paiements à venir puissent aboutir. Pour ce faire, vous devez configurer le moyen de paiement que vous avez recueilli au niveau racine de l’objet Customer et définir ce moyen de paiement comme moyen de paiement par défaut pour les factures :
Ceci renvoie un objet Customer
. Vous pouvez voir le moyen de paiement par défaut dans l’objet invoice_
:
{ "id": "cus_Gk0uVzT2M4xOKD", "object": "customer", "address": null, "balance": 0, "created": 1581797088, "currency": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "jenny.rosen@example.com", "invoice_prefix": "11D0B3D7", "invoice_settings": { "custom_fields": null, "default_payment_method": "pm_1FU2bgBF6ERF9jhEQvwnA7sX", "footer": null },
Après avoir créé le client, sauvegardez la valeur id
dans votre propre base de données afin de pouvoir l’utiliser ultérieurement. L’étape suivante nécessite aussi cet ID.
Créer un abonnementCôté serveur
Créez un abonnement avec le tarif et le client :
Dans le cadre d’un abonnement, le client est débité automatiquement dans la mesure où son moyen de paiement par défaut est défini. Lorsqu’un paiement aboutit, son état dans le Dashboard Stripe bascule sur Actif. Le tarif que vous avez créé précédemment détermine les facturations à venir.
Gérer les états de l'abonnementCôté client
Si le paiement initial aboutit, l’état de l’abonnement est actif
et aucune action supplémentaire n’est nécessaire. Si le paiement échoue, l’état passe à l’état de l’abonnement que vous avez configuré dans vos paramètres de recouvrement automatique. Avisez votre client que le paiement a échoué et débiter-le avec un autre moyen de paiement.
Remarque
Les paiements par prélèvement automatique BECS ne sont jamais automatiquement relancés, même si vous avez configuré une planification de relance pour les autres moyens de paiement.
Tester l'intégration
Vous pouvez tester votre formulaire en utilisant le numéro BSB de test 000000
et l’un des numéros de compte de test ci-dessous dans votre requête confirmAuBecsDebitSetup.
Numéro BSB | Numéro de compte | Description |
---|---|---|
000000 | 000123456 | Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à succeeded . L’état du mandat reste active . |
000000 | 900123456 | Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à succeeded (avec un délai de trois minutes). L’état du mandat reste active . |
000000 | 111111113 | Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à requires_ avec un code d’échec account_ . L’état du mandat devient inactive à ce stade. |
000000 | 111111116 | Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à requires_ avec un code d’échec no_ . L’état du mandat devient inactive à ce stade. |
000000 | 222222227 | Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à requires_ avec un code d’échec refer_ . L’état du mandat reste active . |
000000 | 922222227 | Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à requires_ avec un code d’échec refer_ (avec un délai de trois minutes). L’état du mandat reste active . |
000000 | 333333335 | Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à requires_ avec un code d’échec debit_ . L’état du mandat devient inactive à ce stade. |
000000 | 666666660 | Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à succeeded , mais un litige est immédiatement créé. |
000000 | 343434343 | Le PaymentIntent qui a été créé avec le PaymentMethod résultant échoue avec une erreur charge_ , car le montant du paiement a entraîné le dépassement de la limite de volume de paiement hebdomadaire du compte. |
000000 | 121212121 | Le PaymentIntent qui a été créé avec le PaymentMethod résultant échoue avec une erreur charge_ , car le montant du paiement dépasse la limite du volume de transactions du compte. |
FacultatifDéfinir la période de facturation
Lorsque vous créez un abonnement, le système définit automatiquement le cycle de facturation par défaut. Par exemple, si un client s’abonne à un plan mensuel le 7 septembre, il est ensuite facturé le 7 de chaque mois. Certaines entreprises préfèrent définir le cycle de facturation manuellement afin de pouvoir facturer leurs clients conjointement à chaque cycle. L’argument billing cycle anchor vous permet d’effectuer cette opération.
La définition manuelle du cycle de facturation facture automatiquement au client un montant au prorata pour la période écoulée entre la création de l’abonnement et la date de début du cycle de facturation. Si vous ne souhaitez pas que les clients soient facturés pour cette période, vous pouvez définir l’argument proration_behavior sur none
. Vous pouvez également combiner la date de début du cycle de facturation avec des périodes d’essai pour permettre aux clients d’accéder gratuitement à votre produit et ensuite leur facturer un montant au prorata.
FacultatifPériodes d'essai d'un abonnement
Les essais gratuits permettent aux clients d’accéder à votre produit gratuitement pendant une certaine période. L’utilisation d’essais gratuits est différente de la définition de proration_behavior sur none
, car vous pouvez personnaliser la durée des périodes gratuites. Transmettez un horodatage dans fin de l’essai pour définir la période d’essai.
Vous pouvez également combiner une date de début du cycle de facturation avec un essai gratuit. Supposons par exemple que nous sommes le 15 septembre et que vous voulez offrir à votre client un essai gratuit de sept jours, puis lancer le cycle de facturation normal le 1er octobre. Vous pouvez définir la fin de l’essai gratuit le 22 septembre et l’ancre du cycle de facturation le 1er octobre. Ainsi, le client bénéficie d’un essai gratuit pendant sept jours et paye un montant au prorata pour la durée comprise entre la fin de l’essai et le 1er octobre. Le 1er octobre, vous facturez à ce client le montant normal de l’abonnement pour son premier cycle de facturation complet.