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
    Aperçu
    Accepter un paiement
    Devises
    Refus de paiement
    Virements
    Paiements récurrents
    Authentification 3D Secure
    Remboursement et annulation des paiements
    Soldes et délai de règlement
    Reçus
    Gérer les événements de webhook
    Préparation à la SCA
    API plus anciennes
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
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é
AccueilPaiementsAbout Stripe payments

Accepter un paiement

Acceptez les paiements en ligne en toute sécurité.

Créez un formulaire de paiement ou utilisez une page de paiement préconfigurée pour commencer à accepter les paiements en ligne.

Créez une intégration de paiement personnalisée en intégrant des composants d’interface utilisateur sur votre site, à l’aide de Stripe Elements. Découvrez comment cette intégration se compare aux autres types d’intégration de Stripe.

Le code côté client et côté serveur crée un formulaire de paiement qui accepte divers modes de paiement.

Pays du client
Taille
Thème
Disposition
Pour voir comment fonctionne Link pour un utilisateur récurrent, saisissez l'adresse courriel demo@stripe.com. Pour voir comment fonctionne Link lors d'une nouvelle inscription, saisissez une autre adresse courriel et remplissez le reste du formulaire. Cette démo n'affiche Google Pay ou Apple Pay que si vous avez une carte active avec l'un ou l'autre des portefeuilles numériques.

Effort d'intégration

API

Type d'intégration

Combiner les composants d’interface utilisateur dans un flux de paiement personnalisé

Personnalisation de l'interface utilisateur

Personnalisation au niveau CSS avec l’API Apparence

Vous souhaitez utiliser Stripe Tax, les réductions, l'expédition ou la conversion de devises?

Stripe a développé une intégration pour le composant Payment Element qui gère pour vous les taxes, les réductions, les frais de livraison et la conversion des devises. Pour en savoir plus, consultez le guide dédié à la création d’une page de paiement.

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 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 PaymentIntent
Côté serveur

Remarques

Si vous souhaitez présenter le Payment Element avant de créer un PaymentIntent, consultez la page Collecter les informations de paiement avant de créer un Intent.

L’objet PaymentIntent représente votre intention d’encaisser le paiement d’un client et suit les tentatives de débit et changements d’état tout au long du processus de paiement.

Créer le PaymentIntent

Créez un PaymentIntent sur votre serveur avec les attributs amount et currency. Dans la dernière version de l’API, la définition du paramètre automatic_payment_methods est facultative, car Stripe active sa fonctionnalité par défaut. Vous pouvez gérer les modes de paiement à partir du Dashboard. Stripe gère le retour des modes de paiement admissibles en fonction de facteurs tels que le montant de la transaction, la devise et le flux de paiement.

Stripe utilise vos paramètres de modes de paiement pour afficher les modes de paiement que vous avez activés. Pour voir comment vos modes de paiement s’affichent pour les clients, saisissez un identifiant de transaction ou définissez un montant et une devise de commande dans le Dashboard. Pour remplacer les modes de paiement, répertoriez manuellement ceux que vous souhaitez activer à l’aide de l’attribut payment_method_types.

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 "automatic_payment_methods[enabled]"=true

Remarques

Décidez toujours du montant à débiter côté serveur, un environnement sécurisé, plutôt que côté client. Cela permet d’éviter que des clients malveillants puissent définir leurs propres prix.

Récupérer la clé secrète du client

L’objet PaymentIntent comprend une clé secrète du client utilisée côté client pour effectuer le processus de paiement en toute sécurité. Vous pouvez utiliser différentes approches pour transmettre cette clé au côté client.

Récupérez la clé secrète du client à partir d’un point de terminaison sur votre serveur, en utilisant la fonction fetch du navigateur. Cette approche est préférable si votre côté client est une application d’une page, en particulier si celle-ci a été créée avec un cadre d’application frontal récent comme React. Créez le point de terminaison du serveur pour récupérer la clé secrète du client :

main.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

Ensuite, récupérez la clé secrète du client avec JavaScript côté client:

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Collecter les informations de paiement
Côté client

Collectez les informations de paiement du client à l’aide du Payment Element. Le Payment Element est un composant d’interface utilisateur préconfiguré qui simplifie la collecte des informations de paiement pour divers modes de paiement.

Le Payment Element contient une balise iframe qui envoie de manière sécurisée les informations de paiement à Stripe par une connexion HTTPS. Évitez de placer le Payment Element dans une autre balise iframe, car certains moyens de paiement nécessitent une redirection vers une autre page pour obtenir la confirmation du paiement.

Si vous choisissez d’utiliser un iframe et que vous souhaitez accepter Apple Pay ou Google Pay, l’attribut allow iframe doit être défini à "payment *".

Pour que votre intégration fonctionne, l’adresse de la page de paiement doit commencer par https:// plutôt que par http://. Vous pouvez tester votre intégration sans utiliser le protocole HTTPS, mais n’oubliez pas de l’activer lorsque vous serez prêt(e) à accepter des paiements réels.

Configurer Stripe.js

Le composant Payment Element est automatiquement disponible en tant que fonctionnalité de Stripe.js. Intégrez le script Stripe.js à votre page de paiement en l’ajoutant 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.

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

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

checkout.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'
);

Ajouter le Payment Element à votre page de paiement

Le Payment Element doit avoir un emplacement dédié dans votre page de paiement. Créez un nœud DOM (conteneurs) vide avec un ID unique dans votre formulaire de paiement :

checkout.html
<form id="payment-form"> <div id="payment-element"> <!-- Elements will create form elements here --> </div> <button id="submit">Submit</button> <div id="error-message"> <!-- Display error message to your customers here --> </div> </form>

Une fois le formulaire précédent chargé, créez une instance du Payment Element et intégrez-la au nœud DOM du conteneur. Transmettez la clé secrète du client de l’étape précédente dans les options lorsque vous créez l’instance Elements :

Manipulez la clé secrète du client avec prudence, car elle peut finaliser le paiement. Ne l’enregistrez pas, ne l’intégrez pas dans des URL et ne l’exposez à personne d’autre que votre client.

checkout.js
const options = { clientSecret: '{{CLIENT_SECRET}}', // Fully customizable with appearance API. appearance: {/*...*/}, }; // Set up Stripe.js and Elements to use in checkout form, passing the client secret obtained in a previous step const elements = stripe.elements(options); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');

Parcourir Stripe Elements

Stripe Elements est une collection de composants d’interface utilisateur prêts à l’emploi. Pour personnaliser davantage votre formulaire ou collecter différentes informations du client, consultez la documentation sur Elements.

Le Payment Element affiche un formulaire dynamique qui permet à votre client de choisir un moyen de paiement. Pour chaque moyen de paiement, le formulaire demande automatiquement au client de remplir toutes les informations de paiement nécessaires.

Personnaliser l’apparence

Personnalisez le Payment Element pour l’adapter à l’apparence de votre site en transmettant l’objet Appearance dans les options lors de la création du fournisseur Elements.

Collecter les adresses

Par défaut, le Payment Element recueille uniquement les informations de facturation nécessaires. Pour collecter l’adresse de facturation complète d’un client (par exemple, pour calculer la taxe sur les biens et services numériques) ou l’adresse de livraison, utilisez l’Address Element.

Demander le jeton marchand d’Apple Pay

Si vous avez configuré votre intégration afin d’accepter les paiements Apple Pay, nous vous recommandons de configurer l’interface Apple Pay de manière à renvoyer un jeton marchand afin d’activer les transactions effectuées par le marchand. Demander le type de jeton marchand approprié dans le composant Payment Element.

FacultatifEnregistrer et récupérer les moyens de paiement des clients

Vous pouvez configurer le composant Payment Element de façon à enregistrer les modes de paiement de vos clients en vue d’une utilisation ultérieure. Cette section vous montre comment intégrer la fonctionnalité d’enregistrement des modes de paiement, qui permet au Payment Element :

  • Inviter les acheteurs à consentir à enregistrer un moyen de paiement
  • Enregistrer les moyens de paiement lorsque les acheteurs donnent leur consentement
  • Afficher aux acheteurs les moyens de paiement enregistrés pour leurs prochains achats
  • Mise à jour automatique des cartes perdues ou expirées lorsque les clients les remplacent
Le composant Payment Element et une case à cocher pour le mode de paiement enregistré

Enregistrez les modes de paiement.

Le composant Payment Element avec un mode de paiement enregistré sélectionné

Réutilisez un mode de paiement précédemment enregistré.

Activer l’enregistrement du moyen de paiement dans le Payment Element

Lors de la création d’un PaymentIntent sur votre serveur, vous créez également une session CustomerSession fournissant un ID d’objet Customer et activant le composant payment_element pour votre session. Configurez les fonctionnalités des modes de paiement enregistrés que vous souhaitez activer. Par exemple, l’activation de payment_method_save vous permet d’afficher une case à cocher invitant les clients à enregistrer leurs informations de paiement pour une utilisation ultérieure.

Vous pouvez spécifier setup_future_usage sur un PaymentIntent ou une session Checkout pour remplacer le comportement par défaut à l’enregistrement d’un mode de paiement. Ainsi, vous enregistrez automatiquement le mode de paiement en vue d’une utilisation ultérieure, même si le client ne choisit pas explicitement de l’enregistrer.

Avertissement

Autoriser les clients à retirer les modes de paiement qu’ils ont enregistrés via l’activation de payment_method_remove a une incidence sur les abonnements qui dépendent de ce mode de paiement. Le retrait du mode de paiement dissocie le PaymentMethod de cet objet Customer.

server.rb
Ruby
Python
PHP
Node.js
Java
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'
post '/create-intent-and-customer-session' do intent = Stripe::PaymentIntent.create({ amount: 1099, currency: 'usd', # In the latest version of the API, specifying the `automatic_payment_methods` parameter # is optional because Stripe enables its functionality by default. automatic_payment_methods: {enabled: true}, customer:
{{CUSTOMER_ID}}
, }) customer_session = Stripe::CustomerSession.create({ customer:
{{CUSTOMER_ID}}
, components: { payment_element: { enabled: true, features: { payment_method_redisplay: 'enabled', payment_method_save: 'enabled', payment_method_save_usage: 'off_session', payment_method_remove: 'enabled', }, }, }, }) { client_secret: intent.client_secret, customer_session_client_secret: customer_session.client_secret }.to_json end

Votre instance Elements utilise la clé secrète du client de la session CustomerSession pour accéder aux modes de paiement enregistrés de ce client. Traitez les erreurs correctement lorsque vous créez la session CustomerSession. Si une erreur se produit, vous n’avez pas besoin de fournir la clé secrète du client de la session CustomerSession à l’instance Elements, car ceci est facultatif.

Créez l’instance Elements à l’aide des clés secrètes du client pour le PaymentIntent et la CustomerSession. Ensuite, utilisez cette instance Elements pour créer un Payment Element.

checkout.js
// Create the CustomerSession and obtain its clientSecret const res = await fetch("/create-intent-and-customer-session", { method: "POST" }); const { customer_session_client_secret: customerSessionClientSecret } = await res.json(); const elementsOptions = { clientSecret: '{{CLIENT_SECRET}}', customerSessionClientSecret, // Fully customizable with appearance API. appearance: {/*...*/}, }; // Set up Stripe.js and Elements to use in checkout form, passing the client secret // and CustomerSession's client secret obtained in a previous step const elements = stripe.elements(elementsOptions); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');

Lors de la confirmation du PaymentIntent, Stripe.js contrôle automatiquement le paramètre setup_future_usage sur le PaymentIntent et le paramètre allow_redisplay sur le PaymentMethod, selon que le client a coché ou non la case permettant d’enregistrer ses informations de paiement.

Exiger la récupération du CVC

Vous pouvez également spécifier require_cvc_recollection lors de la création du PaymentIntent afin d’exiger à nouveau la collecte du CVC lorsque le client paie par carte.

Détecter la sélection d’un moyen de paiement enregistré

Pour contrôler le contenu dynamique lorsqu’un moyen de paiement enregistré est sélectionné, écoutez l’événement change de Payment Element, qui est rempli avec le moyen de paiement sélectionné.

checkout.js
paymentElement.on('change', function(event) { if (event.value.payment_method) { // Control dynamic content if a saved payment method is selected } })

FacultatifLien sur votre page de paiement
Côté client

Utilisez Link dans le Payment Element pour permettre à vos clients de payer plus rapidement. Vous pouvez remplir automatiquement les informations de tout client connecté qui utilise déjà Link, qu’il ait initialement enregistré ou non ses informations dans Link avec une autre entreprise. L’intégration du composant Payment Element inclut par défaut une invite Link dans le formulaire de paiement par carte. Pour gérer Link dans le composant Payment Element, rendez-vous dans vos paramètres des modes de paiement.

Authentifiez-vous ou inscrivez-vous avec Link directement dans Payment Element lors du paiement

Recueillir l’adresse de courriel d’un client pour l’authentification ou l’inscription à Link

Options d’intégration

Il existe deux façons d’intégrer Link au Payment Element. Parmi ceux-ci, Stripe recommande de transmettre l’adresse de courriel du client au Payment si disponible. N’oubliez pas de tenir compte du fonctionnement de votre processus de paiement lorsque vous choisissez entre ces options :

Option intégrationFlux de paiementDescription
Transmettre l’adresse courriel d’un client au Payment Element Recommandé
  • Votre client saisit son adresse de courriel avant d’atterrir sur la page de paiement (par exemple, lors d’une étape de création de compte précédente).
  • Vous préférez utiliser votre propre champ de saisie pour l’adresse de courriel.
Transmettez par programmation une adresse de courriel client au Payment Element. Dans ce scénario, un client s’authentifie directement auprès de Link dans le formulaire de paiement au lieu d’un composant d’interface utilisateur distinct.
Collecter l’adresse courriel d’un client dans Payment ElementVos clients saisissent leur adresse de courriel et s’authentifient ou s’inscrivent avec Link directement dans le Payment Element lors du paiement.Si un client ne s’est pas inscrit avec Link et qu’il choisit un moyen de paiement pris en charge dans le Payment Element, il sera invité à enregistrer ses informations à l’aide de Link. Pour les clients déjà inscrits, Link renseigne automatiquement leurs informations de paiement.

FacultatifRécupérer des mises à jour à partir du serveur
Côté client

Vous pouvez mettre à jour les attributs du PaymentIntent après la présentation du Payment Element, tels que le montant (par exemple, les codes de réduction ou les frais de livraison). Vous pouvez mettre à jour le PaymentIntent sur votre serveur, puis appeler elements.fetchUpdates pour faire figurer le nouveau montant dans le Payment Element. Cet exemple vous montre comment créer le point de terminaison du serveur qui met à jour le montant sur le PaymentIntent :

main.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
get '/update' do intent = Stripe::PaymentIntent.update( '{{PAYMENT_INTENT_ID}}', {amount: 1499}, ) {status: intent.status}.to_json end

Cet exemple vous montre comment mettre à jour l’interface utilisateur pour refléter ces modifications côté client :

(async () => { const response = await fetch('/update'); if (response.status === 'requires_payment_method') { const {error} = await elements.fetchUpdates(); } })();

Envoyer le paiement à Stripe
Côté client

Utilisez stripe.confirmPayment pour finaliser le paiement à l’aide des informations du Payment Element. Ajoutez une return_url à cette fonction pour indiquer où Stripe doit rediriger l’utilisateur une fois le paiement effectué. Votre utilisateur peut être d’abord redirigé vers un site intermédiaire, comme une page d’autorisation bancaire, avant d’être redirigé vers la page return_url. Une fois que le paiement par carte a fonctionné, le client est immédiatement redirigé vers la page return_url.

Si vous ne souhaitez pas effectuer de redirection pour les paiements par carte après la finalisation, vous pourrez définir la redirection à if_required. De cette manière, seuls les clients qui choisissent un mode de paiement avec redirection seront redirigés.

checkout.js
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ //`Elements` instance that was used to create the Payment Element elements, confirmParams: { return_url: 'https://example.com/order/123/complete', }, }); if (error) { // This point will only be reached if there is an immediate error when // confirming the payment. Show error to your customer (for example, payment // details incomplete) const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; } else { // Your customer will be redirected to your `return_url`. For some payment // methods like iDEAL, your customer will be redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } });

Veillez à ce que le paramètre return_url corresponde à une page de votre site Web qui indique l’état du paiement. Lorsque Stripe redirige le client vers la page return_url, nous fournissons les paramètres de requête d’URL suivants :

ParamètreDescription
payment_intentL’identifiant unique du PaymentIntent.
payment_intent_client_secretLa clé secrète du client de l’objet PaymentIntent.

Avertissement

Si vous disposez d’outils qui assurent le suivi de la session navigateur du client, vous devrez peut-être ajouter le domaine stripe.com à la liste d’exclusion des sites référents. Les redirections font que certains outils créent de nouvelles sessions, ce qui empêche le suivi de la session dans son ensemble.

Utilisez l’un des paramètres de requête pour récupérer le PaymentIntent. Consultez l’état du PaymentIntent pour déterminer ce qui doit être présenté à vos clients. Vous pouvez également ajouter vos propres paramètres de requête lorsque vous fournissez l’objet return_url. Ils seront conservés tout au long du processus de redirection.

status.js
// Initialize Stripe.js using your publishable key const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Retrieve the "payment_intent_client_secret" query parameter appended to // your return_url by Stripe.js const clientSecret = new URLSearchParams(window.location.search).get( 'payment_intent_client_secret' ); // Retrieve the PaymentIntent stripe.retrievePaymentIntent(clientSecret).then(({paymentIntent}) => { const message = document.querySelector('#message') // Inspect the PaymentIntent `status` to indicate the status of the payment // to your customer. // // Some payment methods will [immediately succeed or fail][0] upon // confirmation, while others will first enter a `processing` state. // // [0]: https://stripe.com/docs/payments/payment-methods#payment-notification switch (paymentIntent.status) { case 'succeeded': message.innerText = 'Success! Payment received.'; break; case 'processing': message.innerText = "Payment processing. We'll update you when payment is received."; break; case 'requires_payment_method': message.innerText = 'Payment failed. Please try another payment method.'; // Redirect your user back to your payment page to attempt collecting // payment again break; default: message.innerText = 'Something went wrong.'; break; } });

Gérer les événements post-paiement
Côté serveur

Stripe envoie un événement payment_intent.succeeded à l’issue du paiement. Utilisez l’outil de webhook du Dashboard ou suivez le guide sur les webhooks pour recevoir ces événements et exécuter des actions, comme envoyer une confirmation de commande par courriel à votre client, enregistrer la vente dans une base de données ou lancer un flux de livraison.

Écoutez ces événements plutôt que d’attendre un rappel de votre client. Du côté client, il arrive en effet que l’utilisateur ferme la fenêtre de son navigateur ou quitte l’application avant même l’exécution du rappel, et des clients malveillants pourraient manipuler la réponse. En configurant votre intégration de manière à ce qu’elle écoute les événements asynchrones, vous pourrez accepter plusieurs types de moyens de paiement avec une seule intégration.

En plus de gérer l’événement payment_intent.succeeded, nous vous recommandons de gérer les autres événements suivants lorsque vous encaissez des paiements à l’aide du Payment Element :

ÉvénementDescriptionAction
payment_intent.succeededEnvoyé lorsqu’un client a effectué un paiement.Envoyez au client une confirmation de commande et traitez sa commande.
payment_intent.processingEnvoyé lorsqu’un client a entrepris un paiement, mais qu’il ne l’a pas encore finalisé. Dans la plupart des cas, cet événement est envoyé lorsque le client entreprend un prélèvement bancaire. Il est suivi par un événement payment_intent.succeeded ou payment_intent.payment_failed.Envoyez au client une confirmation de commande qui indique que son paiement est en attente. Pour des marchandises dématérialisées, nous vous recommandons de traiter la commande sans attendre que le paiement soit effectué.
payment_intent.payment_failedEnvoyé lorsqu’un client tente d’effectuer un paiement, mais que le paiement échoue.Si un paiement passe de l’état processing à l’état payment_failed, proposez au client de retenter le paiement.

Testez votre intégration

Pour tester votre intégration de paiement personnalisée :

  1. Créez un Payment Intent et récupérez la clé secrète du client.
  2. Remplissez le formulaire de paiement et indiquez-y une méthode qui provient du tableau suivant.
    • Saisissez une date d’expiration postérieure à la date du jour.
    • Saisissez un code CVC à 3 chiffres.
    • Saisissez un code postal de facturation.
  3. Soumettez le paiement à Stripe. Vous êtes alors redirigé vers votre return_url.
  4. Accédez au Dashboard et recherchez le paiement sur la page Transactions. Si votre paiement a été effectué, vous le verrez dans cette liste.
  5. Cliquez sur votre paiement pour voir plus d’informations, comme les informations de facturation et la liste des articles achetés. Vous pouvez utiliser ces informations pour traiter la commande.

Découvrez comment tester votre intégration.

Numéro de carteScénarioComment tester
Le paiement par carte est réussi et ne nécessite pas d’authentification.Remplissez le formulaire de paiement par carte de crédit en saisissant le numéro de carte de crédit ainsi qu’une date d’expiration, un CVC et un code postal de votre choix.
Le paiement par carte requiert une authentification.Remplissez le formulaire de paiement par carte de crédit en saisissant le numéro de carte de crédit ainsi qu’une date d’expiration, un CVC et un code postal de votre choix.
La carte est refusée avec un code de refus de type insufficient_funds.Remplissez le formulaire de paiement par carte de crédit en saisissant le numéro de carte de crédit ainsi qu’une date d’expiration, un CVC et un code postal de votre choix.
Le numéro de carte UnionPay a une longueur variable de 13 à 19 chiffres.Remplissez le formulaire de paiement par carte de crédit en saisissant le numéro de carte de crédit ainsi qu’une date d’expiration, un CVC et un code postal de votre choix.

Consultez la section Test pour obtenir des informations supplémentaires sur la manière de tester votre intégration.

FacultatifAjouter d'autres moyens de paiement

Le Payment Element prend en charge de nombreux moyens de paiement par défaut. Vous devez prendre des mesures supplémentaires pour activer et faire afficher certains moyens de paiement.

Affirm

Pour commencer à utiliser Affirm, vous devez l’activer dans le Dashboard. Lorsque vous créez un PaymentIntent avec le moyen de paiement Affirm, vous devez inclure une adresse de livraison. Cet exemple suggère de transmettre les informations de livraison sur le client après que le client ait sélectionné son moyen de paiement. En savoir plus sur l’utilisation de Affirm avec Stripe.

checkout.js
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ //`Elements` instance that was used to create the Payment Element elements, confirmParams: { return_url: 'https://my-site.com/order/123/complete', shipping: { name: 'Jenny Rosen', address: { line1: '1 Street', city: 'Seattle', state: 'WA', postal_code: '95123', country: 'US', }, }, }, }); if (error) { // This point is reached if there's an immediate error when // confirming the payment. Show error to your customer (e.g., payment // details incomplete) const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; } else { // Your customer is redirected to your `return_url`. For some payment // methods like iDEAL, your customer is redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } });

Tester Affirm

Apprenez comment tester différents scénarios à l’aide du tableau suivant :

ScénarioComment tester
Le paiement de votre client avec Affirm aboutit.Remplissez le formulaire (en prenant soin d’indiquer une adresse de livraison) et authentifiez le paiement.
Votre client ne parvient pas à s’authentifier sur la page de redirection Affirm.Remplissez le formulaire, puis cliquez sur Faire échouer le paiement test sur la page de redirection.

Afterpay (Clearpay)

Lorsque vous créez un PaymentIntent avec Afterpay comme moyen de paiement, vous devez inclure une adresse de livraison. En savoir plus sur l’utilisation de Afterpay avec Stripe.

Vous pouvez gérer les modes de paiement à partir du Dashboard. Stripe gère le retour des modes de paiement admissibles en fonction de facteurs tels que le montant de la transaction, la devise et le flux de paiement. L’exemple ci-dessous utilise l’attribut automatic_payment_methods, mais vous pouvez répertorier afterpay_clearpay avec les types de modes de paiement. Dans la dernière version de l’API, la définition du paramètre automatic_payment_methods est facultative, car Stripe active sa fonctionnalité par défaut. Quelle que soit l’option que vous choisissez, assurez-vous d’activer Afterpay Clearpay dans le Dashboard.

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 "automatic_payment_methods[enabled]"=true \ -d "shipping[name]"="Jenny Rosen" \ -d "shipping[address][line1]"="1234 Main Street" \ -d "shipping[address][city]"="San Francisco" \ -d "shipping[address][state]"=CA \ -d "shipping[address][country]"=US \ -d "shipping[address][postal_code]"=94111

Tester les paiements avec Afterpay (Clearpay)

Apprenez comment tester différents scénarios à l’aide du tableau suivant :

ScénarioComment tester
Votre client paie avec Afterpay sans problème.Remplissez le formulaire (en prenant soin d’indiquer une adresse de livraison) et authentifiez le paiement.
Votre client ne parvient pas à s’authentifier sur la page de redirection Afterpay.Remplissez le formulaire, puis cliquez sur Faire échouer le paiement test sur la page de redirection.

Apple Pay et Google Pay

Lorsque vous activez les paiements par carte, nous affichons Apple Pay et Google Pay pour les clients dont l’environnement remplit les conditions d’affichage du portefeuille numérique. Pour accepter les paiements de ces portefeuilles numériques, vous devez également :

  • Activez-les dans vos paramètres des moyens de paiement. Apple Pay est activé par défaut.
  • Utilisez votre application via HTTPS en mode développement et production.
  • Enregistrez votre domaine.
  • Récupérer des mises à jour à partir du serveur si vous mettez à jour le montant d’un PaymentIntent pour que la fenêtre modale de paiement du portefeuille numérique reste synchronisée.

Tests régionaux
Inde

Stripe Elements ne prend pas en charge Google Pay ou Apple Pay pour les comptes et les clients Stripe en Inde. Par conséquent, vous ne pouvez pas tester votre intégration Google Pay ou Apple Pay si l’adresse IP du testeur est en Inde, même si le compte Stripe est hébergé en dehors de l’Inde.

Pour en savoir plus sur l’utilisation de Apple Pay et Google Pay avec Stripe.

Prélèvement automatique ACH

Lorsque vous utilisez l’Element Payment avec le prélèvement automatique ACH comme moyen de paiement, procédez comme suit :

  1. Créer un objet Customer.

    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
    :"
  2. Spécifiez l’ID du client 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 setup_future_usage=off_session \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[]"=us_bank_account
  3. Sélectionner une méthode de vérification

Lorsque vous utilisez le moyen de paiement par prélèvement automatique ACH avec le Payment Element, vous ne pouvez sélectionner que automatic ou instant.

En savoir plus sur l’utilisation du prélèvement automatique ACH avec Stripe.

Tester le prélèvement automatique ACH

ScénarioComment tester
Votre client paie avec un compte bancaire américain par vérification immédiate sans problème.Sélectionnez Compte bancaire américain et remplissez le formulaire. Cliquez sur l’institution de test. Pour associer votre compte bancaire, suivez les instructions affichées dans la fenêtre modale. Enfin, cliquez sur le bouton de paiement.
Votre client paie avec un compte bancaire américain par microdépôts sans problème.Sélectionnez Compte bancaire américain et remplissez le formulaire. Cliquez sur Saisie manuelle des coordonnées bancaires. Suivez les instructions de la fenêtre modale pour associer votre compte bancaire. Vous pouvez utiliser ces numéros de compte test. Cliquez sur le bouton de paiement.
Votre client ne parvient pas à terminer le processus de liaison du compte bancaire.Sélectionnez Compte bancaire américain et cliquez sur l’institution de test ou sur Saisir les coordonnées bancaires manuellement. Fermez la fenêtre modale sans la remplir.

BLIK

Lorsque vous utilisez le Payment Element avec BLIK, l’utilisateur peut fermer la fenêtre modale pour autoriser le paiement dans son application. Cela déclenche une redirection vers votre return_url et ne renvoie pas l’utilisateur vers la page de paiement. En savoir plus sur l’utilisation de BLIK avec Stripe.

Pour gérer les situations où des utilisateurs ferment des boîtes de dialogue modales, accédez au gestionnaire côté serveur de votre return_url, et vérifiez si le paramètre status a pour valeur succeeded ou requires_action (ce qui signifie que le client a fermé la boîte de dialogue sans effectuer le paiement), puis traitez chaque cas comme il convient.

Moyens de paiement par code QR

Lorsque vous utilisez le Payment Element avec un moyen de paiement par code QR (WeChat Pay, PayNow, Pix, PromptPay, Cash App Pay), l’utilisateur peut fermer la fenêtre de dialogue sur laquelle est affichée le code. Cette action entraîne une redirection vers votre page return_url et non pas vers la page de paiement.

Pour gérer les situations où des utilisateurs ferment des boîtes de dialogue modales du code QR, accédez au gestionnaire côté serveur de votre return_url, et vérifiez si le paramètre status a pour valeur succeeded ou requires_action (ce qui signifie que le client a fermé la boîte de dialogue sans effectuer le paiement), puis traitez chaque cas comme il convient.

Vous pouvez également empêcher la redirection automatique vers votre page return_url en transmettant le paramètre facultatif avancé redirect=if_required, qui permet d’éviter toute redirection après la fermeture de la fenêtre modale du code QR.

Paiement en espèces par application

Le Payment Element affiche un formulaire dynamique différemment sur le Web de bureau ou le Web mobile, car il utilise différentes méthodes d’authentification du client. En savoir plus sur l’utilisation de Cash App Pay avec Stripe.

Cash App Pay est un moyen de paiement basé sur la redirection vers le Web mobile. Il redirige votre client vers Cash App en mode production ou vers une page de paiement test dans un environnement de test. Une fois le paiement effectué, il est redirigé vers l’URL return_url, que vous ayez défini redirect=if_required ou non.

PayPal

Pour utiliser PayPal, assurez-vous que vous êtes sur un domaine enregistré.

Présenter les informations de Stripe à vos clients

Stripe recueille des informations sur les interactions des clients avec Elements pour vous fournir des services, prévenir la fraude et améliorer ses services. Cela inclut l’utilisation de témoins et d’adresses IP pour identifier les Elements qu’un client a vus au cours d’une seule session de paiement. Vous êtes responsable de la divulgation et de l’obtention de tous les droits et consentements nécessaires pour permettre à Stripe d’utiliser les données de cette manière. Pour en savoir plus, rendez-vous sur notre centre de confidentialité.

Voir aussi

  • Stripe Elements
  • Configurer des paiements ultérieurs
  • Enregistrer les informations de paiement lors du paiement
  • Calculez la taxe de vente, TPS et TVA dans votre flux de paiement
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
Code quickstart
Guides associés
API Elements Appearance
Plus de scénarios de paiement
Fonctionnement des cartes