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
Démarrer avec Connect
Concevoir votre intégration
Principes de base de l'intégration
Exemples d'intégration
Gestion de compte
Inscrire des comptes
Configurer les dashboards des comptes
Utiliser les types de comptes connectés
Traitement des paiements
Accepter des paiements
    Créer un paiement
      Paiements directs
        Configurations des frais pour les comptes connectés
        Rapports pour les frais de paiement direct
        Partager les moyens de paiement entre plusieurs comptes
      Paiement indirect
      Paiements et transferts distincts
    Définir des libellés de relevé bancaire
    Définir les codes de catégories de marchands (CCM)
    Gérer plusieurs devises
    Créer des liens de paiement avec Connect
    Utiliser Radar avec Connect
    Litiges sur Connect
    Créer des abonnements
    Créer des factures
    Configurations de moyens de paiement multiples
    Intégrer le composant des paramètres des moyens de paiement
    Solde du compte
Effectuer des virements vers des comptes
Administration de plateforme
Gérer votre plateforme Connect
Formulaires fiscaux pour votre plateforme Connect
États-Unis
Français (France)
AccueilPlateformes et places de marchéAccept paymentsCreate a charge

Créer des paiements directs

Créez des paiements directement sur le compte connecté et prélevez des frais.

Créez des paiements directs lorsque des clients effectuent des transactions directement avec un compte connecté, souvent sans connaître l’existence de votre plateforme. Grâce aux paiements directs :

  • Le paiement apparaît comme un débit sur le compte connecté, et non sur le compte de votre plateforme.
  • Le solde du compte connecté augmente à chaque prélèvement.
  • Le solde de votre compte augmente avec les commissions de la plateforme sur chaque paiement.

Ce type de paiement est le mieux adapté aux plateformes SaaS. Par exemple, Shopify fournit des outils pour créer des vitrines en ligne et Thinkific permet aux enseignants de proposer des cours en ligne.

Limites de visibilité de la plateforme

Les paiements directs ont une visibilité limitée au niveau de la plateforme. Lorsque vous créez des paiements directs :

  • Les objets de transaction tels que PaymentIntents et Charges existent sur le compte connecté, et non sur la plateforme.
  • Pour accéder aux données relatives aux paiements directs, vous devez interroger l’API Stripe en utilisant l’identifiant du compte connecté dans l’en-tête Stripe-Account.

Ce comportement de cadrage affecte les services de synchronisation des données, tels que Fivetran, ainsi que d’autres intégrations tierces qui s’appuient sur des requêtes API au niveau de la plateforme. Pour récupérer les données relatives aux paiements directs, ils doivent interroger le compte connecté, et non la plateforme.

Remarque

Nous vous recommandons d’utiliser les paiements directs pour les comptes connectés qui ont accès à l’intégralité du Dashboard Stripe.

Intégrez l’interface utilisateur de paiement préconfigurée de Stripe au processus de paiement de votre application iOS grâce à la classe PaymentSheet. Consultez notre exemple d’intégration sur GitHub.

Configurer Stripe
Côté serveur
Côté client

Dans un premier temps, vous devez créer un compte Stripe. S’inscrire maintenant.

Côté serveur

Cette intégration nécessite des endpoints sur votre serveur qui communiquent avec l’API Stripe. Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre serveur :

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'

Côté client

Le SDK iOS de Stripe est disponible en open source et fait l’objet d’une documentation complète. Il est également compatible avec les applications prenant en charge iOS 13 et les versions ultérieures.

Pour installer le SDK, veuillez suivre les étapes ci-dessous :

  1. Dans Xcode, sélectionnez File > Add Package Dependencies… puis saisissez https://github.com/stripe/stripe-ios-spm en tant qu’URL du référentiel.
  2. Sélectionnez le dernier numéro de version, visible sur notre page des versions.
  3. Ajoutez le produit StripePaymentSheet à la cible de votre application.

Remarque

Pour obtenir de plus amples informations sur la version la plus récente du SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour recevoir une notification lors de la publication d’une nouvelle version, surveillez les versions à partir du référentiel.

Configurez le SDK avec votre clé publiable Stripe au démarrage de votre application. Cela lui permet d’envoyer des requêtes à l’API Stripe.

AppDelegate.swift
Swift
No results
import UIKit import StripePaymentSheet @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { StripeAPI.defaultPublishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
// do any other necessary launch configuration return true } }

Remarque

Utilisez vos clés de test lors de vos activités de test et de développement et vos clés du mode production pour la publication de votre application.

Ajouter un endpoint
Côté serveur

Remarque

Pour afficher PaymentSheet avant de créer un PaymentIntent, consultez notre article Collecter les détails du paiement avant de créer un Intent.

Cette intégration utilise trois objets de l’API Stripe :

  1. PaymentIntent : pour représenter votre intention d’encaisser le paiement d’un client, Stripe utilise un objet PaymentIntent qui suit vos tentatives de débit et les changements d’état du paiement tout au long du processus.

  2. (Facultatif) Customer : pour configurer un moyen de paiement en vue de paiements futurs, vous devez l’associer à un objet Customer. Créez un objet Customer lorsque votre client ouvre un compte chez vous. Si votre client effectue un paiement en tant qu’invité, vous pouvez créer un objet Customer avant le paiement, puis l’associer ultérieurement à votre représentation interne du compte client.

  3. (Facultatif) Customer Ephemeral Key : l’objet Customer contient des informations sensibles qu’il n’est pas possible de récupérer directement depuis une application. Une clé éphémère permet d’accorder au SDK un accès temporaire à l’objet Customer.

Remarque

Si vous n’enregistrez jamais les cartes bancaires des clients et que vous n’autorisez pas vos clients réguliers à réutiliser les cartes enregistrées, vous pouvez exclure les objets Customer et Customer Ephemeral Key de votre intégration.

Pour des raisons de sécurité, votre application ne peut pas créer ces objets. À la place, ajoutez sur votre serveur un endpoint qui :

  1. Récupère l’objet Customer ou en crée un nouveau.
  2. Crée une clé éphémère pour le client.
  3. Crée un PaymentIntent comportant les paramètres amount, currency, customer. Vous pouvez également inclure le paramètre automatic_payment_methods (facultatif). Stripe l’active par défaut dans la dernière version de l’API.
  4. Renvoie la clé secrète du client du Payment Intent, le secret de la clé éphémère, l’id du client et votre clé publiable à votre application.

Les moyens de paiement présentés à votre client lors du processus de paiement sont également inclus dans le PaymentIntent. Vous pouvez laisser Stripe extraire (depuis les paramètres de votre Dashboard) les moyens de paiement à présenter, ou les répertorier manuellement. Quelle que soit l’option que vous choisissez, sachez que la devise transmise dans le PaymentIntent filtre les moyens de paiement présentés au client. Par exemple, si vous transmettez eur dans le PaymentIntent et que vous avez activé OXXO dans votre Dashboard, votre client ne verra pas ce moyen de paiement étant donné qu’OXXO ne prend pas en charge les paiements en eur.

À moins que votre intégration ne nécessite du code pour la présentation des moyens de paiement, Stripe vous recommande l’option automatisée. En effet, Stripe évalue la devise, les restrictions en matière de moyens de paiement ainsi que d’autres paramètres pour dresser la liste des moyens de paiement pris en charge. Ceux qui augmentent le taux de conversion et qui sont les plus pertinents pour la devise et le lieu de résidence du client sont priorisés.

Remarque

You can fork and deploy an implementation of this endpoint on CodeSandbox for testing.

Vous pouvez gérer les moyens de paiement depuis le Dashboard. Stripe gère le renvoi des moyens de paiement admissibles en fonction de facteurs tels que le montant de la transaction, la devise et le tunnel de paiement. Le PaymentIntent est créé à l’aide des moyens de paiement configurés dans le Dashboard. Si vous ne souhaitez pas utiliser le Dashboard ou souhaitez spécifier des moyens de paiement manuellement, vous pouvez les répertorier à l’aide de l’attribut payment_method_types.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Create a Customer (use an existing Customer ID if this is a returning customer) curl https://api.stripe.com/v1/customers \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST" \ -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" # Create an Ephemeral Key for the Customer curl https://api.stripe.com/v1/ephemeral_keys \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -H "Stripe-Version: 2025-09-30.clover" \ -H "Stripe-Account: 2025-09-30.clover" \ -X "POST" \ -d "customer"="{{CUSTOMER_ID}}" \ # Create a PaymentIntent curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
-X "POST" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "amount"=1099 \ -d "currency"="eur" \ # In the latest version of the API, specifying the `automatic_payment_methods` parameter # is optional because Stripe enables its functionality by default. -d "automatic_payment_methods[enabled]"=true \ -d application_fee_amount="123" \

Intégrer la Payment Sheet
Côté client

Pour afficher le composant Payment Element sur votre page de paiement, veillez à :

  • Afficher les produits commandés et le montant total des achats
  • Utiliser le composant Address Element pour collecter toutes les informations de livraison requises auprès du client
  • Ajouter un bouton de paiement pour afficher l’interface utilisateur de Stripe

Sur la page de paiement de votre application, récupérez Paymentla clé secrète du client de l’Intent, la clé secrète éphémère, l’ID du client et la clé publique depuis l’endpoint que vous avez créé à l’étape précédente. Définissez votre clé publique à l’aide de StripeAPI.shared et initialisez PaymentSheet.

Ensuite, définissez StripeAPI.shared.stripeAccount sur l’ID du compte connecté.

import UIKit import StripePaymentSheet class CheckoutViewController: UIViewController { @IBOutlet weak var checkoutButton: UIButton! var paymentSheet: PaymentSheet? let backendCheckoutUrl = URL(string: "Your backend endpoint/payment-sheet")! // Your backend endpoint override func viewDidLoad() { super.viewDidLoad() checkoutButton.addTarget(self, action: #selector(didTapCheckoutButton), for: .touchUpInside) checkoutButton.isEnabled = false // MARK: Fetch the PaymentIntent client secret, Ephemeral Key secret, Customer ID, and publishable key var request = URLRequest(url: backendCheckoutUrl) request.httpMethod = "POST" let task = URLSession.shared.dataTask(with: request, completionHandler: { [weak self] (data, response, error) in guard let data = data, let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String : Any], let customerId = json["customer"] as? String, let customerEphemeralKeySecret = json["ephemeralKey"] as? String, let paymentIntentClientSecret = json["paymentIntent"] as? String, let publishableKey = json["publishableKey"] as? String, let self = self else { // Handle error return } STPAPIClient.shared.publishableKey = publishableKey STPAPIClient.shared.stripeAccount =
"{{CONNECTED_ACCOUNT_ID}}"
// MARK: Create a PaymentSheet instance var configuration = PaymentSheet.Configuration() configuration.merchantDisplayName = "Example, Inc." configuration.customer = .init(id: customerId, ephemeralKeySecret: customerEphemeralKeySecret) // Set `allowsDelayedPaymentMethods` to true if your business handles // delayed notification payment methods like US bank accounts. configuration.allowsDelayedPaymentMethods = true self.paymentSheet = PaymentSheet(paymentIntentClientSecret: paymentIntentClientSecret, configuration: configuration) DispatchQueue.main.async { self.checkoutButton.isEnabled = true } }) task.resume() } }

Quand le client appuie sur le bouton de paiement, appelez present pour afficher la PaymentSheet. Une fois la transaction effectuée, Stripe ferme le PaymentSheet et appelle le bloc de finalisation avec un PaymentSheetResult.

@objc func didTapCheckoutButton() { // MARK: Start the checkout process paymentSheet?.present(from: self) { paymentResult in // MARK: Handle the payment result switch paymentResult { case .completed: print("Your order is confirmed") case .canceled: print("Canceled!") case .failed(let error): print("Payment failed: \(error)") } } }

Si la valeur de PaymentSheetResult est .completed, informez l’utilisateur (par exemple, en affichant un écran de confirmation de commande).

Si vous définissez allowsDelayedPaymentMethods sur true, les moyens de paiement à notification différée, comme les comptes bancaires étasuniens, seront acceptés. Pour ces moyens de paiement, l’état final du paiement n’est pas connu une fois le processus du PaymentSheet achevé, et le paiement peut plus tard aboutir comme échouer. Si vous prenez en charge ces types de moyens de paiement, informez votre client que sa commande est confirmée et ne la traitez (en lui expédiant son produit, par exemple) qu’une fois le paiement reçu.

Configurer une URL de redirection
Côté client

Le client peut quitter votre application pour s’authentifier (par exemple, dans Safari ou dans son application bancaire). Pour lui permettre de revenir automatiquement sur votre application après s’être authentifié, configurez un schéma d’URL personnalisé et configurez votre délégué d’application pour qu’il transmette l’URL au SDK. Stripe ne prend pas en charge les liens universels.

SceneDelegate.swift
Swift
Objective-C
No results
// This method handles opening custom URL schemes (for example, "your-app://stripe-redirect") func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { guard let url = URLContexts.first?.url else { return } let stripeHandled = StripeAPI.handleURLCallback(with: url) if (!stripeHandled) { // This was not a Stripe url – handle the URL normally as you would } }

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 consacré aux webhooks pour recevoir ces événements et exécuter des actions, comme envoyer une confirmation de commande par e-mail à votre client, enregistrer la vente dans une base de données ou lancer un flux de livraison.

Plutôt que d’attendre un rappel de votre client, écoutez ces événements. Côté client, il arrive en effet que l’utilisateur ferme la fenêtre de son navigateur ou quitte l’application avant l’exécution du rappel. Certains clients malintentionnés peuvent d’autre part tenter de 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 et même intégration.

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

ÉvénementDescriptionAction
payment_intent.succeededEnvoyé lorsqu’un client effectue un paiement avec succès.Envoyez au client une confirmation de commande et traitez sa commande.
payment_intent.processingEnvoyé lorsqu’un client initie un paiement, mais qu’il ne l’a pas encore finalisé. Dans la plupart des cas, cet événement est envoyé lorsque le client initie 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, vous pourrez traiter la commande sans attendre que le paiement soit effectué.
payment_intent.payment_failedEnvoyé lorsqu’un client effectue une tentative de paiement qui se solde par un échec.Si un paiement passe de l’état processing à payment_failed, proposez au client de retenter le paiement.

Tester l'intégration

Numéro de carteScénarioMéthode de test
Le paiement par carte bancaire aboutit et ne nécessite pas d’authentification.Remplissez le formulaire de paiement par carte bancaire en saisissant le numéro de carte ainsi que la date d’expiration, le CVC et le code postal de votre choix.
Le paiement par carte bancaire requiert une authentification.Remplissez le formulaire de paiement par carte bancaire en saisissant le numéro de carte ainsi que la date d’expiration, le CVC et le 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 bancaire en saisissant le numéro de carte ainsi que la date d’expiration, le CVC et le code postal de votre choix.
La carte UnionPay a un numéro d’une longueur variable, allant de 13 à 19 chiffres.Remplissez le formulaire de paiement par carte bancaire en saisissant le numéro de carte ainsi que la date d’expiration, le CVC et le code postal de votre choix.

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

FacultatifActiver Apple Pay

Remarque

Si votre écran de contrôle dispose d’un bouton Apple Pay dédié, suivez le guide Apple Pay et utilisez ApplePayContext pour encaisser des paiements à partir de votre bouton Apple Pay. Vous pouvez utiliser PaymentSheet pour gérer d’autres moyens de paiement.

Demander un ID de marchand Apple

Pour obtenir un ID de marchand Apple, demandez un nouvel identifiant sur le site Web Apple Developer.

Renseignez le formulaire en indiquant une description et un identifiant. La description n’est destinée qu’à votre propre information et vous pourrez la modifier ultérieurement au besoin. En ce qui concerne l’identifiant, Stripe vous recommande d’utiliser le nom de votre application (par exemple, merchant.com.{{YOUR_APP_NAME}}).

Créer un nouveau certificat Apple Pay

Créez un certificat permettant à votre application de chiffrer les données de paiement.

Accédez aux paramètres des certificats iOS dans le Dashboard, cliquez sur Ajouter une nouvelle application et suivez le guide.

Téléchargez un fichier CSR (Certificate Signing Request) pour obtenir d’Apple un certificat sécurisé vous autorisant à utiliser Apple Pay.

Un fichier CSR peut émettre exactement un certificat. Si vous changez d’ID de marchand Apple, vous devez accéder aux paramètres des certificats iOS dans le Dashboard pour obtenir un nouveau fichier CSR et un nouveau certificat.

Réaliser une intégration avec Xcode

Ajoutez la fonctionnalité Apple Pay à votre application. Dans Xcode, ouvrez vos paramètres de projet, cliquez sur l’onglet Signature et fonctionnalités, puis ajoutez Apple Pay. Vous serez peut-être alors invité(e) à vous connecter à votre compte développeur. Sélectionnez l’ID du marchand créé plus tôt. Il est désormais possible d’utiliser Apple Pay sur votre application.

Activez la fonctionnalité Apple Pay dans Xcode

Ajouter Apple Pay

Pour ajouter Apple Pay à PaymentSheet, définissez applePay après avoir initialisé PaymentSheet.Configuration avec votre ID de marchand Apple et le code pays de votre entreprise.

var configuration = PaymentSheet.Configuration() configuration.applePay = .init( merchantId: "merchant.com.your_app_name", merchantCountryCode: "US" )

Suivi de commande

Pour ajouter des informations de suivi de commande dans iOS 16 ou version ultérieure, configurez un authorizationResultHandler dans votre PaymentSheet.ApplePayConfiguration.Handlers. Stripe effectue un appel vers votre implémentation une fois le paiement effectué, mais avant qu’iOS ne ferme la fiche Apple Pay.

Dans votre implémentation authorizationResultHandler, récupérez les détails de la commande dans votre serveur pour la commande terminée. Ajoutez les détails au PKPaymentAuthorizationResult fourni et appelez le gestionnaire d’achèvement fourni.

Pour en savoir plus sur le suivi des commandes, consultez la documentation Apple’s Wallet Orders.

let customHandlers = PaymentSheet.ApplePayConfiguration.Handlers( authorizationResultHandler: { result, completion in // Fetch the order details from your service MyAPIClient.shared.fetchOrderDetails(orderID: orderID) { myOrderDetails result.orderDetails = PKPaymentOrderDetails( orderTypeIdentifier: myOrderDetails.orderTypeIdentifier, // "com.myapp.order" orderIdentifier: myOrderDetails.orderIdentifier, // "ABC123-AAAA-1111" webServiceURL: myOrderDetails.webServiceURL, // "https://my-backend.example.com/apple-order-tracking-backend" authenticationToken: myOrderDetails.authenticationToken) // "abc123" // Call the completion block on the main queue with your modified PKPaymentAuthorizationResult completion(result) } } ) var configuration = PaymentSheet.Configuration() configuration.applePay = .init(merchantId: "merchant.com.your_app_name", merchantCountryCode: "US", customHandlers: customHandlers)

FacultatifActiver la numérisation de carte

Pour que vous puissiez utiliser la numérisation des cartes, définissez le paramètre NSCameraUsageDescription (Confidentialité – Description de l’utilisation de l’appareil photo) dans le fichier Info.plist de votre application et expliquez la raison pour laquelle vous devez accéder à l’appareil photo (« Pour numériser des cartes », par exemple). Les appareils équipés d’iOS 13 ou version ultérieure prennent en charge la numérisation des cartes.

FacultatifPersonnaliser la fiche

Pour personnaliser le formulaire de paiement, vous devez obligatoirement utiliser l’objet PaymentSheet.Configuration.

Appearance

Personnalisez les couleurs, les polices et plus encore afin de vous adapter à l’apparence de votre application à l’aide de l’API Appearance.

Mise en page des moyens de paiement

Configurez la mise en page des moyens de paiement dans la feuille à l’aide de paymentMethodLayout. Vous pouvez les afficher horizontalement, verticalement ou laisser Stripe optimiser la mise en page automatiquement.

var configuration = PaymentSheet.Configuration() configuration.paymentMethodLayout = .automatic

Recueillir les adresses des utilisateurs

Recueillez les adresses de livraison ou de facturation de vos clients locaux et internationaux à l’aide du composant Address Element.

Nom d’affichage du marchand

Spécifiez un nom d’entreprise à afficher pour le client en définissant merchantDisplayName. Par défaut, il s’agit du nom de votre application.

var configuration = PaymentSheet.Configuration() configuration.merchantDisplayName = "My app, Inc."

Mode sombre

PaymentSheet s’ajuste automatiquement en fonction des paramètres d’affichage du système de l’utilisateur (mode clair et foncé). Si votre application ne prend pas en charge le mode sombre, vous pouvez définir style sur le mode alwaysLight ou alwaysDark.

var configuration = PaymentSheet.Configuration() configuration.style = .alwaysLight

Informations de facturation par défaut

Si vous souhaitez définir des valeurs par défaut pour les informations de facturation collectées dans le formulaire de paiement, configurez la propriété defaultBillingDetails. Le PaymentSheet préremplit les champs avec les valeurs que vous fournissez.

var configuration = PaymentSheet.Configuration() configuration.defaultBillingDetails.address.country = "US" configuration.defaultBillingDetails.email = "foo@bar.com"

Collecte des informations de facturation

Utilisez billingDetailsCollectionConfiguration pour spécifier la manière dont vous souhaitez collecter les informations de facturation dans le Payment Sheet.

Vous pouvez collecter le nom, l’adresse e-mail, le numéro de téléphone et l’adresse de votre client.

Si vous souhaitez uniquement indiquer les informations de facturation requises par le moyen de paiement, définissez la valeur de billingDetailsCollectionConfiguration.attachDefaultsToPaymentMethod sur « true ». Dans ce cas, les PaymentSheet.Configuration.defaultBillingDetails sont définis comme les informations de facturation du moyen de paiement.

Si vous souhaitez collecter des informations de facturation supplémentaires qui ne sont pas nécessairement requises par le moyen de paiement, définissez la valeur de billingDetailsCollectionConfiguration.attachDefaultsToPaymentMethod sur false. Dans ce cas, les informations de facturation collectées depuis la PaymentSheet sont définies comme les informations de facturation du moyen de paiement.

var configuration = PaymentSheet.Configuration() configuration.defaultBillingDetails.email = "foo@bar.com" configuration.billingDetailsCollectionConfiguration.name = .always configuration.billingDetailsCollectionConfiguration.email = .never configuration.billingDetailsCollectionConfiguration.address = .full configuration.billingDetailsCollectionConfiguration.attachDefaultsToPaymentMethod = true

Remarque

Consultez votre conseiller juridique au sujet des lois qui s’appliquent à la collecte d’informations. Ne collectez les numéros de téléphone que si vous en avez besoin pour la transaction.

FacultatifFinaliser le paiement dans votre interface utilisateur

Vous pouvez présenter le formulaire de paiement pour la seule collecte des données du moyen de paiement, puis appeler une méthode confirm pour mener à bien l’opération de paiement dans l’interface utilisateur de votre application. Cette approche est utile si vous avez intégré un bouton d’achat personnalisé ou si des étapes supplémentaires sont nécessaires après la collecte des informations de paiement.

Mener à bien le paiement dans l’interface utilisateur de votre application

Les étapes suivantes vous expliquent comment mener à bien le paiement dans l’interface utilisateur de votre application. Consultez notre exemple d’intégration sur GitHub.

  1. Tout d’abord, initialisez PaymentSheet.FlowController au lieu de PaymentSheet, puis mettez à jour votre interface utilisateur avec sa propriété paymentOption. Celle-ci contient une image et une étiquette représentant le moyen de paiement par défaut initialement sélectionné par le client.
PaymentSheet.FlowController.create(paymentIntentClientSecret: paymentIntentClientSecret, configuration: configuration) { [weak self] result in switch result { case .failure(let error): print(error) case .success(let paymentSheetFlowController): self?.paymentSheetFlowController = paymentSheetFlowController // Update your UI using paymentSheetFlowController.paymentOption } }
  1. Appelez ensuite presentPaymentOptions pour collecter les données de paiement. Une fois l’opération effectuée, mettez à nouveau à jour votre interface utilisateur avec la propriété paymentOption.
paymentSheetFlowController.presentPaymentOptions(from: self) { // Update your UI using paymentSheetFlowController.paymentOption }
  1. Enfin, appelez confirm.
paymentSheetFlowController.confirm(from: self) { paymentResult in // MARK: Handle the payment result switch paymentResult { case .completed: print("Payment complete!") case .canceled: print("Canceled!") case .failed(let error): print(error) } }

Si la valeur de PaymentSheetResult est .completed, informez l’utilisateur (par exemple, en affichant un écran de confirmation de commande).

Si vous définissez allowsDelayedPaymentMethods sur true, les moyens de paiement à notification différée, comme les comptes bancaires étasuniens, seront acceptés. Pour ces moyens de paiement, l’état final du paiement n’est pas connu une fois le processus du PaymentSheet achevé, et le paiement peut plus tard aboutir comme échouer. Si vous prenez en charge ces types de moyens de paiement, informez votre client que sa commande est confirmée et ne la traitez (en lui expédiant son produit, par exemple) qu’une fois le paiement reçu.

FacultatifActiver d'autres moyens de paiement

Naviguez vers la page Gérer les moyens de paiement pour vos comptes connectés dans le Dashboard pour configurer les moyens de paiement acceptés par vos comptes connectés. Les modifications apportées aux paramètres par défaut s’appliqueront à tous les comptes connectés, nouveaux et existants.

Consultez les ressources suivantes pour obtenir des informations sur les moyens de paiement :

  • Un guide des moyens de paiement pour vous aider à choisir les moyens de paiement adaptés à votre plateforme.
  • Fonctionnalités du compte pour vérifier que les moyens de paiement que vous avez choisis sont compatibles avec vos comptes connectés.
  • Les tableaux des moyens de paiement pris en charge par produit pour vérifier que les moyens de paiement que vous avez choisis sont compatibles avec vos produits et tunnels de paiement Stripe.

Pour chaque moyen de paiement, vous pouvez sélectionner l’une des options suivantes de la liste déroulante :

Activé par défautVos comptes connectés acceptent ce moyen de paiement lors du paiement. Si certains moyens de paiement peuvent uniquement être désactivés ou bloqués, cela signifie que vos comptes connectés qui ont accès au Dashboard doivent les activer depuis leur page des paramètres.
Désactivé par défautVos comptes connectés n’acceptent pas ce moyen de paiement lors du paiement. Si vous autorisez vos comptes connectés avec accès au Dashboard Stripe à gérer leurs propres moyens de paiement, ils ont la possibilité de l’activer.
BloquéVos comptes connectés n’acceptent pas ce moyen de paiement lors du paiement. Si vous autorisez vos comptes connectés avec accès au Dashboard Stripe à gérer leurs propres moyens de paiement, ils n’ont pas la possibilité de l’activer.
Options de liste déroulante pour les moyens de paiement, chacune affichant une option disponible (Bloqué, Activé par défaut, Désactivé par défaut)

Options des moyens de paiement

Si vous apportez une modification à un moyen de paiement, vous devez cliquer sur Vérifier les modifications dans la barre en bas de l’écran, puis sur Enregistrer et appliquer pour mettre à jour vos comptes connectés.

Boîte de dialogue qui s'affiche après avoir cliqué sur le bouton Enregistrer, avec une liste des modifications apportées par l'utilisateur

Boîte de dialogue d’enregistrement

Autoriser vos comptes connectés à gérer leurs moyens de paiement

Stripe recommande d’autoriser vos comptes connectés à personnaliser leurs propres moyens de paiement. Cette option permet à chaque compte connecté ayant accès au Dashboard Stripe d’afficher et de mettre à jour leur page de Moyens de paiement. Seuls les propriétaires des comptes connectés peuvent personnaliser leurs moyens de paiement. Le Dashboard Stripe affiche l’ensemble des moyens de paiement par défaut que vous avez appliqués à tous les comptes connectés, nouveaux comme existants. Vos comptes connectés peuvent remplacer ces valeurs par défaut, à l’exception des moyens de paiement que vous avez bloqués.

Cochez la case Personnalisation de compte pour activer cette option. Vous devez cliquer sur Vérifier les modifications dans la barre en bas de l’écran, puis sélectionner Enregistrer et appliquer pour mettre à jour ce paramètre.

Capture d'écran de la case à cocher pour permettre aux propriétaires connectés de personnaliser leurs moyens de paiement

Case à cocher Personnalisation de compte

Fonctionnalités liées aux moyens de paiement

Pour permettre à vos comptes connectés d’accepter des moyens de paiement supplémentaires, vous devez vous assurer qu’ils disposent de fonctionnalités actives pour chaque moyen de paiement. La plupart des moyens de paiement ont les mêmes exigences de vérification que la fonctionnalité card_payments, avec quelques restrictions et exceptions. Le tableau des fonctionnalités des modes de paiement répertorie les moyens de paiement qui nécessitent une vérification supplémentaire par rapport aux cartes.

Accédez aux paramètres de paiement du compte connecté dans le Dashboard pour demander des fonctionnalités sur vos comptes connectés nouveaux et existants pour chaque combinaison de moyen de paiement et de pays.

Encaisser des commissions

Lorsqu’un paiement est traité, votre plateforme peut prélever une partie de la transaction sous forme de commissions de plateforme. Vous pouvez définir le tarif des commissions de plateforme de deux manières :

  • Utilisez les outils de tarification de la plateforme pour définir des règles de tarification et les tester. Cette fonctionnalité no-code du Dashboard Stripe n’est actuellement disponible que pour les plateformes responsables du paiement des frais Stripe.
  • Définissez vos règles de tarification en interne, en spécifiant les commissions de plateforme directement dans un PaymentIntent. Les frais définis avec cette méthode remplacent la logique tarifaire spécifiée dans les outils de tarification de la plateforme.

Votre plateforme peut accepter une commission de plateforme avec les limites suivantes :

  • La valeur de application_fee_amount doit être positive et inférieure au montant débiter. La commission de la plateforme percevoir est capturer au montant débiter.
  • Aucune commission Stripe supplémentaire n’est appliquée à la commission de la plateforme.
  • Conformément aux lois et réglementations du Brésil, les plateformes situées en dehors du Brésil comportant des comptes connectés brésiliens ne pourront pas prélever de commission de plateforme par le biais de Stripe.
  • La devise de application_fee_amount dépend de quelques facteurs de plusieurs devises.

L’opération sur solde du paiement inclut une répartition détaillée des commissions de la plateforme et des frais Stripe. Pour faciliter la génération des rapports, un objet Application Fee est créé après le prélèvement des commissions de la plateforme. Utilisez la propriété amount sur l’objet Application Fee pour créer des rapports. Vous pouvez ensuite accéder à ces objets à partir de l’endpoint Application Fees.

Les commissions de la plateforme reçues sont ajoutées au solde disponible de votre compte à la même fréquence que les fonds issus des paiements Stripe réguliers. Les commissions de la plateforme peuvent être affichées dans la section Frais perçus du Dashboard.

Mise en garde

Par défaut, les commissions de plateforme pour les paiements directs sont créées de façon asynchrone. Si vous développez l’objet application_fee dans une demande de création de paiement, la commission de plateforme est créée de façon synchrone dans le cadre de cette demande. Ne développez l’objet application_fee que si cela est nécessaire, car cela augmente la latence de la demande.

Pour accéder aux objets des commissions de la plateforme pour les commissions créées de façon asynchrone, visualisez l’événement webhook application_fee.created.

Mouvement de fonds avec frais

Lorsque vous indiquez une commission de plateforme pour un paiement, le montant de la commission est transféré vers le compte Stripe de votre plateforme. Lorsque vous traitez un paiement directement depuis le compte connecté, le montant du paiement, moins les frais Stripe et la commission de la plateforme, est versé sur le compte connecté.

Par exemple, si vous effectuez un paiement de 10 USD avec une commission de la plateforme de 1,23 USD (comme dans l’exemple précédent), le montant de cette commission est transféré sur le compte de votre plateforme. Le compte connecté reçoit directement la somme de 8,18 USD (10 USD - 1,23 USD - 0,59 USD, en cas de facturation de frais Stripe standard pour les États-Unis).

Mouvements de fonds pour un paiement avec commission de plateforme

Si vous traitez des paiements dans plusieurs devises, consultez la rubrique sur la manière dont les devises sont traitées dans Connect.

Effectuer des remboursements

De la même façon que les plateformes peuvent créer des paiements sur les comptes connectés, elles peuvent également créer des remboursements. Créez un remboursement à l’aide de la clé secrète de votre plateforme en étant identifié avec un compte connecté.

Les commissions de la plateforme ne sont pas automatiquement remboursées lors d’un remboursement. Votre plateforme doit explicitement rembourser la commission de la plateforme, car dans le cas contraire, le compte connecté (le compte sur lequel le paiement a été créé) perd ce montant. Vous pouvez rembourser les commissions de la plateforme en indiquant la valeur true pour refund_application_fee dans la demande de remboursement :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/refunds \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
\ -d charge=
"{{CHARGE_ID}}"
\ -d refund_application_fee=true

Par défaut, la totalité du paiement est remboursée, mais vous pouvez créer un remboursement partiel en définissant le paramètre amount sur un nombre entier positif. Si le remboursement entraîne le remboursement de la totalité du paiement, la totalité de la commission de plateforme est remboursée. Dans le cas contraire, un montant proportionnel de la commission de la plateforme est remboursé. Vous pouvez également indiquer la valeur false pour refund_application_fee et rembourser la commission de la plateforme séparément.

Composants intégrés Connect

Les composants intégrés de Connect prennent en charge les paiements directs. En utilisant le composant de paiement intégré, vous pouvez permettre à vos comptes connectés de voir les informations de paiement, de capturer des frais et de gérer des litiges depuis votre site.

Les composants suivants affichent des informations pour les paiements directs :

  • Composant de paiement : Affiche tous les paiements et litiges d’un compte.

  • Informations des paiements : Affichent des informations pour un paiement spécifique.

  • Composant de la liste des litiges : Affiche tous les litiges d’un compte.

  • Litiges pour un composant de paiement : Affiche les litiges pour un seul paiement spécifié. Vous pouvez l’utiliser pour inclure la fonctionnalité de gestion des litiges sur une page avec votre interface utilisateur.

Voir aussi

  • Gérer plusieurs devises
  • Libellés de relevé bancaire avec Connect
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