# Общая информация о сервисах

Это важно для работы с любым сервисом. Рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок.

## Краткое описание сервисов

* [Классификация документов](/servisy/document-classification) — сортируем документы по типу.
* [Извлечение данных из документов](/servisy/izvlechenie-dannykh) — извлекаем данные из изображений документов и возвращаем их в структурированном виде.
* [Проверка документов](/servisy/proverka-dokumentov) — находим признаки подделки файла с документом, проверяем качество изображений и наличие подписей и печатей. Также можем проверить документ по базам данных.
* [Операции с лицами](/servisy/operacii-s-licami) — сравниваем лицо человека с фото на документе и даём оценку их схожести. Также умеем проверять «живость» человека.
* [Базовый OCR](/servisy/fulltext-recognition) — возвращаем весь найденный текст из любых изображений документов.
* [Ручная верификация](/servisy/manual-recognition) — вручную проверяем результаты извлечения текста в онлайн-режиме.

## Форматы файлов

Обрабатываем одностраничные файлы любого формата. Многостраничные файлы — только форматов PDF и DJVU:

<table><thead><tr><th>Формат</th><th data-type="checkbox">Одностраничный</th><th data-type="checkbox">Многостраничный</th></tr></thead><tbody><tr><td>JPEG/JPG</td><td>true</td><td>false</td></tr><tr><td>PDF</td><td>true</td><td>true</td></tr><tr><td>PNG</td><td>true</td><td>false</td></tr><tr><td>TIFF</td><td>true</td><td>false</td></tr><tr><td>BMP</td><td>true</td><td>false</td></tr><tr><td>GIF</td><td>true</td><td>false</td></tr><tr><td>HEIC</td><td>true</td><td>false</td></tr><tr><td>HEIF</td><td>true</td><td>false</td></tr><tr><td>DJVU</td><td>true</td><td>true</td></tr></tbody></table>

{% hint style="info" %}
Размер файлов должен быть не более 30 Mb и не менее 1 Kb
{% endhint %}

## Формат запросов и ответов

Сервис принимает запросы в формате `multipart/form-data`.

В ответах формата JSON используется кодировка `UTF-8`.

## Универсальные параметры запроса к API

Все сервисы Dbrain поддерживают этот набор параметров. Использовать их необязательно, но они могут помочь решить вашу задачу.

#### Асинхронный запрос

{% hint style="success" %}
**async — boolean**
{% endhint %}

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В ответ на запрос сервис вернёт в `response body` параметр `task_id`. Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результаты классификации в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.

#### Тегирование запроса

{% hint style="success" %}
**task\_tags — string array**
{% endhint %}

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре `task_tags` удобный вам тег. Например, `task_tags=id_13`

## Тело запроса к API

В любом сервисе Dbrain изображение нужно передавать в теле запроса. В сервисе [«Сравнение лиц»](/servisy/operacii-s-licami/sravnenie-lic) нужно передать два изображения в атрибутах `image1` и `image2`.

#### **Изображение**

{% hint style="success" %}
**image — string ($binary)**
{% endhint %}

Обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

## HTTP-коды ответа на запрос

Сервисы Dbrain возвращают универсальный набор HTTP-статусов. Рассказываем, что значит каждый статус и что с ним делать.

### `200 OK`

Это наилучший код ответа. Он означает, что всё работает: сервис успешно обработал запрос и вернул запрошенные данные.

### `202 Accepted`

Наш сервис принял запрос в обработку, но ответ ещё не готов. Повторите запрос через 1-2 секунды.

### `403 License is Invalid`

В запросе не указан токен, или есть проблемы с лицензией. Например, истёк срок действия лицензии или превышено число запросов. Проверьте корректность параметра token в запросе. Если token указан верно, напишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>

### `404 Not Found`

Задача с таким task\_id не найдена. Проверьте корректность параметра task\_id в запросе.

### `405 Method Not Allowed`

Вы использовали неверный тип запроса. Например, отправили GET вместо POST.

### `413 Content Too Large`

Вы отправили слишком большой файл. Файл должен быть меньше 30 Мб. Если у вас тяжелый многостраничный файл, разбейте его на несколько файлов перед отправкой. Если файл состоит из одной страницы — сохраните его с меньшим разрешением.

### `415 Unsupported Media Type`

Вы отправили слишком маленький файл. Он должен быть больше 1 Кб.

### `422 Unprocessable Content`

Скорее всего, вы передали неправильный content-type тела запроса. Возможно, вы отправили текст вместо файла. Проверьте запрос.

### `500 Internal Server Error`

Внутренняя ошибка сервиса Dbrain. Как правило, сопровождается пояснением. Попробуйте повторить запрос. Если это не решило проблему, напишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>.

### `502 Bad Gateway`

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

### `503 Service Unavailable`

Сервис недоступен. Возможно, он перегружен. Попробуйте повторить запрос позже. Если появился такой статус, мы тоже о нём знаем и уже решаем проблему.

## Проверка работоспособности сервиса

Отправьте GET-запрос на адрес `https://latest.dbrain.io/healthcheck`.

В ответ вы получите код состояния HTTP `200` с `Content-Type: application/json` и телом ответа `{"success": true}`.

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


# Типы документов

Описали все документы, которые умеем классифицировать и распознавать

Для экономии места в таблице сократили «Классификацию» до КЛ, а «Извлечение данных» — до ИЗ. Вы можете посмотреть полный список полей, которые мы распознаём, в отдельной [Google-таблице](https://docs.google.com/spreadsheets/d/1_rN49no9kxDZb6rjwQtMlSZr8FO0mIE3qVQ2oPFIAZ4/edit#gid=0).

<table data-full-width="true"><thead><tr><th width="45"></th><th>Тип документа</th><th>Страница<select multiple><option value="e64e69b308ac49719d228d7cf9ce96a6" label="Лицевая сторона" color="blue"></option><option value="4ef314f62d21430fa38c4be6c85b47c4" label="Обратная сторона" color="blue"></option><option value="8ab42ed0a3344c22a39627e7984a91d8" label="Главный разворот" color="blue"></option><option value="7cacfaf1c86f4f1591777096f70d53b4" label="Печатный образец" color="blue"></option><option value="54948e2d6bdc486d8148e2fe9e14819c" label="Рукописный образец" color="blue"></option><option value="f8d0445b0f934b4cb55deae4db22f53f" label="Пустой разворот" color="blue"></option><option value="a7b36aefb4d34df399db4b0436ed6c32" label="Фото котика" color="blue"></option><option value="0517a55e565f466695030df8dece3c44" label="Первый разворот" color="blue"></option><option value="8a08e97727f0479ab873d607fc0abc76" label="Последний разворот" color="blue"></option><option value="027e8f6f59884cc5bc818e2f48654dc7" label="Страница 3+" color="blue"></option><option value="89a9f414001a471197bbe02c4456fe27" label="Страница 1" color="blue"></option><option value="e1b2051323c343cbb8e19f42eb0bec85" label="Страница 2" color="blue"></option><option value="542826ed40394f8da71c5732a06f05cf" label="Место жительства" color="blue"></option><option value="f2094f35ad3b4d46802b475a9c42442f" label="Печатный штамп" color="blue"></option><option value="970ebcf01150425d80888b985e00aa88" label="Рукописный штамп" color="blue"></option><option value="27e3ed85ec6a4eb29cf7977c8b397c51" label="Ранее выданные паспорта" color="blue"></option><option value="f8da203c7c734c10b15f8b491e67262a" label="Семейное положение" color="blue"></option><option value="09e22f8c37914e708244a494be16256b" label="Воинская обязанность" color="blue"></option><option value="90c9b86559164716902b4f079eefe5f5" label="Штамп о выписке" color="blue"></option></select></th><th width="67">Год</th><th width="42">КЛ</th><th width="40">ИЗ</th><th>Название в API</th></tr></thead><tbody><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>2-НДФЛ</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2020</td><td>✅</td><td>🔲</td><td>ndfl2</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Банковская карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td></td><td>✅</td><td>✅</td><td>bank_card</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Водительское удостоверение</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2011</td><td>✅</td><td>✅</td><td>driver_license_2011_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Водительское удостоверение</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2011</td><td>✅</td><td>✅</td><td>driver_license_2011_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Водительское удостоверение</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2014</td><td>✅</td><td>✅</td><td>driver_license_2014_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Военный билет</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td></td><td>✅</td><td>🔲</td><td>military_id</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Заграничный паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2007</td><td>✅</td><td>✅</td><td>rus_passport_international_2007_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Заграничный паспорт</td><td></td><td>2014</td><td>✅</td><td>✅</td><td>rus_passport_international_2014_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Извещение о ДТП</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2014</td><td>✅</td><td>🔲</td><td>traffic_accident_notice_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Извещение о ДТП</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона, </span><span data-option="7cacfaf1c86f4f1591777096f70d53b4">Печатный образец</span></td><td>2014</td><td>✅</td><td>🔲</td><td>traffic_accident_notice_front_printed</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Извещение о ДТП</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2014</td><td>✅</td><td>🔲</td><td>traffic_accident_notice_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>ИНН физлица</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>1999</td><td>✅</td><td>✅</td><td>inn_person</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>ИНН юрлица</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td></td><td>✅</td><td>🔲</td><td>inn_organisation</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Миграционная карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2003</td><td>✅</td><td>🔲</td><td>migration_card</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Московский полис ОМС</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>1998</td><td>✅</td><td>🔲</td><td>health_insurance_certficate_moscow_card_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>ОГРН</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2004</td><td>✅</td><td>✅</td><td>ogrn</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>ОГРНИП</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2004</td><td>✅</td><td>✅</td><td>ogrnip</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот, </span><span data-option="7cacfaf1c86f4f1591777096f70d53b4">Печатный образец</span></td><td>1997</td><td>✅</td><td>✅</td><td>passport_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот, </span><span data-option="54948e2d6bdc486d8148e2fe9e14819c">Рукописный образец</span></td><td>1997</td><td>✅</td><td>✅</td><td>passport_main_handwritten</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="f8d0445b0f934b4cb55deae4db22f53f">Пустой разворот</span></td><td>1997</td><td>✅</td><td>🔲</td><td>passport_blank_page</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="0517a55e565f466695030df8dece3c44">Первый разворот</span></td><td>1997</td><td>✅</td><td>🔲</td><td>passport_zero_page</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="8a08e97727f0479ab873d607fc0abc76">Последний разворот</span></td><td>1997</td><td>✅</td><td>🔲</td><td>passport_last_rf</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="09e22f8c37914e708244a494be16256b">Воинская обязанность</span></td><td>1997</td><td>✅</td><td>🔲</td><td>passport_military</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="f8da203c7c734c10b15f8b491e67262a">Семейное положение</span></td><td>1997</td><td>✅</td><td>🔲</td><td>passport_children</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="542826ed40394f8da71c5732a06f05cf">Место жительства, </span><span data-option="f2094f35ad3b4d46802b475a9c42442f">Печатный штамп</span></td><td>1997</td><td>✅</td><td>✅</td><td>passport_registration</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="542826ed40394f8da71c5732a06f05cf">Место жительства, </span><span data-option="970ebcf01150425d80888b985e00aa88">Рукописный штамп</span></td><td>1997</td><td>✅</td><td>✅</td><td>passport_registration_handwritten</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="542826ed40394f8da71c5732a06f05cf">Место жительства, </span><span data-option="90c9b86559164716902b4f079eefe5f5">Штамп о выписке</span></td><td>1997</td><td>✅</td><td>🔲</td><td>passport_registration_deregistered</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="27e3ed85ec6a4eb29cf7977c8b397c51">Ранее выданные паспорта</span></td><td>1997</td><td>✅</td><td>🔲</td><td>passport_previous_docs</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт</td><td><span data-option="f8da203c7c734c10b15f8b491e67262a">Семейное положение</span></td><td>1997</td><td>✅</td><td>🔲</td><td>passport_marriage</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт транспортного средства</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>1993</td><td>✅</td><td>✅</td><td>pts_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Паспорт транспортного средства</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>1993</td><td>✅</td><td>✅</td><td>pts_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Патент на работу</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2015</td><td>✅</td><td>🔲</td><td>rus_work_patent</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Полис ОМС на бумажном носителе</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2011</td><td>✅</td><td>🔲</td><td>health_insurance_certificate_paper_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Полис ОМС на пластиковом носителе</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2011</td><td>✅</td><td>🔲</td><td>health_insurance_certificate_card_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Полис ОМС на пластиковом носителе</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2011</td><td>✅</td><td>🔲</td><td>health_insurance_certificate_card_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Разрешение на временное проживание</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2002</td><td>✅</td><td>🔲</td><td>permit_of_residence</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Сведения о трудовой деятельности СТД-Р</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2016</td><td>✅</td><td>🔲</td><td>stdr</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Свидетельство о заключении брака</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td></td><td>✅</td><td>✅</td><td>marriage_certificate</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Свидетельство о расторжении брака</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td></td><td>✅</td><td>🔲</td><td>divorce_certificate</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Свидетельство о регистрации транспортного средства</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2008-2019</td><td>✅</td><td>✅</td><td>vehicle_registration_certificate_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Свидетельство о регистрации транспортного средства</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2008-2019</td><td>✅</td><td>✅</td><td>vehicle_registration_certificate_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Свидетельство о рождении</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td></td><td>✅</td><td>✅</td><td>birth_certificate</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Свидетельство о смерти</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td></td><td>✅</td><td>🔲</td><td>death_certificate</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Сертификат о регистрации права</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td></td><td>✅</td><td>🔲</td><td>registration_certificate</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>СНИЛС</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>1996</td><td>✅</td><td>🔲</td><td>snils_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>СНИЛС</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>1996</td><td>✅</td><td>✅</td><td>snils_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>СНИЛС</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2003</td><td>✅</td><td>✅</td><td>insurance_plastic</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Уведомление о регистрации в системе индивидуального (персонифицированного) учёта «АДИ-РЕГ»</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2019</td><td>✅</td><td>✅</td><td>adi_reg</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Справка о временной регистрации</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td></td><td>✅</td><td>🔲</td><td>temporary_registration_certificate</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Счёт-фактура</td><td><span data-option="89a9f414001a471197bbe02c4456fe27">Страница 1</span></td><td>2012</td><td>✅</td><td>✅</td><td>rus_invoice</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Электронный паспорт транспортного средства</td><td><span data-option="89a9f414001a471197bbe02c4456fe27">Страница 1</span></td><td>2020</td><td>✅</td><td>✅</td><td>digital_vehicle_passport_page_1</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Электронный паспорт транспортного средства</td><td><span data-option="e1b2051323c343cbb8e19f42eb0bec85">Страница 2</span></td><td>2020</td><td>✅</td><td>🔲</td><td>digital_vehicle_passport_page_2</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Электронный паспорт транспортного средства</td><td><span data-option="e1b2051323c343cbb8e19f42eb0bec85">Страница 2</span></td><td>2020</td><td>✅</td><td>🔲</td><td>digital_vehicle_passport_page_2_blank</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f7-1f1fa">🇷🇺</span></td><td>Электронный паспорт транспортного средства</td><td><span data-option="027e8f6f59884cc5bc818e2f48654dc7">Страница 3+</span></td><td>2020</td><td>✅</td><td>🔲</td><td>digital_vehicle_passport_page_3</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1e6-1f1ff">🇦🇿</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2013</td><td>✅</td><td>✅</td><td>aze_passport_2013_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1e6-1f1ff">🇦🇿</span></td><td>ID-карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2012</td><td>✅</td><td>🔲</td><td>aze_id_2012_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1e6-1f1ff">🇦🇿</span></td><td>ID-карта</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2012</td><td>✅</td><td>🔲</td><td>aze_id_2012_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1e6-1f1ff">🇦🇿</span></td><td>ID-карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2018</td><td>✅</td><td>🔲</td><td>aze_id_2018_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1e6-1f1ff">🇦🇿</span></td><td>ID-карта</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2018</td><td>✅</td><td>🔲</td><td>aze_id_2018_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1e6-1f1f2">🇦🇲</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2008</td><td>✅</td><td>✅</td><td>arm_passport_2008_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1e6-1f1f2">🇦🇲</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2012</td><td>✅</td><td>🔲</td><td>arm_passport_2012_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1e7-1f1fe">🇧🇾</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2006</td><td>✅</td><td>✅</td><td>blr_passport_2006_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ff">🇰🇿</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2014</td><td>✅</td><td>✅</td><td>kz_passport_2014_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ff">🇰🇿</span></td><td>ID-карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>1994</td><td>✅</td><td>🔲</td><td>kz_id_1994_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ff">🇰🇿</span></td><td>ID-карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>1994</td><td>✅</td><td>🔲</td><td>kz_id_1994_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ff">🇰🇿</span></td><td>ID-карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2008</td><td>✅</td><td>✅</td><td>kz_id_2008_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ff">🇰🇿</span></td><td>ID-карта</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2008</td><td>✅</td><td>✅</td><td>kz_id_2008_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ff">🇰🇿</span></td><td>ID-карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2014</td><td>✅</td><td>✅</td><td>kz_id_2014_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ff">🇰🇿</span></td><td>ID-карта</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2014</td><td>✅</td><td>✅</td><td>kz_id_2014_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ec">🇰🇬</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2006</td><td>✅</td><td>✅</td><td>kgz_passport_2006_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ec">🇰🇬</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2022</td><td>✅</td><td>✅</td><td>kgz_passport_2022_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ec">🇰🇬</span></td><td>ID-карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2004</td><td>✅</td><td>✅</td><td>kgz_id_2004_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ec">🇰🇬</span></td><td>ID-карта</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2017</td><td>✅</td><td>✅</td><td>kgz_id_2017_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f0-1f1ec">🇰🇬</span></td><td>ID-карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2017</td><td>✅</td><td>✅</td><td>kgz_id_2017_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f2-1f1e9">🇲🇩</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2011</td><td>✅</td><td>✅</td><td>mda_passport_2011_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f6ab">🚫</span></td><td>Документ неизвестной формы</td><td></td><td></td><td>✅</td><td>🔲</td><td>other</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f6ab">🚫</span></td><td>Не документ</td><td><span data-option="a7b36aefb4d34df399db4b0436ed6c32">Фото котика</span></td><td></td><td>✅</td><td>🔲</td><td>not_document</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f6ab">🚫</span></td><td>Пустая страница</td><td><span data-option="f8d0445b0f934b4cb55deae4db22f53f">Пустой разворот</span></td><td></td><td>✅</td><td>🔲</td><td>empty</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f9-1f1ef">🇹🇯</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2010</td><td>✅</td><td>✅</td><td>tjk_passport_2010_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f9-1f1ef">🇹🇯</span></td><td>Паспорт</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2010</td><td>✅</td><td>🔲</td><td>tjk_id_2010_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1fa-1f1ff">🇺🇿</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2011</td><td>✅</td><td>✅</td><td>uzb_passport_2011_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1fa-1f1ff">🇺🇿</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2020</td><td>✅</td><td>✅</td><td>uzb_passport_2020_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1fa-1f1e6">🇺🇦</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>1994</td><td>✅</td><td>✅</td><td>ukr_passport_1994_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1fa-1f1e6">🇺🇦</span></td><td>Паспорт</td><td></td><td>1994</td><td>✅</td><td>✅</td><td>ukr_passport_1994_issuer</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1fa-1f1e6">🇺🇦</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2015</td><td>✅</td><td>✅</td><td>ukr_passport_2015_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1fa-1f1e6">🇺🇦</span></td><td>ID-карта</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td>2016</td><td>✅</td><td>✅</td><td>ukr_id_2016_front</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1fa-1f1e6">🇺🇦</span></td><td>ID-карта</td><td><span data-option="4ef314f62d21430fa38c4be6c85b47c4">Обратная сторона</span></td><td>2016</td><td>✅</td><td>✅</td><td>ukr_id_2016_back</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1ef-1f1f5">🇯🇵</span></td><td>Водительское удостоверение</td><td><span data-option="e64e69b308ac49719d228d7cf9ce96a6">Лицевая сторона</span></td><td></td><td>✅</td><td>🔲</td><td>driver_license_japan</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f9-1f1f7">🇹🇷</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2010</td><td>✅</td><td>✅</td><td>tur_passport_2010_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f9-1f1f7">🇹🇷</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2018</td><td>✅</td><td>✅</td><td>tur_passport_2018_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f9-1f1f7">🇹🇷</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2022</td><td>✅</td><td>✅</td><td>tur_passport_2022_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f5-1f1f0">🇵🇰</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2013</td><td>✅</td><td>✅</td><td>pak_passport_2013_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1f3-1f1f5">🇳🇵</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2010</td><td>✅</td><td>✅</td><td>npl_passport_2010_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1ee-1f1f3">🇮🇳</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2000</td><td>✅</td><td>✅</td><td>ind_passport_2000_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1ee-1f1f3">🇮🇳</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2008</td><td>✅</td><td>✅</td><td>ind_passport_2008_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1e7-1f1e9">🇧🇩</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2010</td><td>✅</td><td>✅</td><td>bgd_passport_2010_main</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f1e7-1f1e9">🇧🇩</span></td><td>Паспорт</td><td><span data-option="8ab42ed0a3344c22a39627e7984a91d8">Главный разворот</span></td><td>2019</td><td>✅</td><td>✅</td><td>bgd_passport_2019_main</td></tr></tbody></table>

Кроме того, сервис Dbrain умеет извлекать данные из российских [юридических](/servisy/izvlechenie-dannykh/dogovory) и [первичных бухгалтерских документов](/servisy/izvlechenie-dannykh/bukhgalterskaya-pervichka).

Юридические документы:

* Договор
* Приказ генерального директора
* Устав организации
* Решение общего собрания собственников

Первичные бухгалтерские документы:

* Счёт
* Счёт-фактура
* Счёт-договор
* Платёжное поручение
* Акт
* Накладная


# Информация по технической поддержке

**Техническая поддержка участников информационного взаимодействия.**

Услуги, описанные данным пунктом, оказываются Лицензиаром уполномоченным сотрудникам Лицензиата, использующим программу для ЭВМ (ПО «Dbrain») на условиях простой (неисключительной) лицензии, а также обеспечивает гарантийную поддержку ПО в целях исполнения бизнес-задач Лицензиата. В случае возникновения проблем во взаимодействии информационных систем, либо выявлении проблем с оказанием услуг, Лицензиар осуществляет регистрацию запроса на техническую поддержку в своей системе контроля и управления функционированием (СКУФ).

\
**1. Состав услуги**

Услуги по технической и информационной поддержке Лицензиата включают:

* прием, регистрацию, классификацию и обработку запросов, выявленных средствами мониторинга и контроля функционирования ПО «Dbrain»;
* анализ и решение запросов по ПО «Dbrain», переданному Лицензиату в рамках Договора;
* отслеживание и эскалация запросов, срок решения которых истек.

\
**2. Требования по порядку оказания услуг**

В рамках оказания Услуги по неограниченной технической поддержке Программы Стороны согласовали следующие условия обработки инцидентов и уровня сервиса.Если Лицензиат информирует Лицензиара о возникновении технических проблем, Лицензиар предоставляет Лицензиату поддержку в виде информации об исправлении и предотвращении ошибок или предлагает альтернативный путь решения проблем. Лицензиат может направить Лицензиару сообщение о возникновении технических проблем (так называемый «инцидент») в любое время. Запросы к технической поддержке осуществляются по следующему адресу электронной почты Лицензиара: <support@dbrain.io>. Также запросы принимаются через бот Лицензиара в интернет-мессенджере Telegram: @dbrain\_support\_bot и по номеру телефона: +7 495 127 72 51

\
**3. Требования по качеству оказания услуг:**

Приоритизация запросов осуществляется по следующим правилам:

**Инциденты с Приоритетом 1 («очень высокий»).** Лицензиар реагирует на инциденты с Приоритетом 1 в течение 1 (одного) часа после получения Лицензиаром таких инцидентов (в будние дни, с 09:00 до 18:00 по московскому времени). Инциденту присваивается Приоритет 1, если возникшая проблема имеет очень серьезные последствия для осуществления обычных бизнес-операций и выполнение срочных, критичных для бизнеса работ становится невозможным. Обычно к таким обстоятельствам относятся следующие: полная потеря работоспособности системы, сбои в ключевых функциях системы, критичные проблемы, и в каждом из таких случаев обходные решения недоступны.

**Инциденты с Приоритетом 2 («высокий»).** Лицензиар реагирует на инциденты с Приоритетом 2 в течение 4 (четырех) часов после получения Лицензиаром таких инцидентов (в будние дни, с 09:00 до 18:00 по московскому времени). Инциденту присваивается Приоритет 2, если выполнение стандартных бизнес-операций в продуктивной системе значительно затруднено, и нет возможности выполнять ряд необходимых задач. Такая ситуация является результатом некорректной или неверной работы в продуктивной системе функций, предназначенных для выполнения таких операций и (или) задач.

**Требования по времени предоставления корректирующих мер для инцидентов с Приоритетом 1:**

Лицензиар предоставляет решение, метод обхода ошибки или план действий по решению проблемы (далее - «Корректирующие меры») для инцидентов Лицензиата, имеющих Приоритет 1, в течение 8 часов с момента получения таких сообщений (в будние дни, с 09:00 до 18:00 по московскому времени).

В случае, если в качестве Корректирующей меры Лицензиату предоставляется план действий по решению проблемы, такой план включает:

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

Дальнейшие обновления статуса включают краткое описание мер, предпринятых до сих пор; информацию о следующих запланированных действиях; а также дату и время следующего обновления статуса. Техническая поддержка для Корректирующих мер относится только к той части времени обработки инцидента, когда инцидент обрабатывается Лицензиатом («Время обработки»). Время обработки не включает периоды, когда инцидент имеет статус «Действие Заказчика». Считается, что условия технической поддержки по Корректирующим мерам выполнены, если в течение 8 часов после получения инцидента: Лицензиар предложил решение (статус «Решение предоставлено ООО «Дибрейн»), метод обхода ошибки или план действий по решению проблемы; или если Лицензиат соглашается снизить приоритет инцидента.

Для инцидентов c Приоритетом 1 Лицензиат должен выполнить следующие дополнительные условия:

* проблема и ее влияние на бизнес Лицензиата должны быть описаны настолько подробно, насколько это необходимо Лицензиару для оценки проблемы;
* Лицензиат предоставляет для обмена информацией с Лицензиаром контактное лицо, доступное в будние дни, с 09:00 до 18:00 по московскому времени и обладающее достаточными знаниями и навыками для помощи в решении инцидента с Приоритетом 1;
* должно быть назначено контактное лицо Лицензиата для открытия удаленного подключения к системе и для предоставления Лицензиару необходимых регистрационных данных для входа в систему Лицензиата.

**Исключения.** Применительно к Услугам из технической поддержки исключаются, в частности, следующие виды инцидентов:

* исходная причина, лежащая в основе инцидента, не является дефектом или неисправностью, а представляет собой исходно отсутствующую функциональность («запрос на разработку»);
* инцидент классифицируется как запрос на оказание консультационных услуг Поставщиком.

**4. Ограничения**

4.1. Действие настоящего Документа не распространяется на случаи Недоступности, вызванные следующими обстоятельствами:

4.1.1. действиями Лицензиата и (или) третьих лиц, в том числе, но не ограничиваясь, использованием оборудования и (или) программного обеспечения третьих лиц, повлекшие за собой Недоступность Решения;

4.1.2. проведением профилактических и Аварийных работ;

4.1.3. требованием государственных органов в соответствии с применимым законодательством;

4.1.4. совершением Лицензиатом запрещенных действий, предусмотренных Договором или Приложениями к нему;

4.1.5. обстоятельствами непреодолимой силы;

4.1.6. нарушением Лицензиата технических ограничений по использованию Решения;

4.1.7. нарушением Лицензиата условий Договора или Приложения к нему.

4.2. Лицензиар не несет ответственности за потерю и (или) повреждение информации и контента Лицензиата, размещенного на ресурсах Лицензиара, произошедшие по вине Лицензиата.

**5. Термины**

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

Аварийные работы – работы, проводимые Лицензиаром без уведомления Лицензиата, в целях предотвращения аварий и иных обстоятельств, угрожающих безопасности и работоспособности Решения, в том числе, но не ограничиваясь, следующие обстоятельства: несанкционированный доступ третьих лиц к Решению, обстоятельства непреодолимой силы (пожар, наводнение, землетрясение, военные действия, контртеррористические операции, действия и нормативные указания государственных органов, и иные).

Недоступность – интервал времени, в течение которого Решение не соответствует заявленным Лицензиаром параметрам работоспособности. Недоступность определяется индивидуально для каждого Решения.


# Changelog

### 4.148.0 — 2026.05.15

* Обновлена версия Python, обновлены версии библиотек, для on-prem версии сервиса.

### 4.147.0 — 2026.05.05

* Исправлена ошибка при горизонтальной ориентации лицам на изображении.

### 4.146.0 — 2026.04.14

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

### 4.142.0 — 2025.10.30

* Технический релиз

### 4.141.0 — 2025.10.21

* Селфи-чек: добавлена обработка ошибок, связанных с нераспознанными документами типа not\_document, чтобы предотвратить сбои на селфи\_чеке.

### 4.140.0 — 2025.09.22

* `IQA`: улучшили детекцию пересвета для мобильных снимков.

### 4.139.0 — 2025.09.09

* Технический релиз

### 4.138.0 — 2025.09.01

* Технический релиз

### 4.137.0 — 2025.08.21

* Добавлена человека-читаемая ошибка при использование станции валидации неавторизованными пользователями.

### 4.136.0 — 2025.08.14

* Технический релиз

### 4.135.0 — 2025.08.13

* `arm_passport_2008_main`: исправили даты и эвристики в для новых моделей.

### 4.134.0 — 2025.08.06

* Технический релиз

### 4.133.0 — 2025.07.28

* Технический релиз

### 4.132.0 — 2025.07.24

* Технический релиз

### 4.131.0 — 2025.07.23

* `П`оправили поля паспорта Узбекистана.

### 4.130.0 — 2025.07.21

* Селфи-чек: добавили человеко-читаемые ошибки и устойчивость к пустым спискам.

### 4.129.0 — 2025.07.14

* [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0): доработана логика сравнение серии-номера, обновлена часть моделей

### 4.128.0 — 2025.07.10

* Обновили `CRNN` для распознавания прописки.
* [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0): корректная обработка нескольких документов и многостраничных PDF.

### 4.127.0 — 2025.07.08

* Технический релиз

### 4.126.0 — 2025.07.02

* `fraud_v2`: корректно учитываем реальные размеры изображений vs EXIF.

### 4.125.0 — 2025.06.26

* `arm_passport_2008_main`: улучшили обработку дат и код выдавшего органа.

### 4.124.0 — 2025.06.19

* MRZ модуль recognize\_mrz. улучшили регулярки, добавили типы, конвертацию цифр в похожие буквы и проверки пустых значений. Расширили типы поддерживаемых паспортов, дипломатический, морские и т.д.

### 4.123.0 — 2025.06.18

* Технический релиз

### 4.122.0 — 2025.06.17

* Обновили веб-демо под [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0), поддержали новые статусы и улучшили приоритезацию.

### 4.121.0 — 2025.06.11

* Технический релиз

### 4.120.1 — 2025.06.09

* Технический релиз

### 4.120.0 — 2025.06.05

* Технический релиз

### 4.119.0 — 2025.06.03

* Технический релиз

### 4.118.0 — 2025.05.30

* Технический релиз

### 4.117.0 — 2025.05.29

* Технический релиз

### 4.116.0 — 2025.05.28

* Технический релиз

### 4.115.0 — 2025.05.23

* Убрали ложные срабатывания в [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) для старых паспортов без MRZ и из-за стоп-линий;
* Учли 90-дневный период замены паспорта.

### 4.114.0 — 2025.05.22

* Исправили падение `selfie_split` из-за обрезанной МРЗ и добавили доп.проверки МРЗ.

### 4.113.0 — 2025.05.15

* Точность определения источника изображения в методе [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) выросла на 4%.

### 4.112.0 — 2025.05.13

* Улучшили качество извлечения полей из паспортов Киргизии и Узбекистана.

### 4.111.0 — 2025.05.01

* Точность определения источника изображения в методе [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) выросла на 7%.

### 4.110.0 — 2025.04.29

* Обновили нейросеть, которая отвечает за поиск документа в методе [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0).
* Исправили ошибку, которая приводила к потере результатов извлечения серии-номера на разворотах с [рукописными прописками](/servisy/izvlechenie-dannykh/pasport-propiska).

### 4.109.0 — 2025.04.28

* Исправили ряд ошибок в работе станции валидации с методом [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0).

### 4.106.0 — 2025.04.14

* Метод [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) теперь проверяет живость лиц на селфи с паспортом.

### 4.105.0 — 2025.04.14

* Релиз нового сервиса — Станции валидации. Станция предоставляет веб-интерфейс для проверки результатов работы сервиса [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0).

### 4.103.0 — 2025.04.04

* Метод [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) теперь сравнивает лицо и фото из документа на селфи с паспортом, а также возвращает дополнительную информацию о лицах по аналогии с методом [Селфи-чек](/servisy/operacii-s-licami/selfi-chek).
* Заменили алгоритм поиска лиц на селфи в методе Антифрод 2.0. Новый алгоритм работает с повёрнутыми документами и меньше пропускает лица на изображениях низкого качества.

### 4.102.0 — 2025.04.03

* Улучшили извлечение полей с первой страницы ЭПТС: повысили качество плюс теперь извлекам все поля.

### 4.98.0 — 2025.03.19

* Метод [Извлечение данных](/servisy/izvlechenie-dannykh) теперь поддерживает ОГРН и ОГРНИП.

### 4.97.0 — 2025.03.18

* Исправили ложные срабатывания при сравнении визуальных полей с машиночитаемой зоной (MRZ) в методе [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0).

### 4.96.0 — 2025.03.12

* Устранили падения сервиса на отдельных файлах в методах [Селфи-чек](/servisy/operacii-s-licami/selfi-chek) и [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0).
* Поле `result` проверки `image_modifications_detected` метода [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) теперь согласовано с полем `overall_result`.

### 4.95.1 — 2025.03.06

* Путём многочисленных оптимизаций сократили среднее время ответа метода [Извлечение полей](/servisy/izvlechenie-dannykh) более на 48%.

### 4.95.0 — 2025.02.27

* В методе [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) улучшили точность определения источника изображения (настоящий документ, скан, фото экрана, скриншот, фото ксерокопии).
* Сократили число ложных предупреждений о бликах и чёткости при определении [качества фото Паспорта РФ](/servisy/izvlechenie-dannykh/pasport).

### 4.92.0 — 2025.02.10

* Существенно улучшили извлечение дат из штампов [прописок](/servisy/izvlechenie-dannykh/pasport-propiska).

### 4.90.0 — 2025.02.05

* Улучшили нейросеть для определения границ документов в методе [Классификация документов](/servisy/document-classification). Добавили фильтрацию «мусорных» документов по размеру и пропорциям.

### 4.89.0 — 2025.01.31

* В метод [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) добавили возможность извлечения полей паспорта. Для этого передайте параметр `extract_passport_fields=true`. Эта опция платная.

### 4.86.0 — 2025.01.23

* Обновление метода [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0):
  * Метод теперь возвращает уровень уверенности нейросети при оценке признаков вмешательства в изображение.
  * Улучшили обработку изображений перед подачей в нейросеть, что повысило её точность.
  * Нейросеть теперь точнее определяет источник изображения (скан или ксерокопия).
  * Метод теперь проверяет читабельность полей паспорта на селфи.
  * Исправили ложные отрицательные результаты при проверке читабельности полей паспорта.
  * Несовпадение данных зоны MRZ с визуальными полями и проверка пола временно перенесены в категорию «Потенциальный фейк» из-за ошибок алгоритмов.
  * Уточнили справочник ОКАТО.
  * Сервис теперь обнаруживает больше следов редакторов изображений в метаданных файлов.
  * Исправили ошибку с присвоением вердикта «Низкое качество изображения» вместо «Некорректный тип документа».

### 4.85.0 — 2025.01.17

* Исправили редкую ошибку обнуления уровня уверенности поля «Место выдачи» при извлечении данных из [Паспорта РФ](/servisy/izvlechenie-dannykh/pasport).

### 4.82.0 — 2024.12.19

* Привели название документа АДИ-РЕГ в соответствие с документацией — `adi_reg`.

### 4.80.0 — 2024.12.10

* Исправили возврат некорректных координат документов в методе [Извлечение данных](/servisy/izvlechenie-dannykh).
* В методе [Извлечение данных](/servisy/izvlechenie-dannykh) добавили указание поворота документа `doc_rotation.`
* Исправили ошибку 500 в методе [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) для селфи, где лицо частично выходит за пределы кадра.
* Метод [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) теперь возвращает ошибку 400 для изображений менее 100 пикселей, а изображения до 600 пикселей считаются неподходящими для проверки.

### 4.79.0 — 2024.12.05

* Обновили нейросеть для определения границ документов на изображении, особенно при наложении нескольких документов.

### 4.78.0 — 2024.12.03

* Исправли ошибку обработки маленьких изображений в методе [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0).
* Добавили общий вердикт по файлу `overall_result` в методе [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0). Подробней читайте в [документации](/servisy/proverka-dokumentov/antifrod-2.0).
* Уточнили пороговые значения бликов и чёткости изображения в методе [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0).

### 4.77.0 — 2024.12.02

* Улучшили качество извлечения поля «Серия» из свидетельств о рождении.

### 4.76.0 — 2024.11.28

* Метод [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) теперь возвращает в ответе координаты подозрительных областей изображения.

### 4.75.0 — 2024.11.27

* Улучшили качество извлечения полей из свидетельств о рождении.

### 4.74.0 — 2024.11.21

* Существенно сократили время ответа метода [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0).

### 4.73.0 — 2024.11.19

* Улучшили качество извлечения полей из ID Турции.

### 4.72.0 — 2024.11.18

* Исправили ошибку 500 на отдельных изображениях в методе [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0).

### 4.71.0 — 2024.11.15

* Исправили ошибку чтения двойных фамилий из машиночитаемой зоны (MRZ) паспорта РФ.
* Исправили некорректную классификацию штампов прописок в методе [Классификация документов](/servisy/document-classification).

### 4.69.0 — 2024.11.06

* Релиз нового сервиса: Антифрод 2.0. Ключевые отличия: поддержка селфи, оценка качества изображения, детекция ксерокопий, улучшения нейросетевых и алгоритмических методов определения подделок. Подробное описание [читайте в документации](/servisy/proverka-dokumentov/antifrod-2.0).

### 4.64.0 — 2024.10.23

* Улучшили качевство извлечения рукописных дат в [прописках](/servisy/izvlechenie-dannykh/pasport-propiska).

### 4.62.0 — 2024.10.18

* Улучшили качество извлечения поля «Место рождения» из заграничного паспорта РФ образца 2007 года.

### 4.59.0 — 2024.10.09

* Улучшили качество извлечения полей из ID Таджикистана.

### 4.58.0 — 2024.10.07

* Метод [Извлечение данных](/servisy/izvlechenie-dannykh) разбивает теперь адрес на отдельные части в [прописках](/servisy/izvlechenie-dannykh/pasport-propiska) даже в случае если адрес не смогла разбить [Dadata](https://dadata.ru/).

### 4.57.0 — 2024.10.04

* Обновили нейросеть для извлечения данных из [СТС](/servisy/izvlechenie-dannykh/sts). Теперь она лучше работает с обратной стороной СТС образца 2023 года.
* Обновили нейросеть для извлечения данных из банковских карт. Новая версия лучше справляется с нестандартными карточками, где данные написаны по вертикали.

### 4.52.0 — 2024.09.25

* Улучшили качество извлечения полей из ID Узбекистана.

### 4.51.0 — 2024.09.23

* Обновили нейросети детекции и классификации документов в методе [Антифрод](/servisy/proverka-dokumentov/priznaki-poddelki). Добавили фильтрацию слишком маленьких и непропорциональных изображений документов.

### 4.50.0 — 2024.09.19

* Добавили возможность использовать в локальных версиях Dbrain сервис [Dadata](https://dadata.ru/) для повышения точности извлечения адресов прописки.

### 4.48.0 — 2024.09.05

* Улучшили качество извлечения полей из ID Молдавии.

### 4.47.0 — 2024.09.05

* Улучшили качество извлечения полей из ID Киргизии.

### 4.46.0 — 2024.09.03

* Улучшили качество извлечения полей из ID Казахстана и Узбекистана.

### 4.45.0 — 2024.08.27

* Улучшили качество извлечения полей из ID Украины.

### 4.43.0 — 2024.08.21

* Оптимизировали метод [Базовый OCR](/servisy/fulltext-recognition). Теперь он работает в среднем в 5 раз быстрее.

### 4.41.0 — 2024.08.16

* Добавили нормализацию названий банков через [Dadata](https://dadata.ru/) в метод [Бухгалтерская первичка](/servisy/izvlechenie-dannykh/bukhgalterskaya-pervichka). Чтобы воспользоваться им, выберите передайте `true` в параметре `normalization_fias`. Нормализация работает для полей «Банк покутеля» и «Банк продавца».

### 4.39.0 — 2024.08.13

* Добавили извлечение данных из машиночитаемых зон (MRZ) для международных ID. Сервис самостоятельно определяет, откуда взять данные на изображении документа: из визуального поля или из MRZ в зависимости от их читабельности.
* Улучшили качество извлечения полей из ID Киргизии и Узбекистана.

### 4.38.0 — 2024.08.09

* Улучшили качество извлечения полей в ID Турции, Пакистана, Бангладеша и Индии.

### 4.35.0 — 2024.08.02

* Метод [Извлечение данных](/servisy/izvlechenie-dannykh) теперь возвращает информацию о качестве изображения [Паспорта РФ](/servisy/izvlechenie-dannykh/pasport) в объекте iqa. Отдельная нейросеть оценивает наличие бликов и чёткость, а также обрезан ли документ краями изображения.
* Улучшили качество извлечения полей в заграничных паспортах РФ образцов 2007 и 2014 года.
* Метод [Антифрод](/servisy/proverka-dokumentov/priznaki-poddelki) теперь возвращает результаты извлечения полей паспорта РФ, если в запросе передать `return_documents=true`.

### 4.34.0 — 2024.07.25

* Добавили проверку полей в СНИЛС. Теперь сервис возвращает пустое поле, когда понимает, что не смог корректно извлечь данные.

### 4.33.0 — 2024.07.18

* Обновили весь каскад нейросетей, отвечающий за извлечение данных из [Паспорта РФ](/servisy/izvlechenie-dannykh/pasport). Теперь сервис [Извлечение данных](/servisy/izvlechenie-dannykh) точнее извлекает данные из изображений паспорта любых годов выпуска и условий съёмки. Кроме того, сервис теперь возвращает координаты фото, печати и обеих подписей.

### 4.31.0 — 2024.07.12

* Уточнили порог принятия решения является ли изображение документа цветным в методе [Антифрод](/servisy/proverka-dokumentov/priznaki-poddelki).

### 4.30.0 — 2024.07.08

* Добавили фильтрацию изображений документов по размеру и соотношению сторон. Теперь метод [Извлечение данных](/servisy/izvlechenie-dannykh) возвращает меньше «мусорных» изображений.
* Исправили ошибку с обнулением серии и номера в рукописных паспортах, обновили движок для извлечения этого поля из рукописных паспортов. Теперь поле извлекается даже лучше, чем раньше.

### 4.26.0 — 2024.06.12

* Обновили справочник «Место выдачи», который используется для нормализации этого поля в [Паспорте РФ](/servisy/izvlechenie-dannykh/pasport).

### 4.25.0 — 2024.06.27

* Исправили проблему с чтением изображений из некоторых разновидностей PDF.
* Обновили классификатор документов в методе [Классификация документов](/servisy/document-classification). Теперь он работает не хуже, чем в методе [Извлечение данных](/servisy/izvlechenie-dannykh).

### 4.24.0 — 2024.06.04

* Добавили в метод [Извлечение данных](https://docs.dbrain.io/izvlechenie-dannykh) поддержку дополнительных ID-документов. Теперь севис умеет работать с паспортами Армении, Азербайджана, Бангладеша, Белоруссии, Индии, Казахстана, Киргизии, Молдавии, Непала, Пакистана, России, Таджикистана, Турции, Украины и Узбекистана.

### 4.21.0 — 2024.05.10

* Откалибровали уровень уверенности (confidence). Теперь мы реже возвращаем высокий конфиденс на ошибочных предсказаниях и низкий конфиденс на правильных.
* Сервис теперь лучше извлекает текст поля «Место рождения» в [паспорте РФ](/servisy/izvlechenie-dannykh/pasport), особенно в рукописном.

### 4.20.1 — 2024.05.02

* Добавили нормализацию названий компаний через [Dadata](https://dadata.ru/) в метод [Бухгалтерская первичка](/servisy/izvlechenie-dannykh/bukhgalterskaya-pervichka). Чтобы воспользоваться им, выберите передайте `true` в параметре `normalization_fias`. Нормализация работает для полей «Покупатель», «Продавец», «Грузополучатель», «Грузоотправитель».

### 4.18.0 — 2024.04.15

* Исправили редкую ошибку с логикой выбора последнего штампа на развороте с [прописками](https://docs.dbrain.io/izvlechenie-dannykh/pasport-propiska).

### 4.17.0 — 2024.04.11

* Добавили проверку полей в [Паспорте РФ](/servisy/izvlechenie-dannykh/pasport). Теперь сервис возвращает пустое поле, когда понимает, что не смог корректно извлечь данные.

### 4.16.1 — 2024.04.03

* Обновили нейросеть, которая извлекает адреса в штампах [прописок](/servisy/izvlechenie-dannykh/pasport-propiska). Обучающая выборка выросла на 0,5 млн примеров, точность извлечения адреса стала ещё выше. Теперь нейросеть учитывает, что регион, улица и дом в разных адресах могут полностью совпадать, и различает их по сущностям «село» и «район».

### 4.16.0 — 2024.04.02

* Добавили параметр `address_division` в метод [Извлечение данных](/servisy/izvlechenie-dannykh). По умолчанию параметр равен `administrative` и возвращает адрес в [прописках](https://docs.dbrain.io/izvlechenie-dannykh/pasport-propiska) в административном формате в поле `address`. При указании `address_division=municipal`, сервис теперь дополнительно возвращает адрес в муниципальном формате в поле `address_gar`. Этот функционал стоит дополнительных денег.

### 4.14.1 — 2024.03.20

* Оптимизировали работу сервиса с изображениями. Благодаря этому, скорость обработки документов с высоким разрешением теперь не уступает скорости обработки документов с низким разрешением.
* Усовершенствовали алгоритм извлечения перфорированных символов. Это позволило улучшить распознавание зеркального текста. Такой текст часто встречается на развороте с пропиской в паспорте граждан РФ.
* Добавили возможность извлечения серии и номера из разворота 18-19 паспорта РФ. На этом развороте указывается информация о ранее выданных паспортах.
* Сервис теперь поддерживает извлечение номеров банковских карт нестандартной длины.
* Дата документа в СТС (свидетельстве о регистрации транспортного средства) теперь корректно возвращается в формате дд.мм.гггг.

### 4.12.0 — 2024.02.29

* Увеличили точность определения ориентации банковских карт и второстепенных разворотов паспорта РФ.
* Повысили точность извлечения данных из [первичных документов](/servisy/izvlechenie-dannykh/bukhgalterskaya-pervichka).

### 4.11.0 — 2024.02.22

* Доработали алгоритм чтения нестандартных PDF-файлов, теперь он не совершает ошибок при извлечении изображений.

### 4.10.0 — 2024.02.14

* Добавили извлечение 66 новых полей из прописок. Полный перечень полей [тут](/servisy/izvlechenie-dannykh/pasport-propiska#perechen-izvlekaemykh-polei).
* Обновили нейросеть, определяющую источник изображения в сервисе [«Приназки подделки»](/servisy/proverka-dokumentov/priznaki-poddelki). Теперь мы точнее определяем источник изображения: фото, скан, скриншот или фото экрана.
* Swagger в локальной версии сервиса больше не обращается в интернет.

### 4.9.2 — 2024.01.25

* Полностью обновили сервис извлечения данных из первичных документов. Он классифицирует бухгалтерские документы и извлекает данные из актов, счетов, накладных, УПД и договоров. Попробуйте его через [веб-демо](https://demo.dbrain.io/).
* Разработали [новый сервис](/servisy/proverka-dokumentov/podpisi-i-pechati), который определяет наличие подписей и печатей на любых документах.
* Увеличили точность [классификации](/servisy/document-classification) и определения ориентации документов.
* Сервис [извлечения данных](/servisy/izvlechenie-dannykh) теперь возвращает нумерацию страниц паспорта РФ. Например, для прописок это может быть 4-5, 6-7 и так далее.
* Подняли точность извлечения полей «Марка» и «Модель» в ПТС.

### 4.7.0 — 2023.12.14

* Добавили возврат корпуса/строения в адресе [прописки](/servisy/izvlechenie-dannykh/pasport-propiska) в поле `block`
* Исправили баг с инвертированием итогового result в блоке логических проверок на [признаки подделки](/servisy/proverka-dokumentov/priznaki-poddelki)

### 4.5.0 — 2023.11.21

* Добавили возврат координат документов в методе [Извлечение данных](/servisy/izvlechenie-dannykh), теперь они возвращаются в массиве `doc_coords`
* Исправили баги в логических проверках паспорта РФ в методе [Антифрод](/servisy/proverka-dokumentov/priznaki-poddelki)
* Доработали визуальную часть [демо-стенда](https://demo.dbrain.io)

### 4.4.11 — 2023.11.10

* Обновили сервис извлечения данных из бухгалтерской первички. Теперь он точнее извлекает табличными данными. Попробуйте [в веб-демо](https://demo.dbrain.io/demo-pipelines/rus_invoices).
* Обучили новый движок распознавания текста, написанного перфорацией. Теперь сервис уверенно извлекает серию-номер с перфорированных страниц паспорта.
* Доработали извлечение данных из нестандартных банковских карт: с данными на одной стороне карты и с номером, написанным «лесенкой».
* Устранили баг из-за которого сервис замедлялся при работе с большими изображениями.
* Исправили баг, который приводил к путанице серии-номера на обратной стороне некоторых водительских удостоверений.
* Нашли и обезвредили баг, из-за которого случалось некорректное извлечение многострочного поля «Место рождения» в СНИЛС образца 2003 года.

### 4.4.9 — 2023.10.30

* Открыли доступ к новому методу проверки liveness людей на изображениях. Метод доступен по адресу `https://latest.dbrain.io/v2/face/liveness`. Полное описание читайте [в документации](/servisy/operacii-s-licami/liveness).
* Обновили метод «Базовый OCR». Он доступен по адресу `https://latest.dbrain.io/basic_ocr`. Полное описание читайте [в документации](/servisy/fulltext-recognition).
* Выпустили новую версию веб-демо — [demo.dbrain.io](https://demo.dbrain.io/). В ней доступен новый Антифрод.
* Теперь возвращаем в прописках раскладку адреса по классификатору адресов КЛАДР.

### 4.4.7 — 2023.10.16

* Открыли доступ к сервису проверки подлинности изображений документов. Метод доступен по адресу `https://latest.dbrain.io/check/fraud`. Полное описание [читайте в документации](https://docs.dbrain.io/proverka-dokumentov/priznaki-poddelki).
* Реализовали новый метод проверки работоспособности сервиса. Метод доступен по адресу `https://latest.dbrain.io/healthcheck.` Более подробное описание [читайте в документации](/#proverka-rabotosposobnosti-servisa).
* Исправили возврат координат полей в прописках.

### 4.4.4 — 2023.09.28

* Открыли доступ к новым методам сравнения лиц `https://latest.dbrain.io/v2/face/distance` и селфи `https://latest.dbrain.io/v2/face/selfie`. Чтобы начать ими пользоваться, перепишите интеграцию с нашим сервисом, [используя документацию](https://docs.dbrain.io/operacii-s-licami). От текущих версий этих методов откажемся со временем, поэтому рекомендуем начать переход на новые уже сейчас.
* Научили метод `recognize` возвращать область документа из изображения. Чтобы воспользоваться, передайте параметр `return_crops=true`, тогда в ответе появится массив `doc_crops`.
* Добавили виды топонимов в адресах прописок в полях `address` и `street`. Теперь вместо «Энтузиастов» возвращаем «Шоссе Энтузиастов».
* Снова доступен возврат даты регистрации в прописках.

### 4.2.5 — 2023.06.02

* Обновили классификатор документов — теперь он меньше путает типы документов. Обратные стороны водительских удостоверений, например.
* Вернули поддержку параметра doc\_type в методе recognize. Теперь можно выбрать из каких типов документов, которые лежат в файле, сервис должен извлекать данные.
* Вернули извлечение следующих полей из штампов прописок:
  * код подразделения — subdivision\_code
  * место выдачи — issuing\_authority
  * регион — region
  * город — locality
  * улица — street
  * дом — house
  * квартира — apartment
* Теперь возвращаем из штампов прописок ещё два поля:
  * address\_gar — адрес в формате муниципального деления по справочнику ГАР
  * fias\_id — код адреса по справочнику ФИАС
* Включили нормализацию адреса по справочнику ФИАС в штампах прописок по умолчанию.

### **4.0.0 — 2023.03.29**

Переписываем ядро системы сервисов распознавания. Переносим функционал в новую версию, но пока часть запросов будет продолжать обрабатываться через версию 3.7.8. И для локальной установки мы по-прежнему рекомендуем версию 3.7.8.

Основные моменты: ﻿﻿

* API сделали обратно-совместимым. На вашей стороне ничего не нужно менять.
* Скорость обработки одного документа сократилась до 1 секунды.
* Добавили извлечение поля «Серия и номер» с разворота «Место жительства» паспорта РФ.

### 3.7.8 — 2022.12.07

**Обновления**

* Обновили детектор отфотошопленных паспортов РФ. Теперь он идентифицирует больше способов подделки. Воспользоваться им можно с помощью параметра **check\_fake\_visual** методов recognize и classify.
* Обучили классификатор различать новые виды документов:
  * Паспорт: Азербайджан 2013, Кыргызстан 2021, Молдавия 2014, Армения, Беларусия 1996, Казахстан 2014, Узбекистан 2011 и 2020;
  * Загранпаспорт: Украина 2015;
  * Лицевая и обратная сторона ID-карт Азербайджана 2012 и 2018 годов.
* Переписали алгоритм, вычисляющий чёткость изображения. Теперь при оценке чёткости можно полностью полагаться на его показатели.
* Научили алгоритм вычислять уровень уверенности для поля «кем выдано» в штампах прописки.
* Дополнили ответ метода recognize координатами и ориентацией документа, по аналогии с ответом метода classify.

### 3.7.7 — 2022.10.05

**Обновления**

* Подняли точность детектора отфотошопленных паспортов РФ. Воспользоваться им можно с помощью параметра **check\_fake\_visual** методов recognize и classify
* Научили классификатор документов сообщать уровень уверенности в корректности классификации. Методы recognize и classify теперь возвращают параметр **confidence**
* Научились распознавать документы СТД-Р и 182н

**Багфиксы**

* Починили метод fulltext, он сломался в предыдущем релизе

### 3.7.5 — 2022.08.01

**Обновления**

* Научились классифицировать вид на жительство и свидетельство о регистрации по месту пребывания
* Добавили распознавание полей «название подразделения» и «код подразделения» в штампах о регистрации

**Багфиксы**

* Исправили ошибку с некорректной работой ручки face/distance на повёрнутых изображениях

### 3.7.4 — 2022.07.07

**Обновления**

* Обучили детектор отфотошопленных паспортов России. Воспользоваться им можно с помощью параметра **check\_fake\_visual** методов recognize и classify
* Научились распознавать ЭПТС
* Подняли качество распознавания обеих сторон СТС
* Добавили настройку предельного времени ручного распознавания с помощью параметра **hitl\_deadline\_seconds**

**Багфиксы**

* Исправили ошибку при чтения некоторых вариантов TIFF-файлов

### 3.7.3 — 2022.05.20

**Обновления**

* Обучили новый объединённый движок распознавания печатных и рукописных штампов прописок. Метрики точности печатных штампов выросли вдвое, рукописных — ещё на 6%
* Проапгрейдили рукописный OCR-движок для документов — теперь лучше извлекаем текст из рукописного паспорта России и европротокола
* Добавили возврат координат слов в ответ полнотекстового распознавания

**Багфиксы**

* В паспорте России, СТС, СНИЛС, свидетельстве о рождении и свидетельстве о браке отсутствовали координаты ряда полей
* Классификатор источника изображений не работал
* Бренд и марка в СТС без использования HITL возвращались одним полем

### 3.7.2 — 2022.04.29

**Обновления**

* Обучили новый движок распознавания рукописных штампов прописок в паспорте РФ: метрики точности выросли на порядок. Рекомендуем использовать нормализацию по ФИАС параметром **normalization\_fias=true.** Это даёт дополнительный прирост качества
* Обновили алгоритм поиска последнего штампа прописки, теперь он меньше ошибается
* Заменили движок распознавания зоны MRZ в паспорте РФ, теперь символы в ней распознаются намного уверенней. В результате выросли метрики точности распознавания самих паспортов
* Освежили алгоритм распознавания лицевой стороны СТС — выросли метрики по большинству полей, добавили поддержку номеров ЭПТС
* Переписали сервис чтения файлов. Теперь он поддерживает конвертацию файлов без расширения и многостраничные TIFF-файлы.

### 3.7.1 — 2022.04.06

**Обновления**

* Обновили детектор документов на изображении: он стал вдвое быстрей и точней находит границы документов
* Повысили качество распознавания всех полей главного разворота паспорта РФ. Для этого мы научили сервис выбирать между данными из машиночитаемой зоны и обычными полями
* Переработали алгоритм нормализации поля «место выдачи» в паспорте РФ. Теперь мы применяем для него расширенный словарь собственной разработки. Рекомендуем включить нормализацию для всех запросов параметром **use\_internal*****\_*****api=true**
* Убрали из библиотеки документов водительские удостоверения по форме 1999 года

### 3.6.10 — 2021.10.21

**Фичи**

* Сократили время распознавания одного документа на 0,4-0,5 секунд
* Добавили нормализацию адреса прописки с возвратом кода ФИАС. Используйте параметр **normalization\_fias=true**
* Научились извлекать из метаданных изображения широту, долготу, высоту и время снимка. Возвращаем их в поле **image\_exif**

**Багфиксы**

* Исправили возврат в ответе некорректных координат полей в случае подачи на распознавание неправильно ориентированных документов
* Перестали путать пустые развороты паспорта с разворотом «Место жительства»
* Сократили число ошибок 500 при распознавании штампов прописок
* Уточнили зону замазывания даты регистрации в штампе прописок перед отправкой на ручное распознавание: она больше не перекрывает часть адреса

### 3.6.8 — 2021.10.12

**Повысили качество**

* 2-НДФЛ

**Фичи**

* Научили метод /fulltext\_by\_lines распознавать русский рукописный текст. Для распознавания укажите в параметре language значение **handwritten\_rus**.
* Научили сервис обрабатывать изображения в формате **HEIF**.
* Добавили в методы /recognize и /classify массив **task\_tags**, в котором можно указывать произвольные тэги запросов. Функцию можно использовать для сверки биллинга в случае с объединением документов в пакеты.
* Добавили в методы /recognize и /classify параметр **return\_crops**. В положении false сервис перестаёт возвращать изображения. Функцию можно использовать для экономии трафика и для удобства отладки — с ней ответ сервиса становится более читабельным.
* Добавили в метод /recognize параметр **first\_occurrence\_only**. В положении true при обработке PDF сервис возвращает только первый найденный документ запрашиваемого класса. Это позволяет сократить время ответа сервиса.
* Сервис теперь замазывает дату регистрации в штампе прописки перед отправкой на ручное распознавание

### 3.5.12 — 2021.03.31

#### Фичи

* Добавили параметр **`merge_and_name`** в методе **`/recognize`**. Укажите в нём нужное вам название, чтобы объединить все распознанные поля всех документов в один документ.
* Dbrain теперь генерирует более осмысленные логи, которые удобней читать

#### Багфиксы

* Исправили возврат некорректных координат полей в методе **`/recognize`**
* Научились распознавать 2-НДФЛ и счета-фактуры в закрытом IT-контуре, раньше модель однократно подгружалась из Интернета
* Теперь возвращаем корректное значение серии-номера СТС на образцах, где ГИБДД продублировала их дважды

### 3.5.10 — 2021.03.05

**Добавили документы**

* Паспорт Украины 1994 года, машинопечатный образец, второй разворот

**Повысили качество**

* Обновили алгоритм распознавания полнотекстовых документов в методе **`fulltext_by_lines.`** Качество распознавания выросло. Метод теперь возвращает результаты в виде отдельных слов, а не строчек
* Усилили классификатор дополнительным обучением на паспортах Украины
* Научились лучше распознавать ФИО и даты на главном развороте паспортов Украины образца 1994 года

**Багфиксы**

* Исправили ошибку в эвристиках СТС. В единичных случаях баг приводил к возврату полей, не соответствующих документации

**Фичи**

* Добавили параметр **`hitl_field_to_recognize.`** В нём можно перечислить поля документа, которые нужно распознать вручную
* Методы **`/selfie`** , **`/distance`** и **`/face`** теперь возвращают вырезанные из изображений лица, их координаты и угол поворота; метод **`/selfie`**&#x432;озвращает тип документа на изображении
* Добавили возврат пороговых значений confidence для целевого уровня точности распознавания в методе **`/metrics`**

### 3.5.8 — 2021.02.19

**Повысили качество**

* Обновили алгоритмы поиска и сравнения лиц. Dbrain теперь лучше находит лица на сложных изображениях и обеспечивает отсутствие ложноположительных результатов сравнения
* Паспорт России, главный разворот: повысили качество распознавания серии-номера
* Паспорт Украины образца 2016 года: лицевая и обратная сторона
* Паспорт Украины образца 1994 года, машинопечатный образец, главный разворот

**Багфиксы**

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

**Фичи**

* Добавили новый класс документа — **`passport_registration_handwritten.`** Он присваивается страницам паспорта, в которых последняя печать о регистрации рукописная.
* Добавили возврат л.с. и кВт в ПТС отдельными полями **`engine_hp`** и **`engine_kw`**
* Добавили комплексную проверку паспорта по внешним источникам. Она доступна в параметре **`external_check_passport_complex`**
* Добавили возможность посимвольного возврата текста полей документов с ручного распознавания. За это отвечает новый параметр **`hitl_symbol_field`.** Для перечисленных в нём полей вернётся второй вариант ответа без нормализации по словарям и маскам.

### 3.5.7 — 2021.02.03

**Добавили документы**

* Удостоверение личности Казахстана 2014 года: лицевая и обратная сторона
* Удостоверение личности Казахстана 1994 года: лицевая и обратная сторона

**Повысили качество**

* Научились уверенно распознавать половинки разворотов ПТС
* Добавили эвристику к полю «Код подразделения» в Паспорте РФ, теперь поле возвращается строго по маске ddd-ddd

**Багфиксы**

* Исправили баг с некорректным значением параметра rotation в ответе классификатора
* Исправили ошибку при использовании параметра **check\_fake** на некоторых изображениях

**Фичи**

* Оптимизировали работу решения под нагрузкой
* Локальные версии Dbrain теперь используют меньше подключений к MongoDB
* Полностью переписали алгоритм обработки PDF. Теперь не нужно указывать дополнительные параметры в запросе, а PDF обрабатываются намного быстрее.
* Научили классификатор возвращать четыре новых параметра, описывающих качество входящего изображения:

  * **image\_exposure**
    * normal — нормальные
    * overexposed — переэкспонированные, пересвеченные
    * underexposed — недоэкспонированные, слишком тёмные
  * **image\_blured** — смазанные
  * **low\_image\_resolution** — недостаточное разрешение изображения
  * **low\_image\_weight** — недостаточный вес изображения.

  Допустимые значения вы можете задать самостоятельно в запросе к классификатору.
* Добавили возможность распознавания смешанного русско-английского текста в неструктурированных документах в методе **full\_text\_by\_lines**, для этого нужно выбрать язык **multilang**
* Научились распознавать QR-коды на документах
* Добавили возврат HTTP Status Code **213** для редких кейсов, когда ручное распознавание не уложилось в предельный SLA по времени

### 3.5.6 — 2020.12.23

**Повысили качество**

* Рукописный паспорт России
* Обратная сторона ВУ-2011 и ВУ-2014: поля «особые отметки», «серия-номер»
* Обратная сторона СТС
* 2-НДФЛ: поле «месяц»
* Алгоритм поиска границ документа теперь лучше справляется с разворотами документов, например с паспортами

**Фичи**

* Добавили проверки документов по базам через наших партнёров — IDX. За это отвечают параметры API `external_check_***`
* Добавили возможность указывать в конфигах локальной версии Dbrain параметры Redis: хост, порт, логин и пароль

### 3.5.5 — 2020.11.27

#### Добавили документы

* Рукописный паспорт России
* Паспорт Украины образца 2016 года: лицевая и обратная сторона
* Паспорт Украины образца 1994 года, машинопечатный образец, главный разворот
* Удостоверение личности Казахстана 2008 года: лицевая и обратная сторона

#### Повысили качество

* Машинопечатный паспорт России
* ПТС: лицевая сторона
* 2-НДФЛ — теперь распознаём все поля

#### Исправили

* Устранили редкую ситуацию с зависанием задачи
* Добавили обработку файлов с некорректным расширением, например **`image.jpg?=`**
* Исправили несколько сценариев в алгоритме распознавания, которые приводили к внутренней ошибке 500.

### 3.5.4 — 2020.11.03

#### Повысили качество

* Доработали распознавание «половинок» главного разворота Паспорта России и ПТС
* Обучили алгоритм поиска границ документов аккуратней обращаться с документами, в которых «подвал» находится на расстоянии от основной части документа.

#### Исправили

* Локальные версии Dbrain больше не пишут избыточный объём логов на накопитель

### 3.5.3 — 2020.10.30

#### Повысили качество

* Научили классификатор корректно обрабатывать половинки документов, например одну страницу паспорта вместо разворота.

**Фичи**

* Добавили параметр **`priority`** для асинхронных запросов. Чем больше число, тем раньше балансировщик возьмёт запрос из очереди в обработку.
* Добавили эндпоинт **`/cancel`** для асинхронных запросов. С его помощью можно отменить запрос, если он потерял актуальность. Это позволит быстрее получить результаты других запросов.

#### Прочие улучшения

* Dbrain теперь эффективно обрабатывает большое число одновременных запросов.

### 3.5.2 — 2020.09.30

#### Добавили документы

* Счёт-фактура **`rus_invoice`**

#### Повысили качество

* Обновили алгоритм вырезания документов из входящих изображений: теперь он лучше справляется со сложными случаями
* ВУ-2011, обратная сторона: улучшили распознавание поля «особые отметки»
* ВУ-1999, пластиковый образец: снизили число ложных распознаваний категории «А»

**Фичи**

* Добавили параметр API **`simple_cropper.`** В положении «true» применяется упрощённый алгоритм вырезания документа от фона. Результаты классификации и распознавания в этом режиме могут быть чуть менее точными. Используйте этот параметр, если экономия 1 секунды даёт вам преимущества. По умолчанию simple\_cropper не используется.

### 3.5.1 — 2020.09.23

#### Повысили качество

* ПТС, лицевая сторона: значительно улучшили поля: марка, модель, VIN, шасси, кузов; улучшения по всем остальным полям

### 3.5.0 — 2020.09.22

#### Улучшения качества распознавания документов

* Паспорт России, главный разворот: все поля
* СТС, лицевая сторона, значительно улучшили поля: марка, модель, мощность двигателя, модель двигателя, номер двигателя, серия ПТС, номер ПТС, регистрационный знак, номер кузова, VIN; незначительные улучшения по другим полям
* СТС, обратная сторона, значительно улучшили поля: город, имя, фамилия, отчество, республика.
* Загранпаспорт России 2007, улучшили поля: имя, орган
* Загранпаспорт России 2014, улучшили поля: имя, место рождения
* ВУ-1999, бумажные, лицевая сторона: нижняя серия-номер теперь возвращается латиницей

#### Прочие улучшения

* Скорректировали подсчёт уровня уверенности распознавания **`confidence`**
* Обновили библиотеки обработки изображений и конвертации PDF
* Паспорт России, прописка: дополнительно возвращаем информацию из печати с разбивкой на поля

### 3.4.7 — 2020.09.19

#### Добавили документы

* СНИЛС: пластиковый образец
* Полис ОМС: пластиковый образец Москвы

#### Повысили качество

* Паспорт России, разворот с прописками: улучшили распознавание штампов прописки
* ВУ-2011, обратная сторона, улучшили поля: C, CE
* ВУ-2014, обратная сторона, улучшили поля: C, C1, CE, C1E
* СТС, обратная сторона, улучшены поля: фамилия, дата, серия, номер и город
* Свидетельство о рождении, добавили поля: место рождения, запись акта о рождении, место государственной регистрации, серия, номер
* Свидетельство о заключении брака, добавили поля: запись акта о заключении брака, место государственной регистрации, серия, номер
* Свидетельство о расторжении брака, добавили поля: запись акта о расторжении брака, место государственной регистрации, серия, номер
* Свидетельство о смерти, добавили поля: запись акта о смерти, место государственной регистрации, серия, номер

#### Исправили

* Устранили утечку памяти

### 3.4.6.1 — 2020.09.03

#### Фичи

* Новая веб-демо для локальной версии коробки по аналогии с [demo.dbrain.io](https://demo.dbrain.io)
* Новый параметр API **`hitl_async=true`** разрешает возврат неполного состава полей документа не дожидаясь окончания распознавания всех полей. Параметр работает только при использовании режима ручного распознавания документов **`with_hitl=true`**. В параметре **`hitl_required_fields`** нужно перечислить названия полей документа, после обработки которых HITL может возвращать неполный ответ. Ответ с неполным составом полей сопровождается кодом 202, полный — кодом 200.
* Параметр **`use_external_api`** получил статус устаревшего. Обогащение ответов из внешних источников теперь контролируется в конфигах локальных версий.

#### Исправили

* Вернули качество распознавания заграничных паспортов России 2007 и 2014 из версии 3.4.5.
* Добавили обнуление уверенности в распознавании поля **`confidence`**, если ответ системы не удалось привести к допустимому значению. В поле ответа в таком случае будет пустая строка **`"text": ""`** .
* Исправили поля серия и номер в заграничном паспорте России 2014 года, в версии 3.4.6 они были перепутаны.

### 3.4.6 — 2020.08.24

#### Добавили документы

* Свидетельство о рождении
* Свидетельство о заключении брака
* Свидетельство о расторжении брака
* Свидетельство о смерти
* Полис ОМС: пластиковый образец (лицевая и обратная сторона)
* Полис ОМС: бумажный образец (лицевая сторона)

#### Повысили качество

* СТС, лицевая сторона: улучшено поле «тип ТС»

#### **Фичи**

* Ускорили работу решения: модули классификации и распознавания работают на 2-3 секунды быстрее


# Классификация документов

Проверяем наличие требуемого списка документов в файле и аккуратно раскладываем их по типам

![](/files/YCAhoCYGkKrQMt5d4yJo)

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

## Сервис классификации:

1. Работает с фотографиями и сканами документов.
2. Находит на изображении все документы, даже если на одном скане присутствуют сразу паспорт, СНИЛС и водительские права.
3. Отделяет документы от фона. Например, от рук, столов или обоев в цветочек.
4. Поворачивает и при необходимости зеркально отражает документ.
5. Присваивает тип каждому найденному документу. Вы можете посмотреть, какие документы мы умеем классифицировать, в разделе [«Типы документов»](/obshaya-informaciya/tipy-dokumentov).

{% hint style="info" %}
Обратите внимание, что классификатор может вернуть в API такие типы:

* **other** — документ неизвестного типа
* **not\_document** — не документ, например, фото кота
* **empty** — пустая страница
  {% endhint %}

## Как начать работать с сервисом классификации документов

Есть 4 популярных способа взаимодействия с сервисом. Для любого из них вам нужен ключ лицензии. Чтобы получить ключ, напишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>.

Подготовьте изображение документа для теста. Если у вас такого нет, используйте [паспорт РФ из Википедии](https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%81%D0%BF%D0%BE%D1%80%D1%82_%D0%B3%D1%80%D0%B0%D0%B6%D0%B4%D0%B0%D0%BD%D0%B8%D0%BD%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B9_%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8#/media/%D0%A4%D0%B0%D0%B9%D0%BB:Pasport_RF.jpg).

<details>

<summary>Через терминал</summary>

Обратитесь к методу `/classify` по адресу [latest.dbrain.io](https://latest.dbrain.io/). В этом способе только два обязательных параметра:

* `token` — ваш ключ лицензии
* `image` — файл с изображением документа

Запрос curl должен выглядеть так:

```bash
curl -X 'POST' \
  'https://latest.dbrain.io/classify?token=xxx' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'image=@image.jpg;type=image/jpeg'
```

</details>

<details>

<summary>Через Swagger</summary>

* Подготовьте ключ лицензии
* Откройте [Swagger](https://latest.dbrain.io/docs) и нажмите кнопку `Authorize` в правом верхнем углу
* Введите свой токен в любое поле и нажмите `Authorize`
* Прокрутите вниз до раздела `/pipelines/run/classify`, нажмите на него
* В открывшемся разделе нажмите на кнопку `Try it out`
* Прокрутите страницу вниз до раздела `Request body`
* Нажмите на кнопку `Выберите файл` пункта `image`
* Укажите изображение, которое нужно распознать
* Нажмите кнопку `Execute`
* Ответ сервиса появится в пункте `Response body` раздела `Responses`
* Полученный на этом этапе `Curl` мы рекомендуем использовать как основу для написания интеграции с API сервиса Dbrain

</details>

<details>

<summary>Через веб-демо</summary>

1. Откройте [demo.dbrain.io](https://demo.dbrain.io)
2. Введите ключ лицензии в поле «Введите токен»
3. Нажмите кнопку «Выберите файлы для распознавания»
4. Укажите изображение, которое нужно распознать
5. Нажмите кнопку «Классифицировать»

</details>

<details>

<summary>Через Python</summary>

{% code overflow="wrap" %}

```python
import requests

url = 'https://latest.dbrain.io/classify?token=xxx'
files = {'image': open('image.jpg', 'rb')}
headers = {'accept': 'application/json'}

response = requests.post(url, headers=headers, files=files)
```

{% endcode %}

Код использует библиотеку `requests` для отправки POST-запроса с файлом изображения. Функция `open()` используется для открытия файла изображения в двоичном режиме и передачи его в параметр `files`. Параметр `headers` используется для установки заголовка `accept` в значение `application/json`. Ответ от сервера сохраняется в переменной `response`.

Тело запроса передавайте в кодировке `UTF-8`.

</details>

## Параметры запроса к API

#### **Возврат найденных областей изображения**

{% hint style="success" %}
**return\_crops — boolean**
{% endhint %}

Поведение по умолчанию: **return\_crops**`=true` — сервис возвращает изображения найденных документов в параметре `crop`.

Если вам не нужны найденные сервисом изображения документов (например, в целях экономии трафика), укажите **return\_crops**`=false`.

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

## В ответе API:

* `task_id` — string, идентификатор запроса, формат: 32 символа, 16-ричная строка
* `items` — массив, который содержит найденные документы
  * `document` — объект, который содержит один из найденных документов
    * `type`— string, тип найденного документа, возможные типы перечислены в таблице выше
    * `rotation` — integer, ориентация документа
    * `coords` — массив, координаты документа на изображении по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
    * `page` — integer, номер страницы, на котором найден документ, актуально для многостраничных форматов, например PDF
    * `confidence` — number, уровень уверенности алгоритма в корректности определения типа документа
  * `crop` — $string, изображение документа, отделённое от фона и правильно ориентированное, в бинарном формате
* `task_tags` — массив string, теги, если они переданы в параметре `task_tags`
* `page_count` — integer, число страниц в файле, актуально для PDF и DJVU
* `docs_count` — integer, число распознанных документов в файле
* `traceback` — string, сообщение об ошибке, которое содержит информацию о том, где произошла ошибка в коде и какие функции были вызваны перед ней. Это сообщение может помочь разработчикам понять причину возникновения ошибки и исправить ее. Передайте её нашей службе поддержки.

{% hint style="info" %}
Остальные поля не несут практического смысла. Оставили их для совместимости со старыми версиями.
{% endhint %}


# Извлечение данных

Извлекаем данные из изображений документов и возвращаем их в структурированном виде

Полученные из сервиса данные можно использовать для предзаполнения онлайн-форм, сравнения с данными в CRM-системах, идентификации клиента и в десятках других бизнес-сценариев.

**Что делает сервис:**

* Находит документы на фото и сканах
* Обрабатывает многостраничные файлы в форматах PDF и DJVU
* Отделяет документы от фона — бабушкиных ковров и узорчатых скатертей
* Поправляет повёрнутые и зеркально отражённые документы
* Извлекает данные из некачественных фото:
  * обрезанные;
  * смазанные;
  * бликующие;
  * с наложением посторонних предметов.

{% hint style="info" %}
Если вы собираетесь работать только с качественными документами, воспользуйтесь [сервисами проверки](/servisy/proverka-dokumentov) **перед** извлечением данных
{% endhint %}

## Как начать работать с сервисом извлечения данных

Есть 5 популярных способов взаимодействия с сервисом. Для любого вам нужен ключ лицензии. Чтобы получить ключ, напишите нам в [телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>.

Подготовьте изображение документа для теста. Если у вас такого нет, используйте [паспорт РФ из Википедии](https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%81%D0%BF%D0%BE%D1%80%D1%82_%D0%B3%D1%80%D0%B0%D0%B6%D0%B4%D0%B0%D0%BD%D0%B8%D0%BD%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B9_%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8#/media/%D0%A4%D0%B0%D0%B9%D0%BB:Pasport_RF.jpg).

<details>

<summary>Через веб-демо</summary>

1. Откройте [demo.dbrain.io](https://demo.dbrain.io)
2. Введите ключ лицензии в поле «Токен» и нажмите «Применить»
3. Выберите «Документы с чёткой структурой»
4. Нажмите кнопку «Выберите файл для распознавания»
5. Укажите изображение, которое нужно распознать
6. Нажмите кнопку «Распознать»

</details>

<details>

<summary>Через терминал</summary>

Обратитесь к методу `/recognize` по адресу [latest.dbrain.io](https://latest.dbrain.io/). В этом способе только два обязательных параметра:

* `token` — ваш ключ лицензии
* `image` — файл с изображением документа

Запрос curl должен выглядеть так:

```bash
curl -X 'POST' \
  'https://latest.dbrain.io/recognize?token=xxx' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'image=@image.jpg;type=image/jpeg'
```

</details>

<details>

<summary>Через Swagger</summary>

* Подготовьте ключ лицензии
* Откройте [Swagger](https://latest.dbrain.io/docs) и нажмите кнопку `Authorize` в правом верхнем углу
* Введите свой токен в любое поле и нажмите `Authorize`
* Прокрутите вниз до раздела `/pipelines/run/recognize`, нажмите на него
* В открывшемся разделе нажмите на кнопку `Try it out`
* Прокрутите страницу вниз до раздела `Request body`
* Нажмите на кнопку `Выберите файл` пункта `image`
* Укажите изображение, которое нужно распознать
* Нажмите кнопку `Execute`
* Ответ сервиса появится в пункте `Response body` раздела `Responses`
* Полученный на этом этапе `Curl` мы рекомендуем использовать как основу для написания интеграции с API сервиса Dbrain

</details>

<details>

<summary>Через Python</summary>

{% code overflow="wrap" %}

```python
import requests

url = 'https://latest.dbrain.io/recognize?token=xxx'
files = {'image': open('image.jpg', 'rb')}
headers = {'accept': 'application/json'}

response = requests.post(url, headers=headers, files=files)
```

{% endcode %}

Код использует библиотеку `requests` для отправки POST-запроса с файлом изображения. Функция `open()` используется для открытия файла изображения в двоичном режиме и передачи его в параметр `files`. Параметр `headers` используется для установки заголовка `accept` в значение `application/json`. Ответ от сервера сохраняется в переменной `response`.

Тело запроса передавайте в кодировке `UTF-8`.

</details>

<details>

<summary>Через 1С</summary>

```bsl
Функция РаспознатьДокумент(ПакетДвоичныеДанные, ИмяФайла) Экспорт
	// готовит HTTP-запрос, включая заголовки и тело, и отправляет его на сервер.
	ПараметрыЗапроса ="?token=B000000000000000000000"; // токен необходимо получить собственный!
	РазделительМультисообщения = "----MessageBoundary1C";

	HTTPЗапрос = Новый HTTPЗапрос("/recognize"+ПараметрыЗапроса);
	HTTPЗапрос.Заголовки.Вставить("accept", "application/json");
	HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + РазделительМультисообщения);

	ТелоПоток = Новый ПотокВПамяти();
	
	ЗаписьДанных = Новый ЗаписьДанных(ТелоПоток); 
	ЗаписьДанных.ЗаписатьСтроку("--" + РазделительМультисообщения);
	ЗаписьДанных.Записать(СоздатьСообщение_XML("image", ИмяФайла, ПакетДвоичныеДанные)); 
	ЗаписьДанных.ЗаписатьСимволы(Символы.ВК); 
	ЗаписьДанных.ЗаписатьСимволы(Символы.ПС);
	ЗаписьДанных.ЗаписатьСтроку("--" + РазделительМультисообщения + "--");
	ЗаписьДанных.Закрыть();
	
	ТелоДвоичныеДанные = ТелоПоток.ЗакрытьИПолучитьДвоичныеДанные();
	
	Попытка
		Соединение = Новый HTTPСоединение("latest.dbrain.io",
										443,
										,
										,
										,
										60,	
										ЗащищенноеСоединение());
	Исключение
		Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));	
	КонецПопытки;

	HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(ТелоДвоичныеДанные);
	Возврат Соединение.ОтправитьДляОбработки(HTTPЗапрос);
	
КонецФункции	

Функция ЗащищенноеСоединение() 
	
	ЗащищенноеСоединение = Неопределено;
	
	СистемнаяИнфо = Новый СистемнаяИнформация;
	ТипПлатформыСервера = СистемнаяИнфо.ТипПлатформы;

	Если ТипПлатформыСервера = ТипПлатформы.Windows_x86
		Или ТипПлатформыСервера = ТипПлатформы.Windows_x86_64 Тогда
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
		Новый СертификатКлиентаWindows(),
		Новый СертификатыУдостоверяющихЦентровWindows());
	Иначе
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
	КонецЕсли;
	
	Возврат ЗащищенноеСоединение;
	
КонецФункции

Функция СоздатьСообщение_XML(ИмяСообщения, ИмяФайла, СообщениеДвоичныеДанные)   
	
	Поток = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(Поток);
	// Заголовки
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""" + ИмяСообщения + """; filename=""" + ИмяФайла + """");
	Если Прав(ИмяФайла, 4) = ".xml" Тогда
		ТипMIME = "text/xml";
	ИначеЕсли Прав(ИмяФайла, 4) = ".pdf" Тогда
		ТипMIME = "application/pdf";
	Иначе
		ЧастиИмени = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяФайла, ".");
		Если ЧастиИмени.Количество() > 1 Тогда
			ТипMIME = "image/" + ЧастиИмени[ЧастиИмени.ВГраница()];	
		КонецЕсли;
	КонецЕсли;                                
	ЗаписьДанных.ЗаписатьСтроку("Content-Type: " + ТипMIME);
	ЗаписьДанных.ЗаписатьСтроку("");
	// Тело
	ЗаписьДанных.Записать(СообщениеДвоичныеДанные);
	ЗаписьДанных.Закрыть();

	Возврат Поток.ЗакрытьИПолучитьДвоичныеДанные();
		
```

</details>

## Параметры запроса к API

Вы можете использовать эти параметры с любыми видами документов.

#### Проверка типа документа

{% hint style="success" %}
**doc\_type — string array**
{% endhint %}

Поведение по умолчанию: сервис извлекает данные из всех [поддерживаемых типов документов](/obshaya-informaciya/tipy-dokumentov), которые классификатор документов найдёт в файле.

Если вам нужно извлечь данные только из одного типа документа, укажите этот тип в параметре `doc_type:`

* Для извлечения данных только из главного разворота Паспорта РФ укажите `doc_type=passport_main`
* Для извлечения данных из нескольких типов документов допишите их в запрос через `&doc_type=`. Например, вам нужен главный разворот и прописка Паспорта РФ. В запросе это будет выглядеть так: `doc_type=passport_main&doc_type=passport_registration`

#### Режим распознавания

{% hint style="success" %}
**mode — string**
{% endhint %}

Поведение по умолчанию: `mode=default`

Вы можете использовать сервис [классификации документов](/servisy/document-classification) отдельно от сервиса извлечения данных. Построить разную логику обработки документов в зависимости от того какие типы документов классификатор нашёл на изображении.

Для этого передайте сервису извлечения данных результаты работы классификатора: изображение в параметре `image` и тип документа в параметре `doc_type`, а также укажите `mode=recognize_only`. В таком случае сервис не будет запускать лишнюю классификацию документа и вы быстрее получите ответ.

#### **Возврат найденных изображений документов**

{% hint style="success" %}
**return\_crops&#x20;*****—*****&#x20;boolean**
{% endhint %}

Поведение по умолчанию: `return_crops=false` — cервис не возвращает найденные изображения документов.

Если вам нужны найденные сервисом изображения документов, укажите `return_crops=true.` Сервис вернёт в ответе API изображение в параметре crop.

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

## В ответе:

* `task_id` — string, идентификатор запроса, формат: 32 символа, 16-ричная строка
* `items` — массив, который содержит распознанные документы
* `doc_type` — string, тип документа, все типы перечислены в [классификации документов](/obshaya-informaciya/tipy-dokumentov)
  * `fields` — string, поля документа, список полей по каждому документу приведён в **API-спецификация в** [**Google таблице**](https://docs.google.com/spreadsheets/d/1_rN49no9kxDZb6rjwQtMlSZr8FO0mIE3qVQ2oPFIAZ4/edit#gid=0)**.**
    * `text` — string, текст поля документа
    * `confidence` — number, уровень уверенности алгоритма в корректности извлечения данных из поля
    * `coords` — массив, координаты поля на документе, вырезанного и правильно ориентированного, по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
  * `doc_coords` — массив, координаты документа на оригинальном изображении по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
  * `confidence` — number, уровень уверенности алгоритма в корректности определения типа документа
* `task_tags` — массив string, теги, если они переданы в параметре task\_tags
* `page_count` — integer, число страниц в файле, актуально для PDF и DJVU
* `docs_count` — integer, число распознанных документов в файле
* `traceback` — string, сообщение об ошибке, которое содержит информацию о том, где произошла ошибка в коде и какие функции были вызваны перед ней. Это сообщение может помочь разработчикам понять причину возникновения ошибки и исправить ее. Передайте её нашей службе поддержки.

{% hint style="info" %}
Остальные поля не несут практического смысла. Оставили их для совместимости со старыми версиями
{% endhint %}

У каждого типа документа есть свои особенности извлечения. Изучите то, что нужно вам, тут:

* [Паспорт РФ](/servisy/izvlechenie-dannykh/pasport)
* [Паспорт РФ: прописка](/servisy/izvlechenie-dannykh/pasport-propiska)
* [Водительское удостоверение](/servisy/izvlechenie-dannykh/voditelskoe-udostoverenie)
* [Свидетельство о регистрации транспортного средства РФ](/servisy/izvlechenie-dannykh/sts)
* [Первичные бухгалтерские документы](/servisy/izvlechenie-dannykh/bukhgalterskaya-pervichka)
* [Договоры, уставы, решения, приказы](/servisy/izvlechenie-dannykh/dogovory)
* [Прочие документы](/servisy/izvlechenie-dannykh/prochie-dokumenty)


# Паспорт

Извлекаем данные из паспорта гражданина РФ: главный разворот, стр. 3-4

Актуальная форма паспорта выдаётся с 1 октября 1997 года. С 1 июля 2011 года в паспорте заполняются нижние две строки с машиночитаемыми записями (МЧЗ). Сервис извлекает данные как из визуальных полей, так и из МЧЗ. При выборе между ними, сервис ориентируется на контрольные суммы в МЧЗ и читабельность данных визуальных полей.

<figure><img src="/files/x0rpBmEeFKXNeBeQPR5A" alt="" width="375"><figcaption><p>Пример документа из <a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%81%D0%BF%D0%BE%D1%80%D1%82_%D0%B3%D1%80%D0%B0%D0%B6%D0%B4%D0%B0%D0%BD%D0%B8%D0%BD%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B9_%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8">Wikipedia</a></p></figcaption></figure>

{% hint style="success" %}
Тип документа в API: `passport_main`
{% endhint %}

### Перечень извлекаемых полей

<table><thead><tr><th width="204.33333333333331">Поле</th><th width="205">Название в API</th><th>Формат поля</th></tr></thead><tbody><tr><td>Серия и номер</td><td><code>series_and_number</code></td><td>4 цифры, пробел, 6 цифр</td></tr><tr><td>Имя</td><td><code>first_name</code></td><td>Русский алфавит</td></tr><tr><td>Фамилия</td><td><code>surname</code></td><td>Русский алфавит</td></tr><tr><td>Отчество</td><td><code>other_names</code></td><td>Русский алфавит</td></tr><tr><td>Пол</td><td><code>sex</code></td><td><code>муж.</code> или <code>жен.</code></td></tr><tr><td>Дата рождения</td><td><code>date_of_birth</code></td><td>дд.мм.гггг</td></tr><tr><td>Место рождения</td><td><code>place_of_birth</code></td><td>Русский алфавит</td></tr><tr><td>Дата выдачи</td><td><code>date_of_issue</code></td><td>дд.мм.гггг</td></tr><tr><td>Код подразделения</td><td><code>subdivision_code</code></td><td>3 цифры, тире, 3 цифры</td></tr><tr><td>Паспорт выдан</td><td><code>issuing_authority</code></td><td>Русский алфавит</td></tr><tr><td>МЧЗ, строка 1</td><td><code>mrz_1</code></td><td>Латинский алфавит, цифры, &#x3C;></td></tr><tr><td>МЧЗ, строка 2</td><td><code>mrz_2</code></td><td>Латинский алфавит, цифры, &#x3C;></td></tr><tr><td>Номер разворота</td><td><code>page_number</code></td><td><a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%81%D0%BF%D0%BE%D1%80%D1%82_%D0%B3%D1%80%D0%B0%D0%B6%D0%B4%D0%B0%D0%BD%D0%B8%D0%BD%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B9_%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8#%D0%91%D0%BB%D0%B0%D0%BD%D0%BA_%D0%BF%D0%B0%D1%81%D0%BF%D0%BE%D1%80%D1%82%D0%B0">Номера страниц</a> главного разворота паспорта. Всегда возвращает 2-3</td></tr></tbody></table>

{% hint style="danger" %}
Перед началом работы изучите общее описание сервиса извлечения данных в разделе [«Извлечение данных»](/servisy/izvlechenie-dannykh). Ниже мы перечислили лишь уникальные параметры для главного разворота паспорта
{% endhint %}

## Параметры запроса к API

#### Нормализация поля «Паспорт выдан»

{% hint style="success" %}
**use\_internal\_api — boolean**
{% endhint %}

1. async
   * **Назначение**: Асинхронная обработка задач. Позволяет отправить задачу в API и получить результат через эндпоинт result.
   * **Состояние**: Работает корректно.
2. return\_crops
   * **Назначение**: Возвращает бинарное изображение вырезанного из фона и корректно сориентированного документа.
   * **Состояние**: Работает корректно.
3. task\_tags
   * **Назначение**: Метки задач, позволяющие идентифицировать и организовывать запросы по ключевым словам или строкам. Передается массив тегов.
   * **Состояние**: Работает корректно.
4. address\_division
   * **Назначение**: Разделение адреса на административные и муниципальные единицы. Используется только для прописок
   * **Состояние**: Работает, основное использование — административное деление(районы, муниц. округа).
5. **check\_fake**
   * **Назначение**: Проверка метаданных изображения на подлинность, раньше использовалась в anti-fraud.
   * **Состояние**: Перенесен в антифрод, сохранён для обратной совместимости.
6. **check\_fake\_visual**
   * **Назначение**: Определение фальшивых изображений, помогает выявить отредактированные документы (например, созданные в Photoshop).
   * **Состояние**: Устарел, перенесен в антифрод; Сохранён для обратной совместимости.
7. classify\_image\_origin
   * **Назначение**: Классификация источника изображения (скан, фото и т.д.).
   * **Состояние**: Работает; улучшенная версия теперь интегрирована в антифрод.
8. doc\_type
   * **Назначение**: Определение типа документа для фильтрации и классификации. В ответ приходит только указанный тип документа.
   * **Состояние**: Работает корректно.
9. **use\_internal\_api**
   * **Назначение**: Включение нормализации места выдачи паспорта РФ с использованием внутреннего словаря.
   * **Состояние**: Перенесен в антифрод, сохранён для обратной совместимости. используется по умолчанию.
10. **use\_iqa (Image Quality Assessment)**
    * **Назначение**: Оценка качества изображения для проверки его пригодности к распознаванию.
    * **Состояние**: Работает; Предназначен для мобильных приложениях.
11. **with\_gocr**
    * **Назначение**: Используется для распознавания текста на языках СНГ и других локальных языках с редкими символами.
    * **Состояние**: Работает только в облаке; используется для специфических документов.

Поведение по умолчанию: `use_internal_api=true` — сервис нормализует поле «Паспорт выдан». Для этого он использует расширенную версию [справочника](https://github.com/hflabs/fms-unit) соответствий кода подразделения и места выдачи. Так мы повышаем точность извлечения поля «Паспорт выдан». Поэтому сервис выдаёт корректный результат даже в ситуациях, когда поле полностью нечитабельно.

В крайне редких случаях нормализация может приводить к неточному соответствию результатов распознавания поля «Паспорт выдан» и фактического текста в паспорте. Например, вместо `ОТДЕЛОМ УФМС РОССИИ ПО Г. МОСКВЕ ПО РАЙОНУ ЗЮЗИНО` сервис может вернуть `ОТДЕЛОМ УФМС РОССИИ ПО ГОРОДУ МОСКВЕ ПО РАЙОНУ ЗЮЗИНО`.

Мы не рекомендуем, но если вы всё же хотите отключить нормализацию поля «Паспорт выдан», передайте параметр `use_internal_api=false`

{% hint style="warning" %}
В России нет юридических норм, которые обязывают вас использовать в документах побуквенное воспроизведение поля «Паспорт выдан».

Например, у нашего продакта Артёма текст поля «Паспорт выдан» очень длинный и не влезает ни в одну печатную форму. Что ему делать? Артём всегда использует сокращения.

Для однозначной идентификации места выдачи документа достаточно поля «Код подразделения»
{% endhint %}

{% hint style="success" %}
Помимо извлечения данных из паспорта сервис Dbrain умеет:

* [Проверять](/servisy/proverka-dokumentov)[ действительность паспорта и находить признаки подделки файлов с документом](/servisy/proverka-dokumentov)
* [Верифицировать результаты извлечения данных в онлайн-режиме с помощью обученных людей](/servisy/manual-recognition)
* [Сравнивать фотографии из паспорта с лицом человека](/servisy/operacii-s-licami/sravnenie-lic)
  {% endhint %}


# Паспорт: прописка

Извлекаем данные из паспорта гражданина РФ: место жительства, стр. 5-12

На страницах 5-12 паспорта ФМС проставляет отметки о регистрации и снятии с регистрации по месту жительства. ФМС ставит штампы в хронологическом порядке. Сервис находит самый свежий штамп на изображении и извлекает из него данные. Остальные штампы игнорируются.

<figure><img src="/files/pTJJrWyHCgG4TjelFzfa" alt="" width="563"><figcaption><p>Паспорт РФ, разворот «Место жительства» с печатным штампом о регистрации</p></figcaption></figure>

{% hint style="success" %}
Тип документа в API:`passport_registration`
{% endhint %}

Если последний штамп отличается от машинопечатной отметки о регистрации, сервис изменит doc\_type в ответе:

* `passport_registration_handwritten` — рукописный штамп о регистрации;
* `passport_registration_deregistered` — штамп о снятии с регистрации.

### Перечень извлекаемых полей

<table><thead><tr><th width="224">Название в API</th><th>Описание</th></tr></thead><tbody><tr><td>address</td><td>Адрес</td></tr><tr><td>address_gar</td><td>Адрес по ГАР</td></tr><tr><td>apartment</td><td>Квартира</td></tr><tr><td>area</td><td>Район в регионе</td></tr><tr><td>area_fias_id</td><td>ФИАС-код района в регионе</td></tr><tr><td>area_type</td><td>Тип района в регионе (сокращенный)</td></tr><tr><td>area_type_full</td><td>Тип района в регионе</td></tr><tr><td>area_with_type</td><td>Район в регионе с типом</td></tr><tr><td>beltway_distance</td><td>Расстояние от кольцевой в километрах</td></tr><tr><td>beltway_hit</td><td>Внутри кольцевой?</td></tr><tr><td>block</td><td>Корпус/строение</td></tr><tr><td>block_type</td><td>Тип корпуса/строения (сокращенный)</td></tr><tr><td>block_type_full</td><td>Тип корпуса/строения</td></tr><tr><td>capital_marker</td><td>Признак центра района или региона:<br>1 — центр района<br>(Московская обл, Одинцовский р-н, г Одинцово)<br>2 — центр региона<br>(Новосибирская обл, г Новосибирск)<br>3 — центр района и региона<br>(Томская обл, г Томск)<br>4 — центральный район региона<br>(Тюменская обл, Тюменский р-н)<br>0 — ничего из перечисленного<br>(Московская обл, г Балашиха)</td></tr><tr><td>city_area</td><td>Административный округ (только для Москвы)</td></tr><tr><td>city_district</td><td>Адм. район города</td></tr><tr><td>city_district_fias_id</td><td>ФИАС-код адм. района города</td></tr><tr><td>city_district_kladr_id</td><td>Не заполняется</td></tr><tr><td>city_district_type</td><td>Тип адм. района города (сокращенный)</td></tr><tr><td>city_district_type_full</td><td>Тип адм. района города</td></tr><tr><td>city_district_with_type</td><td>Адм. район города с типом</td></tr><tr><td>city_fias_id</td><td>ФИАС-код города</td></tr><tr><td>city_type</td><td>Тип города (сокращенный)</td></tr><tr><td>city_type_full</td><td>Тип города</td></tr><tr><td>city_with_type</td><td>Город с типом</td></tr><tr><td>country</td><td>Страна</td></tr><tr><td>country_iso_code</td><td>ISO-код страны (двухсимвольный)</td></tr><tr><td>date</td><td>Дата регистрации/снятия с регистрации</td></tr><tr><td>divisions</td><td>Зарезервировано</td></tr><tr><td>entrance</td><td>Не заполняется</td></tr><tr><td>federal_district</td><td>Федеральный округ</td></tr><tr><td>fias_actuality_state</td><td>Признак актуальности адреса в ФИАС<br>0 — актуальный<br>1–50 — переименован<br>51 — переподчинен<br>99 — удален</td></tr><tr><td>fias_code</td><td>Зарезервировано</td></tr><tr><td>fias_id</td><td>ФИАС-код (он же код ГАР) адреса для России.<br>Идентификатор OpenStreetMap для Беларуси, Казахстана и Узбекистана.<br>Для остальных стран — идентификатор объекта в базе GeoNames.</td></tr><tr><td>fias_level</td><td>Уровень детализации, до которого адрес найден в ФИАС (ГАР):<br>0 — страна<br>1 — регион<br>3 — район<br>4 — город<br>5 — район города<br>6 — населенный пункт<br>7 — улица<br>8 — дом<br>9 — квартира или комната<br>65 — планировочная структура<br>75 — земельный участок<br>-1 — иностранный или пустой</td></tr><tr><td>flat_area</td><td>Площадь квартиры</td></tr><tr><td>flat_cadnum</td><td>Кадастровый номер квартиры</td></tr><tr><td>flat_fias_id</td><td>ФИАС-код квартиры</td></tr><tr><td>flat_price</td><td>Рыночная стоимость квартиры</td></tr><tr><td>flat_type</td><td>Тип квартиры (сокращенный)</td></tr><tr><td>flat_type_full</td><td>Тип квартиры</td></tr><tr><td>floor</td><td>Не заполняется</td></tr><tr><td>geo_lat</td><td>Координаты: широта</td></tr><tr><td>geo_lon</td><td>Координаты: долгота</td></tr><tr><td>geoname_id</td><td><a href="https://ru.wikipedia.org/wiki/GeoNames">Идентификатор объекта в базе GeoNames. Для российских адресов не заполняется.</a></td></tr><tr><td>house</td><td>Дом</td></tr><tr><td>house_cadnum</td><td>Кадастровый номер дома</td></tr><tr><td>house_fias_id</td><td>ФИАС-код дома</td></tr><tr><td>house_type</td><td>Тип дома (сокращенный)</td></tr><tr><td>house_type_full</td><td>Тип дома</td></tr><tr><td>issuing_authority</td><td>Название подразделения</td></tr><tr><td>kladr_area_code</td><td>КЛАДР-код района</td></tr><tr><td>kladr_city_code</td><td>КЛАДР-код города</td></tr><tr><td>kladr_code</td><td>КЛАДР-код адреса</td></tr><tr><td>kladr_house_code</td><td>КЛАДР-код дома</td></tr><tr><td>kladr_region_code</td><td>КЛАДР-код региона</td></tr><tr><td>kladr_settlement_code</td><td>КЛАДР-код населенного пункта</td></tr><tr><td>kladr_street_code</td><td>КЛАДР-код улицы</td></tr><tr><td>locality</td><td>Город</td></tr><tr><td>okato</td><td>Код ОКАТО</td></tr><tr><td>oktmo</td><td>Код ОКТМО</td></tr><tr><td>page_number</td><td>Номер разворота</td></tr><tr><td>postal_box</td><td>Абонентский ящик</td></tr><tr><td>postal_code</td><td>Индекс</td></tr><tr><td>qc</td><td>Не заполняется</td></tr><tr><td>qc_complete</td><td>Не заполняется</td></tr><tr><td>qc_geo</td><td>Код точности координат:<br>0 — точные координаты<br>1 — ближайший дом<br>2 — улица<br>3 — населенный пункт<br>4 — город<br>5 — координаты не определены</td></tr><tr><td>qc_house</td><td>Не заполняется</td></tr><tr><td>region</td><td>Регион</td></tr><tr><td>region_fias_id</td><td>ФИАС-код региона</td></tr><tr><td>region_iso_code</td><td>ISO-код региона</td></tr><tr><td>region_type</td><td>Тип региона (сокращенный)</td></tr><tr><td>region_type_full</td><td>Тип региона</td></tr><tr><td>region_with_type</td><td>Регион с типом</td></tr><tr><td>series_number</td><td>Серия и номер</td></tr><tr><td>settlement</td><td>Населенный пункт</td></tr><tr><td>settlement_fias_id</td><td>ФИАС-код нас. пункта</td></tr><tr><td>settlement_type</td><td>Тип населенного пункта (сокращенный)</td></tr><tr><td>settlement_type_full</td><td>Тип населенного пункта</td></tr><tr><td>settlement_with_type</td><td>Населенный пункт с типом</td></tr><tr><td>source</td><td>Не заполняется</td></tr><tr><td>square_meter_price</td><td>Рыночная стоимость м²</td></tr><tr><td>stead</td><td>номер земельного участка</td></tr><tr><td>stead_cadnum</td><td>Кадастровый номер земельного участка</td></tr><tr><td>stead_fias_id</td><td>ФИАС-код земельного участка</td></tr><tr><td>stead_type</td><td>«уч»</td></tr><tr><td>stead_type_full</td><td>«участок»</td></tr><tr><td>street</td><td>Улица</td></tr><tr><td>street_fias_id</td><td>ФИАС-код улицы</td></tr><tr><td>street_type</td><td>Тип улицы (сокращенный)</td></tr><tr><td>street_type_full</td><td>Тип улицы</td></tr><tr><td>street_without_type</td><td>Улица без типа</td></tr><tr><td>subdivision_code</td><td>Код подразделения</td></tr><tr><td>tax_office</td><td>Код ИФНС для физических лиц</td></tr><tr><td>tax_office_legal</td><td>Код ИФНС для организаций</td></tr><tr><td>timezone</td><td>Часовой пояс</td></tr><tr><td>unparsed_parts</td><td>Не заполняется</td></tr><tr><td>unrestricted_value</td><td>Адрес одной строкой (полный, с индексом)</td></tr></tbody></table>

{% hint style="danger" %}
Перед началом работы изучите общее описание сервиса извлечения данных в разделе [«Извлечение данных»](/servisy/izvlechenie-dannykh). Ниже мы перечислили лишь уникальные параметры для прописки
{% endhint %}

## Параметры запроса к API

#### Нормализация адреса

{% hint style="success" %}
**normalization\_fias — boolean**
{% endhint %}

Поведение по умолчанию: `normalization_fias=true` — сервис нормализует поле «Адрес». Для этого сервис обращается к [API сервиса Dadata.ru](https://dadata.ru/api/clean/address/#response) и возвращает адрес в [формате ФИАС](https://ru.wikipedia.org/wiki/%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0#%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0_%D0%BF%D0%BE_%D0%A4%D0%98%D0%90%D0%A1). Это повышает точность извлечения поля «Адрес». Поэтому сервис выдаёт корректный результат даже в ситуациях, когда часть адреса нечитабельна.

Нормализация приводит неструктурированный адрес к общепринятому формату, который можно сопоставлять с адресами из других источников. При этом может отсутствовать побуквенное соответствие адресу из штампа.

Мы не рекомендуем, но! Если вы хотите отключить нормализацию поля «Адрес», передайте параметр `normalization_fias=false`

{% hint style="info" %}
Если сервис Dbrain развёрнут локально, он может обращаться за нормализацией адреса к локальному сервису Dadata. Для этого укажите адрес в параметре URL\_DADATA в .env
{% endhint %}

{% hint style="success" %}
**address\_division — string**
{% endhint %}

Поведение по умолчанию: `address_division=administrative` — при обращении в [API сервиса Dadata.ru](https://dadata.ru/api/clean/address/#response) адрес возвращается только в административном делении, в поле `address`. В случае с `address_division=municipal` дополнительновозвращается значение в поле `address_gar`. Подробнее о разнице в делениях читайте в документации сервиса [Dadata.ru](https://confluence.hflabs.ru/pages/viewpage.action?pageId=1326056589).

{% hint style="success" %}
Помимо извлечения данных сервис Dbrain умеет:

* [Верифицировать результаты извлечения данных в онлайн-режиме с помощью обученных людей](/servisy/manual-recognition)
  {% endhint %}


# Водительское удостоверение

Извлекаем данные из водительского удостоверения гражданина РФ: образцы 2011 и 2014 года, лицевую и обратную сторону

Актуальная форма водительского удостоверения выдаётся с 1 марта 2011 года. В 2014 году была изменена форма обратной стороны водительского удостоверения: расширен список категорий транспортных средств. Лицевая сторона удостоверения осталась без изменений. В 2020 году на лицевую сторону добавили перевод слов «Водительское удостоверение» на английский и французский языки. Мы не считаем эти изменения существенными, поэтому сервис не различает формы 2011 и 2020 года.

## Водительское удостоверение 2011, лицевая сторона

<div align="center"><figure><img src="/files/YEyW18J09ayM1SVwqXQC" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="success" %}
`driver_license_2011_front`
{% endhint %}

### Перечень извлекаемых полей

<table><thead><tr><th width="301.3333333333333">Поле</th><th width="205">Название в API</th><th>Формат поля</th></tr></thead><tbody><tr><td>Номер</td><td>number</td><td>10 цифр</td></tr><tr><td>Имя</td><td>name</td><td>Русский алфавит</td></tr><tr><td>Фамилия</td><td>surname</td><td>Русский алфавит</td></tr><tr><td>Отчество</td><td>patronymic</td><td>Русский алфавит</td></tr><tr><td>Дата рождения</td><td>date_of_birth</td><td>дд.мм.гггг</td></tr><tr><td>Пол</td><td>sex</td><td><code>муж.</code> или <code>жен.</code></td></tr><tr><td>Место рождения</td><td>place_of_birth</td><td>Русский алфавит</td></tr><tr><td>Дата выдачи</td><td>date_from</td><td>дд.мм.гггг</td></tr><tr><td>Дата окончания срока действия</td><td>date_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория</td><td>category</td><td>A, A1, B, B1, C, C1, D, D1, BE, CE, C1E, DE, D1E, M, Tm, Tb</td></tr><tr><td>Удостоверение выдано</td><td>issuer</td><td>Русский алфавит, цифры, тире</td></tr><tr><td>Место жительства (пункт 8)</td><td>place_of_issue</td><td>Русский алфавит, цифры, тире</td></tr><tr><td>Удостоверение выдано на английском</td><td>issuer_eng</td><td>Латинский алфавит, цифры, тире</td></tr><tr><td>Место жительства на английском (пункт 8)</td><td>place_of_issue_eng</td><td>Латинский алфавит, цифры, тире</td></tr><tr><td>Имя и фамилия на английском</td><td>name_patronymic_eng</td><td>Латинский алфавит</td></tr><tr><td>Фамилия на английском</td><td>surname_eng</td><td>Латинский алфавит</td></tr><tr><td>Место рождения на английском</td><td>place_of_birth_eng</td><td>Латинский алфавит</td></tr></tbody></table>

## Водительское удостоверение 2011, обратная сторона

<div align="center"><figure><img src="/files/YdlcTNuuDRTiPbAT7Ex4" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="success" %}
`driver_license_2011_back`
{% endhint %}

### Перечень извлекаемых полей

<table><thead><tr><th width="301.3333333333333">Поле</th><th width="205">Название в API</th><th>Формат поля</th></tr></thead><tbody><tr><td>Категория A: начало</td><td>category_a_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория A: окончание</td><td>category_a_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория B: начало</td><td>category_b_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория B: окончание</td><td>category_b_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория C: начало</td><td>category_c_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория C: окончание</td><td>category_c_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория D: начало</td><td>category_d_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория D: окончание</td><td>category_d_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория BE: начало</td><td>category_be_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория BE: окончание</td><td>category_be_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория CE: начало</td><td>category_ce_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория CE: окончание</td><td>category_ce_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория DE: начало</td><td>category_de_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория DE: окончание</td><td>category_de_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория Tm: начало</td><td>category_tm_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория Tm: окончание</td><td>category_tm_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория Tb: начало</td><td>category_tb_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория Tb: окончание</td><td>category_tb_end</td><td>дд.мм.гггг</td></tr><tr><td>Штрих-код</td><td>barcode</td><td>Пока ничего не возвращаем</td></tr><tr><td>Номер</td><td>number</td><td>2 цифры, пробел, 2 цифры</td></tr><tr><td>Серия</td><td>series</td><td>6 цифр</td></tr><tr><td>Особые отметки</td><td>special_marks</td><td>Любой текст</td></tr></tbody></table>

## Водительское удостоверение 2014, обратная сторона

<div align="center"><figure><img src="/files/Op5UBPWzini3311iS0pD" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="success" %}
`driver_license_2014_back`
{% endhint %}

### Перечень извлекаемых полей

<table><thead><tr><th width="301.3333333333333">Поле</th><th width="205">Название в API</th><th>Формат поля</th></tr></thead><tbody><tr><td>Категория A: начало</td><td>category_a_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория A: окончание</td><td>category_a_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория A1: начало</td><td>category_a1_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория A1: окончание</td><td>category_a1_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория B: начало</td><td>category_b_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория B: окончание</td><td>category_b_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория C: начало</td><td>category_c_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория C: окончание</td><td>category_c_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория C1: начало</td><td>category_c1_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория C1: окончание</td><td>category_c1_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория D: начало</td><td>category_d_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория D: окончание</td><td>category_d_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория D1: начало</td><td>category_d1_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория D1: окончание</td><td>category_d1_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория BE: начало</td><td>category_be_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория BE: окончание</td><td>category_be_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория CE: начало</td><td>category_ce_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория CE: окончание</td><td>category_ce_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория C1E: начало</td><td>category_c1e_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория C1E: окончание</td><td>category_c1e_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория DE: начало</td><td>category_de_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория DE: окончание</td><td>category_de_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория D1E: начало</td><td>category_d1e_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория D1E: окончание</td><td>category_d1e_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория M: начало</td><td>category_m_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория M: окончание</td><td>category_m_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория Tm: начало</td><td>category_tm_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория Tm: окончание</td><td>category_tm_end</td><td>дд.мм.гггг</td></tr><tr><td>Категория Tb: начало</td><td>category_tb_begin</td><td>дд.мм.гггг</td></tr><tr><td>Категория Tb: окончание</td><td>category_tb_end</td><td>дд.мм.гггг</td></tr><tr><td>Штрих-код</td><td>barcode</td><td>Пока ничего не возвращаем</td></tr><tr><td>Серия и номер</td><td>series_number</td><td>2 цифры, пробел, 2 цифры, пробел, 6 цифр</td></tr><tr><td>Особые отметки</td><td>special_marks</td><td>Любой текст</td></tr></tbody></table>

{% hint style="danger" %}
Ознакомьтесь с общим описанием работы сервиса извлечения данных и описанием API в разделе «[Извлечение данных](/servisy/izvlechenie-dannykh)»
{% endhint %}

{% hint style="success" %}
Помимо извлечения данных сервис Dbrain умеет:

* [Верифицировать результаты извлечения данных в онлайн-режиме с помощью обученных людей](/servisy/manual-recognition)
  {% endhint %}


# СТС

Извлекаем данные из свидетельств о регистрации транспортных средств РФ: образцы 1993-2019 годов, лицевую и обратную сторону

ГИБДД выдаёт СТС с 1993 года, а в 2008, 2013, 2018 и 2019 годах состав полей в СТС менялся. Изменения наглядно отражены на примерах. Сервис извлекает все доступные на изображении поля из этих документов.

<figure><img src="/files/wkYWofDb4iUhoXwc67s7" alt=""><figcaption></figcaption></figure>

## Перечень извлекаемых полей с лицевой части СТС

{% hint style="success" %}
vehicle\_registration\_certificate\_front
{% endhint %}

<table><thead><tr><th width="286.3333333333333">Поле</th><th width="247">Название в API</th><th>Формат поля</th></tr></thead><tbody><tr><td>Двигатель №</td><td>engine_number</td><td>Без ограничений</td></tr><tr><td>Категория ТС</td><td>vehicle_category</td><td>A, A1, B, B1, C, C1, D, D1, BE, CE, C1E, DE, D1E, M, Tm, Tb</td></tr><tr><td>Кузов №</td><td>vehicle_body</td><td>Без ограничений</td></tr><tr><td>Марка на английском</td><td>brand_eng</td><td>Без ограничений</td></tr><tr><td>Марка на русском</td><td>brand_rus</td><td>Без ограничений</td></tr><tr><td>Масса без нагрузки</td><td>mass</td><td>Цифры</td></tr><tr><td>Модель двигателя</td><td>engine_model</td><td>Без ограничений</td></tr><tr><td>Модель на английском</td><td>model_eng</td><td>Без ограничений</td></tr><tr><td>Модель на русском</td><td>model_rus</td><td>Без ограничений</td></tr><tr><td>Мощность двигателя, кВт</td><td>engine_kw</td><td>Цифры</td></tr><tr><td>Мощность двигателя, л. с.</td><td>engine_hp</td><td>Цифры</td></tr><tr><td>Номер VIN</td><td>vin</td><td>Не больше 17 символов, цифры и заглавные буквы латиницей</td></tr><tr><td>Номер СТС (нижняя часть)</td><td>number_bottom</td><td>6 цифр</td></tr><tr><td>Паспорт ТС: номер</td><td>passport_number</td><td>6 цифр</td></tr><tr><td>Паспорт ТС: серия</td><td>passport_series</td><td>4 русских буквы или цифры</td></tr><tr><td>Рабочий объем двигателя</td><td>engine_volume</td><td>Цифры</td></tr><tr><td>Разрешенная max масса</td><td>max_mass</td><td>Цифры</td></tr><tr><td>Регистрационный знак</td><td>reg_number</td><td>Не больше 15 символов, только латиница и цифр</td></tr><tr><td>Серия и номер СТС</td><td>document_number</td><td>4 русских буквы или цифры, затем 6 цифр</td></tr><tr><td>Серия СТС (нижняя часть)</td><td>series_bottom</td><td>4 русских буквы или цифры</td></tr><tr><td>Срок временной регистрации</td><td>temporary_registration_term</td><td>дд.мм.гггг</td></tr><tr><td>Тип ТС</td><td>vehicle_type</td><td>Русские буквы</td></tr><tr><td>Цвет</td><td>color</td><td>Русские буквы</td></tr><tr><td>Шасси №</td><td>vehicle_chassis</td><td>Без ограничений</td></tr><tr><td>Экологический класс</td><td>ecologic_class</td><td>Без ограничений</td></tr></tbody></table>

## Перечень извлекаемых полей с обратной стороны СТС

<figure><img src="/files/R9263lcsCI5MNbuyT8YQ" alt="" width="350"><figcaption></figcaption></figure>

{% hint style="success" %}
vehicle\_registration\_certificate\_back
{% endhint %}

<table><thead><tr><th width="322.3333333333333">Дата выдачи</th><th width="180.66666666666669">date</th><th>Формат поля</th></tr></thead><tbody><tr><td>Дом</td><td>house_number</td><td>Русские буквы и цифры</td></tr><tr><td>Квартира</td><td>apartment_number</td><td>Русские буквы и цифры</td></tr><tr><td>Корпус</td><td>building_number</td><td>Русские буквы и цифры</td></tr><tr><td>Название владельца (юрлицо на английском)</td><td>legal_name</td><td>Без ограничений</td></tr><tr><td>Название владельца (юрлицо на русском)</td><td>legal_name_rus</td><td>Без ограничений</td></tr><tr><td>Населённый пункт</td><td>city</td><td>Без ограничений</td></tr><tr><td>Номер СТС (верхняя часть)</td><td>number_top</td><td>6 цифр</td></tr><tr><td>Номер СТС (нижняя часть)</td><td>number_bottom</td><td>6 цифр</td></tr><tr><td>Орган, выдавший документ</td><td>police_unit_code</td><td>7 цифр</td></tr><tr><td>Особые отметки</td><td>special_marks</td><td>Без ограничений</td></tr><tr><td>Район</td><td>region</td><td>Без ограничений</td></tr><tr><td>Республика, край, область</td><td>province_rus</td><td>Без ограничений</td></tr><tr><td>Республика, край, область</td><td>province</td><td>Без ограничений</td></tr><tr><td>Серия СТС (верхняя часть)</td><td>series_top</td><td>4 русских буквы или цифры</td></tr><tr><td>Серия СТС (нижняя часть)</td><td>series_bottom</td><td>4 русских буквы или цифры</td></tr><tr><td>Собственник: имя (на английском)</td><td>name</td><td>Без ограничений</td></tr><tr><td>Собственник: имя (на русском)</td><td>name_rus</td><td>Без ограничений</td></tr><tr><td>Собственник: отчество (на русском)</td><td>patronymic_rus</td><td>Без ограничений</td></tr><tr><td>Собственник: фамилия (на английском)</td><td>surname</td><td>Без ограничений</td></tr><tr><td>Собственник: фамилия (на русском)</td><td>surname_rus</td><td>Без ограничений</td></tr><tr><td>Улица</td><td>street</td><td>Без ограничений</td></tr></tbody></table>

{% hint style="danger" %}
Ознакомьтесь с общим описанием работы сервиса извлечения данных и описанием API в разделе [«Извлечение данных»](/servisy/izvlechenie-dannykh)
{% endhint %}


# Бухгалтерская первичка

Извлекаем данные из первичных документов

Классифицируем и распознаём 16 видов официальных документов, которые используются в бухгалтерском учете и налогообложении. Дальше — больше.

### Типы первичных документов, с которыми работает сервис

<table><thead><tr><th width="212">Вид документа</th><th width="191">Название в API</th><th data-type="checkbox">Извлечение</th><th data-type="checkbox">Классификация</th></tr></thead><tbody><tr><td>Акт приёма-передачи нематериальных активов</td><td>rus_act_completition</td><td>true</td><td>true</td></tr><tr><td>Счёт на оплату / Счёт</td><td>rus_bill</td><td>true</td><td>true</td></tr><tr><td>Счёт-фактура</td><td>rus_invoice</td><td>true</td><td>true</td></tr><tr><td>Универсальный передаточный документ (УПД)</td><td>rus_upd</td><td>true</td><td>true</td></tr><tr><td>Договор</td><td>rus_contract</td><td>true</td><td>true</td></tr><tr><td>Товарная накладная — ТОРГ-12</td><td>rus_torg_12</td><td>true</td><td>true</td></tr><tr><td>Акт сверки взаиморасчётов</td><td>rus_act_reconciliation</td><td>true</td><td>true</td></tr><tr><td>Акт приёма-передачи основных средств ОС-1</td><td>rus_os_1</td><td>true</td><td>true</td></tr><tr><td>Счёт-договор (оферта)</td><td>rus_contract_invoice</td><td>true</td><td>true</td></tr><tr><td>Банковский платёжный ордер</td><td>rus_bank_order</td><td>false</td><td>true</td></tr><tr><td>ОС-6</td><td>rus_os_6</td><td>false</td><td>true</td></tr><tr><td>Акт списания нематериальных активов</td><td>rus_act_retirement</td><td>false</td><td>true</td></tr><tr><td>ОС-15</td><td>rus_os_15</td><td>false</td><td>true</td></tr><tr><td>ОС-1Б</td><td>rus_os_1b</td><td>false</td><td>true</td></tr><tr><td>Доверенность</td><td>rus_power_of_attorney</td><td>false</td><td>true</td></tr><tr><td>Посторонний документ</td><td>other</td><td>false</td><td>true</td></tr></tbody></table>

### Перечень извлекаемых полей

<table><thead><tr><th width="311">Поле в документе</th><th>Название в API</th></tr></thead><tbody><tr><td>Основание передачи</td><td>basis</td></tr><tr><td>Покупатель: адрес</td><td>buyer_address</td></tr><tr><td>Покупатель: название компании</td><td>buyer_company</td></tr><tr><td>Покупатель: ФИО</td><td>buyer_fio</td></tr><tr><td>Покупатель: ИНН</td><td>buyer_inn</td></tr><tr><td>Покупатель: КПП</td><td>buyer_kpp</td></tr><tr><td>Покупатель: ОКПО</td><td>buyer_okpo</td></tr><tr><td>Валюта</td><td>currency</td></tr><tr><td>Дата документа</td><td>date</td></tr><tr><td>Руководитель организации: ФИО</td><td>lead_name</td></tr><tr><td>Сумма НДС</td><td>nds_sum</td></tr><tr><td>Номер документа</td><td>number</td></tr><tr><td>Номер связанного документа</td><td>related_document</td></tr><tr><td>Продавец: адрес</td><td>seller_address</td></tr><tr><td>Продавец: номер банковского счёта</td><td>seller_bank_account_number</td></tr><tr><td>Продавец: БИК</td><td>seller_bank_bic</td></tr><tr><td>Продавец: название банка</td><td>seller_bank_name</td></tr><tr><td>Продавец: название компании</td><td>seller_company</td></tr><tr><td>Продавец: ФИО</td><td>seller_fio</td></tr><tr><td>Продавец: ИНН</td><td>seller_inn</td></tr><tr><td>Продавец: КПП</td><td>seller_kpp</td></tr><tr><td>Продавец: ОКПО</td><td>seller_okpo</td></tr><tr><td>Продавец: ОКУД</td><td>seller_okud</td></tr><tr><td>Главный бухгалтер: ФИО</td><td>senior_accountant_name</td></tr><tr><td>Груз принял: ФИО</td><td>shipment_acceptor_name</td></tr><tr><td>Груз принял: должность</td><td>shipment_acceptor_position</td></tr><tr><td>Получатель груза: адрес</td><td>shipment_recepient_address</td></tr><tr><td>Получатель груза: компания</td><td>shipment_recepient_company</td></tr><tr><td>Получатель груза: ИНН</td><td>shipment_recepient_inn</td></tr><tr><td>Получатель груза: КПП</td><td>shipment_recepient_kpp</td></tr><tr><td>Получатель груза: ОКДП</td><td>shipment_recepient_okdp</td></tr><tr><td>Получатель груза: ОКПО</td><td>shipment_recepient_okpo</td></tr><tr><td>Отпуск груза разрешил: ФИО</td><td>shipment_release_authorised_by_name</td></tr><tr><td>Отпуск груза разрешил: должность</td><td>shipment_release_authorised_by_position</td></tr><tr><td>Груз отпустил: ФИО</td><td>shipment_released_by_name</td></tr><tr><td>Груз отпустил: должность</td><td>shipment_released_by_position</td></tr><tr><td>Поставщик: адрес</td><td>shipment_supplier_address</td></tr><tr><td>Поставщик: название компании</td><td>shipment_supplier_company</td></tr><tr><td>Поставщик: ИНН</td><td>shipment_supplier_inn</td></tr><tr><td>Поставщик: КПП</td><td>shipment_supplier_kpp</td></tr><tr><td>Поставщик: ОКПО</td><td>shipment_supplier_okpo</td></tr><tr><td>Поставщик: главный бухгалтер: ФИО</td><td>shipment_supplier_senior_accountant_name</td></tr><tr><td>Поставщик: должность</td><td>shipment_supplier_senior_accountant_position</td></tr><tr><td>Сторона А: название компании</td><td>side_a_company</td></tr><tr><td>Сторона А: ФИО</td><td>side_a_name</td></tr><tr><td>Сторона А: должность</td><td>side_a_position</td></tr><tr><td>Сторона Б: название компании</td><td>side_b_company</td></tr><tr><td>Сторона Б: ФИО</td><td>side_b_name</td></tr><tr><td>Сторона Б: должность</td><td>side_b_position</td></tr><tr><td>Сумма</td><td>total_sum</td></tr></tbody></table>

## Как начать работать с сервисом извлечения данных

Описали 5 популярных способов взаимодействия с сервисом. Для любого вам нужен ключ лицензии. Чтобы получить ключ, напишите нам в [телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>.

Подготовьте изображение документа для теста.

<details>

<summary>Через веб-демо</summary>

1. Откройте [demo.dbrain.io](https://demo.dbrain.io)
2. Введите ключ лицензии в поле «Токен» и нажмите «Применить»
3. Выберите «Бухгалтерская первичка»
4. Нажмите кнопку «Выберите файл для распознавания»
5. Укажите изображение, которое нужно распознать
6. Нажмите кнопку «Распознать»

</details>

<details>

<summary>Через терминал</summary>

Обратитесь к методу `/rus_invoices` по адресу [latest.dbrain.io](https://latest.dbrain.io/). В этом способе только два обязательных параметра:

* `token` — ваш ключ лицензии
* `image` — файл с изображением документа

Запрос curl должен выглядеть так:

```bash
curl -X 'POST' \
  'https://latest.dbrain.io/rus_invoices?token=xxx' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'image=@image.jpg;type=image/jpeg'
```

</details>

<details>

<summary>Через Swagger</summary>

* Подготовьте ключ лицензии
* Откройте [Swagger](https://latest.dbrain.io/docs) и нажмите кнопку `Authorize` в правом верхнем углу
* Введите свой токен в любое поле и нажмите `Authorize`
* Прокрутите вниз до раздела `pipelines/run/rus_invoices`, нажмите на него
* В открывшемся разделе нажмите на кнопку `Try it out`
* Прокрутите страницу вниз до раздела `Request body`
* Нажмите на кнопку `Choose file` пункта `image`
* Укажите изображение, которое нужно распознать
* Нажмите кнопку `Execute`
* Ответ сервиса появится в пункте `Response body` раздела `Responses`
* Полученный на этом этапе `Curl` мы рекомендуем использовать как основу для написания интеграции с API сервиса Dbrain

</details>

<details>

<summary>Через Python</summary>

{% code overflow="wrap" %}

```python
import requests

url = 'https://latest.dbrain.io/rus_invoices?token=xxx'
files = {'image': open('image.jpg', 'rb')}
headers = {'accept': 'application/json'}

response = requests.post(url, headers=headers, files=files)
```

{% endcode %}

Код использует библиотеку `requests` для отправки POST-запроса с файлом изображения. Функция `open()` используется для открытия файла изображения в двоичном режиме и передачи его в параметр `files`. Параметр `headers` используется для установки заголовка `accept` в значение `application/json`. Ответ от сервера сохраняется в переменной `response`.

Тело запроса передавайте в кодировке `UTF-8`.

</details>

<details>

<summary>Через 1С</summary>

```bsl
Функция РаспознатьДокумент(ПакетДвоичныеДанные, ИмяФайла) Экспорт
	// готовит HTTP-запрос, включая заголовки и тело, и отправляет его на сервер.
	ПараметрыЗапроса ="?token=B000000000000000000000"; // токен необходимо получить собственный!
	РазделительМультисообщения = "----MessageBoundary1C";

	HTTPЗапрос = Новый HTTPЗапрос("/rus_invoices"+ПараметрыЗапроса);
	HTTPЗапрос.Заголовки.Вставить("accept", "application/json");
	HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + РазделительМультисообщения);

	ТелоПоток = Новый ПотокВПамяти();
	
	ЗаписьДанных = Новый ЗаписьДанных(ТелоПоток); 
	ЗаписьДанных.ЗаписатьСтроку("--" + РазделительМультисообщения);
	ЗаписьДанных.Записать(СоздатьСообщение_XML("image", ИмяФайла, ПакетДвоичныеДанные)); 
	ЗаписьДанных.ЗаписатьСимволы(Символы.ВК); 
	ЗаписьДанных.ЗаписатьСимволы(Символы.ПС);
	ЗаписьДанных.ЗаписатьСтроку("--" + РазделительМультисообщения + "--");
	ЗаписьДанных.Закрыть();
	
	ТелоДвоичныеДанные = ТелоПоток.ЗакрытьИПолучитьДвоичныеДанные();
	
	Попытка
		Соединение = Новый HTTPСоединение("latest.dbrain.io",
										443,
										,
										,
										,
										60,	
										ЗащищенноеСоединение());
	Исключение
		Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));	
	КонецПопытки;

	HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(ТелоДвоичныеДанные);
	Возврат Соединение.ОтправитьДляОбработки(HTTPЗапрос);
	
КонецФункции	

Функция ЗащищенноеСоединение() 
	
	ЗащищенноеСоединение = Неопределено;
	
	СистемнаяИнфо = Новый СистемнаяИнформация;
	ТипПлатформыСервера = СистемнаяИнфо.ТипПлатформы;

	Если ТипПлатформыСервера = ТипПлатформы.Windows_x86
		Или ТипПлатформыСервера = ТипПлатформы.Windows_x86_64 Тогда
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
		Новый СертификатКлиентаWindows(),
		Новый СертификатыУдостоверяющихЦентровWindows());
	Иначе
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
	КонецЕсли;
	
	Возврат ЗащищенноеСоединение;
	
КонецФункции

Функция СоздатьСообщение_XML(ИмяСообщения, ИмяФайла, СообщениеДвоичныеДанные)   
	
	Поток = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(Поток);
	// Заголовки
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""" + ИмяСообщения + """; filename=""" + ИмяФайла + """");
	Если Прав(ИмяФайла, 4) = ".xml" Тогда
		ТипMIME = "text/xml";
	ИначеЕсли Прав(ИмяФайла, 4) = ".pdf" Тогда
		ТипMIME = "application/pdf";
	Иначе
		ЧастиИмени = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяФайла, ".");
		Если ЧастиИмени.Количество() > 1 Тогда
			ТипMIME = "image/" + ЧастиИмени[ЧастиИмени.ВГраница()];	
		КонецЕсли;
	КонецЕсли;                                
	ЗаписьДанных.ЗаписатьСтроку("Content-Type: " + ТипMIME);
	ЗаписьДанных.ЗаписатьСтроку("");
	// Тело
	ЗаписьДанных.Записать(СообщениеДвоичныеДанные);
	ЗаписьДанных.Закрыть();

	Возврат Поток.ЗакрытьИПолучитьДвоичныеДанные();
		
```

</details>

## Параметры запроса к API

{% hint style="success" %}
**Асинхронный запрос**

<mark style="color:green;">**async**</mark> — boolean

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В ответ на запрос сервис вернёт в `response body` параметр `task_id`. Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результат работы сервиса в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.
{% endhint %}

{% hint style="success" %}
**Возврат найденных областей изображения**

<mark style="color:green;">**return\_crops**</mark> — boolean

* true — сервис вернёт в ответе API найденные области изображения с документами
* false (по умолчанию) — cервис не вернёт найденные области изображения

Ответ приходит в объект images массива result
{% endhint %}

{% hint style="success" %}
**Тегирование запроса**

<mark style="color:green;">**task\_tags**</mark> — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре `task_tags` удобный вам тег: `task_tags=тэг`
{% endhint %}

{% hint style="success" %}
**Нормализация адресов по ФИАС**

<mark style="color:green;">**normalization\_fias**</mark> — boolean

* false (по умолчанию) — сервис не нормализует адреса
* true — сервис обращается к [API сервиса Dadata.ru](https://dadata.ru/api/clean/address/#response) и возвращает адрес в [формате ФИАС](https://ru.wikipedia.org/wiki/%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0#%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0_%D0%BF%D0%BE_%D0%A4%D0%98%D0%90%D0%A1). Это повышает точность извлечения поля «Адрес». Нормализация приводит неструктурированный адрес к общепринятому формату, который можно сопоставлять с адресами из других источников.

{% hint style="info" %}
Если сервис Dbrain развёрнут локально, он может обращаться за нормализацией адреса к локальному сервису Dadata. Для этого укажите адрес в параметре URL\_DADATA в .env
{% endhint %}
{% endhint %}

{% hint style="success" %}
**Верификация результатов извлечения полей**

<mark style="color:green;">**verification**</mark> — string

* disabled (по умолчанию) — сервис сразу возвращает результаты работы алгоритмов
* private — сервис отправляет результаты работы алгоритмов на ручную верификацию. Для получения доступа к интерфейсу станции верификации напишите нам в [телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>
  {% endhint %}

## Тело запроса к API

{% hint style="success" %}
**Изображение**

<mark style="color:green;">**image**</mark> — string ($binary)

Изображение обязательно для передачи в запросе. Сервис ожидает изображение документа в двоичном виде
{% endhint %}

## В ответе на запрос к API:

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

<table data-header-hidden data-full-width="true"><thead><tr><th width="232">Название</th><th width="136.33333333333331">Тип</th><th>Описание</th></tr></thead><tbody><tr><td>task_id</td><td>string</td><td>Идентификатор запроса, формат: 32 символа, 16-ричная строка</td></tr><tr><td>error</td><td>string</td><td>Текстовое описание ошибки</td></tr><tr><td>task_tags</td><td>array[string]</td><td>Теги, если они переданы в параметре task_tags</td></tr><tr><td>success</td><td>boolean</td><td>Статус запроса</td></tr><tr><td>status_code</td><td>integer</td><td><p>HTTP-код статуса запроса</p><ul><li>200 — запрос выполнен успешно</li><li>400, 403, 500 и т.д. — расшифрованы в «<a href="/pages/mtcHXyOf98EHOiHYbHeN#http-kody-otveta-na-zapros">Общей информации о сервисах</a>»</li></ul></td></tr><tr><td>result.images</td><td>array[$string]</td><td>Массив <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs">data URL</a> с MIME-типом JPEG в формате base64 — изображения найденных документов. Возвращается, если в запросе передать <code>return_crops=true</code></td></tr><tr><td>result.doc_type</td><td>string</td><td>Тип документа из <a href="#vidy-pervichnykh-dokumentov-podderzhivaemykh-servisom">списка</a><a href="#tipy-pervichnykh-dokumentov-podderzhivaemykh-servisom"> документов</a>, поддерживаемых сервисом</td></tr><tr><td>result.confidence</td><td>number</td><td>Уровень уверенности сервиса от 0 до 1 в корректности определения типа документа. Чем ближе к 1, тем выше уверенность</td></tr><tr><td>result.page_num</td><td>integer</td><td>Номер страницы в оригинальном файле, на котором найден документ</td></tr><tr><td>result.fields</td><td>array</td><td>Массив, содержащий поля, которые сервис извлёк из документа</td></tr><tr><td>result.fields.name</td><td>string</td><td>Название поля в документе из <a href="#perechen-izvlekaemykh-polei">перечня извлекаемых полей</a></td></tr><tr><td>result.fields.value</td><td>string</td><td>Текстовое содержимое поля, которое извлёк сервис</td></tr><tr><td>result.fields.confidence</td><td>number</td><td>Уровень уверенности сервиса от 0 до 1 в корректности содержимого, извлечённого из поля</td></tr><tr><td>result.fields.page_num</td><td>integer</td><td>Номер страницы в оригинальном файле, на которой найдено поле</td></tr><tr><td>result.fields.coords</td><td>array[integer]</td><td>Массив с координатами поля по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый. Поле может состоять из нескольких частей</td></tr><tr><td>result.fields.crops</td><td>array[$string]</td><td>Массив <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs">data URL</a> с MIME-типом JPEG в формате base64 — изображения найденных частей поля. Возвращается, если в запросе передать <code>return_crops=true</code></td></tr><tr><td>result.fields.is_found</td><td>boolean</td><td><ul><li>true — поле найдено в документе</li><li>false — поле в документе не найдено</li></ul></td></tr><tr><td>result.tables</td><td>array[array]]</td><td>Массив, содержащий найденные в документе таблицы</td></tr><tr><td>result.tables.name</td><td>string</td><td><p>Название ячейки таблицы по схеме</p><p>table_id-X_row-Y_col-Z, где:<br>• X — порядковый номер таблицы (сверху внизу)<br>• Y — порядковый номер строки в таблице, начиная с 0<br>• Z — порядковый номер столбца в таблице, начиная с 0</p></td></tr><tr><td>result.tables.value</td><td>string</td><td>Текстовое содержимое ячейки таблицы</td></tr><tr><td>result.tables.confidence</td><td>number</td><td>Уровень уверенности сервиса от 0 до 1 в корректности содержимого, извлечённого из ячейки</td></tr><tr><td>result.tables.page_num</td><td>integer</td><td>Номер страницы в оригинальном файле, на котором найдена ячейка</td></tr><tr><td>result.tables.coords</td><td>array[integer]</td><td>Массив с координатами ячейки по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый</td></tr><tr><td>result.tables.crops</td><td>array[$string]</td><td>Массив <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs">data URL</a> с MIME-типом JPEG в формате base64 — изображение ячейки. Возвращается, если в запросе передать <code>return_crops=true</code></td></tr><tr><td>result.tables.is_found</td><td>boolean</td><td><ul><li>true — ячейка найдена в документе</li><li>false — ячейка в документе не найдена</li></ul></td></tr></tbody></table>


# Договоры

Извлекаем данные из юридических документов

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

* Договор
* Приказ генерального директора
* Устав организации
* Решение общего собрания собственников

Однако сервис обрабатывает и другие похожие по смыслу многостраничные документы на русском языке.

### Перечень извлекаемых полей

<table><thead><tr><th width="298.3333333333333">Поле</th><th>Формат поля</th></tr></thead><tbody><tr><td>Наименование компании полное</td><td>Русский алфавит</td></tr><tr><td>Наименование компании краткое</td><td>Русский алфавит</td></tr><tr><td>Наименование компании на иностранном языке</td><td>Русский алфавит</td></tr><tr><td>Город</td><td>Русский алфавит</td></tr><tr><td>Срок полномочий руководителя</td><td>Русский алфавит</td></tr><tr><td>Должность руководителя</td><td>Русский алфавит</td></tr><tr><td>ФИО руководителя</td><td>Русский алфавит</td></tr><tr><td>ОГРН</td><td>13 цифр</td></tr><tr><td>Дата формирования документа</td><td>дд.мм.гггг</td></tr></tbody></table>

Демо доступно по адресу [demo.dbrain.io](https://demo.dbrain.io). Для теста вам нужен ключ лицензии. Чтобы получить ключ, напишите нам в [телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>.


# Прочие документы

Кроме перечисленных слева популярных документов, наши сервисы умеют извлекать данные из других файлов

Полный перечень поддерживаемых документов находится в разделе [«Типы документов»](/obshaya-informaciya/tipy-dokumentov).

Если мы работаем с нужным вам документом — перейдите на страницу [«Извлечение данных»](/servisy/izvlechenie-dannykh), чтобы начать работу с сервисом.

Если у вас есть документ, который мы ещё не поддерживаем — напишите нам в [телеграм](https://t.me/dbrain_support_bot) или на [hello@dbrain.io](https://mailte:hello@dbrain.io). Возможно, мы уже научились извлекать данные из нужного документа в рамках работы с одним из клиентов. Но даже если нет, мы с удовольствием его добавим.


# Проверка документов

Предоставляем набор сервисов для проверки изображений документов

Доступные проверки:

* [Признаки подделки](/servisy/proverka-dokumentov/priznaki-poddelki) — анализируем файлы с изображениями и выдаем набор признаков подделки.
* [Качество изображений](/servisy/proverka-dokumentov/kachestvo-izobrazheniya) — оцениваем качество изображений.
* [Подписи и печати](/servisy/proverka-dokumentov/podpisi-i-pechati) — проверяем наличие и расположение подписей и печатей на документах.
* [Базы данных](/servisy/proverka-dokumentov/bazy-dannykh) — проверяем документы и физлиц по базам данных.


# Антифрод

Анализируем файлы с изображениями и выдаём набор признаков подделки

{% hint style="warning" %}
Данная версия сервиса устарела и больше не поддерживается. Рекомендуем использовать [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0).
{% endhint %}

Злоумышленники могут внести изменения в изображения документов. Сервис «Признаки подделки» ищет прямые и косвенные признаки того, что файл был умышленно модифицирован. Сервис не может гарантировать 100% защиты от злоумышленников, но позволяет автоматически отсеивать часть фрода и снижать нагрузку на операторов. Сервис запускает следующие проверки:

1. Проверка соответствия вида документа ожидаемому.
2. Определение паспортов, созданных в онлайн-генераторах документов.
3. Поиск визуальных признаков модификации паспорта в цифровых редакторах. Например, подмена отдельных символов, или фотографии, или целых полей.
4. Проверка метаданных изображения. По умолчанию метаданные присутствуют в любой фотографии или скане. Отсутствие метаданных — весомый повод отклонить документ. При наличии метаданных сервис проверяет их на внутреннюю непротиворечивость.
5. Логические проверки полей паспорта. Проверяем наличие всех полей и фотографии: серию-номер, регион по ОКАТО, дату выдачи, дату рождения, код подразделения, пол человека, сверяем визуальные поля с машиночитаемой зоной.
6. Проверяем источник изображения. Им может быть фотография, скан, скриншот или фотография экрана. Мы советуем отклонять изображения из последних двух источников, но в вашем бизнес-процессе также могут быть недопустимы сканы.
7. Проверяем цветность изображения. Рекомендуем отклонять чёрно-белые изображения.
8. Если вам заранее известны данные клиента (например, ФИО и дата рождения), сервис сверит их с написанными в документе с помощью функции сверки с внешним файлом.

{% hint style="info" %}
Проверки 2, 3 и 5 работают только для главного разворота паспорта РФ
{% endhint %}

{% hint style="success" %}
Чтобы воспользоваться сервисом, отправьте POST-запрос на URL

<https://latest.dbrain.io/check/fraud>
{% endhint %}

## Параметры запроса к API

Вы можете использовать эти параметры при запросе к сервису определения подделок.

#### Асинхронный запрос

{% hint style="success" %}
**async — boolean**
{% endhint %}

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В ответ на запрос сервис вернёт в `response body` параметр `task_id`. Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результаты классификации в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.

#### Возврат найденных областей изображения

{% hint style="success" %}
**return\_crops — boolean**
{% endhint %}

Поведение по умолчанию: `return_crops=false` — cервис не возвращает найденные области изображения.

Если вам нужны найденные сервисом области изображения, укажите `return_crops=true`. Сервис вернёт в ответе API в параметре crop найденные области изображения с лицами.

#### Тегирование запроса

{% hint style="success" %}
**task\_tags — string array**
{% endhint %}

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре `task_tags` удобный вам тег: `task_tags=тэг`

#### Ожидаемый тип документа

{% hint style="success" %}
**doc\_type — string**
{% endhint %}

Поведение по умолчанию: `doc_type=passport_main` — сервис ожидает изображение с главным разворотом паспорта РФ. Другие допустимые варианты doc\_type перечислены в разделе [«Типы документов»](/obshaya-informaciya/tipy-dokumentov). Для проверки фотографии лица передайте тип not\_document.

{% hint style="warning" %}
Остальные параметры запроса не несут практического смысла. Оставили их для совместимости со старой версией метода recognize, который используется внутри сервиса
{% endhint %}

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

## Тело запроса к API

#### Изображение

{% hint style="success" %}
**image — string ($binary)**
{% endhint %}

Изображение обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

#### Сверка полей с внешним файлом

{% hint style="success" %}
**fraud/verify\_fields — string ($binary)**
{% endhint %}

С помощью этой функции можно быстро сравнить данные клиента, которые вам известны. Например, ФИО с текстом в самом документе. Для использования функции дополнительно укажите JSON-файл в параметре **`verify_fields`**.

Ниже показан пример JSON-файла для сравнения серии-номера и ФИО из паспорта РФ с данными из документа:

```javascript
{
  "series_and_number": "1111 222222",
  "surname": "Иванов",
  "first_name": "Иван",
  "other_names": "Иванович"
}
```

Для составления своего JSON-файла скопируйте наименования полей из [API-спецификации.](https://docs.google.com/spreadsheets/d/1_rN49no9kxDZb6rjwQtMlSZr8FO0mIE3qVQ2oPFIAZ4/edit#gid=0)

Функция сверки возвращает результат в атрибут `expected_text_missmatch`.

## В ответе на запрос к API:

* `task_id` — string, идентификатор запроса, формат: 32 символа, 16-ричная строка
* `error` — string, текстовое описание ошибки
* `task_tags` — array\[string], теги, если они переданы в параметре task\_tags
* `success` — boolean, статус запроса
  * `true` — запрос выполнен успешно
  * `false` — запрос не выполнен
* `status_code` — integer, HTTP-код статуса запроса
  * 200 — запрос выполнен успешно
  * 400, 403, 500 и т.д. — расшифрованы в «[общей информации о сервисах](https://docs.dbrain.io/obshaya-informaciya-o-servisakh#http-kody-otveta-na-zapros)»
* `result`
  * `input_image` — $string, [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64 — оригинал изображения, возвращается, если в запросе передать `return_crops=true`
  * `doc_type_missmatch` — boolean
    * `true` — найденный на изображении тип документа не соответствует ожидаемому
    * `false` — найденный на изображении тип документа соответствует ожидаемому
  * `generated_document` — `depricated, не используйте`
  * `visual_modifications`
    * `coords`— массив, в котором перечислены координаты подозрительных областей изображения документа по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
    * `result` — boolean
      * `true` — нейросеть считает, что в файл вносили изменения в графическом редакторе либо он был сгенерирован в генераторе синтетических паспортов
      * `false` — нейросеть считает, что изображение не фейк
      * `null` — главный разворот Паспорта РФ не найден, поэтому проверка не запускалась
  * `metadata` — объект, содержащий информацию о метаданных
    * `not_present` — boolean
      * `true` — в файле отсутствуют метаданные
      * `false` — в файле найдены метаданные
    * `inconsistency` — boolean
      * `true` — в метаданных файла найдены противоречия
      * `false` — противоречия в метаданных файла не найдены
      * `null` — метаданные не найдены, проверка не запускалась
    * `maker` — string, производитель устройства
    * `model` — string, модель устройства
    * `software` — string, программное обеспечение, которое последним меняло изображение
    * `date_time` — объект, содержащий данные со всеми датами и временами, найденными в метаданных изображения:
      * `modify_date` — string, дата и время модификации изображения
      * `create_date` — string, дата и время создания изображения
      * `date_time_original` — string, оригинальные даты и время создания изображения
      * `gps_date_stamp` — string, дата и время снимка согласно GPS
    * `gps_coords` — объект, содержащий координаты согласно GPS метаданным:
      * `latitude_ref` — string, n или s — северная или южная широта, в которой сделан снимок
      * `latitude` — string, широта снимка
      * `longitude_ref` — string, e или w — восточная или западная долгота, в которой сделан снимок
      * `longitude` — string, долгота снимка
      * `altitude_ref` — string, 1 или 0 — высота над уровнем моря или абсолютная
      * `altitude` — string, высота над уровнем моря
  * `logical_inconsistency`
    * `result` — boolean
      * `true` — в данных документа найдены противоречия
      * `false` — в данных документа противоречия не найдены
      * `null` — главный разворот Паспорта РФ не найден, поэтому проверка не запускалась
    * `series_number_inconsistency` — boolean
      * `true` — серия или номер паспорта на разных страницах не совпадают друг с другом
      * `false` — серия или номер паспорта на разных страницах совпадают
    * `fake_series_okato` — boolean
      * `true` — серия паспорта содержит несуществующий номер ОКАТО
      * `false` — серия паспорта содержит допустимый номер ОКАТО
    * `series_mismatch_printing_year` — boolean
      * `true` — серия паспорта выходит за допустимый диапазон отклонения от даты выдачи паспорта
      * `false` — серия паспорта находится в допустимом диапазоне относительно даты выдачи паспорта
    * `issue_year_mismatch_date_of_birth` — boolean
      * `true` — дата выдачи паспорта находится вне допустимого диапазона относительно даты рождения для действительного паспорта
      * `false` — дата выдачи паспорта находится в рамках допустимого диапазона относительно даты рождения для действительного паспорта
    * `issue_code_mismatch_issue_authority` — boolean
      * `true` — код подразделения не соответствует полю «Паспорт выдан»
      * `false` — код подразделения соответствует полю «Паспорт выдан»
    * `fake_year_of_birth` — boolean
      * `true` — год рождения находится вне допустимого диапазона относительно текущей даты
      * `false` — год рождения находится в допустимом диапазоне относительно текущей даты
    * `photo_not_found` — boolean
      * `true` — фотография не найдена
      * `false` — фотография найдена
    * `photo_gender_mismatch` — boolean
      * `true` — пол на фотографии не соответствует тексту в поле «Пол»
      * `false` — пол на фотографии соответствует тексту в поле «Пол»
    * `mrz_presence_mismatch_issue_year` — boolean
      * `true` — наличие или отсутствие машиночитаемой зоны паспорта невозможно при такой дате выдачи паспорта
      * `false` — наличие или отсутствие машиночитаемой зоны паспорта возможно при такой дате выдачи паспорта
    * `visual_field_missing` — boolean
      * `true` — одно или несколько обязательных полей паспорта не найдено
      * `false` — найдены все поля паспорта
    * `visual_fields_mismatch_mrz` — boolean
      * `true` — данные визуальных полей не совпадают с данными из машиночитаемой зоны
      * `false` — данные визуальных полей совпадают с данными из машиночитаемой зоны
  * `image_origin` — string, источник изображения, может принимать одно из четырёх значений:
    * `photo` — фотография
    * `scan` — скан
    * `screenshot` — скриншот
    * `monitor_photo` — фотография экрана
  * `image_no_color` — boolean
    * `true` — изображение чёрно-белое
    * `false` — изображение цветное
  * `expected_text_mismatch` — boolean
    * `true` — данные в документе не совпали с ожидаемыми
    * `false` — данные в документе совпали с ожидаемыми
    * `null` — проверка не запускалась, выводится в случае, если вы не подали JSON на вход.

{% hint style="info" %}
Параметры `fake` и `is_fake_visual` в ответе метода `recognize` теперь не отражают результаты проверок на признаки подделки. Мы оставили их для совместимости API
{% endhint %}


# Антифрод 2.0

Анализируем изображения паспорта РФ и селфи с паспортом РФ, чтобы выявить подделки.

В сравнении с первой версией Антифрод 2.0 содержит ряд важных изменений:

* **Детекция поддельных селфи:** метод теперь работает не только с изображениями главного разворота паспорта РФ, но и с селфи, где человек держит в руках паспорт РФ.
* **Оценка качества изображения:** метод научился определять изображения плохого качества: маленькие, засвеченные, смазанные, тёмные, чёрно-белые, обрезанные, с полями, закрытыми пальцами.
* **Фотографии ксерокопий:** метод научился определять фотографии ксерокопий документов.
* **Детекция очень аккуратных подделок:** на основе реальных примеров поддельных документов обновили архитектуру нейросети, которая ищет признаки подделки изображения.
* **Уточнение алгоритмических проверок:** исправлены ошибки в логике. Добавлен анализ качества изображения.

## Как начать работать с сервисом Антифрод 2.0

Есть 4 популярных способа взаимодействия с сервисом. Для любого вам нужен ключ лицензии. Чтобы получить ключ, напишите нам в [телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>.

Подготовьте изображение документа для теста. Если у вас такого нет, используйте [паспорт РФ из Википедии](https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%81%D0%BF%D0%BE%D1%80%D1%82_%D0%B3%D1%80%D0%B0%D0%B6%D0%B4%D0%B0%D0%BD%D0%B8%D0%BD%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B9_%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8#/media/%D0%A4%D0%B0%D0%B9%D0%BB:Pasport_RF.jpg).

<details>

<summary>Через веб-демо</summary>

1. Откройте [demo.dbrain.io](https://demo.dbrain.io)
2. Введите ключ лицензии в поле «Токен» и нажмите «Применить»
3. Выберите «Антифрод»
4. Нажмите кнопку «Выберите файл для распознавания»
5. Укажите изображение, которое нужно распознать
6. Нажмите кнопку «Распознать»

</details>

<details>

<summary>Через терминал</summary>

Обратитесь к методу `/fraud_v2` по адресу [latest.dbrain.io](https://latest.dbrain.io/). В этом способе только два обязательных параметра:

* `token` — ваш ключ лицензии
* `image` — файл с изображением документа

Запрос curl должен выглядеть так:

```bash
curl -X 'POST' \
  'https://latest.dbrain.io/pipelines/run/fraud_v2?token=xxx' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'image=@image.jpg;type=image/jpeg'
```

</details>

<details>

<summary>Через Swagger</summary>

* Подготовьте ключ лицензии
* Откройте [Swagger](https://latest.dbrain.io/docs) и нажмите кнопку `Authorize` в правом верхнем углу
* Введите свой токен в любое поле и нажмите `Authorize`
* Прокрутите вниз до раздела `/pipelines/run/fraud_v2`, нажмите на него
* В открывшемся разделе нажмите на кнопку `Try it out`
* Прокрутите страницу вниз до раздела `Request body`
* Нажмите на кнопку `Выберите файл` пункта `image`
* Укажите изображение, которое нужно распознать
* Нажмите кнопку `Execute`
* Ответ сервиса появится в пункте `Response body` раздела `Responses`
* Полученный на этом этапе `Curl` мы рекомендуем использовать как основу для написания интеграции с API сервиса Dbrain

</details>

<details>

<summary>Через Python</summary>

{% code overflow="wrap" %}

```python
import requests

url = 'https://latest.dbrain.io/pipelines/run/fraud_v2?token=xxx'
files = {'image': open('image.jpg', 'rb')}
headers = {'accept': 'application/json'}

response = requests.post(url, headers=headers, files=files)
```

{% endcode %}

Код использует библиотеку `requests` для отправки POST-запроса с файлом изображения. Функция `open()` используется для открытия файла изображения в двоичном режиме и передачи его в параметр `files`. Параметр `headers` используется для установки заголовка `accept` в значение `application/json`. Ответ от сервера сохраняется в переменной `response`.

Тело запроса передавайте в кодировке `UTF-8`.

</details>

## Параметры запроса к API

Вы можете использовать следующие параметры при запросе к сервису определения подделок.

**Асинхронный запрос**

* **`async`** — *boolean*

  По умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки сервисом.

  Если вам нужен асинхронный режим, укажите в запросе `async=true`. В ответ на запрос сервис вернёт в теле ответа параметр `task_id`. Например:

  ```json
  "task_id": "96b8ccc950a70699927036842c624d7c"
  ```

  Используйте этот `task_id`, чтобы получить результаты методом `result`:

  ```bash
  curl -X 'GET' \
    'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
    -H 'accept: application/json'
  ```

  Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.

**Возврат оригинального изображения**

* **`return_crops`** — *boolean*

  По умолчанию: `return_crops=false` — сервис не возвращает оригинальное изображение.

  Если вам нужно оригинальное изображение на выходе нашего API, укажите `return_crops=true`. Сервис вернёт оригинальное изображение в ответе API, в параметре `input_image`.

**Тегирование запроса**

* **`task_tags`** — *array\[string]*

  По умолчанию: параметр не используется.

  У нас есть опциональная функция тегирования запросов. Она упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре `task_tags` удобный вам тег:

  ```
  task_tags=тег
  ```

## Тело запроса к API

**Изображение**

* **`image`** — *string ($binary)*

  Изображение обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

## Ответ от API

В ответе на запрос вы получите JSON с информацией о результатах проверки.

**Пример ответа**

```json
{
  "task_id": "a7a8e546f8bcdf3d0af17cc51a19ccac",
  "error": "",
  "task_tags": [],
  "success": true,
  "status_code": 200,
  "result": {
    "overall_result": "definitely_fake",
    "definitely_fake": true,
    "potentially_fake": false,
    "image": {
      "type": "passport",
      "quality": {
        "errors": null,
        "glare_detected": false,
        "blur_detected": false,
        "document_cropped": false,
        "document_no_color": false,
        "document_too_small": false,
        "document_too_dark": false,
        "glare_score": 0,
        "blur_score": 0.03,
        "crop_score": 0.01
      },
      "origin": "scan"
    },
    "selfie": null,
    "passport": {
      "photo_mismatch_passport_data": null,
      "ai_checks": {
        "image_modifications_detected": {
          "coords": [
            [
              [
                1206,
                1474
              ],
              [
                1228,
                1490
              ],
              [
                1199,
                1532
              ],
              [
                1177,
                1516
              ]
            ],
            [
              [
                969,
                437
              ],
              [
                1074,
                437
              ],
              [
                1074,
                486
              ],
              [
                969,
                486
              ]
            ]
          ],
          "confs": [
            0.47666143975924263,
            0.9342110193869388
          ],
          "cls_confidence": 1,
          "top_1_segmentation_confidence": 0.93,
          "merged_confidence": 0.97,
          "result": true
        },
        "visual_field_missing": false,
        "photo_not_found": false,
        "photo_gender_mismatch": false
      },
      "logical_checks": {
        "series_number_inconsistency": false,
        "series_mismatch_printing_year": false,
        "issue_year_mismatch_date_of_birth": true,
        "issue_code_mismatch_issue_authority": true,
        "mrz_presence_mismatch_issue_year": false,
        "visual_fields_mismatch_mrz": true,
        "fake_series_okato": false,
        "fake_year_of_birth": false
      }
    },
    "file_metadata": {
      "not_present": true,
      "inconsistency": false,
      "maker": "",
      "model": "",
      "software": "",
      "date_time": {
        "modify_date": "",
        "create_date": "",
        "date_time_original": "",
        "gps_date_stamp": ""
      },
      "gps_coords": {
        "latitude_ref": "",
        "latitude": "",
        "longitude_ref": "",
        "longitude": "",
        "altitude_ref": "",
        "altitude": ""
      }
    },
    "input_image": null
  }
}
Response headers
```

**Описание полей ответа**

* `task_id` — *string*, идентификатор запроса, формат: 32 символа, шестнадцатеричная строка.
* `error` — *string*, текстовое описание ошибки (если есть).
* `task_tags` — *array\[string]*, теги, если они были переданы в параметре `task_tags`.
* `success` — *boolean*, статус запроса:
  * `true` — запрос выполнен успешно.
  * `false` — запрос не выполнен.
* `status_code` — *integer*, HTTP-код статуса запроса:
  * `200` — запрос выполнен успешно.
  * `400`, `403`, `500` и т.д. — расшифрованы в «[Общей информации о сервисах](/)».

**Поле `result`**

* `overall_result` — *string*, общий результат проверки. Возможные значения:
  * `bad_image_quality` — качество изображения не позволяет вынести вердикт. Если вы хотите убедиться в подлинности документа, попросите прислать другое изображение. Вернуть правильную ошибку пользователю поможет раздел `image.quality`, он описан ниже.
  * `definitely_fake` — изображение поддельное. По совокупности факторов мы уверены, что изображение надо отклонить.
  * `potentially_fake` — изображение возможно поддельное. Вы можете пропустить его дальше на своё усмотрение, но мы рекомендуем отправить его на ручную проверку.
  * `wrong_document` — изображение не является паспортом или селфи, либо его качество не позволяет определить, что это паспорт или селфи.
  * `genuine` — изображение настоящее. Мы считаем, что ручные проверки не требуются.

Подробней о том, каким образом присваиваются `definitely_fake` и `potentially_fake:`

{% tabs %}
{% tab title="definitely\_fake" %}
Подойдёт любой из следующих критериев:

Селфи

* Нейросеть, которая анализирует изображение, идентифицировала вмешательство в изображение с уверенностью не ниже 90%. (selfie.fake).

Паспорт

* Нейросеть, которая анализирует изображение паспорта, идентифицировала высокую вероятность модификации изображения (passport.ai\_checks.image\_modifications\_detected).
* Обнаружены критичные логические несоответствия в самом документе: например, серия паспорта не согласуется с другими данными, дата выдачи не согласуется с годом рождения.
  {% endtab %}

{% tab title="potentially\_fake" %}
Если не присвоен definitely\_fake, подойдёт любой из следующих критериев:

Селфи

* Нейросеть, которая анализирует изображения селфи, идентифицировала вмешательство в изображение с уверенностью от 50 до 90% (selfie.fake).
* В метаданных файла обнаружены несоответствия (metadata.inconsistency).
* Фото было получено сомнительным способом (например, скриншот экрана телефона, фото экрана монитора, ксерокопия).

Паспорт

* Нейросеть, которая анализирует изображение паспорта, идентифицировала среднюю (но не высокую) вероятность модификации изображения.
* Есть логические несоответствия, которые могли возникнуть по причине ошибки наших алгоритмов, а не только фрода: например, несовпадение визуальных полей с машиночитаемой зоной.
* Нейросеть считает, что пол в текстовом поле не совпадает с полом человека на фото.
* Есть общие признаки некорректного документа: несогласованность метаданных, сомнительный способ получения снимка.
  {% endtab %}
  {% endtabs %}

{% hint style="warning" %}
Сейчас API возвращает булевые поля "definitely\_fake" и "potentially\_fake". Они исчезнут в следующих версиях. Вместо них ориентируйтесь на текстовое поле "overall\_result".
{% endhint %}

**Объект `image`**

* `type` — *string*, тип изображения:
  * `passport`— документ (главный разворот паспорта).
  * `selfie` — селфи с паспортом.
  * `other` — постороннее изображение.
* `quality` — объект, содержащий информацию о качестве изображения:
  * `errors` — *string* или `null`, ошибки при обработке качества.
  * `glare_detected` — *boolean. True,* если сервис обнаружил блики на полях документа. Посоветуйте пользователю убедиться, что отражения на ламинации паспорта не мешают прочитать поля документа.
  * `blur_detected` — *boolean. True,* если сервис обнаружил, что фото документа недостаточно чёткое. Например если пользователь снимал на длинной выдержке при недостаточном освещении. Попросите пользователя включить свет перед съёмкой или выйти на улицу.
  * `document_cropped` — *boolean. True,* если сервис обнаружил, что поле документа закрыто посторонним предметом или паспорт обрезан краем кадра. Посоветуйте пользователю не закрывать поля документа пальцами и взять его в кадр целиком.
  * `document_no_color` — *boolean. True*, если сервис обнаружил, что изображение чёрно-белое. Попросите пользователя прислать оригинальный снимок, без фильтров и упражнений в графическом редакторе.
  * `document_too_small` — *boolean. True*, если разрешение документа слишком низкое. Сервис ожидает, что изображение будет разрешением не менее 640 × 640 пикселей, т.е. не менее 0.4 Мп. Смартфоны, которые дают такое низкое разрешение даже на фронтальной камере перестали выпускать в 2012 году. Попросите пользователя прислать оригинальную, а не уменьшенную, фотографию.
  * `document_too_dark` — *boolean. True*, если изображение слишком тёмное. Вероятно пользователь сделал кадр в тёмном помещении без вспышки. Попросите пользователя включить свет перед съёмкой или выйти на улицу.
  * `glare_score` — *float*, степень бликов (от 0 до 1). Чем ближе число к единице, тем ярче выражены блики на полях. Сервис предъявляет довольно строгие требования к бликам в параметре `glare_detected`. Вы можете ориентироваться на `glare_score`, если хотите пропускать изображения с незначительными бликами.
  * `blur_score` — *float*, степень размытия (от 0 до 1). Чем ближе число к единице, тем менее чёткий снимок. Сервис предъявляет довольно строгие требования к чёткости изображения в параметре `blur_detected`. Вы можете ориентироваться на `blur_score`, если хотите пропускать изображения с незначительным размытием.
  * `crop_score` — *float,* степень обрезки (от 0 до 1). Чем ближе число к единице, тем сильнее закрыты поля посторонними предметами. Сервис предъявляет довольно строгие требования к целостности документа в параметре `document_cropped`. Вы можете ориентироваться на `crop_score`, если хотите пропускать изображения, где пальцы частично перекрывают поля документа или документ незначительно обрезан краем кадра.
* `origin` — *string*, источник изображения:
  * `photo` — фотография. Ожидаемый благоприятный сценарий, который не вызывает вопросов — пользователь просто сфотографировал свой документ на смартфон.
  * `scan` — скан. Сомнительный сценарий: вместо фотографии пользователь прислал скан. Вы должны сами решить, подходит ли вам такое изображение.
  * `screenshot` — скриншот. Красный флаг — вместо фото документа пользователь сделал скриншот экрана. Высока вероятность, что у пользователя нет оригинала документа.
  * `monitor_photo` — фотография экрана. Красный флаг — вместо фото документа пользователь сфотографировал экрана другого смартфона, монитора или телевизора. Высока вероятность, что у пользователя нет оригинала документа.
  * `xerox` — Красный флаг — пользователь сфотографировал листок бумаги с изображением паспорта. Высока вероятность, что у пользователя нет оригинала документа.

**Объект `selfie` (при `type`: `selfie`)**

* `fake` — объект с результатами проверки селфи на подделку:
  * `result` — *boolean*, является ли селфи поддельным.
  * `confidence` — *float*, уверенность в результате (от 0 до 1). Чем ближе число к единице, тем выше уверенность сервиса.

**Объект `passport`**

* `photo_mismatch_passport_data` — *boolean*, несоответствие фотографии данным паспорта.

{% hint style="warning" %}
ВНИМАНИЕ: в данный момент проверка `photo_mismatch_passport_data` не работает. На её результаты нельзя ориентироваться. Она не учитывается в вердикте по документу в параметре `overall_result` .
{% endhint %}

* `ai_checks` — объект с результатами проверок паспорта с помощью искусственного интеллекта:
  * `image_modifications_detected` — объект:

    * `coords` — *array*, координаты подозрительных областей.
    * `confs` — уровень уверенности нейросети в подделке каждой конкретной области.
    * `result` — *boolean*, обнаружены ли модификации изображения. Если обнаружены, значит перед нами не оригинальная фотография, в неё вносились изменения. Попросите пользователя прислать другой снимок.
    * `merged_confidence` — итоговый уровень уверенности нейросети в том, что в изображение вносились изменения.

    <mark style="background-color:orange;">Сейчас API также возвращает cls\_confidence и top\_1\_segmentation\_confidence. Они нужны для отладки и исчезнут в будущем.</mark>
  * `visual_field_missing` — *boolean*, отсутствуют ли обязательные поля. Если наш сервис не смог прочитать одно из обязательных полей в паспорте — перед нами подделка или пользователь всё-таки закрыл чем-то поле, например листом бумаги. Попросите пользователя прислать другой снимок.
  * `photo_not_found` — *boolean*, фотография не найдена. Наш сервис не видит лица в той области документа, где на паспорте должна быть фотография. Попросите пользователя прислать снимок, на котором лицо можно различить.
  * `photo_gender_mismatch` — *boolean*, несоответствие пола человека на фото и в текстовом поле паспорта. Вполне обычная ситуация, когда на потоке генерируешь поддельные паспорта.
* `logical_checks` — объект с результатами алгоритмических проверок текстовых полей паспорта. Если у сервиса нет претензий к качеству изображения в объекте image.quality, любая из этих проверок говорит о том, что перед нами поддельный документ.
  * `series_number_inconsistency` — *boolean*, несоответствие серии или номера на верхней и нижней странице.
    * `series_mismatch_printing_year` — *boolean*, несоответствие серии паспорта дате выдачи паспорта.
    * `issue_year_mismatch_date_of_birth` — *boolean*, несоответствие года выдачи дате рождения. Вероятно паспорт просрочен.
    * `issue_code_mismatch_issue_authority` — *boolean*, несоответствие кода подразделения органу выдачи. Мы знаем какой текст, с точностью до запятой, должен быть в месте выдачи для данного сочетания даты и кода подразделения.
    * `mrz_presence_mismatch_issue_year` — *boolean*, несоответствие наличия или отсутствия MRZ году выдачи паспорта. MRZ (machine readable zone), она же МЧЗ (машиночитаемая зона) — две строки в нижней части паспорта, в которых закодированы текстовые поля паспорта. Печаются в паспорте РФ с 1 июля 2011 года.
    * `visual_fields_mismatch_mrz` — *boolean*, несоответствие визуальных полей информации в MRZ.
    * `fake_series_okato` — *boolean*, несуществующая серия по [ОКАТО](https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%89%D0%B5%D1%80%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE-%D1%82%D0%B5%D1%80%D1%80%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F).
    * `fake_year_of_birth` — *boolean*, нереалистичный год рождения. Например человек по паспорту родился в XVI веке.

**Объект `file_metadata`**

* `not_present` — *boolean*, метаданные отсутствуют. Любой смартфон записывает в файл изображения информацию о своей марке и модели, дате съёмки и другую полезную информацию в виде метаданых. Если всё это отсутствует, значит перед нами не оригинальный файл со смартфона. Само изображение, тем не менее, может быть оригинальным.
* `inconsistency` — *boolean*, противоречия в метаданных. Например мы видим название графического редактора или видим, что дата съёмки отличается от даты изменения изображения.
* `maker`, `model`, `software` — *string*, информация об устройстве и программном обеспечении.
* `date_time` — объект с данными о датах и времени из метаданных:
  * `modify_date`, `create_date`, `date_time_original`, `gps_date_stamp` — *string*, даты и время.
* `gps_coords` — объект с GPS-координатами:
  * `latitude_ref`, `latitude`, `longitude_ref`, `longitude`, `altitude_ref`, `altitude` — *string*, координаты и высота.

**Поле `input_image`**

* `input_image` — *string* или `null`, содержит исходное изображение в формате Data URL с MIME-типом JPEG в base64, если в запросе передан параметр `return_crops=true`.

## Описание типовых сценариев использования для МФО

### Онлайн-заявка на микрозайм до 15 000 рублей

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

1. Клиент загружает фото паспорта и селфи с паспортом.
2. Отправляем асинхронный запрос к API Антифрод 2.0 (`async=true`).
3. Ключевой параметр для проверки — `overall_result:`
   * `definitely_fake`: отклоняем заявку
   * `potentially_fake`: отправляем на ручную проверку
   * `bad_image_quality` и `other`: просим прислать изображения повторно
   * `genuine`: если по вашему скорингу всё хорошо, выдаём займ
4. Если вы хотите выстроить логику обработки самостоятельно, обратите внимание на следующие параметры:
   * `image.type`: убеждаемся, что это "passport" и "selfie".
   * `image.quality`: проверяем параметры качества изображения, которые вы считаете критичными.
   * в случае с `image.type=selfie` проверяем `selfie.fake.result` и отклоняем при `true`.
   * в случае с `image.type=`passport проверяем `passport.ai_checks.image_modifications_detected.result` — отклоняем при `true`.

### POS-кредитование

Здесь также важна скорость, но сумма может быть выше:

1. Консультант фотографирует паспорт клиента и делает селфи с паспортом.
2. Рекомендуем использовать синхронный запрос к API (`async=false`), чтобы максимально быстро получить результат.
3. Ключевые параметры:
   * Те же, что и для микрозайма до 15 000 рублей.
   * Дополнительно проверяем `passport.ai_checks.visual_field_missing, passport.ai_checks.photo_not_found` и все параметры `logical_checks`.

### Онлайн-заявка на крупный заём

Для займов на большие суммы можно позволить более тщательную проверку:

1. Клиент загружает фото паспорта, селфи с паспортом и дополнительные документы.
2. Используем асинхронный запрос (`async=true`).
3. Ключевые параметры:
   * Все параметры, указанные в предыдущих сценариях.
   * `passport.file_metadata`: проверяем наличие и соответствие метаданных.
   * `passport.ai_checks.photo_gender_mismatch`: дополнительная проверка соответствия пола.

### Обновление данных в личном кабинете

Здесь скорость не критична, но важна точность:

1. Клиент загружает новые фото документов.
2. Используем асинхронный запрос (`async=true`).
3. Ключевые параметры:
   * Все параметры, указанные для крупного займа.
   * Сравниваем новые данные с уже имеющимися в системе.

### Общие рекомендации по использованию API:

1. Всегда проверяйте `overall_result` как первичный индикатор подлинности.
2. Обращайте внимание на `image.quality` для всех типов запросов. Если качество низкое, запросите повторную отправку изображения.
3. Для селфи с паспортом (`image.type=selfie`) критически важно проверять `selfie.fake.result` и `selfie.fake.confidence`.
4. Для изображения паспорта (`image.type=`passport) обратите особое внимание на `passport.ai_checks.image_modifications_detected.result` — это прямой индикатор подделки.
5. Все параметры в `passport.logical_checks` важны, так как указывают на логические несоответствия в данных паспорта.
6. Для более тщательной проверки используйте `passport.file_metadata`, особенно для крупных займов.
7. Настройте разные пороговые значения для параметров в зависимости от суммы займа и типа продукта.
8. Используйте `task_tags` для связывания запросов с конкретными клиентами или заявками в вашей системе.
9. При высокой нагрузке используйте асинхронные запросы (`async=true`) и настройте систему опроса результатов.
10. Регулярно анализируйте статистику ответов API для выявления новых паттернов мошенничества и корректировки алгоритмов проверки.

Применяя эти сценарии и рекомендации, вы сможете эффективно использовать Антифрод 2.0 для борьбы с различными видами фрода в процессах вашей МФО.

Если вы хотите использовать наш сервис в рамках банковских или иных финансовых бизнес-процессов, напишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>


# Качество изображения

Оцениваем качество изображений. Это поможет вам решить: подойдёт ли изображение для бизнес-процесса или нужно запросить у клиента новое

{% hint style="danger" %}
Рассказываем про сервис, чтобы вы понимали его возможности. Воспользоваться им пока что нельзя. Если он вам нужен, напишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>
{% endhint %}

Список проверок:

1. Размер изображения по минимальной стороне.
2. Вес изображения.
3. Экспозиция (уровень освещённости изображения).
4. Чёткость изображения.

Когда сервис заработает, вам понадобится эта информация:

{% hint style="success" %}
Чтобы воспользоваться сервисом, отправьте POST-запрос на URL `https://latest.dbrain.io/check/quality`
{% endhint %}

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

## В ответе на запрос к API:

* `min_side_pixel` — integer. Число пикселей по минимальной стороне изображения. Рекомендуем отбраковывать изображения размером менее 640 пикселей.
* `weight` — integer. Вес изображения в килобайтах. Рекомендуем отбраковывать изображения весом менее 100 Kb.
* `exposition` — number от 0 до 2. Уровень освещённости изображения, где:
  * 1 — хорошо сбалансированное изображение: не слишком тёмное и не слишком светлое
  * 0 — очень тёмное, недоэкспонированное
  * 2 — очень светлое, переэкспонированное
  * Сервис также возвращает промежуточные значения. Мы рекомендуем отбраковывать изображения с exposition менее 0.5 и более 1.5
* `sharpness` — number от 0 до 1. Уровень чёткости изображения, где:
  * 1 — хорошее, чёткое изображение
  * 0 — максимально смазанное
  * Сервис также возвращает промежуточные значения. Рекомендуем отбраковывать изображения с `sharpness` менее 0.5
* `traceback` — string, сообщение об ошибке. Содержит информацию о том, где произошла ошибка в коде и какие функции были вызваны перед ней. Это сообщение может помочь разработчикам понять причину возникновения ошибки и исправить её. Передайте сообщение нашей службе поддержки в [телеграм](https://t.me/dbrain_support_bot).


# Подписи и печати

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

{% hint style="success" %}
Чтобы воспользоваться сервисом, отправьте POST-запрос на URL `https://latest.dbrain.io/check/sign_seal`
{% endhint %}

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

## Параметры запроса к API

{% hint style="success" %}
**Асинхронный запрос**

<mark style="color:green;">**async**</mark> — boolean

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В ответ на запрос сервис вернёт в `response body` параметр `task_id`. Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результат работы сервиса в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды
{% endhint %}

{% hint style="success" %}
**Возврат найденных областей изображения**

<mark style="color:green;">**return\_crops**</mark> — boolean

* true — сервис вернёт в ответе API найденные области изображения с печатями и подписями
* false (по умолчанию) — cервис не вернёт найденные области изображения

<mark style="color:red;">Ответ приходит в объект images массива result</mark>
{% endhint %}

{% hint style="success" %}
**Тегирование запроса**

<mark style="color:green;">**task\_tags**</mark> — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре `task_tags` удобный вам тег: `task_tags=тэг`
{% endhint %}

## Тело запроса к API

{% hint style="success" %}
**Изображение**

<mark style="color:green;">**image**</mark> — string ($binary)

Изображение обязательно для передачи в запросе. Сервис ожидает изображение документа в двоичном виде
{% endhint %}

## В ответе на запрос к API:

<table data-header-hidden data-full-width="true"><thead><tr><th width="232">Название</th><th width="136.33333333333331">Тип</th><th>Описание</th></tr></thead><tbody><tr><td>task_id</td><td>string</td><td>Идентификатор запроса, формат: 32 символа, 16-ричная строка</td></tr><tr><td>error</td><td>string</td><td>Текстовое описание ошибки</td></tr><tr><td>task_tags</td><td>array[string]</td><td>Теги, если они переданы в параметре task_tags</td></tr><tr><td>success</td><td>boolean</td><td>Статус запроса</td></tr><tr><td>status_code</td><td>integer</td><td><p>HTTP-код статуса запроса</p><ul><li>200 — запрос выполнен успешно</li><li>400, 403, 500 и т.д. — расшифрованы в «<a href="/pages/mtcHXyOf98EHOiHYbHeN#http-kody-otveta-na-zapros">Общей информации о сервисах</a>»</li></ul></td></tr><tr><td>result.images</td><td>array[$string]</td><td><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs">data URL</a> с MIME-типом JPEG в формате base64 — найденные области изображения с печатями и подписями. Возвращается, если в запросе передать <code>return_crops=true</code></td></tr><tr><td>result.doc_type</td><td>string</td><td>Всегда возвращается пустым. Оставлен для совместимости структуры ответа с другими методами API</td></tr><tr><td>result.confidence</td><td>number</td><td>Всегда равно 1. Оставлен для совместимости структуры ответа с другими методами API</td></tr><tr><td>result.page_num</td><td>integer</td><td>Номер страницы в оригинальном файле, на котором найдены подписи и печати</td></tr><tr><td>result.fields</td><td>array</td><td>Массив, содержащий найденные подписи и печати</td></tr><tr><td>result.fields.name</td><td>string</td><td>Тип и порядковый номер найденной области изображения. Для печатей это print_X, для подписей это signature_X, где X — порядковый номер</td></tr><tr><td>result.fields.value</td><td>string</td><td>Всегда возвращает «true». Оставлен для совместимости структуры ответа с другими методами API</td></tr><tr><td>result.fields.confidence</td><td>number</td><td>Уровень уверенности сервиса от 0 до 1 в корректности детекции печати или подписи</td></tr><tr><td>result.fields.page_num</td><td>integer</td><td>Номер страницы в оригинальном файле, на котором найдена печать или подпись</td></tr><tr><td>result.fields.coords</td><td>array[integer]</td><td>Массив с координатами поля по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый. Поле может состоять из нескольких частей</td></tr><tr><td>result.fields.crops</td><td>array[$string]</td><td>Массив <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs">data URL</a> с MIME-типом JPEG в формате base64 — изображения найденных областей изображения с печатью или подписью. Возвращается, если в запросе передать <code>return_crops=true</code></td></tr><tr><td>result.fields.is_found</td><td>boolean</td><td><ul><li>true — поле найдено в документе</li><li>false — поле в документе не найдено</li></ul></td></tr><tr><td>result.tables</td><td>array[array]]</td><td>Всегда возвращает пустой массив. Оставлен для совместимости структуры ответа с другими методами API</td></tr></tbody></table>


# Базы данных

Проверяем документы и физлиц по базам данных

Нам доступны:

* ИНН физического лица
* Действующие исполнительные производства из открытых источников главного управления по вопросам миграции МВД России
* Архивные исполнительные производства из закрытых источников
* Данные о розыске в открытых источниках ФССП
* Данные о розыске из открытых источников ФСИН
* Данные о наличии в списках экстремистов и террористов Росфинмониторинга
* Данные о наличии в реестре залогов федеральной нотариальной палаты
* Данные о розыске по данным открытых источников МВД
* Данные о наличии в чёрных списках компаний в сфере каршеринга, проката, грузоперевозок, банков и МФО
* Данные о наличии в эталонных базах данных человека с такой связкой ФИО, даты рождения и серии-номера паспорта
* Данные о наличии серии-номера паспорта в списке недействительных паспортов МВД
* Данные о наличии в реестре дисквалифицированных лиц
* Данные о наличии судимости
* Данные о наличии в списке публичных должностных лиц\\

Список проверок, которые мы можем оперативно добавить в API по запросу:

* Проверка паспорта по списку недействительных паспортов
* Проверка связки ФИО + ДР / паспорта и ИНН
* Проверка ФЛ на банкрота
* Проверка ФЛ на наличие в списке номинальных ГД
* Проверка ФЛ на наличие статуса ИП
* Проверка ФЛ на участие в ЮЛ
* Проверка ФЛ на дисквалификацию
* Проверка ФЛ на ограничение в участие ЮЛ
* Проверка ФЛ на получение статуса самозанятого
* Проверка ФЛ по арбитражным делам
* Проверка ФЛ на долги за налоги
* Подтверждение связки ФИО–телефон
* Проверка совершеннолетия
* Проверка на вероятность «дропа»
* Наличие двойного гражданства
* Верификация через Госуслуги
* Подтверждение связки email–телефон, ФИО
* Проверка тегов по телефону на наличие ключевых слов (жулик, мошенник, вор и пр.)
* Проверка связи между ФЛ
* Проверка срока жизни / оценка активности телефонного номера
* Проверка водительского удостоверения
* Получение СНИЛС, серии и номера паспорта по ФИО и ДР
* Скоринг благонадёжности
* Скоринг на мошенничество

{% hint style="info" %}
Если вам не хватает какой-то проверки, скорее всего, она у нас уже есть. Напишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>, и мы добавим её в API
{% endhint %}

{% hint style="success" %}
Чтобы воспользоваться сервисом, отправьте POST-запрос на URL `https://latest.dbrain.io/check/external`
{% endhint %}

## Параметры запроса к API

{% hint style="success" %}
**Асинхронный запрос**

<mark style="color:green;">**async**</mark> — boolean

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В ответ на запрос сервис вернёт в `response body` параметр `task_id`. Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результат работы сервиса в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.
{% endhint %}

{% hint style="success" %}
**Тегирование запроса**

<mark style="color:green;">**task\_tags**</mark> — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре `task_tags` удобный вам тег: `task_tags=тэг`
{% endhint %}

{% hint style="success" %}
**Получение ИНН физического лица**

<mark style="color:green;">**get\_inn**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `inn`
{% endhint %}

{% hint style="success" %}
**Получение действующих исполнительных производств из открытых источников главного управления по вопросам миграции МВД России**

<mark style="color:green;">**get\_current\_enforcements**</mark> **— boolean**

* **true** — получить данные
* **false** (по умолчанию) — не получать данные

Ответ приходит в поле `current_enforcements`
{% endhint %}

{% hint style="success" %}
**Получение архивных исполнительных производств из закрытых источников**

<mark style="color:green;">**get\_archive\_fssp**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `archive_fssp`
{% endhint %}

{% hint style="success" %}
**Получение данных о розыске человека в открытых источниках ФССП**

<mark style="color:green;">**is\_fssp\_wanted**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `is_fssp_wanted`
{% endhint %}

{% hint style="success" %}
**Получение данных о розыске человека из открытых источников ФСИН**

<mark style="color:green;">**is\_fsin\_wanted**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `is_fsin_wanted`
{% endhint %}

{% hint style="success" %}
**Получение данных о наличии человека в списках экстремистов и террористов Росфинмониторинга**

<mark style="color:green;">**is\_terrorist**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `is_terrorist`
{% endhint %}

{% hint style="success" %}
**Получение данных о наличии человека в реестре залогов федеральной нотариальной палаты**

<mark style="color:green;">**is\_in\_pledge\_registry**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не данные

Ответ приходит в поле `is_in_pledge_registry`
{% endhint %}

{% hint style="success" %}
**Получение данных о розыске человека по данным открытых источников МВД**

<mark style="color:green;">**is\_mvd\_wanted**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `is_mvd_wanted`
{% endhint %}

{% hint style="success" %}
**Получение данных о наличии человека в чёрных списках компаний в сфере каршеринга, проката, грузоперевозок, банков и МФО**

<mark style="color:green;">**is\_in\_black\_list**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные о наличии в чёрных списках

Ответ приходит в поле `is_in_black_list`
{% endhint %}

{% hint style="success" %}
**Получение данных о наличии в эталонных базах данных человека с такой связкой ФИО, даты рождения и серии-номера паспорта**

<mark style="color:green;">**is\_fio\_birthday\_passport\_verified**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `is_fio_birthday_passport_verified`
{% endhint %}

{% hint style="success" %}
**Получение данных о наличии серии-номера паспорта в списке недействительных паспортов МВД**

<mark style="color:green;">**is\_passport\_expired**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `is_passport_expired`
{% endhint %}

{% hint style="success" %}
**Получение данных о наличии человека в реестре дисквалифицированных лиц**

<mark style="color:green;">**is\_in\_disqualified\_list**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `is_in_disqualified_list`
{% endhint %}

{% hint style="success" %}
**Получение данных о наличии судимости**

<mark style="color:green;">**is\_criminal**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `is_criminal`
{% endhint %}

{% hint style="success" %}
**Получение данных о наличии человека в списке публичных должностных лиц**

<mark style="color:green;">**is\_in\_pdl\_list**</mark> — boolean

* true — получить данные
* false (по умолчанию) — не получать данные

Ответ приходит в поле `is_in_pdl_list`
{% endhint %}

## Тело запроса к API

{% hint style="success" %}
**Изображение**

<mark style="color:green;">**image**</mark> — string ($binary)

Изображение обязательно для передачи в запросе. Сервис ожидает изображение [главного разворота паспорта РФ](/servisy/izvlechenie-dannykh/pasport) в двоичном виде. Рекомендуем брать его из ответа сервиса [«Классификация документов»](/servisy/document-classification).
{% endhint %}

## В ответе на запрос к API:

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

<table data-header-hidden><thead><tr><th width="183">Название</th><th width="126.33333333333331">Тип</th><th>Описание</th></tr></thead><tbody><tr><td>task_id</td><td>string</td><td>Идентификатор запроса, формат: 32 символа, 16-ричная строка</td></tr><tr><td>error</td><td>string</td><td>Текстовое описание ошибки</td></tr><tr><td>task_tags</td><td>array[string]</td><td>Теги, если они переданы в параметре task_tags</td></tr><tr><td>success</td><td>boolean</td><td>Статус запроса</td></tr><tr><td>status_code</td><td>integer</td><td><p>HTTP-код статуса запроса</p><ul><li>200 — запрос выполнен успешно</li><li>400, 403, 500 и т.д. — расшифрованы в «<a href="/pages/mtcHXyOf98EHOiHYbHeN#http-kody-otveta-na-zapros">общей информации о сервисах</a>»</li></ul></td></tr><tr><td>inn</td><td>integer</td><td><ul><li>123456789000 — Найден ИНН</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>current_enforcements</td><td>integer</td><td><ul><li>1234 — Найден (в рублях)</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>archive_fssp</td><td>integer</td><td><ul><li>1234 — Найден (в рублях)</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_fssp_wanted</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_fsin_wanted</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_terrorist</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_in_pledge_registry</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_mvd_wanted</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_in_black_list</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_fio_birthday_passport_verified</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_passport_expired</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_in_disqualified_list</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_criminal</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr><tr><td>is_in_pdl_list</td><td>integer</td><td><ul><li>1 — Найден</li><li>0 — Не найден</li><li>-1 — Источник не ответил</li><li>-2 — Проверка не оплачена</li><li>-3 — Не удалось извлечь нужные поля из документа</li></ul></td></tr></tbody></table>


# Операции с лицами

Предоставляем набор сервисов для работы с изображениям лиц

* [Сравнение лиц на двух изображениях](/servisy/operacii-s-licami/sravnenie-lic) — сравниваем лица на двух изображениях и даём оценку их схожести.
* [Селфи-чек](/servisy/operacii-s-licami/selfi-chek) — сравниваем лицо человека с лицом на фотографии в документе в рамках одного изображения.
* [Liveness](/servisy/operacii-s-licami/liveness) — определяем наличие на изображении человека, а не фотографии человека.


# Сравнение лиц

Сравниваем лица на двух изображениях и даём оценку их схожести

Сервис может подтвердить или опровергнуть факт: вот этот документ принадлежит вот этому человеку. На одном изображении должно быть лицо человека, а на втором — документ, удостоверяющий его личность. Документ мы рекомендуем брать из ответа сервиса «[Классификация документов](/servisy/document-classification)». Сервис сравнивает лицо человека с фотографией из документа и даёт оценку их схожести. Можно ли использовать сервис в других бизнес-сценариях? Пожалуйста.

Если на изображении несколько лиц, сервис выберет лицо, которое занимает б**о**льшую площадь кадра, так что фото с друзьями и котами не возбраняются. Помимо сравнения лиц сервис сообщает дополнительную информацию о положении головы, глазах и рте.

{% hint style="success" %}
Чтобы воспользоваться сервисом, отправьте POST-запрос на URL <https://latest.dbrain.io/v2/face/distance>
{% endhint %}

## Параметры запроса к сервису

#### Асинхронный запрос

{% hint style="success" %}
**async — boolean**
{% endhint %}

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В ответ на запрос сервис вернёт в `response body` параметр `task_id.` Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результаты классификации в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.

#### Возврат найденных областей изображения

{% hint style="success" %}
**return\_crops — boolean**
{% endhint %}

Поведение по умолчанию: `return_crops=false` — cервис не возвращает найденные области изображения.

Если вам нужны найденные сервисом области изображения, укажите `return_crops=true`. Сервис вернёт в ответе API в параметре crop найденные области изображения с лицами.

#### Тегирование запроса

{% hint style="success" %}
**task\_tags — string array**
{% endhint %}

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре `task_tags` удобный вам тег: `task_tags=тэг`

## Тело запроса к API

Сервис ожидает два изображения в атрибутах `image1` и `image2`.

#### Изображение

{% hint style="success" %}
**image1 — string ($binary)**

**image2 — string ($binary)**
{% endhint %}

Оба изображения обязательны для передачи в запросе. Сервис ожидает изображение в двоичном виде.

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

## В ответе на запрос API:

<details>

<summary>Иллюстрация к понятиям yaw, pitch и roll</summary>

<img src="/files/ovHA3rwn2uDGpnw1TxDG" alt="" data-size="original">

</details>

* `task_id` — string, идентификатор запроса, формат: 32 символа, 16-ричная строка
* `error` — string, текстовое описание ошибки
* `task_tags` — array\[string], теги, если они переданы в параметре task\_tags
* `success` — boolean, статус запроса
  * `true` — запрос выполнен успешно
  * `false` — запрос не выполнен
* `status_code` — integer, HTTP-код статуса запроса
  * 200 — запрос выполнен успешно
  * 400, 403, 500 и т.д. — расшифрованы в «[общей информации о сервисах](https://docs.dbrain.io/obshaya-informaciya-o-servisakh#http-kody-otveta-na-zapros)»
* `items` — массив, содержащий смысловую часть ответа сервиса
  * `distance` — number от 0 до 1, чем больше число, тем сильнее различаются лица
  * `warnings` — массив, описывающий предупреждения и ошибки, возможные значения:
    * More than one face detected on image 1 — найдено более 1 лица на изображении 1
    * More than one face detected on image 2 — найдено более 1 лица на изображении 2
    * No face detected on image1 — лицо не найдено на изображении 1
    * No face detected on image2 — лицо не найдено на изображении 2
    * Head yaw is too high on image 1 — поворот головы относительно вертикальной оси превышает ±5 градусов (здесь и далее ISO/IEC 19794-5) на изображении 1
    * Head yaw is too high on image 2 — поворот головы относительно вертикальной оси превышает ±5 градусов (здесь и далее ISO/IEC 19794-5) на изображении 2
    * Head pitch is too high on image 1 — наклон головы вверх или вниз относительно горизонтальной оси, проведённой через уши превышает ±5 градусов на изображении 1
    * Head pitch is too high on image 2 — наклон головы вверх или вниз относительно горизонтальной оси, проведённой через уши, превышает ±5 градусов на изображении 2
    * Head roll is too high on image 1 — наклон головы налево или направо относительно горизонтальной оси, проведённой через нос, превышает ±5 градусов на изображении 1
    * Head roll is too high on image 2 — наклон головы налево или направо относительно горизонтальной оси, проведённой через нос, превышает ±5 градусов на изображении 2
    * Left eye closed on image 1 — левый глаз закрыт на изображении 1
    * Left eye closed on image 2 — левый глаз закрыт на изображении 2
    * Left eye occluded on image 1 — левый глаз заслонён более, чем на 5% на изображении 1
    * Left eye occluded on image 2 — левый глаз заслонён более, чем на 5% на изображении 2
    * Right eye closed on image 1 — правый глаз закрыт на изображении 1
    * Right eye closed on image 2 — правый глаз закрыт на изображении 2
    * Right eye occluded on image 1 — правый глаз заслонён более, чем на 5% на изображении 1
    * Right eye occluded on image 2 — правый глаз заслонён более, чем на 5% на изображении 2
    * Mouth occluded on image 1 — рот заслонён более, чем на 5% на изображении 1
    * Mouth occluded on image 2 — рот заслонён более, чем на 5% на изображении 2
  * `same_face` — boolean, бинарный признак схожести лиц на двух изображениях
    * `true` — если distance меньше или равен 0.4
    * `false` — если distance больше 0.4
  * `faces1` и `faces2` — объекты, содержащие информацию о лице с изображения 1 и изображения 2 соответственно:
    * `confidence` — number от 0 до 1, уровень уверенности модели, что на изображении найдено именно лицо, а не что-то другое
    * `coords` — массив, координаты лица на изображении по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
    * `crop` — $string, [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64, область изображения с найденным лицом, возвращается, если в запросе передать `return_crops=true`
    * `rotation` — integer, в котором закодирована ориентация лица
      * 0 — поворот не требуется
      * 1 — требуется поворот на 90 градусов
      * 2 — требуется поворот на 180 градусов
      * 3 — требуется поворот на 270 градусов
    * `head` — объект, содержащий оценку положения головы в трёх измерениях
      * `pitch` — number от -180 до 180: оценка наклона головы вверх или вниз относительно горизонтальной оси, проведённой через уши, где 0 — нет наклона.
      * `yaw` — number от -180 до 180: оценка поворота головы налево или направо относительно вертикальной оси, где 0 — нет поворота.
      * `roll` — number от -180 до 180: оценка наклона головы налево или направо относительно горизонтальной оси, проведённой через нос, где 0 — нет наклона.
    * `left_eye` — объект, содержащий оценку левого глаза
      * `occluded` — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён
      * `open` — true/false, где true — глаз открыт
    * `right_eye` — объект, содержащий оценку правого глаза
      * `occluded` — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён
      * `open` — true/false, где true — глаз открыт
    * `mouth` — объект, содержащий оценку рта
      * `occluded` — number от 0 до 1, где 0 — рот ничем не закрыт, а 1 — рот полностью закрыт
* `input_image1` — $string, [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64 — оригинал изображения номер 1, возвращается, если в запросе передать `return_crops=true`
* `input_image2` — $string, [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64 — оригинал изображения номер 2, возвращается, если в запросе передать `return_crops=true`

{% hint style="info" %}
Остальные поля не несут практического смысла. Оставили их для совместимости со старыми версиями
{% endhint %}


# Селфи-чек

Сравниваем лицо человека с лицом на фотографии в документе в рамках одного изображения

Сервис предназначен для обработки селфи с документами — фотографии, где видно и лицо человека, и документ, который он держит в руках. Дополнительно сервис проверяет, что человек предоставил именно главный разворот паспорта РФ, а также сообщает дополнительную информацию о положении головы, глазах и рте.

{% hint style="success" %}
Чтобы воспользоваться сервисом, отправьте POST-запрос на URL <https://latest.dbrain.io/v2/face/selfie>
{% endhint %}

## Параметры запроса к сервису

#### Асинхронный запрос

{% hint style="success" %}
**async — boolean**
{% endhint %}

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В ответ на запрос сервис вернёт в `response body` параметр `task_id`. Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результаты классификации в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.

#### Возврат найденных областей изображения

{% hint style="success" %}
**return\_crops — boolean**
{% endhint %}

Поведение по умолчанию: `return_crops=false` — cервис не возвращает найденные области изображения.

Если вам нужны найденные сервисом области изображения, укажите `return_crops=true.` Сервис вернёт в ответе API в параметре crop найденные области изображения с лицами.

#### Тегирование запроса

{% hint style="success" %}
**task\_tags — string array**
{% endhint %}

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре `task_tags` удобный вам тег: `task_tags=тэг`

#### Проверка типа документа

{% hint style="success" %}
**doc\_type — string array**
{% endhint %}

Поведение по умолчанию: сервис подразумевает, что вы отправляете главный разворот российского паспорта — `passport_main`.

Если нужно найти на изображении другой тип документа, укажите его в параметре `doc_type`. Допустимые типы документов перечислены в «[Типах документов](/obshaya-informaciya/tipy-dokumentov)».

Если указанный тип документа не найден на изображении, в массиве `warnings` массива `items` вернётся ошибка `Document type doesn't match requested.`

## Тело запроса к API

#### Изображение

{% hint style="success" %}
**image — string ($binary)**
{% endhint %}

Изображение обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

## В ответе на запрос API:

<details>

<summary>Иллюстрация к понятиям yaw, pitch и roll</summary>

<img src="/files/ovHA3rwn2uDGpnw1TxDG" alt="" data-size="original">

</details>

* `task_id` — string, идентификатор запроса, формат: 32 символа, 16-ричная строка
* `error` — string, текстовое описание ошибки
* `task_tags` — array\[string], теги, если они переданы в параметре task\_tags
* `success` — boolean, статус запроса
  * `true` — запрос выполнен успешно
  * `false` — запрос не выполнен
* `status_code` — integer, HTTP-код статуса запроса
  * 200 — запрос выполнен успешно
  * 400, 403, 500 и т.д. — расшифрованы в «[общей информации о сервисах](https://docs.dbrain.io/obshaya-informaciya-o-servisakh#http-kody-otveta-na-zapros)»
* `items` — массив, содержащий смысловую часть ответа сервиса
  * `distance` — number от 0 до 1, чем больше число, тем сильнее различаются лица
  * `same_face` — boolean, бинарный признак схожести лиц на двух изображениях
    * `true` — если distance меньше или равен 0.6
    * `false` — если distance больше 0.6
  * `warnings` — массив, описывающий предупреждения и ошибки, возможные значения:
    * More than two face detected — найдено более 2 лиц
    * No face detected on image — лицо вне документа не найдено
    * No face photo detected in document — фотография с лицом в документе не найдена
    * No document detected on image — на изображении не найден документ
    * Document type doesn't match requested — найденный тип документа не соответствует главному развороту паспорта РФ
    * Head yaw is too high — поворот головы относительно вертикальной оси превышает ±5 градусов (здесь и далее ISO/IEC 19794-5)
    * Head pitch is too high — наклон головы вверх или вниз относительно горизонтальной оси, проведённой через уши, превышает ±5 градусов
    * Head roll is too high — наклон головы налево или направо относительно горизонтальной оси, проведённой через нос, превышает ±5 градусов
    * Left eye closed — левый глаз закрыт
    * Left eye occluded — левый глаз заслонён более, чем на 5%
    * Right eye closed — правый глаз закрыт
    * Right eye occluded — правый глаз заслонён более, чем на 5%
    * Mouth occluded — рот заслонён более, чем на 5%
  * `faces` и `faces_on_document` — объекты, содержащие информацию о лице человека и о лице с фотографии в документе соответственно:
    * `confidence` — number от 0 до 1, уровень уверенности модели, что на изображении найдено именно лицо, а не что-то другое
    * `coords` — массив, координаты лица на изображении по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
    * `crop` — $string, [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64, область изображения с найденным лицом, возвращается, если в запросе передать `return_crops=true`
    * `rotation` — integer, в котором закодирована ориентация лица
      * 0 — поворот не требуется
      * 1 — требуется поворот на 90 градусов
      * 2 — требуется поворот на 180 градусов
      * 3 — требуется поворот на 270 градусов
    * `head` — объект, содержащий оценку положения головы в трёх измерениях
      * `pitch` — number от -180 до 180: оценка наклона головы вверх или вниз относительно горизонтальной оси, проведённой через уши, где 0 — нет наклона.
      * `yaw` — number от -180 до 180: оценка поворота головы налево или направо относительно вертикальной оси, где 0 — нет поворота.
      * `roll` — number от -180 до 180: оценка наклона головы налево или направо относительно горизонтальной оси, проведённой через нос, где 0 — нет наклона.
    * `left_eye` — объект, содержащий оценку левого глаза
      * `occluded` — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён
      * `open` — true/false, где true — глаз открыт
    * `right_eye` — объект, содержащий оценку правого глаза
      * `occluded` — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён
      * `open` — true/false, где true — глаз открыт
    * `mouth` — объект, содержащий оценку рта
      * `occluded` — number от 0 до 1, где 0 — рот ничем не закрыт, а 1 — рот полностью закрыт
  * `document` — объект, содержащие информацию о документе на изображении, из которого сервис взял фотографию для сравнения
    * `confidence` — number от 0 до 1, уровень уверенности модели, что на изображении найдено именно лицо, а не что-то другое
    * `coords` — массив, координаты документа на изображении по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
    * `crop` — $string, [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64, область изображения с найденным лицом, возвращается, если в запросе передать `return_crops=true`
    * `rotation` — integer, в котором закодирована ориентация лица
      * 0 — поворот не требуется
      * 1 — требуется поворот на 90 градусов
      * 2 — требуется поворот на 180 градусов
      * 3 — требуется поворот на 270 градусов
    * `type` — string, тип найденного на изображении документа согласно [списку поддерживаемых документов](/obshaya-informaciya/tipy-dokumentov)
  * `input_image` — $string, [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64 — оригинал изображения номер 1, возвращается, если в запросе передать `return_crops=true`

{% hint style="info" %}
Остальные поля не несут практического смысла. Оставили их для совместимости со старыми версиями
{% endhint %}


# Liveness

Оцениваем фотографию на «живость», чтобы убедиться, что перед нами фото человека, а не снимок экрана или другой фотографии

{% hint style="success" %}
Чтобы воспользоваться сервисом, отправьте POST-запрос на URL

[`https://latest.dbrain.io/v2/face/liveness`](https://latest.dbrain.io/v2/face/liveness)
{% endhint %}

## Параметры запроса к сервису

#### Асинхронный запрос

{% hint style="success" %}
**async — boolean**
{% endhint %}

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В ответ на запрос сервис вернёт в `response body` параметр `task_id`. Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результаты классификации в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.

#### Возврат найденных областей изображения

{% hint style="success" %}
**return\_crops — boolean**
{% endhint %}

Поведение по умолчанию: `return_crops=false` — cервис не возвращает найденные области изображения.

Если вам нужны найденные сервисом области изображения, укажите `return_crops=true.` Сервис вернёт в ответе API в параметре crop найденные области изображения с лицами.

#### Тегирование запроса

{% hint style="success" %}
**task\_tags — string array**
{% endhint %}

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции, укажите в параметре `task_tags` удобный вам тег: `task_tags=тэг`

## Тело запроса к API

#### Изображение

{% hint style="success" %}
**image — string ($binary)**
{% endhint %}

Изображение обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

## В ответе на запрос API:

<details>

<summary>Иллюстрация к понятиям yaw, pitch и roll</summary>

<img src="/files/ovHA3rwn2uDGpnw1TxDG" alt="" data-size="original">

</details>

* `task_id` — string, идентификатор запроса, формат: 32 символа, 16-ричная строка
* `error` — string, текстовое описание ошибки
* `task_tags` — array\[string], теги, если они переданы в параметре task\_tags
* `success` — boolean, статус запроса
  * `true` — запрос выполнен успешно
  * `false` — запрос не выполнен
* `status_code` — integer, HTTP-код статуса запроса
  * 200 — запрос выполнен успешно
  * 400, 403, 500 и т.д. — расшифрованы в «[общей информации о сервисах](https://docs.dbrain.io/obshaya-informaciya-o-servisakh#http-kody-otveta-na-zapros)»
* `result` — объект, содержащий смысловую часть ответа сервиса
  * `liveness_score` — number от 0 до 1, чем больше число, тем выше витальность (живость) лица на изображении
  * `input_image` — $string, [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64 — оригинал изображения номер 1, возвращается, если в запросе передать `return_crops=true`
  * `warnings` — массив, описывающий предупреждения и ошибки, возможные значения:
    * More than two face detected — найдено более 2 лиц
    * No face detected on image — лицо не найдено
    * Head yaw is too high — поворот головы относительно вертикальной оси превышает ±5 градусов (здесь и далее ISO/IEC 19794-5)
    * Head pitch is too high — наклон головы вверх или вниз относительно горизонтальной оси, проведённой через уши, превышает ±5 градусов
    * Head roll is too high — наклон головы налево или направо относительно горизонтальной оси, проведённой через нос, превышает ±5 градусов
    * Left eye closed — левый глаз закрыт
    * Left eye occluded — левый глаз заслонён более, чем на 5%
    * Right eye closed — правый глаз закрыт
    * Right eye occluded — правый глаз заслонён более, чем на 5%
    * Mouth occluded — рот заслонён более, чем на 5%
  * `face` — объекты, содержащие информацию о лице человека:
    * `confidence` — number от 0 до 1, уровень уверенности модели, что на изображении найдено именно лицо, а не что-то другое
    * `coords` — массив, координаты лица на изображении по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
    * `crop` — $string, [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64, область изображения с найденным лицом, возвращается, если в запросе передать `return_crops=true`
    * `rotation` — integer, в котором закодирована ориентация лица
      * 0 — поворот не требуется
      * 1 — требуется поворот на 90 градусов
      * 2 — требуется поворот на 180 градусов
      * 3 — требуется поворот на 270 градусов
    * `head` — объект, содержащий оценку положения головы в трёх измерениях
      * `pitch` — number от -180 до 180: оценка наклона головы вверх или вниз относительно горизонтальной оси, проведённой через уши, где 0 — нет наклона.
      * `yaw` — number от -180 до 180: оценка поворота головы налево или направо относительно вертикальной оси, где 0 — нет поворота.
      * `roll` — number от -180 до 180: оценка наклона головы налево или направо относительно горизонтальной оси, проведённой через нос, где 0 — нет наклона.
    * `left_eye` — объект, содержащий оценку левого глаза
      * `occluded` — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён
      * `open` — true/false, где true — глаз открыт
    * `right_eye` — объект, содержащий оценку правого глаза
      * `occluded` — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён
      * `open` — true/false, где true — глаз открыт
    * `mouth` — объект, содержащий оценку рта
      * `occluded` — number от 0 до 1, где 0 — рот ничем не закрыт, а 1 — рот полностью закрыт

{% hint style="info" %}
Остальные поля не несут практического смысла. Оставили их для совместимости со старыми версиями
{% endhint %}


# Базовый OCR

Возвращаем весь найденный текст из любых изображений документов

«Базовый OCR» подойдёт для случаев, когда вам не нужны структурированные данные из документа, а нужно просто извлечь весь текст. Сервис поможет, когда нужно организовать поиск по большому массиву данных. Например, по книге.

Если вам нужны структурированные данные из документа, воспользуйтесь сервисом «[Извлечение данных](/servisy/izvlechenie-dannykh)».

{% hint style="success" %}
Чтобы воспользоваться сервисом, отправьте POST-запрос на URL `https://latest.dbrain.io/basic_ocr`
{% endhint %}

## Параметры запроса к API

{% hint style="success" %}
**Асинхронный запрос**

async — boolean
{% endhint %}

Поведение по умолчанию: `async=false` — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе `async=true`. В таком случае в ответ на запрос сервис вернёт в `response body` параметр `task_id`. Например:

```json
"task_id": "96b8ccc950a70699927036842c624d7c"
```

Используйте этот `task_id`, чтобы получить результаты классификации в методе `result`:

```bash
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
```

Не забудьте указать в параметре `token` ваш ключ лицензии. Рекомендуем запрашивать метод `result` в цикле с периодом 1-2 секунды.

{% hint style="success" %}
**Возврат изображений**

return\_crops — boolean
{% endhint %}

* Поведение по умолчанию: `false` — сервис не возвращает изображения найденных слов
* `true` — сервис возвращает изображения найденных слов

{% hint style="success" %}
**Тегирование запроса**

task\_tags — string array
{% endhint %}

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом. Для использования функции, укажите в параметре `task_tags` удобный вам тег: `task_tags=тэг`

{% hint style="success" %}
**Движок извлечения текста**

**engine — string**
{% endhint %}

* Поведение по умолчанию: `i` — основной движок извлечения текста, работает в локальных версиях сервиса. Мы не рекомендуем менять этот параметр без прямого указания от нашей службы поддержки.
* `g` — второй альтернативный движок извлечения текста, работает только в облачной версии решения.

{% hint style="success" %}
**Рукописный текст**

handwritten — boolean
{% endhint %}

* Поведение по умолчанию: `false` — сервис ожидает документ, в котором содержится только печатный текст
* `true` — сервис ожидает документ, в котором содержатся рукописные символы

{% hint style="success" %}
**Язык извлечения текста**

language — string
{% endhint %}

* Поведение по умолчанию: `rus` — русский язык.
* `eng` — английский язык.
* `any` — смесь русского, английского и других языков.

## Тело запроса к API

{% hint style="success" %}
**Изображение**

image — string ($binary)
{% endhint %}

Обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

{% hint style="info" %}
Перед началом работы с сервисами советуем заглянуть в раздел «[Общая информация о сервисах](/)». В нём перечислили форматы файлов, которые поддерживают сервисы, описали общие для всех сервисов параметры API и расшифровали коды ошибок.
{% endhint %}

## В ответе на запрос API:

* `task_id` — string, идентификатор запроса, формат: 32 символа, 16-ричная строка
* `error` — string, текстовое описание ошибки
* `task_tags` — array\[string], теги, если они переданы в параметре task\_tags
* `success` — boolean, статус выполнения запроса
* `status_code` — integer, дублирует [код состояния HTTP](/#http-kody-otveta-na-zapros)
* `result` — массив, содержит смысловую часть ответа
  * `pages` — массив, содержит страницы документа
    * `text` — массив, содержит весь найденный на странице текст
      * `text` — весь текст на странице
      * `confidence` — уровень уверенности алгоритма в корректности извлечения всего текста в блоке. Считается как усреднённый уровень уверенности по словам
      * `coords` — координаты текста на документе по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
    * `blocks` — массив, который содержит найденные на странице блоки текста — например абзацы
      * `block` — текст блока
      * `confidence` — уровень уверенности алгоритма в корректности извлечения всего текста в блоке, считается как усреднённый уровень уверенности по словам
      * `coords` — координаты блока на странице по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
    * `words` — массив, содержит найденные на странице слова
      * `word` — текст слова
      * `confidence` — уровень уверенности алгоритма в корректности извлечения текста слова
      * `coords` — координаты слова на странице по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый
      * `image` — [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64 — изображение слова. Возвращается, если в запросе передать `return_crops=true`
    * `letters` — массив, который содержит найденные на странице буквы
      * `letter` — текст буквы
      * `confidence` — уровень уверенности алгоритма в корректности извлечения текста буквы
  * `input_images` — [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) с MIME-типом JPEG в формате base64 — оригинальное изображение. Возвращается, если в запросе передать `return_crops=true`


# Ручная верификация

Вручную проверяем результаты извлечения текста в онлайн-режиме

<figure><img src="/files/kRKvKj5UE1QjClkEZ1Nl" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Платформа не обрабатывает персональные данные: исполнители получают перемешанный набор полей из разных документов
{% endhint %}

#### Этапы работы HITL

1. Исполнитель получает пару «вырезанное поле + оцифрованный текст» и оценивает корректность результата с помощью кнопок «Да»/«Нет». Каждое поле проходит через нескольких исполнителей. Оцифрованный текст считается корректным, только если все ответы сошлись.
2. Если хотя бы один из исполнителей выбирает «Нет», вырезанное поле отправляется на ручной ввод. Исполнитель вводит текст, используя виджеты и словари. Например, дату нужно выбрать в календаре, а модель машины строго соответствует марке, выбранной в предыдущем поле. Алгоритм будет запрашивать новые ответы по полю у разных исполнителей, пока не будет достигнут консенсус.

Модуль доступен только в сервисе [«Извлечение данных»](/servisy/izvlechenie-dannykh). Чтобы воспользоваться ручной верификацией извлечённых данных, передайте в запросе параметр `with_hitl=true`. Формат ответа сервиса «Извлечение данных» останется без изменений. Мы рекомендуем использовать модуль ручной верификации в асинхронном режиме сервиса «Извлечение данных». Асинхронный режим описан в [«Общей инофрмации о сервисах»](/).

{% hint style="info" %}
Модуль «Ручная верификация» оплачивается отдельно. Чтобы активировать его, напишите в службу поддержки в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>
{% endhint %}


# Установка на сервер

Написали инструкцию, чтобы вы смогли развернуть решение Dbrain в собственном закрытом IT-контуре

{% hint style="info" %}
Dbrain — серверное решение. Если хотите его протестировать, [воспользуйтесь веб-демо](https://latest.dbrain.io). Мы не используем долговременные хранилища данных. Все входящие файлы передаются на сервер по защищённому протоколу, обрабатываются в оперативной памяти и удаляются сразу после возврата результатов пользователю. В тестовых целях пригодится [паспорт России из Википедии](https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%81%D0%BF%D0%BE%D1%80%D1%82_%D0%B3%D1%80%D0%B0%D0%B6%D0%B4%D0%B0%D0%BD%D0%B8%D0%BD%D0%B0_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B9_%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8#/media/%D0%A4%D0%B0%D0%B9%D0%BB:Pasport_RF.jpg)
{% endhint %}

## Функциональность локальной версии

Поддерживаются:

* [Извлечение данных из документов](/servisy/izvlechenie-dannykh)
* [Классификация документов](/servisy/document-classification)
* [Антифрод 2.0](/servisy/proverka-dokumentov/antifrod-2.0) (только на серверах с GPU)
* [Базовый OCR](/servisy/fulltext-recognition)
* [Бухгалтерская первичка](/servisy/izvlechenie-dannykh/bukhgalterskaya-pervichka)
* [Подписи и печати](/servisy/proverka-dokumentov/podpisi-i-pechati)

## Требования к аппаратной части

#### Сценарии использования:

{% hint style="info" %}
Оценили скорость распознавания на изображениях этих документов в формате JPEG:

* Паспорт РФ — главный разворот
* Паспорт РФ — прописка с печатными и рукописными штампами
* Водительское удостоверение — лицевая сторона
* Водительское удостоверение — обратная сторона 2011 и 2014 годов
* СТС — лицевая и обратная стороны
* СНИЛС — образец 1996 года
  {% endhint %}

{% hint style="danger" %}
Сервис требует от процессора поддержку набора инструкций AVX-512. Без них сервис не будет работать. Вот [список архитектур](https://en.wikipedia.org/wiki/AVX-512#CPUs_with_AVX-512) с поддержкой AVX-512.
{% endhint %}

#### 1. Минимальная конфигурация (только CPU)

{% hint style="success" %}

* Обработка одного документа: 5.5 секунд

* Обработка комплекта из 100 документов: 382 секунды (0.3 RPS)
  {% endhint %}

* Процессор: 2 ядра, 2.3 GHz

* Оперативная память: 16 Gb

#### 1. Слабая конфигурация (только CPU)

{% hint style="success" %}

* Обработка одного документа: 4.2 секунд

* Обработка комплекта из 100 документов: 96 секунд (0.7 RPS)
  {% endhint %}

* Процессор: 16 ядер, 2.3 GHz, ориентир [**Intel Xeon Gold 5218**](https://www.intel.com/content/www/us/en/products/sku/192444/intel-xeon-gold-5218-processor-22m-cache-2-30-ghz/specifications.html)

* Оперативная память: 28 Gb

#### 2. Средняя конфигурация (CPU + GPU)

{% hint style="success" %}

* Обработка одного документа: 3 секунды

* Обработка комплекта из 100 документов: 26 секунд (3.5 RPS)
  {% endhint %}

* Видеокарта: Nvidia Tesla T4

* Процессор: 24 ядра, 2.3 GHz

* Оперативная память: 64 Gb

#### 3. Максимальная конфигурация (CPU + GPU)

{% hint style="success" %}

* Обработка одного документа: 2.9 секунды

* Обработка комплекта из 100 документов: 20 секунд (6 RPS)
  {% endhint %}

* Видеокарта: Nvidia Tesla T4 х 4

* Процессор: 48 ядер, 2.3 GHz

* Оперативная память: 512 Gb

#### 4. Production single-node

{% hint style="success" %}

* Обработка одного документа: 2.4 секунды
* Обработка комплекта из 100 документов: 30 секунд (3.3 RPS)
  {% endhint %}

Балансировщик:

* Процессор: 2 ядра
* Оперативная память: 4 Gb

Сервисы:

* Физический сервер
* Видеокарта: Nvidia A2
* Процессор: 10 ядер, 3.5-3.9 GHz, ориентир: [Intel W-2255](https://www.intel.com/content/www/us/en/products/sku/198016/intel-xeon-w2255-processor-19-25m-cache-3-70-ghz/specifications.html)
* Оперативная память: 128 Gb
* SSD 1024 Gb

#### 6. Production double-node

{% hint style="success" %}

* Обработка одного документа: 2.6 секунды
* Обработка комплекта из 100 документов: 17 секунд (5.8 RPS)
  {% endhint %}

Балансировщик:

* Процессор: 2 ядра
* Оперативная память: 4 Gb

Сервисы (2 сервера):

* Физический сервер
* Видеокарта: Nvidia A2
* Процессор: 10 ядер, 3.5-3.9 GHz, ориентир: [Intel W-2255](https://www.intel.com/content/www/us/en/products/sku/198016/intel-xeon-w2255-processor-19-25m-cache-3-70-ghz/specifications.html)
* Оперативная память: 128 Gb
* SSD 1024 Gb

Выше перечислены аппаратные требования для продуктивной эксплуатации. Dbrain запускается и на слабых конфигурациях. Например, на ноутбуке Core i5-8250U 1.6 GHz / 8 Gb ОЗУ / 250 Gb SSD. Но работоспособность на таких слабых конфигурациях не гарантируется.

## Требования к окружению:

1. Операционная система **Ubuntu** версии 18.04+
2. Система менеджмента контейнеров **Docker**
3. **docker-compose**
4. Для использования мощностей видеокарт нужны:
   1. **nvidia-docker**
   2. **Драйвера Nvidia** последней доступной версии
   3. **CUDA** версии не ниже 11.1
5. Доступ в интернет для проверки лицензии:
   * Адрес: **<https://license.ml.dbrain.io/check/v2>**
   * IP: динамический
   * Порт: 443
   * Протокол: TCP
   * Запрос: POST

## Запуск локальной версии Dbrain

1. Создайте файл с названием docker-compose.yml
2. Скопируйте конфигурацию ниже и вставьте его в docker-compose.yml:

```yaml
version: "3.7"

# Сначала логинимся докером в наш реджистри:
# docker login registry.dbrain.io/docr
# login: r@b@t$docr+docr
# secret: p2JDaaFKIDEoddf8mho7

# Во всех сервисах закомментирован раздел volumes.
# Нужно самостоятельно решить куда монтировать,
# т.к. это зависит от вашего оркестратора.
# Для тестов - можно просто оставить закомментированными.


x-service: &service
  volumes:
    - "./data/files:/files"
#    - "./data/logs:/logs"
  environment:
    LOGURU_LEVEL: "INFO"
    LOGURU_COLORIZE: "YES"
    LICENSE_TOKEN: "***"  # Поменяйте на своё значение
    ALLOW_GPU: "%ALLOW_GPU%" # Укажите необходимое значение, в зависимости от конфигурации сервера
    FACE_API_URL: ""
    FACE_API_USERNAME: ""
    FACE_API_PASSWORD: ""
    
  depends_on:
    - tasque
    - redis
    - db
    - files
  tmpfs:
    - /tmp
  restart: always
  logging: &logging
    driver: "json-file"
    options:
      max-file: "10"
      max-size: "100m"


services:
  api:
    <<: *service
    image: registry.dbrain.io/docr/api:v4.154.0
    command: [ api ]

  specs:
    <<: *service
    image: registry.dbrain.io/docr/specs:v4.154.0
    command: [ specs ]

  agent:
    <<: *service
    image: registry.dbrain.io/docr/agent:v4.154.0
    command: [ agent ]

  redis:
    image: redis:7.0.7-alpine3.17
    restart: always
    logging:
      driver: none

  files:
    image: registry.dbrain.io/docr/files:v4.154.0
    sysctls:
      net.core.somaxconn: 4096
#    volumes:
#      - "./data/files:/files"
    restart: always
    logging: *logging

  db:
    image: registry.dbrain.io/docr/db:v4.154.0
    user: root
#    volumes:
#      - "./data/postgres:/var/lib/postgresql/data"
    environment:
      POSTGRES_DB: postgres
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
    healthcheck:
      test: pg_isready -U postgres -h 127.0.0.1
      interval: 5s
    restart: always
    logging: *logging

# Это сервис очистки старых данных по уже отработавшим задачам.
# Он закомментирован, т.к. вы можете захотеть иначе очищать старые файлы.
# Для теста - можно просто оставить закомментированным.

#  cleaner:
#    image: alpine
#    volumes:
#      - "./data/files:/files"
#    command: sh -c "while true ; do find /files -mmin +"$(( ($PIPELINE_TIMEOUT+$COMPLETED_TASK_TTL_SECONDS) / 60 ))" -type f -print0 | xargs -0 -n 100 -P 4 rm -f; echo cleaning done ; sleep 60 ; done"
#    restart: always
#    logging: *logging

  demo:
    image: registry.dbrain.io/docr/demo:v4.154.0
    restart: always
    logging: *logging

  lb:
    image: registry.dbrain.io/docr/lb:v4.154.0
    restart: always
    ports:
      - 8080:80  # Поменяйте на своё значение, например, 8090:80
    logging: *logging

  tasque:
    image: registry.dbrain.io/docr/tasque:v4.154.0
#    volumes:
#      - "./data/logs:/logs"
    restart: always
    logging: *logging
```

3. Замените `***` в строке `LICENSE_TOKEN: "***"` на ваш токен. Если у вас нет токена, напишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>.
4. Если на вашем сервере доступна видеокарта, допишите в раздел environment файла строку `ALLOW_GPU: true`

{% hint style="info" %}
При первом запуске на сервере может возникнуть конкуренция за процессор, память и видеокарту.

Сервисы и процессы запускаются одновременно и используют одни и те же ресурсы.

Рекомендуем дождаться, пока не произойдет равномерное распределение нагрузки.
{% endhint %}

5. Если вы используете прокси для доступа к сервису лицензий, укажите его в параметре `LICENSE_TOKEN` раздела environment
6. Сохраните изменения в файле docker-compose.yml
7. Залогиньтесь через докер для доступа в наш репозиторий. Для этого выполните команду:

```sh
docker login registry.dbrain.io/docr
```

8. Введите логин `r@b@t$docr+docr` и пароль `p2JDaaFKIDEoddf8mho7`
9. Проверьте, что сервис лицензий доступен. Для этого выполните команду:

```sh
curl https://license.ml.dbrain.io/check/v2
```

10. Если ответ 405 — всё хорошо. В противном случае вам нужно открыть нашему сервису доступ до этого адреса.
11. Запустите сервис следующей командой:

```sh
docker compose up
```

12. Подождите, когда сервис полностью развернётся. В логах появится надпись вида `INFO: Uvicorn running on http://0.0.0.0:80`

Сервис развёрнут локально. Теперь вы можете обращаться к нему по API. Примеры корректных запросов можно получить в свагере, он доступен по адресу `localhost:8080/docs`

Обратите внимание, передавать `token` в запросе не нужно, он передаётся в `environment` в docker-compose.yml

Пример запроса через терминал:

```shell
curl -X POST 'http://localhost:8080/pipelines/run/recognize' \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json' \
-F "image=@image.pdf;type=image/pdf"
```

{% hint style="warning" %}
Сервис обращается к [Dadata.ru](https://dadata.ru/api/suggest/address/), чтобы повысить точность выдаваемых адресов.

Если у вас ограничен доступ в Интернет, внесите в белый список адрес <https://suggestions.dadata.ru>. Если такой возможности нет, отключите обращение к Dadata.ru. Для этого в запросе к методу`recognize`\
передавайте параметр `normalization_fias=false`
{% endhint %}

#### Локально доступные методы:

* Классификация документов: `/pipelines/run/classify`
* Проверка документов на признаки подделки: `/pipelines/run/fraud`
* Базовый OCR: `/pipelines/run/fulltext`
* Извлечение данных из документов: `/pipelines/run/recognize`

{% hint style="info" %}
Ничего не получилось, и вы хотите рассказать, что эта инструкция никуда не годится? Пишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>, мы оперативно поможем
{% endhint %}


# Локальный сервис лицензий

Если разворачиваете сервис Dbrain в закрытом IT-контуре без возможности выхода в Интернет, можете воспользоваться локальным сервисом лицензий

### Установка локального сервиса лицензий

{% hint style="danger" %}
Если вы используете Windows, обязательно [установите Powershell](https://github.com/PowerShell/PowerShell#get-powershell) и выполняйте процесс через него. В противном случае ничего не получится
{% endhint %}

1\. Запустите локальный сервис лицензий:

```bash
docker run --rm -d --name local-license-server -p 8081:8080 registry.dbrain.io/public/license-local:challenge-v2
```

2\. Убедитесь, что сервис запущен:

```bash
curl http://localhost:8081/info
{"limit": 0, "used": 0, "left": 0, "activatedAt": null}
```

Если увидели такой ответ, значит сервис ещё не активирован.

3\. Начните процесс активации, сгенерировав `challenge` строку. Это можно сделать через `curl` или любым иным `http` клиентом.

```bash
curl http://localhost:8081/activation/challenge
<challenge_string>
```

4\. Получите `challenge-answer` — ответ на свою `challenge` строку одним из двух способов:

* С помощью сотрудника `Dbrain` — <https://t.me/dbrain_help>
* Или написать запрос в общем чате с командой `Dbrain`&#x20;

5\. Завершите активацию сервиса лицензий, введя `challenge-answer` строку:

```bash
curl http://localhost:8081/activation/activate --data 'ответ_на_challenge-строку'
```

**Обратите внимание: одинарные кавычки в параметре `--data 'string'` важны при использовании в командной строке, иначе некоторые символы `challenge-answer` строки будут неверно интерпретированы в `bash` и активация не удастся.**

6\. Проверьте успешность активации:

```bash
curl http://localhost:8081/info
{"limit": 1000, "used": 0, "left": 1000, "activatedAt": 1651771605}
```

`activatedAt` указывает на `unix`время активации.

7\. Всё, можно пользоваться. Сервис лицензий доступен для сервисов Dbrain по адресу `http://localhost:8081/check/v2`. Не забудьте прописать этот адрес в переменной окружения сервисов Dbrain `LICENSE_URL=<адрес-сервера-лицензий>/check/v2`.

8\. Лимиты и использованные квоты можно проверить в любой момент в эндпоинте `/info`.

9\. Для повторной активации перезапускать сервис не нужно — достаточно снова перейти к пункту (3) и запросить новую `challenge` строку.


# Мобильный SDK

Представляем Software Development Kit для мобильных платформ Android и iOS

Вы можете встроить SDK в мобильные приложения, в которых вам необходима обработка документов. Мы предоставляем два варианта SDK:

* PassportIQA SDK — библиотека, которая отвечает за захват корректного изображения главного разворота паспорта РФ
* ImageCapture SDK — библиотека, которая захватывает изображение любого документа

## PassportIQA SDK

Общая схема работы:

1. Внешнее приложение запрашивает изображение паспорта у PassportIQA SDK.
2. Библиотека инициирует запуск камеры и проверяет полученные с неё изображения по следующим критериям:

* glare — как минимум одно из полей документа засвечено, и его невозможно однозначно прочитать. Проверка учитывает засветы на МЧЗ паспорта
* blur — изображение документа слишком расплывчато для уверенного чтения символов
* crop — документ обрезан краями изображения, либо ключевые поля документа закрыты посторонними предметами. Например, пальцами
* far — документ находится слишком далеко от камеры
* other — документ не совпадает с целевым документом (паспорт РФ, разворот 2-3 страницы)

3. Библиотека возвращает 5 стоп-кадров из видео, а также фотографию.

#### PassportIQA SDK для Android

{% file src="/files/q6oHGMjPyIyh5ClFNiyD" %}

#### PassportIQA SDK для iOS

{% file src="/files/JUuTZ7IM59VyHIXGNTrT" %}

## ImageCapture SDK

SDK отвечает за захват изображения, отправку на сервер и приём результатов. По умолчанию обработка изображений происходит на серверах Dbrain по адресу [latest.dbrain.io](https://latest.dbrain.io).

#### ImageCapture SDK для Android

[SDK для Android на Github](https://github.com/dbrainio/android-ocr-sdk). Адрес сервера, к которому обращается SDK для обработки изображения и получения результатов, можно изменить. Для этого замените адрес "[https://latest.dbrain.io](https://latest.dbrain.io/)/" в следующем [куске кода](https://github.com/dbrainio/android-ocr-sdk/blob/caaeaf23a8d39792b42ceff4fb16b677aa10d8a7/flow/src/main/java/com/dbrain/flow/workers/UploadWorker.kt#L38):

```java
        val api = Retrofit.Builder()
            .baseUrl("https://latest.dbrain.io/")
            .build()
            .create(Api::class.java)
```

{% file src="/files/-MMFen7JUKf5kvyl5CsC" %}

#### ImageCapture SDK для iOS

[SDK для iOS на Github](https://github.com/dbrainio/DBrainDocumentFlow). Адрес сервера, к которому обращается SDK для обработки изображения и получения результатов, можно изменить. Для этого при инициализации укажите новый адрес в параметрах **`classificationUrl`** и **`recognitionUrl`** константы **`flow`**.

{% file src="/files/-MMFfJhNw3b-SftmDJLc" %}


# Dbrain

Предоставляем набор сервисов для обработки изображений документов

* [Общая информация о сервисах](/)
* [Поддерживаемые типы документов](/obshaya-informaciya/tipy-dokumentov)
* [Классификация документов на типы](/servisy/document-classification)
* [Извлечение данных из документов](/servisy/izvlechenie-dannykh):
  * [Паспорт РФ](/servisy/izvlechenie-dannykh/pasport)
  * [Паспорт РФ: прописка](/servisy/izvlechenie-dannykh/pasport-propiska)
  * [Водительское удостоверение](/servisy/izvlechenie-dannykh/voditelskoe-udostoverenie)
  * [Свидетельство о регистрации транспортного средства РФ](/servisy/izvlechenie-dannykh/sts)
  * [Первичные бухгалтерские документы](/servisy/izvlechenie-dannykh/bukhgalterskaya-pervichka)
  * [Договоры, уставы, решения, приказы](/servisy/izvlechenie-dannykh/dogovory)
  * [Прочие документы](/servisy/izvlechenie-dannykh/prochie-dokumenty)
* [Проверка документов:](/servisy/proverka-dokumentov)
  * [Признаки подделки](/servisy/proverka-dokumentov/priznaki-poddelki)
  * [Соответствие критериям качества изображения](/servisy/proverka-dokumentov/kachestvo-izobrazheniya)
  * [Наличие подписей и печатей](/servisy/proverka-dokumentov/podpisi-i-pechati)
  * [Запросы к ведомственным базам данных](/servisy/proverka-dokumentov/bazy-dannykh)
* [Сравнение лиц на фотографиях и документах](/servisy/operacii-s-licami/liveness):
  * [Сравнение лиц](/servisy/operacii-s-licami/sravnenie-lic)
  * [Селфи-чек](/servisy/operacii-s-licami/selfi-chek)
  * [Liveness](/servisy/operacii-s-licami/liveness)
* [Базовый OCR](/servisy/fulltext-recognition)
* [Ручная верификация результатов распознавания](/servisy/manual-recognition)


