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
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
Aperçu
Billing
PrésentationÀ propos des API Billing
Abonnements
    Présentation
    Fonctionnement des abonnements
    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
      Intégrer le traitement des paiements par des tiers
      Méthodes d'encaissement
      Authentification forte du client (SCA)
      Gérer les abonnements
      Modifier des abonnements
      Gérer des mises à jour en attente
    Droits d'accès
    Analyses
Invoicing
Facturation à la consommation
Devis
Gestion des clients
Facturation avec d'autres produits
Recouvrement de revenus
Automatisations
Tester votre intégration
Tax
Présentation
Utiliser Stripe Tax
Gérer la conformité
Rapports
Présentation
Sélectionner un rapport
Configurer des rapports
API de rapport
Rapports sur plusieurs comptes
Comptabilisation des revenus
Données
PrésentationSchéma
Rapports personnalisés
Data Pipeline
Gestion des données
AccueilRevenusSubscriptionsSubscription featuresSubscription payment methods

Configurer un abonnement avec le prélèvement automatique canadien

Comment créer et facturer un abonnement avec les prélèvements automatiques canadiens.

Remarque

Le mode abonnement n’est pas encore pris en charge dans Checkout. Pour être informé de l’accès anticipé lorsque cette fonctionnalité sera disponible, contactez-nous pour rejoindre la liste d’attente.

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 CAD 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 CAD.
  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 l'abonnement
Côté serveur

Remarque

Pour créer un abonnement avec une période d’essai, consultez la documentation relative aux périodes d’essai des abonnements.

Créez un abonnement avec le tarif et le client à l’état incomplete en fournissant le paramètre payment_behavior défini sur la valeur default_incomplete.

Command Line
curl
curl https://api.stripe.com/v1/subscriptions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer"="{{CUSTOMER_ID}}" \ -d "items[0][price]"="price_F52b2UdntfQsfR" \ -d "payment_behavior"="default_incomplete" \ -d "payment_settings[payment_method_types][]"="acss_debit" \ -d "expand[0]"="latest_invoice.payment_intent"

La réponse inclut la première facture de l’abonnement. Celui-ci contient les paiements de la facture, qui inclut un PaymentIntent par défaut que Stripe a généré pour cette facture et la clé secrète de confirmation que vous pouvez envoyer au client afin qu’il finalise le processus de paiement en toute sécurité au lieu de lui transmettre la totalité de l’objet PaymentIntent. Renvoyez le latest_invoice.confirmation_secret.client_secret au front-end pour finaliser le paiement.

Recueillir les informations du moyen de paiement et la confirmation du mandat
Côté client

Pour recourir aux prélèvements pré-autorisés canadiens, vous devez obtenir l’autorisation de vos clients pour les paiements ponctuels et récurrents à l’aide d’un mandat de prélèvement automatique (consultez la section Mandats de prélèvement automatique). L’objet Mandate enregistre le mandat et l’autorisation.

Stripe configure automatiquement les mandats d’abonnement et de facture pour vous. Votre client n’a besoin d’accepter les conditions du mandat qu’une seule fois, les frais d’abonnement ultérieurs seront appliqués sans qu’aucune autre intervention ne soit nécessaire.

Lorsqu’un client clique pour payer avec Canadian pre-authorized debit, nous vous recommandons d’utiliser Stripe.js pour soumettre le paiement à Stripe. Stripe.js est notre bibliothèque JavaScript de base pour créer les tunnels de paiement : elle gère automatiquement les opérations complexes d’intégration et vous permettra de facilement étendre votre intégration à d’autres moyens de paiement par la suite.

Intégrez le script Stripe.js à votre page de paiement en l’ajoutant entre les balises head de votre fichier HTML.

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>

Créez une instance de Stripe.js avec le code JavaScript suivant sur votre page de paiement.

client.js
// Set your publishable key. Remember to change this to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);

Plutôt que d’envoyer la totalité de l’objet PaymentIntent au client, utilisez sa clé secrète provenant de l’étape précédente. Il ne s’agit pas de vos clés API qui authentifient les requêtes de l’API de 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.

Utilisez stripe.confirmAcssDebitPayment pour collecter les informations du compte bancaire et effectuer la vérification, confirmer le mandat et lancer le paiement lorsque l’utilisateur envoie le formulaire. Il est nécessaire d’inclure l’adresse électronique et le nom du client dans la propriété billing_details du paramètre payment_method pour créer un moyen de paiement pour le prélèvement préautorisé.

const form = document.getElementById('payment-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(); const {paymentIntent, error} = await stripe.confirmAcssDebitPayment( clientSecret, { payment_method: { billing_details: { name: accountholderName.value, email: email.value, }, }, } ); if (error) { // Inform the customer that there was an error. console.log(error.message); } else { // Handle next step based on PaymentIntent's status. console.log("PaymentIntent ID: " + paymentIntent.id); console.log("PaymentIntent status: " + paymentIntent.status); } });

Stripe.js charge ensuite une interface utilisateur du modal sur la page qui gère la collecte et la vérification des informations du compte bancaire, présente un accord de mandat hébergé et collecte l’autorisation.

Remarque

stripe.confirmAcssDebitPayment peut prendre plusieurs secondes. Pendant ce temps, bloquez le renvoi de votre formulaire et affichez un indicateur d’attente. Si vous recevez une erreur, montrez-la au client, réactivez le formulaire et masquez l’indicateur d’attente.

Si le client termine le processus de vérification instantanée, l’abonnement devient automatiquement active. Sinon, consultez la section suivante pour gérer la vérification à l’aide de microversements pendant que l’abonnement reste incomplete.

Vérifier le compte bancaire à l'aide de microversements
Côté client

Remarque

Dans le cadre d’un abonnement, les clients ont 10 jours pour vérifier les microversements, au lieu des 23 heures habituellement accordées dans le cycle de vie d’un abonnement. Toutefois, cette date d’expiration ne peut pas être postérieure à la date de début du cycle de facturation.

Tous les clients ne peuvent pas vérifier instantanément le compte bancaire. Cette étape ne s’applique que si votre client a choisi de se désinscrire du flux de vérification instantanée dans l’étape précédente.

Dans ce cas, Stripe envoie automatiquement deux microversements sur le compte bancaire du client. Ces versements sont effectués sous un à deux jours ouvrables avant d’apparaître sur le relevé en ligne du client et sont accompagnés de libellés de relevé bancaire contenant ACCTVERIFY.

Le résultat de l’appel du moyen de paiement stripe.confirmAcssDebitPayment dans la configuration précédente est un PaymentIntent avec l’état requires_action. Le PaymentIntent contient un champ next_action qui contient des informations utiles pour effectuer la vérification.

Stripe informe votre client de la date à laquelle les versements devraient arriver en envoyant un message à l’adresse e-mail de facturation. L’e-mail inclut un lien vers la page de vérification hébergée par Stripe où il peut confirmer les montants des versements et effectuer la vérification.

La limite pour la vérification est fixée à trois tentatives. Si cette limite est dépassée, le compte bancaire ne peut plus être vérifié. De plus, les vérifications des microversements expirent sous 10 jours. Si les micro-versements ne sont pas vérifiés dans ce laps de temps, le Paymentintent rétablit les informations du nouveau moyen de paiement. Une communication claire à propos de ces microversements et leur utilisation peut aider vos clients à éviter des difficultés liées à la vérification.

Facultatif : un e-mail et une page de vérification personnalisés

Si vous avez préalablement choisi d’envoyer des notifications personnalisées par e-mail, vous devez à la place envoyer un e-mail à votre client. Pour ce faire, vous pouvez utiliser l’URL verify_with_microdeposits[hosted_verification_url] dans l’objet next_action pour que votre client puisse effectuer le processus de vérification.

Si vous envoyez des e-mails personnalisés et que vous ne souhaitez pas utiliser la page de vérification hébergée par Stripe, vous pouvez créer un formulaire sur votre site pour que vos clients puissent vous indiquer ces montants et vérifier le compte bancaire à l’aide de Stripe.js.

stripe.verifyMicrodepositsForPayment(clientSecret, { amounts: [32, 45], });

Configurer le moyen de paiement par défaut
Serveur

Vous disposez à présent d’un abonnement actif appartenant à un client avec un moyen de paiement défini, mais ce dernier ne sera pas automatiquement utilisé pour les futurs paiements. À l’avenir, si vous souhaitez débiter automatiquement ce moyen de paiement, utilisez un consommateur de webhook pour écouter l’événement invoice.payment_succeeded pour votre nouvel abonnement et pour définir le moyen de paiement par défaut.

server.rb
Ruby
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
if event.type == 'invoice.payment_succeeded' invoice = event.data.object if invoice['billing_reason'] == 'subscription_create' subscription_id = invoice['parent']['subscription_details']['subscription'] # This example assumes you're using the default PaymentIntent that Stripe generated for the invoice. invoice_payments = Stripe::InvoicePayment.list({invoice: invoice['id']}) payment_intent_id = invoice_payments.data[0].payment.payment_intent # Retrieve the payment intent used to pay the subscription payment_intent = Stripe::PaymentIntent.retrieve(payment_intent_id) # Set the default payment method Stripe::Subscription.update( subscription_id, default_payment_method: payment_intent.payment_method ) end end

Gérer l'état de l'abonnement
Côté client

Si le paiement initial aboutit, l’abonnement prend l’état 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 de recouvrement automatique. Prévenez votre client que le paiement a échoué et débitez-le avec un autre moyen de paiement.

Remarque

Les paiements par prélèvement automatique canadien ne sont jamais automatiquement relancés, même si vous avez configuré une planification de relance pour les autres moyens de paiement.

Tester votre intégration

Recevoir un e-mail de vérification du micro-versement

Afin de recevoir l’e-mail de vérification du microversement dans un environnement de test une fois la collecte des informations du compte bancaire et l’acceptation d’un mandat effectuées, fournissez un e-mail dans le champ payment_method[billing_details][email] du formulaire de {any_prefix}+test_email@{any_domain} lors de la confirmation des informations du moyen de paiement.

Numéros de comptes de test

Stripe fournit plusieurs numéros de compte test que vous pouvez utiliser pour vous assurer que votre intégration pour les comptes bancaires saisis manuellement sont prêts pour le mode production. Tous les comptes test avec un paiement qui réussit ou échoue automatiquement doivent être vérifiés à l’aide des montants de microversement test ci-dessous avant de pouvoir être effectués.

Numéro d’établissementNuméro de transitNuméro de compteScénario
00011000000123456789Réussite immédiate du paiement après la vérification des microversements.
00011000900123456789Réussite du paiement avec un délai de trois minutes après la vérification des microversements.
00011000000222222227Échec immédiat du paiement après la vérification des microversements.
00011000900222222227Échec du paiement avec un délai de trois minutes après la vérification des microversements.
00011000000666666661Échec d’envoi des microversements de vérification.
00011000000777777771Échec du paiement, car le montant du paiement a entraîné le dépassement de la limite de volume de paiement hebdomadaire du compte.
00011000000888888881Échec du paiement, car son montant dépasse la limite du volume de transactions du compte.

Pour simuler les réussites ou les échecs de la vérification des comptes bancaires dans un environnement de test, utilisez ces montants représentatifs pour les microversements :

Valeurs des micro-versementsScénario
32 et 45Vérification du compte réussie.
10 et 11Simule le dépassement du nombre de tentatives de vérification autorisé.
Toute autre combinaison de montantsÉchec de la vérification du compte.

FacultatifConfiguration du cycle de facturation

FacultatifPériodes d'essai avant abonnement

FacultatifEnregistrement des informations de moyen de paiement pour utilisation ultérieure

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