Contrôle des transferts bancaires et par carte de débit
Stripe permet aux plateformes d'avoir un contrôle total sur les transferts pour ses comptes Custom Connect.
Mise en garde
Cette page décrit une ancienne version de Connect. Dans la version la plus récente de Connect, l’ancien endpoint transfers
a été remplacé par payouts
. L’interface utilisateur du Dashboard reflète ce changement et utilise le terme « virements » à la place du terme « transferts », quelle que soit la version de votre API Stripe. Pour en savoir plus sur la version la plus récente de l’API Connect, consultez la page des virements bancaires et par carte de débit.
Par défaut, tout paiement que vous effectuez au nom d’un compte connecté vient s’ajouter au solde Stripe de ce dernier et fait l’objet d’un virement quotidien de façon continue. Cependant, Stripe propose un contrôle précis de ce comportement pour les comptes Custom.
Vous pouvez :
- Définir les comptes bancaires et cartes de débit de destination
- Contrôler la fréquence à laquelle les fonds font l’objet d’un virement automatique
- Effectuer des transferts manuels
- Verser des fonds instantanément
Gestion des comptes bancaires et des cartes de débit
Les comptes Custom ont une propriété external_
: il s’agit d’une liste de tous les comptes bancaires et cartes de débit associés au compte Stripe. Tout compte externe est une destination possible des fonds.
{ "id":
, "object": "account", "external_accounts": { "object": "list", "has_more": false, "url": "/v1/accounts/acct_14qyt6Alijdnw0EA/external_accounts", "data": [ { "id":"{{CONNECTED_ACCOUNT_ID}}", "object": "bank_account", "account": "acct_14qyt6Alijdnw0EA", "account_holder_name": "Jane Austen", "account_holder_type": "individual", "bank_name": "STRIPE TEST BANK", "country": "US", "currency": "usd", "default_for_currency": false, "fingerprint": "sSZ2yLp0EZTH17cF", "last4": "6789", "metadata": { }, "routing_number": "110000000", "status": "new" }, {...}, {...}, ], ... }"{{BANK_ACCOUNT_ID}}"
Les comptes de destination sont ajoutés via le paramètre external_
lors de la création ou de la mise à jour des comptes Stripe. La valeur doit correspondre à un compte bancaire ou un token de carte de débit renvoyé par Stripe.js. Vous pouvez également fournir un hachage des coordonnées bancaires, mais l’utilisation de Stripe.js est préférable, car elle permet d’éviter le stockage de données sensibles sur votre serveur.
L’utilisation des cartes de débit comme destination de transfert est soumise aux restrictions suivantes :
- Il doit s’agir d’une carte Visa, Mastercard ou Discover, émise aux États-Unis et non prépayée
- Le plafond est limité à 9 999 USD par transfert avec Instant Payouts
- Le montant est généralement limité à 3 000 USD par transfert dans les autres cas
Gestion de plusieurs comptes bancaires et cartes de débit
Par défaut, la saisie d’une nouvelle valeur pour external_
durant la mise à jour d’un compte Custom remplace le compte existant par le nouveau. Pour ajouter des comptes ou des cartes de débit supplémentaires à un compte connecté, utilisez les endpoints de l’API de création de comptes bancaires et de cartes.
Lorsque vous gérez plusieurs devises, Stripe envoie automatiquement les transferts vers un compte bancaire ou une carte de débit associé(e) à la devise concernée afin d’éviter les frais de change. Lorsque plusieurs comptes sont disponibles pour une devise donnée, Stripe utilise celui défini comme default_
.
Stripe tient à jour une liste des combinaisons de pays/devises disponibles que vous pouvez consulter et qui permet à vos utilisateurs de choisir entre les différentes options prises en charge.
Informations de virement
Lorsque vous utilisez des transferts automatiques, la propriété transfer_
du compte indique la fréquence selon laquelle le virement du solde du compte Stripe est automatiquement effectué.
{ ... "transfer_schedule": { "delay_days": 7, "interval": "daily" }, ... }
La propriété delay_
correspond à la durée nécessaire pour que les paiements (ou les transferts associés) soient disponibles pour le virement. Ce champ est utile pour contrôler les virements automatiques. Par exemple, si vous souhaitez que les fonds soient déposés sur vos comptes Custom 2 semaines après le paiement, configurez les paramètres interval
sur daily
et delay_
sur 14. La valeur par défaut est la plus petite valeur autorisée pour le compte, tel que déterminé par le pays du compte connecté. Lorsque vous configurez ou mettez à jour ce champ, vous pouvez passer la chaîne minimum pour choisir la plus petite valeur autorisée.
Quatre paramètres sont possibles pour la propriété interval
:
- manuel empêche les virements automatiques. Vous devrez effectuer manuellement le virement du solde du compte à l’aide de l’API Transfers (agissant comme le compte connecté). Pour utiliser Instant Payouts, vous devez également configurer les comptes sur
manual
. - Le paramètre quotidien assure le virement automatique des paiements
delay_
jours après leur création. La valeurdays delay_
ne peut pas être inférieure à votre propre fréquence de transfert ou à la fréquence de transfert par défaut du compte.days - Le paramètre hebdomadaire assure le virement automatique du solde une fois par semaine, selon le jour précisé par le paramètre
weekly_
(un jour de la semaine en minuscule tel que lundi).anchor - Le paramètre mensuel assure le virement automatique du solde une fois par mois, selon le jour précisé par le paramètre
monthly_
(un chiffre de 1 à 31).anchor
Utilisation des transferts manuels
Si vous affectez la valeur manual
à transfer_
à l’aide de l’API Accounts, Stripe conserve les fonds dans le solde du titulaire du compte jusqu’à la réception d’une demande de virement (ou pendant une durée maximale de 90 jours). Pour déclencher un virement de ces fonds, utilisez l’API Transfers.
L’API Transfers ne sert qu’à transférer des fonds du solde d’un compte connecté Stripe vers un compte externe. Pour transférer des fonds entre des comptes Stripe, consultez la documentation sur la création de paiements et transferts distincts ou sur la création de paiements indirects via la plateforme.
Note
La mise sous séquestre a une définition juridique précise et Stripe ne prend pas en charge les comptes de séquestre. Cependant, nous fournissons une fonctionnalité similaire avec les transferts manuels. Ceux-ci vous permettent de contrôler les dates de vos transferts, avec la possibilité de les retarder jusqu’à 90 jours sur les comptes Custom.
Lorsqu’il existe un risque de retard de livraison ou de demande de remboursement, vous pouvez utiliser les transferts manuels comme alternative à la mise sous séquestre.
Transferts Standard
Prenons l’exemple d’un transfert basique du solde Stripe d’un compte Custom vers son compte externe pour un montant de 10 USD :
Le paramétrage destination=default_
indique à Stripe d’effectuer le transfert vers le compte bancaire ou la carte de débit par défaut du compte par rapport à la devise donnée.
Un transfert standard vous permet de faire un virement d’un montant inférieur ou égal au solde disponible de l’utilisateur. Pour connaître ce montant, effectuez un appel de récupération de solde en son nom.
Stripe suit les contributions de solde provenant de différentes sources sous forme de soldes distincts. La réponse de récupération du solde détaille les différents composants de chaque solde par type de source. Par exemple, si vous souhaitez créer un transfert pour un solde autre qu’un solde de carte bancaire, indiquez le paramètre source_
dans votre requête.
À noter qu’en raison de remboursements ou de contestations de paiements, le composant de solde d’une source peut être négatif, et il n’est pas possible de créer un transfert dont le montant est supérieur au solde global disponible.
Utilisation de Instant Payouts
Instant Payouts vous permet d’effectuer des virements instantanés vers une carte de débit d’un compte Custom. Les fonds apparaissent généralement sur le compte bancaire concerné au bout de 30 minutes, permettant de passer du paiement au virement en quelques instants.
Pour utiliser Instant Payouts, spécifiez instant au niveau de la propriété method
lors de la création du transfert :
Instant Payouts est différent à plusieurs égards des autres transferts manuels :
- Vous pouvez transférer le solde disponible d’un compte ainsi que son solde en attente
- Les virements Instant Payouts peuvent être demandés les week-ends et les jours fériés
Dans un premier temps, les plateformes peuvent transférer jusqu’à 500 USD par jour au total (pour l’ensemble de leurs comptes connectés) via Instant Payouts. Si vous avez besoin de relever ce seuil, contactez-nous.
Instant Payouts est disponible dans toutes les principales banques des États-Unis, mais un faible pourcentage de banques ne prennent pas encore en charge cette fonctionnalité. Dans ce cas de figure, vous devez vous rabattre sur les virements standard.
Lorsque vous ajoutez une carte à un compte, Stripe renvoie une propriété available_
dans la réponse. Celle-ci contient l’ensemble des modes de paiement pris en charge par Stripe pour cette carte. Seules les valeurs de cet ensemble doivent être passées en tant que method
lors de la création d’un transfert.
{ "id":
, "object": "card", ... "account": "acct_1032D82eZvKYlo2C", "available_payout_methods": ["standard", "instant"], }"{{CARD_ID}}"
Si la carte d’un compte Custom ne prend pas en charge Instant Payouts, vous devez clairement informer le titulaire de ce compte qu’il ne recevra pas ses virements de manière instantanée.
Utilisation des webhooks avec les transferts
Vous pouvez suivre toutes les activités de transfert sur les comptes connectés à l’aide des webhooks (lorsque vous utilisez Connect, vous devez toujours avoir recours aux webhooks). Concernant les transferts, vous observerez les événements ci-dessous :
transfer.
created transfer.
updated transfer.
paid transfer.
failed
Pour la plupart des transferts, ces notifications d’événement se produisent sur plusieurs jours. Les virements Instant Payouts envoient généralement l’événement transfer.
sous 30 minutes.
Si un transfert ne peut pas aboutir, un événement transfer.
se produit. L’événement failure_
vous indique les raisons de cet échec.