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.
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. Le code côté client et côté serveur permet de créer un formulaire de paiement qui accepte différents moyens de paiement. Comparez les différents types d’intégration proposés par Stripe.
Effort d'intégration
Type d'intégration
Combiner les composants de l’interface utilisateur dans un tunnel de paiement personnalisé
Personnalisation de l'interface utilisateur
Personnalisation au niveau CSS avec l’API Appearance
Tout d’abord, inscrivez-vous pour créer un Compte Stripe.
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Créer un PaymentIntentCôté serveur
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.
Les moyens de paiement présentés aux clients lors du processus de paiement sont également inclus dans le PaymentIntent. Vous pouvez laisser Stripe extraire automatiquement les moyens de paiement des paramètres du Dashboard, ou bien les répertorier manuellement.
À moins que votre intégration ne nécessite un code pour proposer des moyens de paiement, ne listez pas les moyens de paiement manuellement. Stripe évalue la devise, les restrictions des moyens de paiement et d’autres paramètres pour dresser la liste des moyens de paiement pris en charge. Stripe privilégie les moyens de paiement qui contribuent à augmenter la conversion et qui sont les plus pertinents par rapport à la devise et à l’emplacement du client. Stripe masque les moyens de paiement moins prioritaires dans un menu de débordement.
Récupérer la clé secrète du client
Le PaymentIntent contient une clé secrète à utiliser côté client pour finaliser le processus de paiement en toute sécurité. Vous pouvez adopter différentes approches pour transmettre cette clé secrète côté client.
Collecter les informations de paiementCôté client
Collectez les informations de paiement du client avec le Payment Element. Le Payment Element est un composant d’interface utilisateur préconfiguré qui simplifie la collecte des informations pour de nombreux moyens de paiement.
Le Payment Element contient un iframe qui envoie les informations de paiement à Stripe de manière sécurisée via une connexion HTTPS. Évitez de placer le Payment Element à l’intérieur d’un autre iframe, car certains moyens de paiement nécessitent une redirection vers une autre page pour la confirmation du paiement. Si vous choisissez d’utiliser un iframe et que vous souhaitez accepter Apple Pay ou Google Pay, l’attribut allow de l’iframe doit être "payment *"
.
Pour que votre intégration fonctionne, l’adresse de la page de paiement doit commencer par https://
et non par http://
. Vous pouvez tester votre intégration sans utiliser le protocole HTTPS, mais n’oubliez pas de l’activer lorsque vous souhaitez commencer à accepter des paiements réels.
Envoyer le paiement à StripeCôté client
Utilisez stripe.confirmPayment pour effectuer le paiement à l’aide des informations du composant Payment Element. Ajoutez un paramètre return_url à cette fonction pour indiquer la page vers laquelle Stripe doit rediriger l’utilisateur à l’issue du paiement. Votre utilisateur peut être redirigé en premier lieu vers un site intermédiaire, comme une page d’autorisation bancaire, avant d’être redirigé vers la page spécifiée par le paramètre return_
. L’utilisateur sera immédiatement redirigé vers la page return_
après un paiement réussi par carte.
Si vous ne souhaitez pas effectuer de redirection à la fin des paiements par carte, vous pouvez assigner au paramètre redirect la valeur if_
. De cette manière, seuls les clients qui choisissent un moyen de paiement avec redirection seront redirigés.
Veillez à ce que le paramètre return_
corresponde à une page de votre site web qui indique l’état du paiement. Lorsque Stripe redirige le client vers la page return_
, nous fournissons les paramètres de requête d’URL suivants :
Paramètre | Description |
---|---|
payment_ | L’identifiant unique du PaymentIntent . |
payment_ | La clé secrète du client de l’objet PaymentIntent . |
Mise en garde
Si vous disposez d’outils qui assurent le suivi de la session navigateur du client, vous devrez peut-être ajouter le domaine stripe.
à 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 les informations à présenter à vos clients. Vous pouvez également ajouter vos propres paramètres de requête lorsque vous ajoutez l’URL return_
; ils seront conservés tout au long du processus de redirection.
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.