> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# 銀行口座認証のフォールバックと「銀行なしで続行」

> Diditの銀行口座認証で手続きが行き詰まることはありません。国ごとの代替の認証方法、「銀行なしで続行」、選択できる判定結果、その結果がどのように報告されるかを説明します。

銀行口座認証では、ユーザーが手詰まりになることはありません。ステップがユーザーの操作を待っている間は、いつでも**Continue without your bank**を選択できます。また、その国や銀行で使える方法がない場合、ステップはすぐにこの選択肢を表示します。その後、セッションはこのケースに対して設定した結果に従います。デフォルトはレビューです。失敗した試行によって、取引明細書のアップロードを含め、まだ提示されているすべての方法の最後の試行を使い切った場合、ステップは待たずに自動で終了し、`bank_attempts_exhausted_action`に従います。デフォルトは却下です。ただし、氏名の不一致など、それ以前の試行ですでに判定が出ている場合は、その判定が維持されます。

このページでは、各国で利用できるその他の認証方法、ユーザーに**Continue without your bank**が表示されるタイミング、各ケースの判定方法、そして結果での確認方法について説明します。

> [!WARNING]
>
> 銀行口座認証は、まだ本番環境で有効になっていません。
> 有効になるまでは、本番環境でもサンドボックスでも、このステップをワークフローに追加することも、このAPIを呼び出すこともできません。このページでは、今後の動作について説明します。

## 認証方法

| 認証方法 | `method` | 提供される場所 |
| - | - | - |
| 銀行ログイン | `open_banking` | その国に対応するルートがある場合。 |
| 口座照会 | `account_lookup` | その国に対応するルートがある場合。 |
| 取引明細書のアップロード | `statement` | ステップで有効にしている場合(`bank_statement_enabled`)、すべての国。 |
| 少額入金 | `microdeposits` | 入金を送るルートがある場合のみ。同じセッション内で銀行ログインまたは口座照会が課金された後に提供されます(`bank_microdeposits_enabled`)。 |
| Continue without your bank | `none` | 常に提供されます。無効にすることはできません。 |

ユーザーは、その国に設定した順序に従って、銀行ログインまたは口座照会から開始します。詳しくは[国ごとの方法を選択する](https://docs.didit.me/ja/core-technology/bank-verification/verification-methods.md#国ごとに方法を選択する)を参照してください。取引明細書のアップロードと少額入金は、この2つの後のフォールバックです。**Continue without your bank**は最後に表示されます。

その国で使えない方法が、その国のユーザーに提示されることはありません。コンソールの**Countries and methods**では、その国に対して**Not available**と表示されます。

### 銀行ルートが対応していない国

銀行ログインと口座照会のどちらにもルートがない国も、ステップに残ります。その国のユーザーは、ステップで提供されている場合は取引明細書をアップロードするか、銀行を使わずに続行します。

保存時に`methods`を省略するか`null`に設定すると、そのような国は保持されます。その国ではどの方法にも対応するルートがないため、`methods`に方法を指定することはできません。指定すると保存時に拒否されます。たとえば`Account check is not available in VNM.`のように表示されます。有効なすべての国と同様に、空のリストも`Choose a method: bank sign-in, account check, or both.`として拒否されます。契約で独自の料金を設定していて、その料金に取引明細書のアップロードが含まれていない場合、銀行での試行を挟まずに取引明細書のアップロードを提供する設定を保存すると、そのような国も拒否されます。

```json theme={null}
{
  "bank_statement_enabled": true,
  "bank_countries": {
    "GBR": { "enabled": true, "institutions": "all" },
    "VNM": { "enabled": true, "institutions": "all" }
  }
}
```

ここでは、ベトナムが銀行ルートが対応していない国の例です。`methods`を設定していないため保存時に保持され、その国のユーザーには取引明細書のアップロードと**Continue without your bank**が表示されます。

### 取引明細書のアップロード

取引明細書のアップロードでは、ユーザーの氏名、銀行名、口座番号が記載された直近3か月以内の取引明細書を求めます。Diditはそれを読み取り、改ざんの有無を確認し、銀行から得た名義と同じ方法で口座名義を照合します。

`bank_statement_enabled`を有効にすると、ステップは次の2つの場合にこれを提供します。

* **課金対象の試行の後:** 同じセッション内で銀行ログインまたは口座照会が課金されると、取引明細書のアップロードがフォールバックとして追加料金なしで提供されます。
* **銀行での試行を挟まない場合:** 銀行ルートが対応していない国を含む、すべての国で提供されます。これには`bank_statement_standalone_enabled`が必要で、デフォルトで有効になっています。課金対象の試行の後にのみ取引明細書のアップロードを提供する場合は、これを無効にしてください。

取引明細書のアップロードと少額入金は、それぞれステップの`bank_max_attempts`を1回消費します。これは銀行ログインが使うものと同じ試行回数です。ユーザーがすべての試行を使い切ると、課金対象の試行の後であっても、どちらも提供されなくなります。口座照会には独自の`bank_account_check_max_attempts`があるため、口座照会が唯一の方法である場合、口座照会の試行回数をすべて使い切ったユーザーでも、ステップで提供されていれば取引明細書をアップロードできます。失敗した試行によって、取引明細書のアップロードを含め、まだ提示されているすべての方法の最後の試行を使い切った場合、ステップは自動で終了します。ユーザーに続行を求めることはなく、結果には続行が記録されません。セッションは`bank_attempts_exhausted_action`に従います。ただし、氏名の不一致など、それ以前の試行ですでに判定が出ている場合は、その判定が維持されます。銀行ログインが失敗した後にフォールバックの余地を残すには、`bank_max_attempts`を`2`以上に設定してください。

## 「銀行なしで続行」が表示されるタイミング

`bank_continue_without_bank`で、ステップに**銀行なしで続行**を表示するタイミングを設定します。

| 値 | ステップで表示されるタイミング |
| - | - |
| `when_needed`（デフォルト） | 本人の国または銀行に対応する方法がない場合、本人の銀行に現在接続できず、ほかの方法でも確認できなかった場合、または本人がオンラインバンキングを利用していない、もしくは自分の銀行が一覧にないと伝えた場合に表示されます。 |
| `from_start` | 最初の画面にも表示されます。 |

どちらの値でもこのオプションは無効になりません。本人はいつでも続行できます。コンソールでは、Bank Verificationステップの**本人が確認できない場合**にある**「銀行なしで続行」を表示**で、**ほかに方法がない場合**または**最初から**を選んで設定します。

```json theme={null}
{
  "bank_continue_without_bank": "when_needed"
}
```

### 本人に表示される内容

* **本人の国で利用できる経路がない場合:** たとえば「ベトナムの銀行にはまだ接続できません」と表示され、**その他の確認方法**に明細書のアップロードと、**銀行なしで続行**が表示されます。
* **ここでは利用できない銀行の場合:** 「この銀行はここではご利用いただけません」と表示されます。本人は、その国で口座確認を利用できれば口座情報を入力するか、明細書をアップロードするか、別の銀行を選ぶか、銀行なしで続行できます。
* **オンラインバンキングを利用していない場合、または銀行が一覧にない場合:** 「別の方法で口座を確認してください」と表示され、本人の国で利用できる方法と**銀行なしで続行**が表示されます。
* **現在接続できない銀行の場合:** 本人は再試行できます。もう一方の方法である銀行サインインまたは口座確認で解決できない場合、つまり本人の国がその方法に対応していない、試行回数が残っていない、または最後の試行でも銀行に接続できなかった場合は、画面に**銀行なしで続行**も表示されます。
* **続行した後:** 「ありがとうございます。先に進めます」と表示されます。本人に失敗と表示されることはなく、ワークフローの次のステップに進みます。

## 結果を選ぶ

本人が銀行なしで続行した場合、Diditはステップ内で起きたことから理由を判断します。本人のデバイスから理由を受け取ることはありません。各理由は`continuation.reason`として記録され、それぞれの結果設定に従います。

* `no_route`: 本人の国に対応する銀行サインインまたは口座確認の経路がありません。`bank_unsupported_action`で判定され、デフォルトは`REVIEW`、理由コードは`NOT_COVERED`です。
* `institution_unsupported`: 本人が選んだ銀行はこのステップで利用できません。`bank_unsupported_action`で判定され、デフォルトは`REVIEW`、理由コードは`NOT_COVERED`です。
* `attempts_exhausted`: 本人が続行した時点で、すべての試行を使い切っており、進行中の試行もありませんでした。`bank_attempts_exhausted_action`で判定され、デフォルトは`DECLINE`です。
* `person_choice`: 確認する方法があったにもかかわらず、本人が続行を選びました。現在接続できない銀行の場合もこれに含まれます。その銀行は対象内のため、本人自身の選択が理由となります。`bank_skipped_action`で判定され、デフォルトは`REVIEW`、理由コードは`SKIPPED`です。

`bank_skipped_action`と`bank_attempts_exhausted_action`には`REVIEW`または`DECLINE`を指定できます。`bank_unsupported_action`では`NO_ACTION`も指定でき、この場合はステップを承認したうえで`NOT_COVERED`も記録します。

コンソールでは、これらはステップの**Outcomes**タブにある**Bank or country not covered**、**Continued without a bank**、**Attempts exhausted**の各行です。

```json theme={null}
{
  "bank_continue_without_bank": "when_needed",
  "bank_unsupported_action": "REVIEW",
  "bank_skipped_action": "REVIEW",
  "bank_attempts_exhausted_action": "DECLINE"
}
```

> [!NOTE]
>
> 続行しても、試行ですでに出た判定が置き換わることはありません。試行がすでに評価されていた場合、たとえば銀行または明細書から一致しない名義人が返され、本人に試行回数が残っていた場合や、本人が確認しなかった近似一致があった場合は、ステップはその判定と理由コードを保持します。その場合、上記のどの結果設定も適用されず、`NOT_COVERED`や`SKIPPED`も追加されません。本人が続行したことは結果に引き続き記録されます。[結果で確認する](#結果で確認する)を参照してください。

## 結果で確認する

### 判定とWebhook

[セッションの判定](https://docs.didit.me/ja/sessions-api/retrieve-session.md#銀行口座認証)および[`status.updated` Webhook](https://docs.didit.me/ja/integration/webhooks#v3の複数形の配列-重要)の`decision`オブジェクトでは、`bank_verifications[]`内のこのステップの項目に、ユーザーが銀行を使わずに続行したことが示されます。

* `continued_without_bank`は`true`です。ユーザーが**Continue without your bank**でステップを離れたことを示します。
* 続行する前に評価された試行がない場合、`method`は`none`です。口座名義人が一致しないなど、評価済みの試行があった後は、`method`はその試行の方法のままとなり、その判定がそのまま有効です。
* `continuation`は、ユーザーがどのように続行したかを示します。
  * `reason`: `no_route`、`institution_unsupported`、`attempts_exhausted`、`person_choice`のいずれかです。
  * `country`: ユーザーが確認を行っていた国(ISO 3166-1 alpha-3)です。国を選ぶ前に続行した場合は`null`です。
  * `offered`: その国で提示されたほかの確認方法で、提示された順に`statement`、`microdeposits`となります。何も提示されなかった場合は空です。
  * `institution_id`と`institution_name`: `institution_unsupported`の場合に、ユーザーが利用できなかった銀行を示します。ユーザーが選んだ銀行、または最後の試行が終了した銀行です。Diditはどちらの値もユーザーのデバイスからではなく、自社の銀行リストから取得します。そのため、リストにない銀行の場合は両方とも`null`になります。ほかの理由の場合は、両方とも常に`null`です。
  * `continued_at`: ユーザーが続行した日時です。
* 続行によってステップの判定が決まった場合、`reason_codes`には[結果を選択する](#結果を選ぶ)のとおり`NOT_COVERED`または`SKIPPED`が入ります。評価済みの試行があった後は、その試行の理由コードが保持されます。
* `no_route`と`institution_unsupported`の場合、`not_covered`は`true`です。

```json theme={null}
{
  "bank_verifications": [
    {
      "node_id": "feature_bank_verification",
      "status": "In Review",
      "method": "none",
      "continued_without_bank": true,
      "continuation": {
        "reason": "institution_unsupported",
        "country": "ESP",
        "offered": ["statement"],
        "institution_id": "example_bank_es",
        "institution_name": "Example Bank",
        "continued_at": "2026-11-03T08:15:41.512870+00:00"
      },
      "not_covered": true,
      "ownership": null,
      "reason_codes": ["NOT_COVERED"]
    }
  ]
}
```

この例には、このページで説明するフィールドのみを示しています。すべてのフィールドは[APIリファレンス](https://docs.didit.me/ja/sessions-api/retrieve-session.md)の`BankVerificationResult`スキーマに記載されています。

ワークフローで返すデータを絞り込んでいる場合でも、`continued_without_bank`と`continuation.reason`は返されます。そのため、同じ`NOT_COVERED`を持つ`no_route`と`institution_unsupported`を引き続き区別できます。この場合、`continuation`のほかのキー(国、銀行、提示された方法、日時)はすべて`null`になります。ユーザーが続行しなかった場合は、`continuation`自体が`null`です。この場合は`method`も返されないため、ユーザーが続行したかどうかは`method`ではなく`continued_without_bank`で確認してください。

### ワークフローのルール

分岐とカスタムステータスルールでは、次の値を参照できます。

* `bank.continued_without_bank`: `true`または`false`。
* `bank.continue_reason`: `no_route`、`institution_unsupported`、`attempts_exhausted`、`person_choice`のいずれか。
* `bank.method`: いずれの試行も評価される前にユーザーが銀行を使わずに続行した場合は`none`。評価済みの試行があった後は、その試行の方法。

### セッションレポート

いずれの試行も評価される前にユーザーが銀行を使わずに続行した場合、セッションのPDFレポートの**確認方法**の行には**銀行なしで続行**と表示されます。評価済みの試行があった後は、その試行の方法が表示されます。

## 料金

* **Continue without your bank**が課金されることはありません。ユーザーが続行する前に行った試行は通常どおり課金されます。
* **事前に課金対象の銀行認証の試行がない取引明細書のアップロード**は、Diditが読み取って評価する明細書1件あたり\$0.20です。利用明細の専用項目**Bank verification - statement upload**(`bank_statement_upload`)で請求され、ほかのアドオンと同様に契約料金や特別料金が適用されます。契約で独自の料金が設定されていて、この項目が含まれていない場合、ステップではこの方法は提示されません。
* 同じセッション内で**課金対象の銀行ログインまたは口座チェックの後に行う取引明細書のアップロードまたは少額入金**は、追加料金なしで含まれます。

## **Continue without your bank** 導入前に保存されたノード

`bank_allow_skip`は廃止されました。この値で保存されたノードは、現在はその値が意味していた設定で動作します。

| `bank_allow_skip` | ノードの動作 |
| - | - |
| `true` | `bank_continue_without_bank: "from_start"` |
| `false`または未設定 | `bank_continue_without_bank: "when_needed"` |

以前は、スキップを許可していないノードでは、どの方法も使えなかったユーザーが先に進めなくなっていました。現在はそのような場合に**Continue without your bank**が表示され、`bank_unsupported_action`、`bank_attempts_exhausted_action`、または`bank_skipped_action`によってセッションの判定が決まります。

1リリースの間は、`bank_allow_skip`を送信し`bank_continue_without_bank`を送信しない保存でも、引き続きその値からモードが設定されます。すべての保存で`bank_allow_skip`も書き戻されます。`from_start`の場合は`true`、`when_needed`の場合は`false`です。新しい連携では`bank_continue_without_bank`を使用してください。

## サンドボックスでテストする

サンドボックスのアプリケーションでは何も課金されず、取引明細書のアップロードと少額入金の前に銀行への接続の試行も必要ありません。`bank_continue_without_bank`を`from_start`に設定すると最初の画面に**Continue without your bank**が表示され、これを選択して`bank_skipped_action`をテストできます。サンドボックスのアプリケーションの仕組み全般については、[サンドボックスでのテスト](https://docs.didit.me/ja/integration/sandbox-testing.md)を参照してください。

## 関連情報

* [銀行口座確認の方法](https://docs.didit.me/ja/core-technology/bank-verification/verification-methods.md): 国ごとの銀行へのログインと口座チェック。
* [口座チェック](https://docs.didit.me/ja/core-technology/bank-verification/account-check.md): 口座の形式、結果、サンドボックス用の値。
* [銀行口座確認の設定キー](https://docs.didit.me/ja/management-api/workflows/feature-configs.md#銀行口座認証): このステップのすべてのキー。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.