# 確認要件の更新に対応する

絶えず変化する確認要件への準拠を維持できるように、連結アカウントをサポートします。

連結アカウントが決済を受け付けて送金できるようになる前に、一般に本人確認 (KYC) と呼ばれる要件を満たす必要があります。このためには、[連結アカウントに関する特定の情報](https://docs.stripe.com/connect/required-verification-information.md)を収集して、それを Stripe に送信する必要があります。

Stripe は本人確認要件を頻繁に更新していますが、その多くは金融規制当局、カードネットワーク、その他の金融機関によって実施される変更に基づいています。

これらの更新では、以下のアクションが必要になる場合があります。

1. アカウント登録フローを変更して、変更された要件に対処できるようにします。
1. 影響を受ける連結アカウントから更新された情報を収集し、確認への対応を処理します。
1. 特定された問題を連結アカウントに通知して、[リスクに関連する要件に対処](https://docs.stripe.com/connect/handling-api-verification.md)し、 Stripe インターフェイスを使用して解決できるように誘導できます。

[今後予定されている要件の更新](https://support.stripe.com/user/questions/onboarding-requirements-updates)が連結アカウントに影響する場合は、お知らせいたします。

## 今後の要件の特定

Stripe が要件の収集を担当する場合 ([controller.requirement_collection](https://docs.stripe.com/api/accounts/object.md#account_object-controller-requirement_collection) は `stripe`)、Stripe は連結アカウントの今後の要件変更を自動的に処理します。この場合、このドキュメントの残りの内容はプラットフォームには適用されません。

プラットフォームが要件の収集を担当する場合 (`requirement_collection` は `application`)、今後の要件変更にはご自身で対応する必要があります。Stripe は `future_requirements` ハッシュを通じてこれらの変更を通知します。対応方法は、以下で説明するアカウント登録の連携タイプによって異なります。

今後の要件は、[Account](https://docs.stripe.com/api/accounts/object.md#account_object-future_requirements) オブジェクトと [Capability](https://docs.stripe.com/api/capabilities/object.md#capability_object-future_requirements) オブジェクトの `future_requirements` ハッシュに表示されます。`requirements` ハッシュには表示されず、ケイパビリティにも影響しません。

今後の要件が有効になると、`future_requirements` ハッシュから `requirements` ハッシュに移動し、アカウントのケイパビリティに影響する可能性があります。その結果、要件を満たすまでアカウントで取引を実行できなくなる場合があります。`future_requirements.current_deadline` タイムスタンプは、`future_requirements` のエントリが `requirements` に移動する時点を示します。

## 今後の要件の収集

Stripe をまだ導入していない場合は、[導入設計ガイド](https://docs.stripe.com/connect/design-an-integration.md)を使用して連携を設定してから続行してください。

今後の要件の収集方法は、アカウント登録の連携タイプによって異なります。現在または今後の要件が変更されると、Stripe ホスト型および埋め込み型のアカウント登録フローは Stripe によって自動的に更新されますが、API ベースのフローは手動で更新する必要があります。

| アカウント登録の種類         | 今後の要件の収集方法                                                                                                                                                                                                                                                                                                                             |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Stripe ホスト型アカウント登録 | `AccountLinks` を作成するときは、[collection_options.future_requirements](https://docs.stripe.com/api/account_links/create.md#create_account_link-collection_options) を ‘include’ に設定します。                                                                                                                                                       |
| 埋め込みアカウント登録        | [アカウント登録コンポーネント](https://docs.stripe.com/connect/supported-embedded-components/account-onboarding.md)または[アカウント管理コンポーネント](https://docs.stripe.com/connect/supported-embedded-components/account-management.md)を表示するときは、回収オプションを使用して、`future_requirements` を `include` に設定します。                                                           |
| API ベースのアカウント登録    | アカウントの `future_requirements`ハッシュを監視し、新しいエントリを収集できるようにアカウント登録フローを更新して、[Accounts](https://docs.stripe.com/api/accounts/update.md) または [Persons](https://docs.stripe.com/api/persons/update.md) API を使用して情報を送信します。以下の[詳細な手順](https://docs.stripe.com/connect/handle-verification-updates.md#integrate-with-future-requirements)を参照してください。 |

Stripe がホストするアカウント登録または埋め込みアカウント登録を使用している場合は、代わりに[修正リンク](https://docs.stripe.com/connect/dashboard/remediation-links.md)を作成して共有することで、必要な情報を収集できます。

## 将来の要件との連携

Stripe がホストするアカウント登録または埋め込みアカウント登録を使用している場合、要件が変更されてもアカウント登録フローを更新する必要はありません。[更新を監視する](https://docs.stripe.com/connect/handle-verification-updates.md#listen-for-account-updates)セクションに進んでください。

## API ベースのアカウント登録

カスタムの API ベースのアカウント登録フローを使用している場合は、変更された要件に対応できるよう更新する必要があります。API ベースのアカウント登録フローを、[埋め込みコンポーネント](https://docs.stripe.com/connect/embedded-onboarding.md)または [Stripe がホストするアカウント登録](https://docs.stripe.com/connect/hosted-onboarding.md)に置き換えることも検討できます。

### 1.更新された確認要件をプレビューする

確認要件が変更された場合は、特定の期限までに更新された情報を収集する必要があります。連結アカウントの変更された要件を満たせないと、そのアカウントの 1 つ以上のケイパビリティが無効になる場合があります。アカウントの地域、リクエストされたケイパビリティ、その他の要因に基づき、[収集する必要がある確認情報](https://docs.stripe.com/connect/required-verification-information.md)の詳細を確認します。

`Account`オブジェクトの [future_requirements ](https://docs.stripe.com/api/accounts/object.md#account_object-future_requirements)ハッシュを確認すると、今後の要件変更に関する情報を事前に確認できます。連結アカウントのケイパビリティが中断されるのを避けるため、要件が `requirements`ハッシュに移動する `future_requirements.current_deadline`より前に、将来の要件に関する情報を収集してください。

未対応の要件があるアカウントは、ダッシュボードの [Connected アカウント](https://dashboard.stripe.com/connect/accounts-list)ページでも確認できます。このページでは、アカウントの問題とステータスで絞り込めます。

連結アカウントに `future_requirements` の更新済み要件がまだない場合、または異なる設定をテストする場合は、[必要な確認情報ページ](https://docs.stripe.com/connect/required-verification-information.md)のフォームを使用できます。[テストアカウントを作成](https://docs.stripe.com/connect/testing.md)することもできます。

```json
{
  "id": ""{{CONNECTED_ACCOUNT_ID}}"",
  "object": "account","future_requirements": {
    "current_deadline": 1656608400,
    "currently_due": [
      "company.tax_id"
    ],
    "disabled_reason": null,
    "errors": [],
    "eventually_due": [
      "company.tax_id"
    ],
    "past_due": [],
    "pending_verification": []
  },
  ...
}
```

> [Stripe データ](https://docs.stripe.com/stripe-data.md)を使用する場合は、[Sigma クエリ](https://docs.stripe.com/stripe-data/query-connect-data.md#account-requirements)を使用して `future_requirements` ハッシュを取得できます。

#### 2.アカウント登録フローに必須フィールドを追加する

収集する必要がある更新情報を特定したら、その情報をアカウント登録フローに追加するかどうかを決定します。たとえば、更新がケイパビリティに必ず適用される新しい要件であり、アカウント登録フローがそのケイパビリティをリクエストする場合は、フローでその情報を収集する必要があります。

また、アカウントがしきい値に達したために更新によって要件が変更された場合は、アカウントがそのしきい値に達する頻度を考慮します。頻繁ではない場合、アカウント登録フローですべての新規連結アカウントに対して、その情報の提供を求める必要はありません。

アカウントがしきい値に達したときに適用される要件に備えるには、[future_requirements.eventually_due ](https://docs.stripe.com/api/accounts/object.md#account_object-future_requirements-eventually_due)配列を調べます。

アカウント登録フォームを更新して新しいフィールドを収集し、[Accounts](https://docs.stripe.com/api/accounts/update.md) または [Persons](https://docs.stripe.com/api/persons/update.md) API を使用して送信します。

### 3.更新されたアカウント登録フローをテストする

将来の確認要件をシミュレーションするには、Accounts API を使用してテストアカウントを作成し、その [email ](https://docs.stripe.com/api/accounts/create.md#create_account-email)パラメータを `enforce_future_requirements`に設定します。これにより、アカウントの `requirements`ハッシュに、既知の将来の確認要件がすべて設定されます。

#### コントローラープロパティを使用

```curl
curl https://api.stripe.com/v1/accounts \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "controller[stripe_dashboard][type]=none" \
  -d "controller[fees][payer]=application" \
  -d "controller[losses][payments]=application" \
  -d "controller[requirement_collection]=application" \
  -d country=US \
  -d business_type=individual \
  -d "capabilities[card_payments][requested]=true" \
  -d "capabilities[transfers][requested]=true" \
  --data-urlencode "email=jenny.rosen+enforce_future_requirements@example.com"
```

#### アカウントタイプを使用

```curl
curl https://api.stripe.com/v1/accounts \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d type=custom \
  -d country=US \
  -d business_type=individual \
  -d "capabilities[card_payments][requested]=true" \
  -d "capabilities[transfers][requested]=true" \
  --data-urlencode "email=jenny.rosen+enforce_future_requirements@example.com"
```

更新したアカウント登録フローがアカウント要件を満たしていることを確認するには、テストアカウントをアカウント登録し、その `requirements`ハッシュを確認します。フローがすべての要件に対応していれば、[currently_due ](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-currently_due)配列は空になります。特定のアカウント状態をシミュレーションする追加のツールについては、[テストガイド](https://docs.stripe.com/connect/testing.md)を参照してください。

### 提出された将来の要件の確認

必要な情報を送信した後、要件がまだ `future_requirements`ハッシュにあるかどうかを確認します。ない場合は、要件は正常に満たされています。

要件が `future_requirements`にまだ存在する場合は、`future_requirements.errors`配列で、要件名と一致する `requirement`プロパティを持つエントリを確認します。このエラーには、要件が満たされていない理由に関する情報が含まれている可能性があります。

要件に一致するエラーがない場合は、`future_requirements.pending_verification`配列を調べます。要件が含まれている場合、Stripe は引き続き情報を処理しています。後でもう一度確認してください。

Stripe が更新された情報を受け取った場合、関連する要件を満たしていることを確認するには時間がかかります。確認が完了するまで、関連する機能は無効のままだと考えてください。確認の更新を検出するには、[account.updated ](https://docs.stripe.com/api/events/types.md#event_types-account.updated)イベントを監視し、[確認エラー](https://docs.stripe.com/connect/handling-api-verification.md#validation-and-verification-errors)を確認します。無効になったケイパビリティの `requirements`ハッシュには、必要な対応を判断するために使用できる [disabled_reason ](https://docs.stripe.com/api/capabilities/object.md#capability_object-requirements-disabled_reason)が含まれます。

提出書類の検証に失敗した場合、`future_requirements.errors`にエラーが表示されます。

```json
{
  "future_requirements": {
    "currently_due": ["company.tax_id"],
    "errors": [
      {
        "code": "invalid_tax_id_format",
        "requirement": "company.tax_id",
        "reason": "Tax IDs must be a unique set of 9 numbers without dashes or other special characters."
      }
    ]
  }
}
```

導入で `errors` 配列を解析し、連結アカウントに関連するエラーメッセージを表示して、情報を修正して再送信できるようにしてください。テストツール一式については、[テストガイド](https://docs.stripe.com/connect/testing.md)をご覧ください。

## アカウントの更新を監視する

[account.updated](https://docs.stripe.com/api/events/types.md#event_types-account.updated) イベントを監視して、アカウントステータスの変化を検出します。アクティブな要件または将来の要件が変更されると、イベントには更新されたアカウントオブジェクトが含まれます。将来の要件を監視するには、Webhook ハンドラーがペイロードから `future_requirements` を正しく解析することを確認してください。

```json
{
  "type": "account.updated",
  "data": {
    "object": {
      "id": ""{{CONNECTED_ACCOUNT_ID}}"",
      "future_requirements": {
        "currently_due": ["company.tax_id"],
        "past_due": ["company.tax_id"]
      }
    }
  }
}
```

アカウントがアカウント登録フローを完了したら、アカウントの `future_requirements` ハッシュ内の `currently_due` 配列と `pending_verification` 配列を確認します。どちらも空で、`future_requirements.disabled_reason` が null の場合、アカウントは該当する今後の要件をすべて満たしています。

## API バージョンに関する考慮事項

[API version 2023-10-16](https://docs.stripe.com/upgrades.md#2023-10-16) 以降では、`Account` オブジェクトの [requirements.errors](https://docs.stripe.com/api/accounts/object.md#account_object-requirements-errors) 配列で、検証エラーのタイプが `code` 属性に指定されます。以前の API バージョンを使用している場合は、最新の API バージョンにアップグレードして `requirements.errors` を使用することを強くお勧めします。

バージョン 2023-10-16 に更新できない場合、以前のバージョンの `requirements.errors` 配列には、`code` 属性と互換性のない確認エラーを返すための `detailed_code` フィールドが含まれます。この `detailed_code` 属性は、API リファレンスには表示されません。

アカウントリンクまたは修復リンクを使用して新しい要件を収集している場合は、[API バージョンを 2021-09-07](https://docs.stripe.com/sdks/set-version.md) 以降に設定します。

`account.updated` イベントを受信している場合は、Webhook の [API バージョンを 2021-09-07](https://docs.stripe.com/upgrades.md#2021-09-07) 以降に設定します。

## 準備チェックリスト

このチェックリストを使用して、今後の要件変更に導入が対応していることを確認します。

- アカウントを取得し、`future_requirements` を読み取れることを確認する
- 新しい要件文字列を特定し、どの情報を回収すべきかを把握する
- 新たに必要なフィールドを収集できるよう、アカウント登録フォームを更新する (API ベースのアカウント登録のみ)
- テストデータを送信し、`future_requirements` から要件が解消されることを確認する
- 無効な送信をテストし、エラー処理が正しく機能することを確認する
- `account.updated` イベントのうち、`future_requirements` の変更を含む Webhook を処理する
- 複数のアカウントでテストし、さまざまな事業形態で一貫性があることを確認する

## See also

- [API による確認の処理](https://docs.stripe.com/connect/handling-api-verification.md)
- [必要な確認情報](https://docs.stripe.com/connect/required-verification-information.md)
- [Connect をテストする](https://docs.stripe.com/connect/testing.md)
- [アカウントの本人確認をテストする](https://docs.stripe.com/connect/testing-verification.md)
- [連結アカウントの書類の確認](https://docs.stripe.com/connect/additional-verifications/identity-document.md)
