> ## 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 поддерживает вход в банк и проверку счета: что подтверждает каждый метод верификации счета и как настроить их порядок по странам.

Bank Verification подтверждает, что банковский счёт принадлежит физическому или юридическому лицу, которое было проверено на более раннем шаге вашего сценария. Это один шаг сценария с двумя способами: пользователь либо входит в свой банк, либо вводит реквизиты счёта, а банк подтверждает имя владельца счёта. Вы сами выбираете, какие способы доступны в каждой стране и какой из них отображается первым.

> [!NOTE]
>
> В продакшене вход в банк доступен в Нигерии и Новой Зеландии, а проверка счёта доступна в Нигерии, Гане и Кении.
> Со временем подключаются новые страны; в разделе [Цены на Bank Verification](https://docs.didit.me/ru/getting-started/bank-verification-pricing.md) всегда указано, что доступно в каждой стране на сегодняшний день.

> [!NOTE]
>
> Bank Verification сопоставляет владельца счёта с личностью, подтверждённой **на другом шаге**, поэтому сама по себе не служит подтверждением личности. Добавьте перед этим шагом Верификацию личности, Проверку по базам данных, анкету или `expected_details`. Пользователь никогда не вводит проверяемое имя вручную: Didit всегда сравнивает имя, которое уже было подтверждено в сессии.

## Два способа

| | Вход в банк | Проверка счёта |
| - | - | - |
| Значение способа | `open_banking` | `account_lookup` |
| Что делает пользователь | Входит в свой банк и открывает доступ к счёту. | Вводит реквизиты счёта: IBAN, код сортировки и номер счёта, CLABE и т. д. Без входа в банк. |
| Что подтверждает | Контроль над счётом, а также имя владельца, возвращённое банком. | Имя владельца счёта в банке совпадает с подтверждённым именем. |
| Какие данные добавляет | Балансы, транзакции и доходы, если это запрошено в шаге. | Никаких: только принадлежность счёта. |
| Типичное применение | Онбординг, кредитование, оценка платёжеспособности, клиенты с высоким уровнем риска. | Выплаты и вывод средств, онбординг с минимумом трения, страны без входа в банк. |

Оба способа дают один и тот же тип результата: статус совпадения владельца, имя владельца, возвращённое банком, и маскированный счёт. Способы зависят от страны: страна может поддерживать один из них, оба или оба в любом порядке. См. раздел [Проверка счёта](https://docs.didit.me/ru/core-technology/bank-verification/account-check.md) о форматах счетов, результатах и значениях для песочницы.

Загрузка выписки и микродепозиты остаются резервными способами после двух основных (`bank_statement_enabled`, `bank_microdeposits_enabled`), при этом пользователь всегда может продолжить без банка. Микродепозиты предлагаются только после платного входа в банк или проверки счёта в той же сессии без дополнительной платы. Загрузка выписки также включена после любого из них, а в любой стране может использоваться и без предварительной попытки проверки через банк. См. раздел [Если пользователь не может подтвердить банк](https://docs.didit.me/ru/core-technology/bank-verification/fallbacks.md).

## Что видит пользователь

В каждой стране пользователь начинает с первого способа, доступного для этой страны. Второй способ служит запасным:

* **Сначала вход в банк:** открывается окно выбора банка. Последняя строка в нём, **Введите реквизиты счёта**, запускает проверку счёта. Если вход в банк не удался, эта же строка снова появляется в разделе **Другие способы подтверждения**.
* **Сначала проверка счёта:** открывается форма ввода данных счёта с расположенной под ней ссылкой **Войти в свой банк**.
* **Только один способ:** пользователю показывается только он.

Если в стране доступна проверка счёта, она также подстраховывает банк, к которому вход в банк в данный момент невозможен (из-за сбоев или недоступности): пользователь переходит к форме счёта до запроса согласия, если у него ещё остались попытки проверки счёта. Способ, который не поддерживается ни одним маршрутом в стране, исключается, поэтому пользователь никогда не увидит недоступный способ. Страна, для которой вообще нет подходящих маршрутов, предлагает только резервные способы и кнопку **Продолжить без банка**.

## Выбор способов для каждой страны

### Порядок способов в шаге

`bank_method_order` определяет, какие способы предлагает шаг и в каком порядке для всех стран, где не заданы индивидуальные настройки. В параметре указываются `open_banking`, `account_lookup` или оба значения, при этом первое из них указывается первым.

```json theme={null}
{
  "bank_method_order": ["open_banking", "account_lookup"]
}
```

При сохранении без передачи `bank_method_order` устанавливается значение `["open_banking", "account_lookup"]`: сначала вход в банк, затем проверка счёта в качестве запасного способа. Пустой список отклоняется с ошибкой `Choose a method: bank sign-in, account check, or both.`

Порядок способов в шаге используется по умолчанию. Если в какой-либо стране один из способов не поддерживается ни одним маршрутом, он исключается, и в стране предлагаются оставшиеся. Если маршрут для страны существует, но заданный порядок не оставляет для неё ни одного доступного способа, сохранение отклоняется с ошибкой, например: `Choose a method: bank sign-in, account check, or both. ARE offers account check.` Страна, для которой вообще нет маршрутов, сохраняется только с резервными способами: см. [Страна, для которой нет банковских маршрутов](https://docs.didit.me/ru/core-technology/bank-verification/fallbacks.md#страна-для-которой-нет-банковского-маршрута).

### Индивидуальный порядок для страны

Параметр `methods` для страны в `bank_countries` переопределяет порядок шага для этой страны. Пользователь начинает с первого способа, а второй предлагается в качестве запасного.

```json theme={null}
{
  "bank_method_order": ["open_banking", "account_lookup"],
  "bank_countries": {
    "GBR": { "enabled": true, "institutions": "all" },
    "NOR": {
      "enabled": true,
      "institutions": "all",
      "methods": ["open_banking"]
    },
    "MEX": {
      "enabled": true,
      "institutions": "all",
      "methods": ["account_lookup", "open_banking"]
    }
  }
}
```

Здесь Великобритания следует общему порядку шага, Норвегия предлагает только вход в банк, а Мексика начинает с проверки счёта с входом в банк в качестве запасного. Страна, у которой параметр `methods` имеет значение `null` или ключ отсутствует, следует общему порядку шага. Сохранение отклоняется с ошибкой в `bank_countries.<ISO3>`, если включённая страна:

* задаёт для `methods` пустой список (даже если для страны нет маршрутов), или
* указывает способ, который там не поддерживается маршрутами, например: `Account check is not available in NOR.`

Для страны, у которой вообще нет доступных маршрутов, параметр `methods` не указывается или устанавливается в `null`, и для неё предлагаются только резервные способы: см. [Страна, для которой нет банковских маршрутов](https://docs.didit.me/ru/core-technology/bank-verification/fallbacks.md#страна-для-которой-нет-банковского-маршрута).

### В консоли

На шаге верификации банковского счёта в разделе **Страны и способы** перечислены все страны с указанием доступности входа в банк и проверки счёта в каждой из них, а также какой способ идёт первым. Готовые пресеты позволяют настроить сразу все страны:

| Пресет | Порядок |
| - | - |
| Вход в банк, проверка счёта как запасной (по умолчанию) | `["open_banking", "account_lookup"]` |
| Только вход в банк | `["open_banking"]` |
| Только проверка счёта | `["account_lookup"]` |
| Проверка счёта, вход в банк как запасной | `["account_lookup", "open_banking"]` |

Пресет никогда не оставляет страну без доступных способов: если в стране поддерживается только один из двух способов, он остаётся включённым.

## Для финансовых данных требуется вход в банк

Только вход в банк считывает балансы, транзакции и доходы. Если шаг запрашивает их в `bank_scopes`, а для страны доступна проверка счёта, пользователь, прошедший верификацию через проверку счёта, завершает шаг без этих данных. Шаг не завершается ошибкой: в результате перечисляется то, что не было собрано, в `financial_data.not_collected`.

```json theme={null}
"financial_data": {
  "balances": null,
  "transactions": null,
  "income": null,
  "categorization": null,
  "not_collected": ["balances", "transactions"]
}
```

`not_collected` представляет собой пустой список, когда метод собрал всё, что запрашивал шаг. Чтобы сделать сбор данных обязательным, предлагайте только вход в банк в тех странах, где они вам необходимы.

## Настройки проверки счёта

Эти ключи определяют только параметры проверки счёта. Для входа в банк действуют собственные настройки.

| Поле конфигурации | Действие |
| - | - |
| `bank_account_check_accept_close_match` | Включено (по умолчанию): имя, оцененное банком в диапазоне между `bank_partial_match_floor` и `bank_name_match_threshold`, считается близким совпадением. Пользователь подтверждает имя, зарегистрированное в банке, если включен параметр `bank_suggest_holder_name`, а решение определяется параметром `bank_partial_match_action`. Выключено: такое близкое совпадение считается отсутствием совпадения (`OWNER_NAME_MISMATCH`), решение по нему определяется параметром `bank_no_match_action`, и на это расходуется попытка. |
| `bank_account_check_max_attempts` | Количество доступных пользователю проверок счёта, от `1` до `5`, по умолчанию `3` (если не задано): сколько раз можно ввести реквизиты счёта для проверки, на которую банк возвращает ответ. Отклонённый при вводе счёт или проверка, на которую банк не смог ответить, попытку не расходуют. |

Попытки считаются отдельно для каждого метода. `bank_max_attempts` подсчитывает попытки входа в банк, при этом микродепозиты или загрузка выписки также расходуют одну из них. `bank_account_check_max_attempts` подсчитывает проверки счёта. Шаг завершается действием `bank_attempts_exhausted_action`, как только для всех способов верификации, всё ещё доступных пользователю (включая загрузку выписки), будут исчерпаны попытки без успешного подключения: см. [Загрузка выписки](https://docs.didit.me/ru/core-technology/bank-verification/fallbacks.md#загрузка-выписки).

## Определение метода в результате

### Решение и webhook

Каждый шаг Bank Verification представлен элементом массива `bank_verifications[]` в [решении по сессии](https://docs.didit.me/ru/sessions-api/retrieve-session.md#банковская-верификация) и в объекте `decision` в [webhook `status.updated`](https://docs.didit.me/ru/integration/webhooks#массивы-v3-важно). Поле `method` указывает, каким способом был верифицирован счёт:

| `method` | Отображается как |
| - | - |
| `open_banking` | Вход в банк |
| `account_lookup` | Проверка счёта |
| `microdeposits` | Микродепозиты |
| `statement` | Загрузка выписки |
| `none` | Продолжение без банка |

Поле `method` имеет значение `null`, пока счёт не оценен, и `none`, если пользователь продолжил без банка до того, как была оценена хотя бы одна попытка: см. [Определение метода в результате](https://docs.didit.me/ru/core-technology/bank-verification/fallbacks.md#просмотр-в-результатах). Чтобы различить методы, считывайте `method`, а не `ownership.method`: `ownership.method` обозначает способ сравнения имён, давший оценку (например, `exact` или `fuzzy`).

```json theme={null}
{
  "bank_verifications": [
    {
      "node_id": "feature_bank_verification",
      "status": "Approved",
      "method": "account_lookup",
      "ownership": {
        "result": "match",
        "method": "exact"
      },
      "financial_data": {
        "balances": null,
        "transactions": null,
        "income": null,
        "categorization": null,
        "not_collected": []
      }
    }
  ]
}
```

В примере показаны только поля, описанные на этой странице. Полный список полей приведён в схеме `SessionDecision` в [справочнике API](https://docs.didit.me/ru/sessions-api/retrieve-session.md).

### Правила сценария

Ветви и настраиваемые правила статуса считывают то же значение, что и `bank.method`, обозначенное как **Bank Verification Method** в конструкторе правил, со значениями **Bank Sign-in**, **Account Check**, **Micro-deposits**, **Statement Upload** и **Continued Without a Bank**. Правило сравнивает значение метода: например, ветвь после шага AML-скрининга направляет проверку счёта с высокой оценкой риска на проверку:

```json theme={null}
{
  "id": "account_check_high_risk",
  "rules": [
    {
      "field": "bank.method",
      "operator": "equals",
      "value": "account_lookup"
    },
    {
      "field": "aml.risk_score",
      "operator": "greater_than",
      "value": 70
    }
  ],
  "logic": "and",
  "goto": "status_in_review"
}
```

### Отчёт о сессии

В PDF-отчёте о сессии метод указывается в строке **Метод верификации**.

## Узлы, сохранённые до появления методов

Параметры `bank_open_banking_enabled` и `bank_account_lookup_enabled` устарели. Узел, сохранённый до появления `bank_method_order`, теперь работает в том порядке, который задавали эти два переключателя:

| `bank_open_banking_enabled` | `bank_account_lookup_enabled` | Узел работает с |
| - | - | - |
| Включено или не задано | Выключено или не задано | `["open_banking"]` |
| Включено или не задано | Включено | `["open_banking", "account_lookup"]` |
| Выключено | Включено | `["account_lookup"]` |

Там, где проверка счёта была включена наряду со входом в банк, пользователь теперь видит её в качестве альтернативного варианта при выборе банка, **Введите реквизиты счёта**, а не только в случаях, когда его банк недоступен. Узел, в котором оба переключателя выключены и предлагались только микродепозиты или загрузка выписки, остаётся без изменений; при последующем сохранении необходимо включить хотя бы один из двух методов.

В течение одного релиза сохранение без `bank_method_order`, но с указанием любого из этих переключателей, всё ещё задаёт порядок на их основе. При каждом сохранении оба переключателя перезаписываются обратно со значениями, указывающими, предлагает ли хотя бы одна страна вход в банк и предлагает ли хотя бы одна страна проверку счёта. В новых интеграциях используйте `bank_method_order` и `bank_countries.<ISO3>.methods`.

## Цены

Каждый метод тарифицируется по собственной цене для каждой страны. Цены для всех стран см. в разделе [Цены на Bank Verification](https://docs.didit.me/ru/getting-started/bank-verification-pricing.md).

* **Вход в банк** имеет собственную цену, а дополнения для баланса и транзакций оплачиваются дополнительно.
* **Проверка счёта** тарифицируется однократно за каждую проверку, на которую банк возвращает ответ: совпадение, близкое совпадение, отсутствие совпадения, счёт, который не удалось верифицировать, и ненайденный счёт. За счёт, отклонённый при вводе, плата не взимается.

Если в стране доступны оба метода, сессия может стоить по любой из двух цен в зависимости от того, какой метод использует пользователь. Загрузка выписки и микродепозиты включены без дополнительной платы после платной попытки. Загрузка выписки без предшествующей попытки через банк стоит \$0.20, а продолжение без банка никогда не тарифицируется: см. [Цены](https://docs.didit.me/ru/core-technology/bank-verification/fallbacks.md#цены). Через [API проверки счёта](https://docs.didit.me/ru/standalone-apis/bank-account-check.md) можно выполнить ту же проверку из вашего бэкенда без создания сессии по той же цене за проверку счёта.

## Тестирование в песочнице

Приложение в песочнице поддерживает оба метода во всех странах в порядке, заданном шагом, и не тарифицируется. При порядке по умолчанию пользователь начинает со входа в банк и выбирает **Введите реквизиты счёта**, чтобы запустить проверку счёта. Чтобы начать с проверки счёта, укажите в `bank_method_order` значение `["account_lookup", "open_banking"]`. Последние четыре символа счёта определяют ответ проверки счёта: см. [Тестирование в песочнице](https://docs.didit.me/ru/core-technology/bank-verification/account-check.md#тестирование-в-песочнице).

## Связанные разделы

* [Проверка счёта](https://docs.didit.me/ru/core-technology/bank-verification/account-check.md): форматы счетов, результаты и значения для песочницы.
* [Когда пользователь не может подтвердить свой банк](https://docs.didit.me/ru/core-technology/bank-verification/fallbacks.md): резервные варианты, «Продолжить без банка» и результаты.
* [API проверки счёта](https://docs.didit.me/ru/standalone-apis/bank-account-check.md): проверка счёта для выплат из вашего бэкенда без сессии.
* [Ключи конфигурации Bank Verification](https://docs.didit.me/ru/management-api/workflows/feature-configs.md#верификация-банка): все ключи этого шага.
* [Тестирование в песочнице](https://docs.didit.me/ru/integration/sandbox-testing.md).


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