# Accepter un paiement en utilisant des paiements et transferts distincts Utilisez des paiements et transferts distincts pour accepter des paiements. Créez des paiements et transferts distincts pour transférer des fonds vers plusieurs comptes connectés, ou lorsqu’un utilisateur spécifique n’est pas connu au moment du paiement. Le paiement sur votre compte de plateforme est dissocié des transferts vers vos comptes connectés. Avec ce type de paiement : - Vous créez un paiement sur le compte de votre plateforme et transférez également des fonds à vos comptes connectés. Le paiement apparaît comme tel sur votre compte, et il y a également des transferts vers des comptes connectés (dont vous déterminez le montant), qui sont prélevés du solde de votre compte. - Vous pouvez transférer des fonds vers plusieurs comptes connectés. - Vous êtes le *marchand officiel* (The legal entity responsible for facilitating the sale of products to a customer that handles any applicable regulations and liabilities, including sales taxes. In a Connect integration, it can be the platform or a connected account), et le solde de votre compte est débité pour couvrir les frais Stripe, les remboursements et les rétrofacturations. Ce type de paiement aide les marketplaces à repartir les paiements entre plusieurs parties. Par exemple, une plateforme de livraison de restaurants qui répartit les paiements entre le restaurant et le livreur. > { % if $conditions.can_access_payment_intent_transit_balances_docs %}[Ségrégation des fonds](https://docs.stripe.com/connect/funds-segregation.md){ % sinon / %}La ségrégation des fonds{ % /if %} est une fonctionnalité d’aperçu privé qui conserve les fonds de paiement dans un état de conservation protégé avant que vous ne les transfériez vers des comptes connectés. Cela permet d’éviter que les fonds alloués ne soient utilisés pour des opérations de plateforme sans rapport. Contactez votre gestionnaire de compte Stripe pour demander l’accès. ## Créer une session Checkout [Côté serveur] Une [session Checkout](https://docs.stripe.com/api/checkout/sessions.md) contrôle ce que le client voit dans le formulaire de paiement, tel que les postes, le montant de la commande, la devise et les moyens de paiement acceptés. Ajoutez à votre site Web un bouton de paiement qui appelle un endpoint côté serveur pour créer une session Checkout. Sur votre serveur, créez une session Checkout et redirigez votre client vers l’[URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) renvoyée dans la réponse. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=Restaurant delivery service" \ -d "line_items[0][price_data][unit_amount]=10000" \ -d "line_items[0][quantity]=1" \ -d "payment_intent_data[transfer_group]=ORDER100" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success?session_id={CHECKOUT_SESSION_ID}" ``` | Paramètres | Valeur | Obligatoire | Description | | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [line_items](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) | La liste des articles achetés par le client. | Requis sous condition | Cet attribut représente les éléments que le client achète. Les éléments sont affichés sur la page de paiement hébergée par Stripe. | | [payment_intent_data[transfer_group]](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-transfer_group) | Chaîne unique qui identifie un paiement comme faisant partie d’un groupe. | Oui | Lorsque Stripe crée automatiquement un paiement pour un PaymentIntent avec une valeur `transfer_group`, la même valeur est affectée au `transfer_group` du paiement. | | [success_url](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-success_url) | Une URL valide | Oui | Stripe redirige le client vers l’URL de réussite après un paiement réussi et remplace la chaîne `{CHECKOUT_SESSION_ID}` par l’ID de session Checkout. Vous pouvez l’utiliser pour récupérer la session Checkout et inspecter son état afin de choisir ce que vous voulez montrer au client. Vous pouvez également ajouter vos propres paramètres de requête, qui persistent tout au long du processus de redirection. Consultez la page [Personnaliser le comportement de redirection avec une page hébergée par Stripe](https://docs.stripe.com/payments/checkout/custom-success-page.md) pour en savoir plus. | (See full diagram at https://docs.stripe.com/connect/marketplace/tasks/accept-payment/separate-charges-and-transfers) ## Gérez les événements post-paiement pour les paiements et transferts distincts [Côté serveur] Stripe envoie un événement [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) à l’issue du paiement. [Utilisez un webhook pour recevoir ces événements](https://docs.stripe.com/webhooks/quickstart.md) et exécuter des actions en conséquence, comme l’envoi d’un e-mail de confirmation de commande à votre client, l’enregistrement de la vente dans une base de données ou le lancement d’un flux de livraison. Écoutez ces événements au lieu d’attendre un rappel du client. Côté client, le client final peut fermer la fenêtre du navigateur ou quitter l’application avant l’exécution du rappel. Certains moyens de paiement peuvent également nécessiter de 2 à 14 jours pour la confirmation du paiement. Configurer votre intégration pour écouter les événements asynchrones vous permet d’accepter plusieurs [moyens de paiement](https://stripe.com/payments/payment-methods-guide) avec une seule intégration. Gérez les événements suivants lors de l’encaissement de paiements avec Checkout : | Evènements | Description | Étapes suivantes | | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------- | | [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) | Le client a autorisé le paiement en envoyant le formulaire Checkout. | Attendez que le paiement aboutisse ou échoue. | | [checkout.session.async_payment_succeeded](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_succeeded) | Le paiement du client a abouti. | Traitez la commande de biens ou de services de votre client. | | [checkout.session.async_payment_failed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_failed) | Le paiement a été refusé ou a échoué pour une autre raison. | Contactez le client par e-mail et demandez-lui de passer une nouvelle commande. | Ces événements incluent tous l’objet [Checkout Session](https://docs.stripe.com/api/checkout/sessions.md). Une fois le paiement effectué, le *PaymentIntent* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) passe de [état](https://docs.stripe.com/payments/paymentintents/lifecycle.md) sous-jacent `processing` à `succeeded` ou à un état d’échec. ## Créer un transfert [Côté serveur] Sur votre serveur, envoyez des fonds de votre compte vers un compte connecté en créant un [transfert](https://docs.stripe.com/api/transfers/create.md) et en précisant le `transfer_group` utilisé. ```curl curl https://api.stripe.com/v1/transfers \ -u "<>:" \ -d amount=7000 \ -d currency=usd \ -d "destination={{CONNECTEDACCOUNT_ID}}" \ -d transfer_group=ORDER100 ``` Les montants des transferts et des paiements ne doivent pas nécessairement correspondre. Vous pouvez fractionner un paiement en plusieurs transferts ou inclure plusieurs paiements dans un même transfert. L’exemple suivant illustre la création d’un transfert supplémentaire associé au même `transfer_group`. ```curl curl https://api.stripe.com/v1/transfers \ -u "<>:" \ -d amount=2000 \ -d currency=usd \ -d destination={{OTHER_CONNECTED_ACCOUNT_ID}} \ -d transfer_group=ORDER100 ``` ### Options de transfert Vous pouvez attribuer n’importe quelle valeur à la chaîne `transfer_group`, mais elle doit représenter une seule action commerciale. Vous pouvez également effectuer un transfert sans paiement associé ou sans `transfer_group`, par exemple, lorsque vous devez payer un fournisseur, mais qu’il n’y a pas de paiement client associé. > Le paramètre `transfer_group` identifie uniquement les objets associés. Il n’affecte aucune fonctionnalité standard. Pour empêcher l’exécution d’un transfert avant que les fonds du paiement associé ne soient disponibles, utilisez l’attribut `source_transaction` du transfert. Par défaut, une demande de transfert échoue lorsque le montant dépasse le [solde de compte disponible](https://docs.stripe.com/connect/account-balances.md) de la plateforme. Stripe ne relance pas automatiquement les demandes de transfert en échec. Vous pouvez éviter les échecs de demandes de transfert pour les transferts associés à des paiements. Lorsque vous définissez le paiement associé [comme source_transaction du transfert](https://docs.stripe.com/connect/marketplace/tasks/accept-payment/separate-charges-and-transfers.md#transfer-options), la demande de transfert réussit automatiquement. Toutefois, le transfert n’est exécuté que lorsque les fonds issus de ce paiement sont disponibles sur le compte de la plateforme. > Si vous utilisez les paiements et transferts distincts, tenez compte de cela lorsque vous planifiez la fréquence de vos *virements* (A payout is the transfer of funds to an external account, usually a bank account, in the form of a deposit). Les virements automatiques peuvent interférer avec les transferts qui n’ont pas de `source_transaction` définie. ## Disponibilité géographique Stripe prend en charge des paiements et transferts distincts dans les régions suivantes : - AT - AU - BE - BG - BR - CA - CH - CY - CZ - DE - DK - EE - ES - FI - FR - GB - GR - HR - HU - IE - IT - JP - LI - LT - LU - LV - MT - MX - MY - NL - NO - NZ - PL - PT - RO - SE - SG - SI - SK - US Stripe prend en charge les transferts transfrontaliers du solde des paiements entre les États-Unis, le Canada, le Royaume-Uni, l’EEE et la Suisse. Dans les autres scénarios, votre plateforme et tout compte connecté doivent se trouver dans la même région. Toute tentative de transfert de fonds entre des régions ou des soldes non pris en charge génère une erreur. Consultez la section [Paiements transfrontaliers](https://docs.stripe.com/connect/cross-border-payouts.md) pour connaître les flux de fonds autorisés entre les autres régions. Vous ne devez utiliser les transferts qu’en association avec les cas d’usage autorisés pour les [frais](https://docs.stripe.com/connect/charges.md), les [recharges](https://docs.stripe.com/connect/top-ups.md) et les [commissions](https://docs.stripe.com/connect/marketplace/tasks/accept-payment/separate-charges-and-transfers.md#collect-fees). Nous vous recommandons de n’effectuer des paiements et transferts distincts que lorsque vous êtes responsable des soldes négatifs de vos comptes connectés. ## Étapes suivantes Une fois que vous pouvez traiter des paiements, monétisez votre marketplace en prélevant des [commissions de plateforme](https://docs.stripe.com/connect/marketplace/tasks/app-fees.md) auprès de vos comptes connectés.