Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Outils de développement
Démarrer
Paiements
Automatisation des opérations financières
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Aperçu
Billing
    Présentation
    À propos des API Billing
    Abonnements
      Présentation
      Démarrage rapide
      Cas d'usage
      Développer votre intégration
      Fonctionnalités d'abonnement
        Factures d'abonnements
        Planifications d'abonnements
        Tarification des abonnements
        Modèles tarifaires récurrents
        Intégrez une grille tarifaire
        Démarrer des abonnements
        Définir des quantités
        Définir des cycles de facturation
        Antidater des abonnements
        Abonnement à plusieurs articles
        Définir des périodes d'essai
        Appliquer des bons de réduction
        Migrer des abonnements vers Stripe
        Mode de calcul des crédits au prorata
        Paiements d'abonnement
        Moyens de paiement pour les abonnements
          Prélèvement automatique ACH
          Amazon Pay
          Prélèvement automatique Bacs au Royaume-Uni
          Virement bancaire
          Prélèvement automatique BECS en Australie
          Cash App Pay
          PayPal
          Revolut Pay
          Cartes bancaires coréennes
          Kakao Pay
          Naver Pay
          Débit préautorisé au Canada
          Prélèvement automatique SEPA dans l'UE
          iDEAL via un prélèvement SEPA
          Bancontact via un prélèvement SEPA
          Sofort via un prélèvement SEPA
        Intégrer le traitement des paiements par des tiers
        Méthodes d'encaissement
        Partager un lien de modification des informations de paiement
        Authentification forte du client (SCA)
        Gérer les abonnements
        Modifier des abonnements
        Gérer des mises à jour en attente
      Analyses
    Invoicing
    Facturation à la consommation
    Connect et Billing
    Tax et Billing
    Devis
    Recouvrement de revenus
    Automatisations
    Scripts
    Comptabilisation des revenus
    Gestion des clients
    Droits d'accès
    Tester votre intégration
Tax
Rapports
Données
Constitution de start-up
AccueilAutomatisation des opérations financièresBillingSubscriptionsSubscription featuresSubscription payment methods

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.

Copier la page

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 tarif
Dashboard

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 :

  1. Rendez-vous à la page Ajouter un produit.
  2. Saisissez un Nom pour le produit.
  3. Saisissez 15 pour le tarif.
  4. Sélectionnez la devise AUD.
  5. Cliquez sur Enregistrer le 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_G0FvDp6vZvdwRZ.

Créer un SetupIntent
Cô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_becs_debit :

Command Line
curl
curl https://api.stripe.com/v1/setup_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="au_becs_debit"

L’objet SetupIntent renvoyé contient une propriété client_secret. 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 mandat
Cô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

Stripe Elements est automatiquement disponible en tant que fonctionnalité de Stripe.js. Intégrez le script Stripe.js sur votre page de paiement, entre les balises head de votre fichier HTML. Chargez toujours Stripe.js directement à partir de js.stripe.com pour maintenir votre conformité PCI. Vous ne devez pas inclure le script dans un lot ni en héberger de copie.

payment_setup.html
<head> <title>Payment Setup</title> <script src="https://js.stripe.com/v3/"></script> </head>

Créez une instance d’Elements avec le JavaScript suivant sur votre page de paiement :

const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const elements = stripe.elements();

Demande de prélèvement automatique

Avant de pouvoir procéder à un paiement par prélèvement automatique BECS, votre client doit accepter le contrat de service de demande de prélèvement automatique. Pour ce faire, il doit envoyer une demande de prélèvement remplie. Son approbation vous confère un mandat pour débiter son compte. Le Mandate est un enregistrement de l’autorisation de débiter un moyen de paiement.

Pour l’acceptation des mandats en ligne, vous pouvez créer un formulaire afin de collecter les informations nécessaires. Servez le formulaire via HTTPS et capturez les informations suivantes :

InformationsDescription
Nom du compteLe nom complet du titulaire du compte
Numéro BSBLe numéro Bank-State-Branch du compte bancaire (par exemple, 123-456)
Numéro de compteLe numéro de compte bancaire (par exemple, 87654321)

Lorsque vous recevez une demande de prélèvement automatique, suivez nos Conditions d’utilisation des prélèvements automatiques BECS, et, dans votre formulaire de paiement :

  • Affichez les conditions précises du Contrat d’utilisation du service de demande de prélèvement automatique de Stripe, soit directement sur le formulaire, soit sur une page dont le lien figure dans le formulaire, sous l’appellation « Contrat d’utilisation du service de demande de prélèvement ».
  • Vérifiez que la demande de prélèvement acceptée et le contrat de service de demande prélèvement associé peuvent être partagés avec votre client à tout moment, que ce soit sous forme de document imprimé ou de copie numérique non modifiable (par exemple, par courrier électronique). Stripe l’hébergera pour vous.
  • Afficher le texte standard suivant à l’attention de votre client, en remplaçant Rocketship Inc par le nom de votre entreprise, afin de recueillir son consentement à votre demande de prélèvement automatique BECS. Son acceptation vous autorise à initier des paiements par prélèvement automatique BECS sur son compte bancaire.

Remarque

En fournissant vos coordonnées bancaires, vous acceptez cette demande de prélèvement automatique et le contrat de service de demande de prélèvement automatique. Vous autorisez également Stripe Payments Australia Pty Ltd ACN 160 180 343, numéro d’ID d’utilisateur de prélèvement automatique 507156 (« Stripe ») à débiter votre compte par le biais du Bulk Electronic Clearing System (BECS) pour le compte de Rocketship Inc (le « Marchand ») de tout montant vous ayant été communiqué individuellement par le Marchand. Vous certifiez être le titulaire du compte indiqué ci-dessus ou son signataire autorisé.

Les informations du mandat accepté sont générées lors de la configuration d’un PaymentMethod ou de la confirmation d’un PaymentIntent. Vous devez à tout moment être en mesure de communiquer ce mandat (la demande de prélèvement acceptée et son contrat de service associé) à votre client, que ce soit sous forme de document imprimé ou de copie numérique non modifiable (par exemple, par e-mail). Stripe l’héberge pour vous sous la propriété url de l’objet Mandate lié au PaymentMethod.

Ajouter et configurer un composant Element Australia Bank Account

Le composant Australia Bank Account Element vous permet de collecter et de valider à la fois le numéro BSB et le numéro de compte du client. Incluez-le dans votre formulaire de paiement en créant des nœuds DOM (conteneurs) vides avec des ID uniques. Par ailleurs, votre client doit lire et accepter les conditions du Contrat d’utilisation du service de demande de prélèvement automatique.

payment_setup.html
HTML
<form action="/setup" method="post" id="setup-form"> <div class="form-row inline"> <div class="col"> <label for="accountholder-name"> Name </label> <input id="accountholder-name" name="accountholder-name" placeholder="John Smith" required /> </div> <div class="col"> <label for="email"> Email Address </label> <input id="email" name="email" type="email" placeholder="john.smith@example.com" required /> </div> </div> <div class="form-row"> <!-- Using a label with a for attribute that matches the ID of the Element container enables the Element to automatically gain focus when the customer clicks on the label. --> <label for="au-bank-account-element"> Bank Account </label> <div id="au-bank-account-element"> <!-- A Stripe Element will be inserted here. --> </div> </div> <!-- Used to display bank (branch) name associated with the entered BSB --> <div id="bank-name"></div> <!-- Used to display form errors. --> <div id="error-message" role="alert"></div> <!-- Display mandate acceptance text. --> <div class="col" id="mandate-acceptance"> By providing your bank account details, you agree to this Direct Debit Request and the <a href="stripe.com/au-becs-dd-service-agreement/legal">Direct Debit Request service agreement</a>, and authorise Stripe Payments Australia Pty Ltd ACN 160 180 343 Direct Debit User ID number 507156 (“Stripe”) to debit your account through the Bulk Electronic Clearing System (BECS) on behalf of Rocket Rides (the "Merchant") for any amounts separately communicated to you by the Merchant. You certify that you are either an account holder or an authorised signatory on the account listed above. </div> <!-- Add the client_secret from the SetupIntent as a data attribute --> <button id="submit-button" data-secret="{{CLIENT_SECRET}}">Set up BECS Direct Debit</button> </form>

Lors du chargement du formulaire, vous pouvez créer une instance du composant Element Australia Bank Account et la monter sur le conteneur Element :

// Custom styling can be passed to options when creating an Element const style = { base: { color: '#32325d', fontSize: '16px', '::placeholder': { color: '#aab7c4' }, ':-webkit-autofill': { color: '#32325d', }, }, invalid: { color: '#fa755a', iconColor: '#fa755a', ':-webkit-autofill': { color: '#fa755a', }, } }; const options = { style: style, disabled: false, hideIcon: false, iconStyle: "default", // or "solid" } // Create an instance of the auBankAccount Element. const auBankAccount = elements.create('auBankAccount', options); // Add an instance of the auBankAccount Element into // the `au-bank-account-element` <div>. auBankAccount.mount('#au-bank-account-element');

Envoyer les informations du moyen de paiement à Stripe
Cô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.

Utilisez stripe.confirmAuBecsDebitSetup pour mener à bien la configuration lorsque l’utilisateur envoie le formulaire. Si la configuration réussit, la propriété status du SetupIntent basculera sur succeeded. Si la configuration échoue, inspectez la valeur error renvoyée pour déterminer la cause de l’échec.

const form = document.getElementById('setup-form'); const accountholderName = document.getElementById('accountholder-name'); const email = document.getElementById('email'); const submitButton = document.getElementById('submit-button'); const clientSecret = submitButton.dataset.secret; form.addEventListener('submit', async (event) => { event.preventDefault(); stripe.confirmAuBecsDebitSetup( clientSecret, { payment_method: { au_becs_debit: auBankAccount, billing_details: { name: accountholderName.value, email: email.value } } } ); });

Une fois le SetupIntent confirmé, vous devez partager l’URL du mandat de l’objet Mandate avec votre client. Nous vous recommandons également de communiquer au client les informations suivantes lors de la confirmation de la création de son mandat :

  • un message de confirmation explicite indiquant qu’un mandat de prélèvement automatique a été mis en place
  • la dénomination sociale qui figurera sur le relevé bancaire du client lorsque son compte sera débité
  • le montant et le calendrier des paiements (le cas échéant)
  • un lien vers l’URL du mandat généré pour les demandes de prélèvement automatique

Vous pouvez accéder à l’ID de l’objet Mandate dans le champ mandate de l’objet SetupIntent (inclus avec l’événement setup_intent.succeeded envoyé après la confirmation), ou le récupérer via l’API.

Command Line
cURL
curl https://api.stripe.com/v1/setup_intents/{{SETUP_INTENT_ID}} \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "expand[]"=mandate

Créer un client avec un PaymentMethod
Cô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 :

Command Line
cURL
curl https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ --data-urlencode email="jenny.rosen@example.com" \ -d payment_method=pm_1FU2bgBF6ERF9jhEQvwnA7sX \ -d "invoice_settings[default_payment_method]"=pm_1FU2bgBF6ERF9jhEQvwnA7sX

Ceci renvoie un objet Customer. Vous pouvez voir le moyen de paiement par défaut dans l’objet invoice_settings :

{ "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 abonnement
Côté serveur

Créez un abonnement avec le tarif et le client :

Command Line
cURL
curl https://api.stripe.com/v1/subscriptions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=cus_Gk0uVzT2M4xOKD \ -d "items[0][price]"=price_F52b2UdntfQsfR

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'abonnement
Côté client

Si le paiement initial aboutit, l’état de l’abonnement passe à active 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 d’encaissement automatique. Vous devez alors avertir votre client que le paiement a échoué et le débiter 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 000-000 et l’un des numéros de compte de test ci-dessous dans votre requête confirmAuBecsDebitSetup.

Numéro BSBNuméro de compteDescription
000-000000123456Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à succeeded. L’état du mandat reste active.
000-000900123456Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à succeeded (avec un délai de trois minutes). L’état du mandat reste active.
000-000111111113Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à requires_payment_method avec un code d’échec account_closed. L’état du mandat devient inactive à ce stade.
000-000111111116Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à requires_payment_method avec un code d’échec no_account. L’état du mandat devient inactive à ce stade.
000-000222222227Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à requires_payment_method avec un code d’échec refer_to_customer. L’état du mandat reste active.
000-000922222227Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à requires_payment_method avec un code d’échec refer_to_customer (avec un délai de trois minutes). L’état du mandat reste active.
000-000333333335Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à requires_payment_method avec un code d’échec debit_not_authorized. L’état du mandat devient inactive à ce stade.
000-000666666660Le PaymentIntent créé avec le PaymentMethod résultant passe de processing à succeeded, mais un litige est immédiatement créé.
000-000343434343The PaymentIntent that was created with the resulting PaymentMethod fails with a charge_exceeds_source_limit error due to the payment amount causing the account to exceed its weekly payment volume limit.
000-000121212121The PaymentIntent that was created with the resulting PaymentMethod fails with a charge_exceeds_transaction_limit error due to the payment amount exceeding the account’s transaction volume limit.

FacultatifConfigurer le cycle de facturation

FacultatifPériodes d'essai d'un abonnement

Cette page vous a-t-elle été utile ?
OuiNon
Besoin d'aide ? Contactez le service Support.
Rejoignez notre programme d'accès anticipé.
Consultez notre log des modifications.
Des questions ? Contactez l'équipe commerciale.
LLM ? Lire llms.txt.
Propulsé par Markdoc