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.
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 StripeCôté serveurCô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 :
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.
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.
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 endpointCô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 :
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.
(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.
(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 :
- Récupère l’objet Customer ou en crée un nouveau.
- Crée une clé éphémère pour le client.
- Crée un PaymentIntent comportant les paramètres amount, currency, customer. Vous pouvez également inclure le paramètre
automatic_
(facultatif). Stripe l’active par défaut dans la dernière version de l’API.payment_ methods - 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.
Intégrer la Payment SheetCô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
Si la valeur de PaymentSheetResult
est .
, 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 redirectionCô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.
Gérer les événements post-paiementCô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_
, nous vous recommandons de gérer ces autres événements lorsque vous encaissez des paiements à l’aide de l’Element Payment :
Événement | Description | Action |
---|---|---|
payment_intent.succeeded | Envoyé lorsqu’un client effectue un paiement avec succès. | Envoyez au client une confirmation de commande et traitez sa commande. |
payment_intent.processing | Envoyé 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_ ou payment_ . | 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_failed | Envoyé lorsqu’un client effectue une tentative de paiement qui se solde par un échec. | Si un paiement passe de l’état processing à payment_ , proposez au client de retenter le paiement. |
Tester l'intégration
Consultez la section consacrée aux tests pour obtenir des informations supplémentaires sur la manière de tester votre intégration.
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_
doit être positive et inférieure au montant du paiement. La commission de plateforme collectée est plafonnée au montant capturé du paiement.fee_ amount - 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_
dépend de quelques facteurs de plusieurs devises.fee_ amount
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_
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_
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).

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_
dans la demande de remboursement :
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_
et rembourser la commission de la plateforme séparément.