埋込型金融の導入ガイド
プラットフォーム向け Issuing および金融口座で組み込み型金融サービスの導入を構築します。
Stripe Issuing と Financial Accounts for platforms を使用して、アメリカの組み込み型金融サービスを構築します。カードの発行には Issuing を、残高の保管やカードの支出には Financial Accounts for platforms を使用します。
このガイドでは、以下の方法について説明します。
- プラットフォーム向け Issuing および金融口座機能に関連する、ビジネス顧客を代表する検証済み連結アカウントを作成します
- 企業顧客のウォレットとしての使用が可能で外部銀行口座を使用して資金を追加できる金融口座を作成する
- 企業顧客向けのバーチャルカードを作成してカードを使用してウォレットから支出する方法
はじめに
- 登録して Stripe アカウントを作成します。
- ダッシュボードから サンドボックス 環境で、プラットフォーム用の Issuing と金融口座をアクティブにします。詳細については、API access to Issuing and Financial Accounts for platforms を参照してください。
- 自社の Connect プラットフォームのブランディング設定を行い、アイコンを追加します。
連結アカウントを作成する
連結アカウントを作成する
プラットフォームのビジネス顧客を表す連結アカウントを作成します。たとえば、飲食店向けの SaaS プラットフォームの場合、各飲食店が 1 件の連結アカウントとして表されます。
Connect アカウントのタイプ
Issuing は、Stripe がホストするダッシュボードを使用せず、プラットフォームが要件の収集と損失に対する責任を負う連結アカウント (Custom 連結アカウントとも呼ばれる) のみをサポートします。詳しくは、Issuing と連携可能な連結アカウントの作成方法をご確認ください。既存のアカウントがこの設定に当てはまらない場合は、アカウントを再作成する必要があります。
以下のリクエストによって、アメリカを拠点とする連結アカウントが適切な設定で新規作成され、必須のケイパビリティがリクエストされます。
ユーザーのアカウント情報がレスポンスに表示されます。
{ ... "id": "{{CONNECTED_ACCOUNT_ID}}", "controller": { "stripe_dashboard": { "type": "none" }, "fees": { "payer": "application" }, "losses": { "payments": "application" }, "is_controller": true, "type": "application", "requirement_collection": "application" }, ... }
連結アカウントの id を書き留めておきます。この値を Stripe-Account ヘッダーでリクエストすることにより、連結アカウントとして認証します。
連結アカウントがすでに存在する場合は、リクエストで連結アカウントの id を指定することで、必要なケイパビリティを追加できます。
連結アカウントを確認する
次のアカウント登録オプションのいずれかを選択します。
この時点で、Stripe は、有効な関連機能を持つ連結アカウントを作成および検証し、プラットフォーム向け Issuing および金融口座を使用できるようにしています。
詳細については、以下をご覧ください。
金融口座を作成して資金を追加する
プラットフォームで金融口座を有効にしたら、FinancialAccount オブジェクトを プラットフォームアーキテクチャ に追加し、効率的な資金の保管、送受信を可能にします。Stripe では、有効化後に金融口座をプラットフォームアカウントにアタッチし、プラットフォーム上の対象となる連結アカウントごとに個人金融口座をプロビジョニングできます。
Stripe API では、FinancialAccount オブジェクトが資金移動の API リクエストの送金元および送金先として機能します。プラットフォーム上の金融口座に追加機能を提供するには、API を通じて Features をリクエストし、FinancialAccounts に割り当てます。
金融口座は、それがリンクされている口座の決済残高とは異なる 資金残高 を操作します。例えば、プラットフォーム上の連結アカウントの所有者は、100 USD の連結アカウント残高と 200 USD の金融口座残高を保有している場合があります。このシナリオでは、連結アカウントの所有者は、金融口座と連結アカウントの残高の間に合計 300 USD を保有しています。これら 2 つの残高は別々のままですが、API は連結アカウント残高から金融口座残高に資金を移動する機能を提供します。
金融口座を作成する
Stripe によって treasury ケイパビリティがアカウントに追加され、アカウントが active とマークされると、連結アカウントの FinancialAccount オブジェクトを作成できます。これを作成するには、FinancialAccounts を呼び出し、提供する Features をリクエストします。
金融口座作成時に機能をリクエストした場合、そのレスポンスでは、active_、pending_、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", ... }
一部の機能 (例えば、card_) では、アクティベーションが瞬時に行われる場合があります。しかし、financial_ のように、非同期でアクティベート される機能は、Stripe が外部システムと通信している間、最大 30 分間 保留 のままになる場合があります。関連機能がすべてアクティブになると、treasury. Webhook リスナーで確認できます。金融口座機能の詳細については、利用可能な機能 を参照してください。
銀行口座を関連付ける
顧客が外部口座との間で送金できるようにするには、必要なパラメーターを使用して SetupIntent を作成し、外部口座を self に関連付けて、顧客が外部口座を所有していることを示します。
API レスポンスには、ACH 送金の実行時にこの銀行口座の参照に使用された payment_ の一意の ID が含まれています。
{ "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" ] }
銀行口座を利用できるようにするには、少額入金 (ここで説明しているオプション) か、高速サービスの Financial Connections を使用して口座を確認する必要があります。前のステップで説明された SetupIntent のレスポンスには、hosted_ が含まれます。この URL を顧客に提示して、関連する少額入金の明細書表記コードを顧客が入力できるようにする必要があります。値 SM11AA を使用して銀行口座を確認するか、Stripe が提供するテスト用口座番号を使用して、その他さまざまなケースをテストします。

少額入金の確認
金融口座に資金を追加する
この時点で連結アカウントには FinancialAccount があります。この口座には、InboundTransfer から受け取った資金が入っています。この資金はカードまたは OutboundPayments (ACH や電信送金など) を使用して支出に使用できます。
詳細については、以下をご覧ください。
カードを使用する
オーソリを作成する
関連残高へのカードアクティビティの影響を確認するには、テスト用オーソリを生成します。テスト用オーソリの作成は、連結アカウントのダッシュボードの Issuing ページで行うか、Authorization API に対する以下のコールを使用して行うことができます。
承認後、Stripe はキャプチャーを待っている間に pending 状態の Authorization を作成します。売上のキャプチャーに使用する オーソリの id に注意してください。
{ "id": "iauth_1NvPyY2SSJdH5vn2xZQE8C7k", "object": "issuing.authorization", "amount": 1000, ... "status": "pending", "transactions": [], }
金融口座の残高詳細を取得し、オーソリの影響を確認できます。
API レスポンスは、資金とその利用可能状況の詳細を示す balance ハッシュが含まれた FinancialAccount オブジェクトです。
{ "object": "treasury.financial_account", "id": "{{FINANCIAL_ACCOUNT_ID}}", ... "balance": { "cash": {"usd": 19000}, "inbound_pending": {"usd": 0}, "outbound_pending": {"usd": 1000} } }
このレスポンスは、現在 190 USD が利用可能であり、さらに pending オーソリからの outbound_ に 10 USD が保持されていることを示しています。これで、API でオーソリのキャプチャーをシミュレーションできます。
売上をキャプチャーする
以下のコードを使用して売上をキャプチャーします。
オーソリがキャプチャーされると、Stripe は Issuing の取引を作成します。オーソリの status は closed に設定され、これらの詳細が含まれた ReceivedDebit Webhook が作成されます。金融口座の残高詳細を再取得すると、outbound_ が現在 0 USD で、利用可能な現金が 190 USD であることが確認できます。
{ "object": "treasury.financial_account", "id": "{{FINANCIAL_ACCOUNT_ID}}", ... "balance": { "cash": {"usd": 19000}, "inbound_pending": {"usd": 0}, "outbound_pending": {"usd": 0} } }