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émarrer
    Démarrage rapide
    Planifier une intégration
    Créer une intégration
    Cas d'usage
    À propos des abonnements
    Activer le mode de facturation
    Définitions d'événements pour les abonnements
    Droits d'accès
    Factures d'abonnements
    Planifications d'abonnements
    Modèles tarifaires récurrents
    Authentification forte du client (SCA)
    Configurer des abonnements
    Configurer les méthodes de recouvrement
    Intégrez une grille tarifaire
    Définir des cycles de facturation
    Gérer les abonnements
    Migrer des abonnements vers Stripe
    Définir des quantités de produits ou d'abonnements
    Abonnements présentant des postes à la périodicité différente
    Antidater des abonnements
    Définir des périodes d'essai
    Gérer les abonnements avec paiement différé
    Appliquer des bons de réduction
    Modifier des abonnements
    Gérer les modes de paiement des 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
    Analyses
    Gérer des abonnement sur iOS
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
AccueilRevenusSubscriptionsManage subscription 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. Go to the Products page and click Create product.
  2. Saisissez un Nom pour le produit. Vous pouvez éventuellement ajouter une Description et télécharger une image du produit.
  3. Select a Product tax code. Learn more about product tax codes.
  4. Sélectionnez Récurrent. Saisissez ensuite pour le prix et sélectionnez comme devise.
  5. 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.
  6. Pour Période de facturation, sélectionnez Mensuel.
  7. Click More pricing options. Then select Flat rate as the pricing model for this example. Learn more about flat rate and other pricing models.
  8. Add an internal Price description and Lookup key to organize, query, and update specific prices in the future.
  9. 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_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
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
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

Les clients disposent de 10 jours pour vérifier les micro-virements pour un abonnement, au lieu des 23 heures normalement accordées dans le cycle de vie de l’abonnement. Cependant, cette expiration ne peut pas être postérieure à la date de la période 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
Python
PHP
Java
Node.js
Go
.NET
No results
# 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

Lorsque le paiement initial aboutit, l’état de l’abonnement est actif et aucune action supplémentaire n’est requise. Lorsque le paiement échoue, l’état passe à l’état de l’abonnement configuré dans vos paramètres d’encaissement automatique. Informez le client en cas d’échec et débiter 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.

FacultatifDéfinition de la période 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