Utiliser Treasury et Issuing pour configurer des comptes financiers et des cartes bancaires
Suivez un exemple d'intégration Treasury et Issuing qui configure un compte financier et émet des cartes.
Homebox est un SaaS vertical fictif qui conçoit des logiciels pour les entreprises de services à domicile telles que les entreprises de CVC, de nettoyage et de plomberie. Homebox commence son intégration de Treasury en configurant un compte financier Treasury 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 Utiliser Treasury pour transférer des fonds.
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 Treasury et Issuing, Homebox doit demander en plus les fonctionnalités treasury
et card_
pour les comptes connectés de la plateforme. Chaque compte connecté doit ensuite être intégré avant que Stripe puisse lui créer un compte financier Treasury.
Pour utiliser les transferts ACH avec Treasury, Homebox doit également demander la fonctionnalité us_
.
Homebox demande les fonctionnalités treasury
, card_
et us_
à l’API Accounts.
Pour utiliser l’inscription hébergée, Homebox fait un appel à Account Links pour récupérer une URL que son compte connecté peut ensuite utiliser pour transmettre des informations concernant le compte financier Treasury.
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 FinancialAccounts
et demande les Features
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" once the Treasury financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, "financial_addresses": { "aba": { "requested": true, "status": "pending", // Becomes "active" once the Treasury financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "outbound_payments": { "ach": { "requested": true, "status": "pending", // Becomes "active" once the Treasury financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "us_domestic_wire": { "requested": true, "status": "pending", // Becomes "active" once the Treasury financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, "inbound_transfers": { "ach": { "requested": true, "status": "pending", // Becomes "active" once the Treasury financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "outbound_transfers": { "ach": { "requested": true, "status": "pending", // Becomes "active" once the Treasury financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "outbound_payments": { "ach": { "requested": true, "status": "pending", // Becomes "active" once the Treasury financial account is set up "status_details": [{"code": "activating", "resolution": nil}], }, }, "outbound_transfers": { "us_domestic_wire": { "requested": true, "status": "pending", // Becomes "active" once the Treasury 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 Treasury, 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.
La réponse confirme la création du titulaire de la carte.
{ "id": "{{CARDHOLDER_ID}}", "object": "issuing.cardholder", "billing": { "address": { "city": "\"San Francisco\"", "country": "US", "line1": "\"1234 Main Street\"", "postal_code": "94111", "state": "CA" } }, "created": 1623803705, "email": "jenny@example.com", "livemode": false, "metadata": {}, "name": "Jenny Bath Remodeling", "phone_number": "+18008675309", "requirements": { "disabled_reason": "under_review", "past_due": [] }, "spending_controls": { "allowed_categories": [], "blocked_categories": [], "spending_limits": [], }, "status": "active", "type": "company" }
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.
La réponse confirme l’émission de la carte.
{ "id": "{{CARD_ID}}", "object": "issuing.card", "cardholder": { "id": "{{CARDHOLDER_ID}}", "object": "issuing.cardholder", "billing": { "address": { "city": "San Francisco", "country": "US", "line1": "123 Main Street", "line2": null, "postal_code": "94111", "state": "CA" } }, ... }, "created": 1643293629, "currency": "usd", "exp_month": 12, "exp_year": 2024, "last4": "0930", "livemode": false, ... }