Utiliser Financial Accounts pour les plateformes et Issuing pour configurer des comptes financiers et des cartes
Suivez un exemple d'intégration Financial Accounts pour les plateformes et Issuing qui configure un compte financier et émet des cartes.
Homebox est un SaaS vertical fictif qui développe des logiciels pour les entreprises de services à domicile, telles que les techniciens en chauffage, ventilation et climatisation, les entreprises de nettoyage et les plombiers. Homebox commence son intégration de Financial Accounts pour les plateformes en configurant un compte financier et en créant des cartes de paiement. Pour découvrir comment Homebox transfère de l’argent vers et depuis des comptes bancaires externes, consultez l’exemple d’intégration relative à l’utilisation de Financial Accounts pour les plateformes afin de transférer de l’argent.
Inscription des utilisateurs à la plateforme
Homebox est une plateforme Stripe sur laquelle les fonctionnalités Payments et Connect sont déjà activées. Elle utilise des comptes connectés Custom pour lesquels la fonctionnalité card_ est déjà activée.
Ajouter des fonctionnalités
Afin d’utiliser les services de Financial Accounts pour les plateformes et Issuing, Homebox doit demander en plus les fonctionnalités supplémentaires de trésorerie et card_ pour les comptes connectés de la plateforme. Chaque compte connecté doit ensuite être inscrit avant que Stripe puisse lui créer un compte financier.
Pour utiliser les transferts ACH avec Financial Accounts pour les plateformes, Homebox doit également demander la fonctionnalité us_.
Homebox demande les fonctionnalités treasury, card_ et us_ à l’API Accounts.
Pour utiliser Hosted Onboarding, Homebox fait un appel à Account Links pour récupérer une URL que son compte connecté peut ensuite utiliser pour transmettre les informations d’intégration relatives au compte financier.
La réponse comprend une URL que le compte connecté utilise pour accéder à l’application, ce qui doit être fait avant l’expiration du lien.
{ "object": "account_link", "created": 1612927106, "expires_at": 1612927406, "url": "https://connect.stripe.com/setup/s/iCtLfmYb2tEU" }
Homebox écoute le webhook account. pour confirmer les fonctionnalités et les champs suivants sur le compte connecté :
{ "object": { "id": "{{CONNECTED_ACCOUNT_ID}}", "object": "account", "capabilities": { "card_payments": "active", "treasury": "active", "card_issuing": "active", // Only appears if requesting the `card_issuing` capability. "us_bank_account_ach_payments": "active", // Only appears if requesting the `us_bank_account_ach_payments` capability. }, ... } }
Créer un FinancialAccount
Une fois que Stripe a ajouté la fonctionnalité treasury à un compte, Homebox est en mesure de créer l’objet FinancialAccount pour ce compte. Pour ce faire, Homebox appelle l’API comptes financiers et demande les fonctionnalités que l’entreprise souhaite fournir.
La réponse confirme que le compte est en cours de traitement. Une fois que le traitement est terminé et que toutes les fonctionnalités pertinentes sont activées, Homebox reçoit une confirmation de son écouteur de webhooks treasury..
{ "object": "treasury.financial_account", "created": 1612927106, "id": "{{FINANCIAL_ACCOUNT_ID}}", "country": "US", "supported_currencies": ["usd"], "financial_addresses": [ // This field is empty until the "financial_addresses.aba" feature becomes active { "type": "aba", "supported_networks": ["ach", "us_domestic_wire"], "aba": { "account_number_last4": "7890", // Use the expand[] parameter to view the `account_number` field hidden by default "account_number": "1234567890", "routing_number": "000000001", "bank_name": "Bank of Earth" } } ], "livemode": true, // State machine: // open - the account is ready to be used // closed - the account is closed "status": "open", "status_details": { // `closed` is null if financial account is not closed "closed": { // List of one or more reasons why the FinancialAccount was closed: // - account_rejected // - closed_by_platform // - other "reasons": [], } }, active_features: ["card_issuing"], pending_features: ["deposit_insurance", "financial_addresses.aba", "outbound_payments.ach", "us_domestic_wire", "inbound_transfers.ach", "outbound_transfers.ach", "outbound_transfers.us_domestic_wire"], restricted_features: [], "features": { "object": "treasury.financial_account_features", "card_issuing": { "status": "active", "status_details": [], "access": "active", }, "deposit_insurance": { "requested": true, "status": "pending", // Becomes "active" after the financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, "financial_addresses": { "aba": { "requested": true, "status": "pending", // Becomes "active" after the financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "outbound_payments": { "ach": { "requested": true, "status": "pending", // Becomes "active" after the financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "us_domestic_wire": { "requested": true, "status": "pending", // Becomes "active" after the financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, "inbound_transfers": { "ach": { "requested": true, "status": "pending", // Becomes "active" after the financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "outbound_transfers": { "ach": { "requested": true, "status": "pending", // Becomes "active" after the financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "outbound_payments": { "ach": { "requested": true, "status": "pending", // Becomes "active" after the financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "outbound_transfers": { "us_domestic_wire": { "requested": true, "status": "pending", // Becomes "active" once the financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "platform_restrictions": { "inbound_flows": "unrestricted", "outbound_flows": "unrestricted" }, "metadata": {}, ... }
Créer un titulaire de carte de paiement
Avant que Homebox puisse créer des cartes pour les comptes financiers, elle doit créer des titulaires de carte. Les titulaires de carte dans cet exemple sont des entreprises de plomberie qui utilisent les services Homebox et possèdent les comptes connectés sur la plateforme.
- Accédez à la page Comptes connectés du Dashboard.
- Sélectionnez le compte connecté pour lequel vous souhaitez créer un titulaire de carte afin d’en développer les détails.
- Sélectionnez l’onglet Émission de cartes.
- Cliquez sur le bouton + à côté de Titulaires de carte.
- Saisissez les informations du titulaire de la carte, puis cliquez sur Créer un titulaire de carte.
Créer des cartes de paiement
Maintenant que le compte connecté est associé à un objet FinancialAccount et à un titulaire de carte, Homebox peut créer une carte de paiement en utilisant le solde du FinancialAccount comme solde disponible de la carte.
Remarque
Vous ne pouvez pas créer de Comptes financiers dans le Dashboard. Vous devez utiliser l’API pour les créer.
- Accédez à la page Comptes connectés du Dashboard.
- Sélectionnez le compte connecté pour lequel vous souhaitez créer un titulaire de carte afin d’en développer les détails.
- Sélectionnez l’onglet Émission de cartes.
- Cliquez sur le bouton + en regard de Cartes.
- Sélectionnez le type de carte et le compte financier avec lequel vous souhaitez approvisionner la carte, puis cliquez sur Créer.