Guide d'intégration des services financiers intégrés
Développez une intégration de services financiers intégrée avec Issuing et Treasury.
Développez une offre de services financiers intégrés aux États-Unis à l’aide de Stripe Issuing et Treasury. Utilisez Issuing pour créer des cartes et Treasury pour gérer les soldes et financer les dépenses effectuées par carte.
À la fin de ce guide, vous saurez comment :
- Créer des comptes connectés vérifiés représentant vos entreprises clientes avec les fonctionnalités Issuing et Treasury voulues
- Créer des comptes financiers qui serviront de portefeuilles pour vos clients et y ajouter des fonds depuis un compte bancaire externe
- Créer des cartes virtuelles pour vos clients et les utiliser pour dépenser des fonds depuis un portefeuille
Avant de commencer
- Créez un Compte Stripe.
- Activez Issuing et Treasury en mode test depuis le Dashboard. Pour plus d’informations, consultez la page expliquant comment accéder aux API Issuing et Treasury.
- Configurez les paramètres de marque de la plateforme Connect de votre entreprise et ajoutez une icône.
Créer des comptes connectés
Créer un compte connecté
Créez un compte connecté pour représenter une entreprise cliente de votre plateforme. Par exemple, si votre produit est une plateforme SaaS à destination de restaurants, chaque restaurant est représenté par un compte connecté.
Types de comptes Connect
Issuing prend uniquement en charge les comptes connectés qui n’utilisent pas de Dashboard hébergé par Stripe, et dont votre plateforme est responsable de la collecte des exigences et des pertes, c’est-à-dire les comptes connectés Custom. Découvrez comment créer des comptes connectés qui fonctionnent avec Issuing. Si vos comptes existants ne correspondent pas à cette configuration, vous devez les recréer.
La requête suivante crée un compte connecté établi aux États-Unis avec la bonne configuration et demande les fonctionnalités requises :
Les informations du compte de l’utilisateur apparaissent dans la réponse :
{ ... "id": "{{CONNECTED_ACCOUNT_ID}}", "controller": { "stripe_dashboard": { "type": "none" }, "fees": { "payer": "application" }, "losses": { "payments": "application" }, "is_controller": true, "type": "application", "requirement_collection": "application" }, ... }
Notez l’id
du compte connecté. Vous le transmettrez dans les requêtes de l’en-tête Stripe-Account
pour vous authentifier sous ce compte.
Si un compte connecté existe déjà, vous pouvez ajouter les fonctionnalités requises en spécifiant son id
dans la requête :
Vérifier le compte connecté
Choisissez l’une des options d’inscription des utilisateurs suivantes :
À ce stade, Stripe a créé et vérifié le compte connecté, qui est doté des fonctionnalités active
pertinentes pour l’utilisation de Issuing et Treasury.
Pour en savoir plus, consultez les pages suivantes :
Créer des comptes financiers et ajouter des fonds
Après avoir activé Treasury sur votre plateforme, vous pouvez ajouter des objets FinancialAccount à l’architecture de votre plateforme afin de garantir l’efficacité de la réception, de l’envoi et du stockage des fonds. Après l’activation, Stripe associe un compte financier au compte de votre plateforme, et vous pouvez dès lors alimenter un compte financier pour chaque compte connecté admissible de votre plateforme.
Dans l’API Stripe, les objets FinancialAccount
servent de source et de destination aux requêtes API de mouvement de fonds. Vous pouvez demander via l’API d’affecter des Features
aux FinancialAccounts
afin de fournir des fonctionnalités supplémentaires aux comptes financiers de votre plateforme.
Un compte financier possède son propre solde de fonds, distinct du solde des paiements du compte connecté auquel il est associé. Par exemple, le propriétaire d’un compte connecté de votre plateforme peut disposer de 100 USD sur son solde de compte connecté et de 200 USD sur son solde de compte financier. Dans ce cas, son solde total s’élève à 300 USD, soit la somme des soldes de son compte financier et de son compte connecté. Ces deux soldes sont distincts, mais l’API offre la possibilité de transférer des fonds depuis le solde du compte connecté vers le solde du compte financier.
Comptes financiers multiples
La fonctionnalité Comptes financiers multiples (version bêta) vous permet d’ouvrir plusieurs comptes financiers pour un même compte connecté. Contactez treasury-support@stripe.com pour accéder au mode test de cette fonctionnalité et vous inscrire sur la liste d’attente.
Créer un compte financier
Une fois que Stripe a ajouté la fonctionnalité treasury
à un compte et qu’elle est marquée active
, vous pouvez créer un objet FinancialAccount
pour le compte connecté. Pour ce faire, appelez FinancialAccounts
et demandez les Features
(fonctionnalités) que vous souhaitez fournir :
Lorsque vous demandez des fonctionnalités lors de la création du compte financier, la réponse indique leur état dans les paramètres active_
, pending_
et restricted_
:
{ "object": "treasury.financial_account", "created": 1612927106, "id": "fa_123", "country": "US", "supported_currencies": ["usd"], "active_features": ["card_issuing"], "pending_features": ["financial_addresses.aba"], "restricted_features": [], // No FinancialAddress added as the financial_addresses.aba feature is not yet active "financial_addresses": [], "livemode": true, "status": "open", ... }
L’activation de certaines fonctionnalités peut être instantanée (par exemple pour card_
). Cependant, d’autres fonctionnalités telles que financial_
, activées de manière asynchrone, peuvent rester à l’état pending
jusqu’à 30 minutes, le temps que Stripe communique avec les systèmes externes. Une fois que toutes les fonctionnalités voulues sont actives, vous recevez une confirmation sur l’écouteur du webhook treasury.
. Consultez la section sur les fonctionnalités disponibles pour en savoir plus sur les fonctionnalités des comptes financiers.
Associer un compte bancaire
Pour permettre à vos clients de transférer de l’argent vers et depuis un compte externe, créez un SetupIntent
avec les paramètres requis et associez-le à self
pour indiquer que le compte externe appartient à votre client :
La réponse de l’API inclut un identifiant de payment_
unique, qui sert à référencer ce compte bancaire lors des virements ACH :
{ "id": "{{SETUP_INTENT_ID}}", "object": "setup_intent", "next_action": { "type": "verify_with_microdeposits", "verify_with_microdeposits": { "arrival_date": 1642579200, "hosted_verification_url": "https://payments.stripe.com/microdeposit/sacs_test_xxx", "microdeposit_type": "amounts" } }, ... "payment_method": "{{PAYMENT_METHOD_ID}}", "payment_method_types": [ "us_bank_account" ] }
Pour utiliser un compte bancaire, vous devez d’abord le vérifier à l’aide de microversements (option sur laquelle nous nous concentrons ici) ou de connexions financières (option la plus rapide). La réponse SetupIntent
de l’étape précédente inclut une URL hosted_
que vous devez présenter à votre client pour qu’il puisse saisir le code de libellé associé au microversement. Utilisez la valeur SM11AA
pour vérifier le compte bancaire ou testez d’autres cas de figure à l’aide des numéros de comptes de test fournis par Stripe.
Vérification à l’aide de microversements
Ajouter des fonds au compte financier
À ce stade, le compte connecté dispose d’un FinancialAccount
crédité des fonds d’un InboundTransfer
. Vous pouvez les dépenser avec des cartes ou des OutboundPayments
, comme les virements bancaires ou ACH.
Pour en savoir plus, consultez les pages suivantes :
- Obtention des autorisations pour les InboundTransfers
- Utilisation des comptes financiers Treasury
- Transférer des fonds à l’aide de Treasury
- Demander des fonctionnalités sur un compte financier
- Utilisation des objets SetupIntents, PaymentMethods et BankAccounts
- Transférer des fonds avec Treasury à l’aide d’objets InboundTransfer
- Transférer des fonds avec Treasury à l’aide d’objets ReceivedCredit
Utiliser la carte
Créer une autorisation
Pour observer l’impact des activités de carte sur le solde associé, générez une autorisation test. Vous pouvez le faire sur la page Issuing du Dashboard du compte connecté ou en effectuant l’appel suivant à l’API Authorization :
Après approbation, Stripe crée une Authorization
à l’état pending
en attendant la capture. Notez l’id
d’autorisation que vous utiliserez pour capturer les fonds :
{ "id": "iauth_1NvPyY2SSJdH5vn2xZQE8C7k", "object": "issuing.authorization", "amount": 1000, ... "status": "pending", "transactions": [], }
Vous pouvez récupérer les détails du solde du compte financier et consulter l’effet de l’autorisation :
La réponse de l’API est un objet FinancialAccount
avec un hachage balance
(solde) détaillant les fonds et leur disponibilité :
{ "object": "treasury.financial_account", "id": "{{FINANCIAL_ACCOUNT_ID}}", ... "balance": { "cash": {"usd": 19000}, "inbound_pending": {"usd": 0}, "outbound_pending": {"usd": 1000} } }
La réponse indique que 190 USD sont actuellement disponibles, ainsi que 10 USD supplémentaires placés dans outbound_
à partir de l’autorisation pending
. Vous pouvez désormais simuler la capture de l’autorisation avec l’API.
Capturer les fonds
Capturez les fonds à l’aide du code suivant :
Une fois l’autorisation capturée, Stripe crée une transaction Issuing. L’attribut status
de l’autorisation reçoit la valeur closed
et un webhook ReceivedDebit
est créé à partir de ces informations. La récupération des informations du solde du compte financier montre que la valeur outbound_
est désormais de 0 USD alors que le solde disponible reste de 190 USD :
{ "object": "treasury.financial_account", "id": "{{FINANCIAL_ACCOUNT_ID}}", ... "balance": { "cash": {"usd": 19000}, "inbound_pending": {"usd": 0}, "outbound_pending": {"usd": 0} } }