Accéder directement au contenu
Connectez-vous
Image du logo Stripe
/
Créez un compte
Connectez-vous
Accueil
Payments
Automatisation des opérations financières
Services bancaires
Outils de développement
Options sans code
Tous les produits
Accueil
Payments
Automatisation des opérations financières
Accueil
Payments
Automatisation des opérations financières
Services bancaires
Outils de développement
Aperçu
Démarrer
À propos des paiements Stripe
Start an integration
Payment Links
Checkout
Web Elements
Mobile Elements
Payment scenarios
During the payment
Après le paiement
Ajouter des moyens de paiement
Autres scénarios de paiement
Paiement accéléré avec Link
Other Stripe products
Connect
    Aperçu
    Démarrer
    Customize your Connect integration
    Encaisser des paiements, puis effectuer des virements
    Permettre à d'autres entreprises d'accepter directement des paiements
    Effectuer un virement
    Découvrir Connect
    Inscrire vos comptes
    Choisir votre type de compte
    Standard
    Express
    Custom
    Mettre à jour les comptes
    Types de contrat de services
    Moyens de paiement
    Fonctionnalités du compte
    Gérer la vérification avec l'API pour les comptes Custom
    Vérifications supplémentaires
    Mettre à jour les informations vérifiées
    Migrate to Stripe
    Composants intégrés Connect
    Démarrage
    Supported components
    Customization
    Accepter des paiements
    Créer un paiement
      Paiements directs
      Paiements indirects
      Paiements et transferts distincts
      Using Radar with Connect
    Créer une page de paiement
    Créer des liens de paiement avec Connect
    Guide d'intégration Connect
    Dynamic payment methods
    Définir des libellés de relevé bancaire
    Plateformes Connect utilisant l'API Payment Methods
    Créer des abonnements
    Créer des factures
    Débiter des comptes connectés Express et Custom
    Effectuer un virement
    Configurer des virements bancaires et par carte de débit
    Comptes bancaires et cartes de débit
    Gérer la fréquence des virements
    Virements manuels
    Remboursements de virements
    Payout statement descriptors
    Alternative Currency Payouts
    Instant Payouts
    Virements internationaux
    Virements de cryptomonnaies
    Gérer les fonds
    Ajouter des fonds au solde de votre plateforme
    Solde du compte
    Gérer plusieurs devises
    Gérer les comptes
    Bonnes pratiques
    Écouter les mises à jour
    Gestion de compte via le Dashboard
    Informations sur les produits de gestion des risques
    Contrôles de la plateforme pour les comptes Standard
    Appeler l'API pour les comptes connectés
    Définir les codes de catégories de marchands (CCM)
    Test
    API Payment Method Configurations
    Migrer vers l'API Payment Method Configurations
    Configurations de moyens de paiement multiples
    Gérer les formulaires fiscaux
    Aperçu
    Démarrer votre déclaration fiscale
    Guide de communication et d'assistance sur les formulaires fiscaux 1099
    Paramètres des formulaires fiscaux
    Méthodes de calcul
    Identity information on tax forms
    Soumission des formulaires fiscaux
    Soumission des formulaires fiscaux aux États
    Identifier les formulaires comportant des informations manquantes
    Update and create tax forms
    Dépôt des formulaires fiscaux
    Deliver tax forms with Stripe Express
    Correction de formulaires fiscaux
    Fractionner des formulaires fiscaux
    Passer d'un exercice fiscal à un autre
    What's new for tax year 2023
Terminal
Radar
Financial Connections
Cryptomonnaie
Identity
Climate
Ressources
À propos des API
Guides d'implémentation
Aide en matière de réglementation
Test
Connect
·
AccueilPaymentsConnectCreate a charge

Créer des paiements et des transferts distincts

Découvrez comment utiliser Connect pour créer des paiements sur votre compte de plateforme au nom de comptes connectés, ainsi que effectuer des transferts distinct tout en conservant une partie des fonds collectés.

Mise en garde

Depuis septembre 2019, la législation sur l’authentification forte du client (SCA) fait obligation aux entreprises européennes de soumettre leurs clients à une authentification supplémentaire pour les paiements effectués en ligne. Les entreprises établies dans l’Espace économique européen (EEE) ayant des clients dans l’EEE devraient suivre les indications du guide Accepter un paiement pour utiliser l’API Payment Intents en vue de se conformer à ces règles.

Utilisez des paiements et transferts distincts pour les comptes Express ou Custom lorsque vous percevez des paiements dont le montant peut être différent de celui versé à vos comptes connectés. La plateforme est tenue de payer les frais Stripe, les remboursements et les contestations de paiement. Pour en savoir plus sur les différents types de paiements Connect, consultez la documentation sur le choix d’une approche.

Stripe prend en charge des paiements et transferts distincts dans les régions suivantes :

  • Australie
  • Brésil
  • Canada
  • Europe
  • Japon
  • Malaisie
  • Nouvelle-Zélande
  • Singapour
  • États-Unis

Mise en garde

In most scenarios, your platform and any connected account must be in the same region. Attempting to transfer funds across a disallowed border returns an error. For information about cross-region support, see Cross-border transfers. Transfers should only be used in combination with permitted use cases for Charges, Tops Ups and Fees.

Pour associer un paiement à un transfert, créez d’abord une chaîne unique à utiliser comme identifiant de groupe. Lorsque vous créez un PaymentIntent, un paiement ou un transfert, affectez cette chaîne à son attribut transfer_group. Utilisez le paramètre transfer_group pour identifier les objets associés les uns aux autres.

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.

Command Line
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d amount=10000 \ -d currency=usd \ -d transfer_group=ORDER10
Command Line
curl https://api.stripe.com/v1/transfers \ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d amount=7000 \ -d currency=usd \ -d destination={{CONNECTED_STRIPE_ACCOUNT_ID}} \ -d transfer_group=ORDER10
Command Line
curl https://api.stripe.com/v1/transfers \ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d amount=2000 \ -d currency=usd \ -d destination={{OTHER_CONNECTED_STRIPE_ACCOUNT_ID}} \ -d transfer_group=ORDER10

Pour le flux complet, voir Accepter un paiement.

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é.

Note

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.

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. Vous pouvez effectuer des transferts et des paiements dans n’importe quel ordre.

Par défaut, une demande de transfert échoue lorsque le montant dépasse le solde de compte disponible de la plateforme. Vous pouvez néanmoins valider le montant du transfert en le comparant au paiement associé en spécifiant ce paiement comme source_transaction du transfert. Dans ce cas, la demande de transfert aboutit automatiquement, mais n’est exécutée que lorsque les fonds de ce paiement sont disponibles sur le compte de la plateforme.

Note

Si vous utilisez les paiements et transferts distincts, tenez compte de cela lorsque vous planifiez la fréquence de vos virements. Les virements automatiques peuvent interférer avec les transferts qui n’ont pas de source_transaction définie.

Perception de frais

Lorsque vous créez des paiements et transferts distincts, la plateforme peut encaisser des frais en réduisant le montant transféré sur le compte de destination. Par exemple, imaginons une transaction de service de livraison, avec un paiement adressé au restaurant et un autre au livreur :

  1. Le client paie 100 USD.
  2. Stripe prélève des frais de 3,20 USD et ajoute les 96,80 USD restants au solde en attente du compte de la plateforme.
  3. La plateforme transfère 70 USD vers le compte connecté du restaurant et 20 USD vers le compte connecté du chauffeur.
  4. Des frais de plateforme de 6,80 USD restent sur le compte de la plateforme.
Répartition des frais entre le compte de la plateforme et les transferts pour les comptes connectés

Pour en savoir plus sur le traitement des paiements dans plusieurs devises avec Connect, consultez Gérer plusieurs devises.

Remboursement des paiements

Les paiements créés sur votre plateforme peuvent être remboursés à l’aide de la clé secrète de votre plateforme. Cependant, le remboursement d’un paiement n’a aucun impact sur les transferts associés. Il incombe à votre plateforme de rapprocher tout montant qui lui est dû en réduisant le montant des transferts ultérieurs ou en annulant les transferts (comme expliqué ci-après).

Command Line
curl https://api.stripe.com/v1/refunds \ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d charge=
{{CHARGE_ID}}

Annulation des transferts

Connect prend en charge la possibilité d’annuler les transferts effectués sur les comptes connectés, totalement ou en partie (en définissant la valeur du montant pour le paramètre amount) :

Command Line
curl https://api.stripe.com/v1/transfers/
{{TRANSFER_ID}}
/reversals
\ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d amount=500

Les annulations de transferts rajoutent le montant spécifié (ou l’intégralité du montant) au solde disponible de la plateforme, réduisant ainsi le solde disponible du compte connecté. Il n’est possible d’annuler un transfert que si le solde disponible du compte connecté est supérieur au montant de l’annulation ou si les réserves connectées sont activées.

Si l’annulation du transfert nécessite une conversion de devise et que le montant de l’annulation entraîne un solde nul après la conversion, une erreur est renvoyée.

Utilisation du paramètre on_behalf_of

Si vous le souhaitez, vous pouvez définir le paramètre on_behalf_of sur l’ID d’un compte connecté pour faire de ce compte l’entreprise de référence pour le paiement. Lorsque vous utilisez on_behalf_of :

  • Les paiements sont réglés dans le pays du compte connecté et dans la devise de règlement.
  • La structure des frais appliquée est celle du pays du compte connecté.
  • Le libellé de relevé bancaire du compte connecté apparaît sur le relevé de carte bancaire du client.
  • Si le compte connecté relève d’un autre pays que celui de la plateforme, l’adresse et le numéro de téléphone du compte connecté sont affichés sur le relevé de carte bancaire du client.
  • Le nombre de jours durant lesquels un solde en attente est bloqué avant d’être versé dépend du paramètre delay_days du compte connecté.

Si le paramètre on_behalf_of est ignoré, la plateforme est l’entreprise de référence pour le paiement.

Mise en garde

L’attribut on_behalf_of est pris en charge uniquement pour les comptes connectés disposant de la fonctionnalité card_payments. Les comptes soumis au contrat de service pour les bénéficiaires ne peuvent pas demander l’attribut card_payments.

Command Line
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d amount=1000 \ -d currency=usd \ -d "automatic_payment_methods[enabled]"=true \ -d on_behalf_of=
{{CONNECTED_ACCOUNT_ID}}

Dans la dernière version de l’API, la spécification du paramètre automatic_payment_methods est facultative, car Stripe active sa fonctionnalité par défaut.

Disponibilité des transferts

Le comportement par défaut consiste à transférer les fonds à partir du solde disponible du compte de la plateforme. Toute tentative de transfert dont le montant dépasse le solde disponible échoue et entraîne une erreur. Pour éviter ce problème, lorsque vous créez un transfert, associez-le à un paiement existant en spécifiant l’ID du paiement comme paramètre source_transaction. En utilisant le paramètre source_transaction, la demande de transfert aboutit, quel que soit votre solde disponible. Cependant, les fonds ne deviennent disponibles sur le compte de destination que lorsque les fonds du paiement associé peuvent être transférés depuis le compte de la plateforme.

Si le paiement source a une valeur transfer_group, Stripe affecte la même valeur au transfer_group du transfert. Si ce n’est pas le cas, Stripe génère une chaîne au format group_ plus l’ID du PaymentIntent associé (par exemple : group_pi_2NHDDD589O8KAxCG0179Du2s), puis affecte cette chaîne en tant que transfer_group pour le paiement et le transfert.

Note

Vous devez spécifier la source_transaction lorsque vous créez un transfert. Vous ne pourrez pas mettre à jour cet attribut par la suite.

Command Line
curl https://api.stripe.com/v1/transfers \ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d amount=1000 \ -d currency=usd \ -d source_transaction=
{{CHARGE_ID}}
\ -d destination=
{{CONNECTED_ACCOUNT_ID}}

Vous pouvez obtenir l’ID du paiement à partir du PaymentIntent :

  • Obtenez l’attribut latest_charge du PaymentIntent. Cet attribut est l’ID du paiement le plus récent associé au PaymentIntent.
  • Créez une requête de liste des paiements, en spécifiant le payment_intent dans la requête. Cette méthode renvoie l’intégralité des données de tous les paiements associés au PaymentIntent.

Pour utiliser ce paramètre :

  • Le montant du transfert ne doit pas dépasser celui du paiement source
  • Vous pouvez créer plusieurs transferts avec la même source_transaction, tant que la somme des transferts ne dépasse pas le montant du paiement source
  • Le transfert prend l’état en attente du paiement associé : si les fonds du paiement deviennent disponibles dans X jours, le règlement que reçoit le compte de destination Stripe pour le transfert devient également disponible dans X jours
  • Stripe crée automatiquement le transfer_group pour vous
  • La devise de l’opération sur solde associée au paiement doit correspondre à celle du transfert

Les moyens de paiement asynchrones, comme ACH, peuvent échouer après toute demande de transfert ultérieure. Pour ces paiements, évitez d’utiliser source_transaction. Attendez plutôt qu’un événement charge.succeeded soit déclenché avant de transférer les fonds. Si vous devez utiliser source_transaction avec ces paiements, activez une fonctionnalité permettant de gérer les échecs de paiement.

Lorsqu’un paiement utilisé comme source_transaction échoue, des fonds provenant du solde de compte de votre plateforme sont transférés vers le compte connecté pour couvrir le paiement. Pour récupérer ces fonds, annulez le transfert associé à l’échec de la source_transaction.

Voir aussi

  • Création de paiements
  • Gérer plusieurs devises
  • Comptes Custom
  • Duplication des moyens de paiement enregistrés
  • Libellés de relevé bancaire avec Connect
  • Compréhension des soldes de compte Connect
Cette page vous a-t-elle été utile ?
Besoin d'aide ? Contactez le service d'assistance.
Découvrez nos tutoriels pour les développeurs.
Consultez notre journal des modifications des produits.
Des questions ? Contactez l'équipe commerciale.
Propulsé par Markdoc
Vous pouvez vous désabonner à tout moment. Lisez notre politique de confidentialité.
Sur cette page
Perception de frais
Remboursement des paiements
Annulation des transferts
Utilisation du paramètre on_behalf_of
Disponibilité des transferts
Voir aussi
Produits utilisés
Connect
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Log in to your Stripe account and press Control + Backtick (`) on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g., )
Le Shell Stripe est plus optimisé sur la version bureau.
$