Utiliser Terminal avec Connect
Intégrez Stripe Terminal à votre plateforme Connect.
Stripe Terminal est entièrement compatible avec Connect, ce qui permet à votre plateforme ou place de marché d’accepter les paiements par TPE.
La façon dont Terminal crée des objets API varie selon que vous utilisez des paiements directs ou des paiements indirects. Si vous utilisez des paiements directs, tous les objets de l’API Terminal associés aux paiements relèvent des comptes connectés, tandis que les lecteurs relèvent soit du compte connecté, soit de la plateforme. Si vous utilisez des paiements indirects, tous les objets de l’API Terminal sont créés sur votre compte de plateforme. Dans les deux cas, utilisez l’objet Locations pour grouper les lecteurs à votre convenance.
Note
Vos comptes Connect Terminal doivent disposer de la fonctionnalité card_
pour effectuer des transactions.
Paiements directs
Lecteurs des comptes connectés
Avec cette intégration, toutes les ressources API relèvent du compte connecté, et non de la plateforme. Le compte connecté assume les frais Stripe, les remboursements et les contestations de paiement.
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 objets d’API Terminal, par exemple des objets Location ou Reader, qui relèvent du compte connecté responsable du paiement.
Pour créer un objet Location appartenant à un compte connecté, utilisez l’en-tête Stripe-Account
.
Avant de pouvoir connecter votre application à un lecteur intelligent, vous devez enregistrer ce lecteur sur un compte Stripe. Pour enregistrer un lecteur sur un compte connecté, utilisez l’en-tête Stripe-Account
.
Créer des tokens de connexion Server-side
Note
Lorsque vous utilisez l’authentification OAuth de Connect, le compte connecté doit être autorisé séparément pour le mode production et le mode test, au moyen 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 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
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
Lorsque vous créez un PaymentIntent
côté client pour les paiements directs, il n’est pas nécessaire de préciser des paramètres supplémentaires pour le PaymentIntent
: il vous suffit de définir l’en-tête Stripe-Account
sur le compte connecté qui accepte les paiements lorsque vous créez un ConnectionToken
. Les SDK client créent le PaymentIntent
sur le même compte connecté auquel appartient le ConnectionToken
. Pour en savoir plus, veuillez consulter 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é.
La plateforme est propriétaire des lecteurs
Note
Contact us if you’re interested in letting the platform own and manage readers with direct charges. This private preview feature is currently available for smart readers leveraging a server-driven integration. This integration works only with connected accounts that you control through a single platform.
Avec cette intégration, les ressources de gestion des appareils, comme les objets Location et Reader, appartiennent au compte de plateforme, tandis que les ressources de paiement telles que les PaymentIntents appartiennent au compte connecté. Cela permet à un seul lecteur géré par la plateforme de traiter les paiements de plusieurs comptes connectés différents. Le compte connecté assume le coût des frais Stripe, des remboursements et des contestations de paiement.
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é.
Note
The platform can only process PaymentIntents later if you create them for connected accounts that you control through a single platform.
Traiter les PaymentIntents
La plateforme peut traiter le PaymentIntent
du compte connecté avec le lecteur de la plateforme.
Note
The PaymentIntent can only be processed if you create it using the Stripe-Account
header.
Paiements indirects
Pour les paiements indirects, les ressources API, telles que les PaymentIntents et les objets Location appartiennent à votre compte de plateforme. 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 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 tokens de connexion Server-side
Lorsque vous créez un ConnectionToken
pour 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 paiements dans le pays du compte spécifié, ce qui limite les refus de paiement et évite 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 la 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.