Utiliser Terminal avec Connect
Intégrez Stripe Terminal à votre plateforme Connect.
Stripe Terminal est compatible avec Connect, ce qui permet à votre plateforme et à vos comptes connectés d’accepter les paiements par TPE.
Intégrez Terminal à Connect selon la façon dont votre plateforme traite les paiements pour vos comptes connectés.
- Si vous utilisez les paiements directs, vous envoyez des requêtes à l’API Terminal pour configurer les lecteurs et accepter des paiements utilisant la clé API du compte connecté. Votre plateforme peut utiliser l’en-tête
Stripe Accountpour identifier le compte connecté et utiliser sa clé API. - Si vous utilisez des paiements indirects, vous envoyez des requêtes API Terminal pour configurer les lecteurs et accepter des paiements utilisant la clé API de votre plateforme et identifiez le compte connecté à l’aide de métadonnées.
Dans les deux cas, utilisez Emplacements pour regrouper les lecteurs de manière appropriée.
Remarque
Vos comptes connectés Terminal doivent disposer de la fonctionnalité card_ pour effectuer des transactions.
Paiements directs
Lecteurs des comptes connectés
Avec cette intégration, toutes les références de l’API relèvent du compte connecté, et non de la plateforme. Le compte connecté assume les frais de Stripe, les remboursements et les rétrofacturations.
Dans le Dashboard, vous pouvez visualiser vos données Terminal en vous connectant à votre compte connecté.
Créer des emplacements et des lecteurs Server-side
Créez des emplacements et des lecteurs pour les comptes connectés en incluant l’en-tête Stripe Account dans les requêtes API.
Créer des tokens de connexion Server-side
Remarque
Lorsque vous utilisez l’authentification OAuth Connect, vous devez autoriser le compte connecté séparément pour le mode production et les environnements de test à l’aide de l’ID client de l’application correspondant à chaque mode.
Lorsque vous créez un ConnectionToken pour le SDK Terminal, définissez l’en-tête Stripe-Account sur le compte connecté acceptant les paiements. Vous pouvez également fournir un paramètre d’emplacement afin de contrôler l’accès aux lecteurs. Si vous définissez un emplacement, le ConnectionToken n’est utilisable qu’avec les lecteurs assignés à cet emplacement. Sans emplacement défini, vous pouvez utiliser le ConnectionToken avec tous les lecteurs.
Créer des PaymentIntents Client-side Server-side
Avec les SDK iOS, Android et React Native, vous pouvez créer un PaymentIntent côté client ou côté serveur. Avec le SDK JavaScript, seule la création côté serveur est prise en charge.
Côté client
Lors de la création d’une PaymentIntent côté client pour les paiements directs, ne spécifiez aucun paramètre supplémentaire pour la PaymentIntent. Créez plutôt un ConnectionToken avec l’en-tête Stripe-Account pour le compte connecté acceptant les paiements. Les SDK clients créent la PaymentIntent sur le même compte connecté auquel le ConnectionToken appartient. Pour en savoir plus, consultez la page Créer des PaymentIntents côté client.
Côté serveur
Le SDK JavaScript exige que le PaymentIntent soit créé sur votre serveur. Pour les autres SDK client, créez le PaymentIntent sur votre serveur si les informations requises pour démarrer un paiement ne sont pas facilement accessibles dans votre application. Pour en savoir plus, veuillez consulter la page Créer des PaymentIntents côté serveur.
Afin de créer un PaymentIntent côté serveur pour les paiements directs, définissez l’en-tête Stripe-Account sur le compte connecté.
Ensuite, suivez les étapes pour collecter un paiement afin de traiter l’intention de paiement.
Lecteurs appartenant à la plateforme Version bêta privée
Version bêta privée
Contactez-nous si vous souhaitez utiliser des paiements directs et que la plateforme possède et gère les lecteurs. Cette fonction en version bêta privée est actuellement disponible pour les lecteurs intelligents reposant sur une intégration pilotée par serveur. Cette intégration ne fonctionne qu’avec les comptes connectés que vous contrôlez via une plateforme unique.
Grâce à cette intégration, votre plateforme possède des ressources d’appareil comme Emplacements et Lecteurs, et vos comptes connectés possèdent des ressources de paiement comme PaymentIntents. Cela permet à votre plateforme de gérer un seul lecteur qui traite les paiements pour plusieurs comptes connectés. Les comptes connectés sont responsables du coût des frais de Stripe, des remboursements et des rétrofacturations.
Dans le Dashboard, vous pouvez visualiser directement vos données de gestion des appareils Terminal lorsque vous êtes connecté(e) à votre compte de plateforme. Pour consulter les données de paiement, vous devez vous connecter en tant que compte connecté.
Créer des emplacements et des lecteurs
Le meilleur moyen de regrouper les objets Reader par compte connecté consiste à les assigner à des objets Locations. Sur votre compte de plateforme, créez un objet Location pour un compte connecté en utilisant un nom d’affichage permettant d’identifier le compte.
Avant de pouvoir connecter votre application à un lecteur intelligent, vous devez enregistrer ce lecteur sur votre compte de plateforme.
Créer des PaymentIntents
Lorsque vous créez un PaymentIntent pour des paiements directs, l’en-tête Stripe-Account doit faire référence au compte connecté.
Remarque
La plateforme ne peut traiter les PaymentIntents ultérieurement que si vous les créez pour des comptes connectés que vous contrôlez par l’intermédiaire d’une plateforme unique.
Traiter les PaymentIntents
La plateforme peut traiter le PaymentIntent du compte connecté avec le lecteur de la plateforme.
Remarque
Le PaymentIntent ne peut être traité que si vous le créez en utilisant l’en-tête Stripe-Account.
Paiements indirects
Lorsque vous utilisez des paiements indirects, votre plateforme possède les références de l’API comme PaymentIntents et Emplacements. Chaque paiement crée automatiquement un transfert vers un compte connecté.
Dans le Dashboard, vous pouvez visualiser vos données Terminal directement en vous connectant à votre compte de plateforme.
Créer des emplacements et des lecteurs Server-side
Le meilleur moyen de regrouper les objets Lecteur par compte connecté consiste à les assigner à des Emplacements. Sur votre compte de plateforme, créez un emplacement pour un compte connecté en utilisant un nom d’affichage permettant d’identifier le compte.
Avant de pouvoir connecter votre application à un lecteur intelligent, vous devez enregistrer ce lecteur sur votre compte de plateforme.
Créer des tokens de connexion Server-side
Lorsque vous créez un ConnectionTokenpour le SDK Terminal, utilisez la clé secrète du compte de votre plateforme. Ne définissez pas l’en-tête Stripe-Account. Fournissez un paramètre location afin de contrôler l’accès aux lecteurs. Si vous définissez un emplacement, le ConnectionToken n’est utilisable qu’avec les lecteurs assignés à cet emplacement. Sans emplacement défini, vous pouvez utiliser le ConnectionToken avec tous les lecteurs.
Créer des PaymentIntents Client-side Server-side
Pour créer un PaymentIntent avec des paiements indirects, fournissez les paramètres on_behalf_of, transfer_data[destination] et application_fee_amount.
Le paramètre on_ correspond à l’ID du compte connecté qui devient l’entité de règlement pour le paiement. Pour les transactions Terminal, ce paramètre doit être défini dans les cas où le pays de la plateforme n’est pas le même que celui du compte connecté. Lorsque le paramètre on_ est défini, Stripe effectue automatiquement les actions suivantes :
- Règle les frais dans le pays du compte spécifié, minimisant ainsi les refus et évitant les conversions de devises.
- Utilise la structure des frais appliquée pour le pays du compte connecté.
- Indique l’adresse et le numéro de téléphone du compte connecté sur le relevé de carte bancaire du client, au lieu de l’adresse et du numéro de téléphone de votre plateforme (uniquement si le compte et la plateforme se trouvent dans des pays différents).
Pour le paramètre transfer_, précisez l’ID du compte connecté destinataire du transfert.
Enfin, vous pouvez prélever une commission pour votre plateforme en renseignant le paramètre application_fee_amount.
Côté client
Avec les SDK iOS, Android et React Native, vous pouvez créer un PaymentIntent côté client et fournir les paramètres onBehalfOf, transferDataDestination et applicationFeeAmount.
Côté serveur
Le SDK JavaScript exige que le PaymentIntent soit créé sur votre serveur. Pour les autres SDK client, créez le PaymentIntent sur votre serveur si les informations requises pour démarrer un paiement ne sont pas facilement accessibles dans votre application. Pour en savoir plus, veuillez consulter la page Créer des PaymentIntents côté serveur.
Ensuite, suivez les étapes pour collecter un paiement afin de traiter l’intention de paiement.