Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageUtiliser Managed Payments
Utiliser Payment Links
Utiliser une page de paiement préconfiguré
Créer une intégration personnalisée avec Elements
    Présentation
    Guides QuickStart
    Stripe Elements
    Comparer Checkout Sessions et PaymentIntents
    Concevoir une intégration avancée
    Personnaliser l'apparence
    Gérer les moyens de paiement
    Collecter des informations supplémentaires
    Créer une intégration pour les abonnements
    Mises à jour dynamiques
    Ajouter des réductions
    Percevoir les taxes sur vos paiements
    Utiliser des crédits
    Offrir aux clients la possibilité de payer dans leur devise locale
    Enregistrer et récupérer les moyens de paiement des clients
      Enregistrer le moyen de paiement utilisé pour le paiement
      Enregistrer un moyen de paiement sans effectuer de paiement
    Envoyer des reçus ou factures après paiement
    Approuver manuellement les paiements sur votre serveur
    Autoriser et capturer un paiement séparément
    Liste des modifications de la version bêta d'Elements avec l'API Checkout Sessions
Développer une intégration dans l'application
Paiements par TPE
Terminal
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
Scénarios de paiement
Gérer plusieurs devises
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Commerce agentique
Financial Connections
Climate
Comprendre la fraude
Radar pour la protection contre la fraude
Gestion des litiges
Vérifier l'identité
États-Unis
Français (France)
AccueilPaiementsBuild a custom integration with ElementsSave and retrieve customer payment methods

Enregistrer le moyen de paiement d'un client sans effectuer de paiement

Apprenez à enregistrer un moyen de paiement et à le débiter plus tard.

L’API Checkout Sessionsen configurationmode vous permet d’enregistrer les détails de paiement d’un client sans paiement initial. Cette fonction est utile si vous souhaitez accueillir des clients dès maintenant, configurer leurs paiements et les débiter ultérieurement à l’aide de l’API Payment Intents, lorsqu’ils ne sont pas en ligne.

Utilisez cette intégration pour configurer des paiements récurrents ou créer des paiements ponctuels dont le montant doit être déterminé ultérieurement, généralement après la réception de votre service par le client.

Transactions en présence de la carte

Les transactions effectuées par carte bancaire, telles que la collecte des informations de carte via le terminal Stripe utilisent un processus différent pour l’enregistrement du moyen de paiement.

Conformité

Lorsque vous enregistrez les informations de paiement d’un client, vous êtes responsable du respect de l’ensemble des lois, réglementations et règles du réseau en vigueur. Ces exigences s’appliquent en général si vous souhaitez enregistrer un moyen de paiement pour une utilisation future, par exemple en l’affichant dans Checkout pour un achat ultérieur ou en débitant ce moyen de paiement lorsque le client n’utilise pas activement votre site internet ou votre application. Ajoutez à votre site ou application des conditions précisant comment vous comptez enregistrer les moyens de paiement et permettant aux clients d’y consentir.

Lorsque vous enregistrez un moyen de paiement, vous ne pouvez l’utiliser que pour l’usage spécifique indiqué dans vos conditions. Pour débiter un moyen de paiement lorsqu’un client est hors ligne et l’enregistrer comme option pour de futurs achats, vous devez recueillir explicitement le consentement du client pour cet usage. Par exemple, affichez une case à cocher « Enregistrer mon moyen de paiement pour une utilisation ultérieure » afin d’obtenir ce consentement.

Pour facturer un client lorsqu’il n’est pas en ligne, assurez-vous que vos conditions incluent les éléments suivants :

  • Le consentement du client vous autorisant à initier un paiement ou une série de paiements en son nom pour les transactions spécifiées.
  • Le calendrier et la fréquence prévus des paiements (par exemple, s’il s’agit de versements échelonnés, de paiements d’abonnements ou de recharges ponctuelles).
  • La façon dont vous déterminez le montant à payer.
  • Vos conditions d’annulation, si le moyen de paiement est utilisé dans le cadre d’un abonnement.

Veillez à conserver une trace écrite de l’acceptation de ces conditions par votre client.

Note

Si vous devez utiliser la confirmation manuelle côté serveur ou si votre intégration nécessite de présenter les moyens de paiement séparément, consultez notre guide alternatif.

Configurer Stripe
Côté serveur

Tout d’abord, créez un compte Stripe ou connectez-vous.

Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Créer un objet Customer
Côté serveur

Pour configurer un moyen de paiement en vue de paiements ultérieurs, vous devez l’associer à un objet Customer. Créez un objet Customer lorsque votre client crée un compte auprès de votre entreprise. Les objets Customer permettent de réutiliser des moyens de paiement et de suivre plusieurs paiements.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Utiliser le mode de configuration
Côté serveur

Créez une session Checkout avec mode=setup.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=setup \ -d ui_mode=custom \ -d currency=usd

Associer le moyen de paiement à un client
Côté serveur

Si vous n’avez pas créé la session Checkout avec un client existant, utilisez l’identifiant du PaymentMethod pour associer le moyen de paiement à un client.

Sinon, le moyen de paiement est automatiquement associé au client que vous avez fourni lors de la création de la session Checkout.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_methods/
{{PAYMENT_METHOD_ID}}
/attach
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
"{{CUSTOMER_ID}}"

Récupérer le moyen de paiement
Côté serveur

Une fois que le client a terminé avec succès sa session Checkout, traitez le webhook checkout.session.completed. Récupérez l’objet Session dans le webhook, puis procédez comme suit :

  • Obtenez la valeur de la clé setup_intent, qui est l’identifiant SetupIntent créé lors de la session Checkout.
  • Utilisez l’identifiant SetupIntent pour récupérer l’objet SetupIntent. L’objet renvoyé contient un identifiant payment_method que vous pouvez associer à un client à l’étape suivante.

En savoir plus sur la configuration des webhooks.

Débiter ultérieurement le moyen de paiement enregistré
Côté serveur

Après avoir rattaché le PaymentMethod à un client, vous pouvez effectuer un paiement hors session à l’aide d’un PaymentIntent .

  • Attribuez à customer l’identifiant du client et à payment_method l’identifiant du moyen de paiement.
  • Définissez off_session sur true pour indiquer que le client n’est pas dans votre tunnel de paiement lors d’une tentative de paiement et qu’il ne peut pas réaliser une demande d’authentification faite par un partenaire, tel qu’un émetteur de carte bancaire, une banque ou une autre institution de paiement. Si, pendant votre tunnel de paiement, un partenaire demande l’authentification, Stripe demandera des exemptions en utilisant les informations du client provenant d’une transaction on-session. Si les conditions d’exemption ne sont pas respectées, le PaymentIntent peut générer une erreur.
  • Attribuez la valeur true à la propriété confirm du PaymentIntent, ce qui entraîne une confirmation immédiate lors de la création du PaymentIntent.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd \ -d customer=
"{{CUSTOMER_ID}}"
\ -d payment_method=
"{{PAYMENT_METHOD_ID}}"
\ -d off_session=true \ -d confirm=true

If a payment attempt fails, the request also fails with a 402 HTTP status code, and the PaymentIntent status is requires_payment_method. Notify your customer to return to your application (for example, by sending an email or in-app notification) and direct your customer to a new Checkout Session to select another payment method.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
"{{CUSTOMER_ID}}"
\ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=1099 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ -d ui_mode=custom \ --data-urlencode return_url="https://example.com/return"
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc