# Обновление ПО в соответствии с новыми требованиями регулятора в Казахстане

## Общая информация <a href="#obshaya-informaciya" id="obshaya-informaciya"></a>

С 1 января 2025 года вступает в силу Постановление Правления Агентства Республики Казахстан по регулированию и развитию финансового рынка от 16 августа 2024 года № 56 «Об утверждении Правил проведения биометрической идентификации банками, организациями, осуществляющими отдельные виды банковских услуг, и микрофинансовыми организациями» (далее – **Постановление**).

Чтобы наше ПО соответствовало требованиям Постановления, мы добавили новый способ проверки биометрических данных: комплексную проверку. В ходе нее система сличает эталонное фото человека, который проходит идентификацию, со снятыми видеороликами, на которых этот человек делает три разных жеста (пункт 6 Постановления), причём каждому жесту соответствует одно видео. По результатам комплексной проверки можно сформировать отчет, в котором, согласно пунктам 9 и 13, будут содержаться:

* Результат проверки,
* ИИН пользователя, прошедшего проверку,
* Изображение с лицом пользователя,
* Набор изображений, соответствующих проделанным пользователем жестам,
* Реквизиты компании-заказчика проверки,
* Дата и время проведения проверки.

Обратите внимание: дополнительные проверки на сервере увеличивают требования к мощностям и влияют на время выполнения анализов.

## Требования <a href="#trebovaniya" id="trebovaniya"></a>

Минимальные версии ПО:

* API – 5.3.1,
* Web SDK – 1.6.15,
* Web UI - 1.3.4,
* Mobile SDK (iOS, Android, Flutter) – 8.14.

Комплексная проверка работает только в режиме анализа «На сервере».

## Настройка SDK <a href="#nastroika-sdk" id="nastroika-sdk"></a>

Для соответствия требованиям **Постановления** вам потребуется:

1. Включить сохранение кадров из видеороликов с жестами пользователя с помощью параметра `extract_action_shot`.
2. При создании заявки (папки) передать дополнительные параметры:
   * `iin` – ИИН пользователя,
   * `company_details` – информацию о компании.

&#x20;Эти данные потом попадают в отчет.

Ниже вы найдете инструкции по передаче/включению параметров для Web и Mobile SDK.

### Web SDK <a href="#web-sdk" id="web-sdk"></a>

1. Для Web SDK в [настройках файла конфигурации Web Adapter](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/configuration-file-settings) установите параметру `extract_action_shot` значение `True`.
2. При запуске плагина укажите параметры `iin` и `company_details` в поле `meta`:

```javascript
OzLiveness.open({
...
  meta: { 
    ...
    // ИИН вашего клиента
    'iin': '<your_client_iin>',
    // реквизиты вашей компании: название, БИН, контакты и т.д.
    // для переноса строки используйте \n
    'company_details': '<your_company_details>',
  },
...
});
```

### Mobile SDK <a href="#mobile-sdk" id="mobile-sdk"></a>

1. В мобильных SDK добавьте параметр `extract_action_shot` со значением `true` в `params` (iOS) /`analysisParams` (Android) структуры `Analysis` при выполнении анализа:

#### iOS

```
Analysis.init(media: results,
 type: .quality,
 mode: .serverBased,
 params: ["extract_best_shot" : true, "extract_action_shot": true])
```

#### Android <a href="#android" id="android"></a>

```
val analysisParams = mapOf(
    "extract_best_shot" to true,
    "extract_action_shot" to true
)
AnalysisScenario.Liveness
 -> addAnalysis(
  Analysis(
    Analysis.Type.QUALITY,
    analysisMode,
    media,
    analysisParams, 
    sizeReductionStrategy
  )
 )
```

2. Передайте параметры `iin` и `company_details` в метаданные папки. При загрузке медиафайлов через SDK используйте метод `addFolderMeta`.

**iOS**

```swift
let analysis = Analysis.init(media: mediaToAnalyze, type: .quality, mode: .serverBased)
// iin - ИИН вашего клиента, company_details - реквизиты вашей компании: название, БИН, контакты и т.д.
// для переноса строки используйте \n
var folderMeta: [String: Any] = ["iin": "<your_client_iin>", "company_details": "<your_company_details>"]
analysisRequest.addFolderMeta(folderMeta)
```

**Android**

```kotlin
analysisCancelable = AnalysisRequest.Builder()
    .addAnalysis(
        Analysis(
            Analysis.Type.QUALITY,
            Analysis.Mode.SERVER_BASED,
            mediaToAnalyze
        )
    )
// iin - ИИН вашего клиента, company_details - реквизиты вашей компании: название, БИН, контакты и т.д.
// для переноса строки используйте \n
    .addFolderMeta(
        mapOf(
            "iin" to "<your_client_iin>",
            "company_details" to "<your_company_details>"
        )
    .build()
    )
```

3. Если вы загружаете медиафайлы без участия нашего SDK, передайте ИИН пользователя и реквизиты компании с помощью поля `folderMeta` метода `generateSignedPayload`.

**iOS**

```swift
// iin - ИИН вашего клиента, company_details - реквизиты вашей компании: название, БИН, контакты и т.д.
// для переноса строки используйте \n
var folderMeta: [String: Any] = ["iin": "<your_client_iin>", "company_details": "<your_company_details>"]
let payload = OZSDK.generateSignedPayload(media: [OZMedia], folderMeta)
```

**Android**

```kotlin
// iin - ИИН вашего клиента, company_details - реквизиты вашей компании: название, БИН, контакты и т.д.
// для переноса строки используйте \n
val folderMeta = mapOf(
            "iin" to "<your_client_iin>",
            "company_details" to "<your_company_details>"
            )
val payload = OzLivenessSDK.generateSignedPayload(media, folderMeta)
```

## Отчет <a href="#otchet" id="otchet"></a>

Если все передано правильно, по результатам проверки можно будет сгенерировать отчет через Web UI (кнопка PDF в заявке) или API (`POST /api/folders/{{folder_id}}/reports/`). На титульной странице отчета будут ваши реквизиты и дата и время прохождения проверки. Далее – идентификатор папки, ИИН пользователя, который проходил проверку, информация о видеофайлах, результаты анализов, а также кадры для каждого жеста, который выполнял пользователь. Таким образом, все требования Постановления будут выполнены.

Если у вас остались вопросы, пожалуйста, [обращайтесь](mailto:info@ozforensics.com).
