Accéder directement au contenu
Créez un compte
ou
connectez-vous
Le logo de la documentation Stripe
/
Demander à l’IA
Créer un compte
Connectez-vous
Commencer
Paiements
Revenus
Plateformes et places de marché
Gestion des fonds
Ressources de développement
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
AperçuTrouver 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
    Aperçu
    Comparer Checkout Sessions et PaymentIntents
    Guides QuickStart
    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 les 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
Moyens de paiement
Ajout de moyens de paiement
Gérer les moyens de paiement
Payer plus rapidement avec Link
Interfaces de paiement
Payment Links
Paiement
Web Elements
Paiements dans l’application
Scénarios de paiement
Gérez plusieurs devises
Flux de paiement personnalisés
Acquisition flexible
Orchestration
Paiements en personne
Terminal
Au-delà des paiements
Constituer son entreprise
Cryptomonnaie
Commerce agentique
Financial Connections
Climate
Comprendre la fraude
Radar pour la protection contre la fraude
Gérer les litiges
Vérifier l'identité
AccueilPaiementsBuild a custom integration with ElementsSave and retrieve customer payment methods

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

Découvrez comment enregistrer un mode de paiement et le débiter ultérieurement.

L’API Checkout Sessions en mode configuration vous permet d’enregistrer les informations de paiement d’un client sans paiement initial. Cette fonction est utile si vous souhaitez configurer des paiements dès l’inscription de vos clients afin de les débiter à l’aide de l’API Payment Intents plus tard, lorsqu’ils sont hors ligne.

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

Transactions par carte

Les transactions par carte, telles que la collecte des informations de carte via Stripe Terminal, utilisent un processus différent pour enregistrer le mode de paiement.

Conformité

Vous êtes responsable de votre conformité à toutes les lois, réglementations et règles du réseau applicables lorsque vous enregistrez les informations de paiement d’un client. Ces exigences s’appliquent généralement si vous souhaitez enregistrer le mode de paiement de votre client pour une utilisation future, comme en affichant le mode de paiement d’un client dans le flux de paiement pour un achat futur ou en le facturant lorsqu’il n’utilise pas activement votre site Web ou votre application. Ajoutez des conditions à votre site Web ou à votre application qui indiquent comment vous prévoyez enregistrer les informations du mode de paiement et permettez aux clients de donner leur consentement.

Lorsque vous enregistrez un mode de paiement, vous ne pouvez l’utiliser que pour l’usage précis que vous avez prévu dans vos conditions. Pour facturer un mode de paiement lorsqu’un client est hors ligne et l’enregistrer comme option pour des achats futurs, assurez-vous de recueillir explicitement le consentement du client pour cet usage précis. Par exemple, ajoutez une case à cocher indiquant « Enregistrer mon mode de paiement pour une utilisation ultérieure » pour recueillir le consentement du client.

Pour facturer un client lorsqu’il est hors ligne, assurez-vous que vos conditions comprennent les éléments suivants :

  • Le consentement du client vous autorisant à prélever un paiement ou une série de paiements en son nom pour des transactions spécifiques.
  • Le calendrier et la fréquence des paiements prévus (par exemple, si les frais concernent des versements échelonnés, des paiements d’abonnement ou des recharges non planifiées).
  • La façon dont vous déterminez le montant du paiement.
  • Vos conditions d’annulation, si le mode de paiement est un service d’abonnement.

Assurez-vous de conserver une trace de l’accord écrit de votre client à ces conditions.

Remarques

Si vous devez utiliser la confirmation manuelle côté serveur ou si votre intégration nécessite la présentation de modes de paiement distincts, consultez notre guide des solutions de remplacement.

Configurer Stripe
Côté serveur

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

Utilisez nos bibliothèques officielles pour accéder à l’API de 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 client
Côté serveur

Pour configurer un moyen de paiement pour les paiements futurs, vous devez l’associer à un Customer. Créez un objet Customer lorsque votre client crée un compte chez vous. 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 de paiement 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 mode de paiement au client.
Côté serveur

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

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

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 mode de paiement
Côté serveur

Une fois que le client a terminé sa session de paiement, 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 correspond à l’ID SetupIntent créé pendant la session de paiement.
  • Utilisez l’ID SetupIntent ID pour récupérer l’objet SetupIntent. L’objet renvoyé contient un ID payment_method que vous pouvez associer à un client à l’étape suivante.

En savoir plus sur la mise en place de webhooks.

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

Après avoir associé le PaymentMethod à un client, vous pouvez effectuer un paiement off-session l’aide d’un PaymentIntent :

  • Définissez customer sur l’ID du client et payment_method sur l’ID du mode de paiement.
  • Assignez la valeur true à off_session afin d’indiquer que le client n’est pas dans votre flux de paiement lors d’une tentative de paiement et ne peut pas répondre à une demande d’authentification faite par un partenaire, comme un émetteur de cartes, une institution financière ou un autre établissement financier. Si, au cours de votre flux de paiement, un partenaire demande une authentification, Stripe demandera des exemptions à l’aide des informations client provenant d’une transaction effectuée pendant une session précédente. Si les conditions d’exemption ne sont pas respectées, le PaymentIntent peut générer une erreur.
  • Assignez la valeur true à la propriété confirm du PaymentIntent, ce qui aura pour effet de générer une confirmation immédiate lorsque vous créez le 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

Si une tentative de paiement échoue, la requête échoue également avec un code d’état HTTP 402. L’état de l’objet PaymentIntent est alors requires_payment_method. Invitez votre client à revenir dans votre application (par courriel ou via une notification dans l’application, par exemple) et redirigez votre client vers une nouvelle session de paiement afin qu’il sélectionne un autre mode de paiement.

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 d'assistance.
  • Rejoignez notre programme d'accès anticipé.
  • Consultez notre journal des modifications.
  • Des questions? Contactez l'équipe commerciale.
  • GML? Lire llms.txt.
  • Optimisé par Markdoc