# Financial Connections の基本 Financial Connections の仕組みをご紹介します。 Stripe Financial Connections プロダクトには、2 つの主要コンポーネントが含まれています。1 つは、認証フローによるエンドユーザーの銀行口座の収集で、もう 1 つは収集されたアカウントに関するデータの取得です。Financial Connections の導入には、[複数の方法](https://docs.stripe.com/financial-connections/use-cases.md)があります。以下の例では、[Financial Connections Session](https://docs.stripe.com/api/financial_connections/sessions.md) の使用を想定しています。ただし、全体的な概念とフロー図は、Setup Intents や Payment Intents などの決済システムと同様に機能します。 Financial Connections 認証フローを初期化および終了するには、以下の手順に従います。 1. ユーザーがクライアントで銀行口座の関連付けを開始します。 1. 認証フローを実行するために、サーバー側で Financial Connections Session を作成します。 1. クライアントに、セッションの `client_secret` を返します。 1. [collectFinancialConnectionsAccounts](https://docs.stripe.com/js/financial_connections/collect_financial_connections_accounts) を使用して認証フローを開始します。 1. ユーザーがフローを完了し、これによりセッションに[アカウント](https://docs.stripe.com/api/financial_connections/accounts.md)が関連付けられます。 Financial Connections 認証フローの概要 (See full diagram at https://docs.stripe.com/financial-connections/fundamentals) ユーザーの認証済み口座を取得した後で、サーバーからデータ更新を開始できます。更新が完了すると、口座データを取得できます。 ## 認証フロー 認証フローは、ユーザーがデータ共有に同意し、金融口座をお客様と Stripe に関連付けできるようにする、クライアント側の UI です。 UI をクライアント側のユーザーフローに埋め込みます。これは、ウェブ、iOS、Android、モバイルウェブビューなど、主要なすべてのブラウザーとプラットフォームで機能します。 ![認証フロー](https://b.stripecdn.com/docs-statics-srv/assets/canonical-flow-v3.e0b5244b9d16ed2e03e6ed656e5ab1df.png) ユーザーは認証フローで以下のステップに従います。 | ステップ | 説明 | | ------------- | ------------------------------------------------ | | **同意する** | ユーザーが、リクエストされたデータの共有に同意します。 | | **機関を選択する** | ユーザーは、代表的な銀行から選択するか、サポートされている 5,000 以上の銀行を検索します。 | | **銀行にログインする** | ユーザーは銀行にログインして、口座へのアクセスを認証します。 | | **アカウントを選択** | ユーザーは、リンクする特定のアカウントを選択します。 | | **成功** | 認証に成功すると、ユーザーに成功画面が表示されます。 | Setup Intents などの決済システムでは、[verification_method](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_options-us_bank_account-verification_method) パラメーターを使用して、少額入金をフォールバックとして使用する認証フローを設定できます。 ### 再利用時の最適化 Financial Connections を使用すると、ユーザーはより少ないステップで自身のアカウントを[Link](https://support.stripe.com/questions/link-for-financial-connections-support-for-businesses)に関連付け、Stripe のすべての加盟店に銀行口座の詳細を保存して、すばやく再利用できます。 ![認証フロー](https://b.stripecdn.com/docs-statics-srv/assets/return-user-flow-v3.5a17b62098a2cfb95d42bfe37f641d1e.png) リピートユーザーのために、メールアドレスを持つ*顧客* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments)を指定して、Financial Connections 認証フローを起動する必要があります。特定のユースケースでこれを行う方法の例については、[ユースケースガイド](https://docs.stripe.com/financial-connections/use-cases.md)をご覧ください。 ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ -d email={{CUSTOMER_EMAIL}} ``` ## Stripe が金融口座を関連付ける方法 認証フローで、ユーザーは、OAuth (銀行によるホスティング) フローまたは非 OAuth フローのいずれかを使用して銀行にログインし、口座へのアクセスを認証します。Stripe では通常、認証フローにデフォルトで OAuth を使用します (金融機関で使用可能な場合)。システムで、OAuth アカウントと非 OAuth アカウントの処理を変える必要はありません。 OAuth は、ユーザーが、アプリケーション (Stripe など) に対して、他のアプリケーション (銀行アプリなど) 内の情報にアクセスすることを許可するための標準化されたプロトコルです。このプロトコルを使用することで、ユーザーはログイン認証情報を共有する必要がなくなります。 OAuth と Financial Connections の連携方法をご紹介します。 - ユーザーは、Financial Connections 認証フローで銀行を選択すると、銀行のウェブサイトまたはモバイルアプリに移動します。 - ユーザーは銀行にログインし、Stripe と口座データ (残高や取引など) を共有する権限を銀行に付与します。 - 銀行は、ユーザーを認証フローに再度リダイレクトして、承認された銀行口座情報への Stripe のアクセスを許可するトークンを渡します。 - ユーザーがログイン認証情報を Stripe と共有することはありません。 非 OAuth フローでは、エンドユーザーは、Stripe またはいずれかの[信頼できるパートナー](https://support.stripe.com/questions/what-is-the-relationship-between-stripe-and-stripe-s-service-providers)に、認証情報を直接提供します。 ## Financial Connections アカウント 認証フローを正常に完了すると、ユーザーによって認証されたアカウントごとに [Financial Connections Account (Financial Connections アカウント)](https://docs.stripe.com/api/financial_connections/accounts/object.md) が 1 つ作成されます。Financial Connections アカウントは、残高や取引など、その他の口座データにアクセスするために使用する API オブジェクトです。それぞれ当座預金、普通預金、ローン、クレジットカード口座などの外部金融口座を表します。アカウントの [account_subcategory](https://docs.stripe.com/api/financial_connections/accounts/object.md#financial_connections_account_object-subcategory) フィールドで、対応するすべての口座種別のリストをご覧ください。当座預金口座や普通預金口座など、現金ベースの口座のみが ACH (Automated Clearing House) 送金を利用できます。 ## データ権限 口座を収集すると、すぐに次の情報にアクセスできるようになります。 - 口座番号の末尾 4 桁 - 当座、普通などの口座種別 - 口座のニックネーム (使用している場合) 残高や取引など、その他の口座データにアクセスするには、データ権限を指定してアクセスをリクエストする必要があります。Financial Connections セッションなどのサーバー側オブジェクトのデータ権限は、[permissions](https://docs.stripe.com/api/financial_connections/sessions/create.md#financial_connections_create_session-permissions) パラメーターを使用して設定します。 | 利用できるデータ | 権限 | 説明 | | -------- | ---------------- | ---------------------------- | | 口座情報 | `payment_method` | トークン化された口座番号と金融番号 (資金移動では必須) | | 口座名義人 | `ownership` | 口座名義人の名前と住所 | | 残高 | `balances` | 現在の残高と利用可能な残高 | | 取引 | `transactions` | 保留中および転記済みの取引 | > 口座番号はデフォルトでトークン化されており、Stripe での ACH ペイインやペイアウトに使用できます。Stripe 外での ACH 処理の完全なアカウント番号は、特定のケースで、リスクと適格性の基準を満たすビジネスが入手可能です。 ユースケースの実施に必要なデータを検討し、必要なデータのみにアクセスする権限をリクエストします。アプリケーションのスコープを大きく超える権限をリクエストすると、データの使用方法についてのユーザーの信頼を失う可能性があります。たとえば、個人向けの財務管理アプリケーションや融資商品を構築する場合は、`transactions` データをリクエストします。アカウントの乗っ取りなどの不正利用を減らす場合は、`ownership` の詳細をリクエストします。 認証フローでは、ユーザーはお客様がアクセスをリクエストしたデータタイプを参照できます。ユーザーはこのデータを共有することへの同意を提出する必要があります。アクセス権限を持つデータタイプを拡大するには、ユーザーが新しいデータ権限の認証フローを再度完了する必要があります。 [残高の導入](https://docs.stripe.com/financial-connections/balances.md)ガイドで、金融口座データへのアクセス方法の例をご覧になるか、さまざまなデータタイプを対象とした[ユースケース](https://docs.stripe.com/financial-connections/use-cases.md)で詳細をご確認ください。