Видеоидентификация
Основные составляющие системы
-
API
Система управления идентификациями и получения информации об идентификациях c Вашей стороны
-
WEB-интерфейс пользователя
Используется для идентификации лица Вашего клиента и его последующей сверки с документом
API
Схема работы с API
⚠️ Важно: Не пытайтесь отправить более 100 запросов в минуту! В случае нарушения в ответ на запросы будет присылаться статус 503.
Запрос на создание видеоидентификации
Запрос регистрирует ссылку в системе Beorg.
⚠️ Примечание: Ссылка на идентификацию Вашего клиента не имеет "срока годности", она хранится в нашей системе бесконечно
Структура запроса:
url: https://faceapp.beorg.ru/face/create
method: POST
headers:
Content-Type: application/json
body:
{
"project_id": "U_RATE_3",
"machine_uid": "<machine_uid>",
"token": "token",
"process_info": [
настройки обработки
],
"expires": кол-во секунд действия ссылки (необязательный, при отсутствии ссылка бессрочная)
}
Структура ответа:
{
"status": true/false статус выполнения запроса,
"link": постоянная уникальная ссылка на идентификацию,
"user_token": уникальный идентификатор пользователя,
"qr_code": строка-изображение QR-кода
"state": статус идентификации
}
Статусы идентификации:
| state | Описание |
|---|---|
| 1 | Создана |
| 2 | Начата |
| 3 | Все задания выполнены, идентификация отправлена на обработку |
| 4 | Обработка завершена |
| 5 | Превышено время прохождения идентификации (60 сек) |
| 6 | Идентификация просрочена |
| 7 | Ошибка прохождения идентификации |
Для получения token, machine_uid и project_id обратитесь в подраздел "Начало работы"
⚠️ Важно: Допустимое время на идентификацию после первого открытия ссылки Вашим клиентом - 60 секунд.
Пример запроса
Python
import requests
r = requests.post(
"https://faceapp.beorg.ru/face/create",
headers={"Content-Type": "application/json"},
json={
"project_id": project_id,
"token": token,
"machine_uid": machine_uid,
"process_info": [
{
"key": "SELFIE",
"type": "SELFIE",
},
],
"expires": 3600 # срок действия идентификации (3600 секунд = 1 час)
},
)
r.json()
Получение результатов
Структура запроса:
url: https://faceapp.beorg.ru/face/result
method: GET
headers:
Content-Type: application/json
query_params: token, user_token, return_images
⚠️ Важно: Если Вам необходимо получить помимо данных о физическом лице еще и изображения - укажите параметр return_images со значением true
Структура ответа:
{
"done_state": статус обработки (true - завершено корректно, false - завершено некорректно, null - не завершена),
"state": статус идентификации,
"user_token": уникальный идентификатор пользователя,
"set_id": идентификатор комплекта документов пользователя,
"data": результат обработки данных
}
Статусы идентификации:
| state | Описание |
|---|---|
| 1 | Создана |
| 2 | Начата |
| 3 | Все задания выполнены, идентификация отправлена на обработку |
| 4 | Обработка завершена |
| 5 | Превышено время прохождения идентификации (60 сек) |
| 6 | Идентификация просрочена |
| 7 | Ошибка прохождения идентификации |
Пример запроса
Python
import requests
r = requests.get("https://faceapp.beorg.ru/face/result?token={token}&user_token={user_token}")
r.json()
Для получения token обратитесь в подраздел "Начало работы"
Отправка документа
Структура запроса:
url: https://api.beorg.ru/api/bescan/add_document
method: POST
headers:
Content-Type: application/json
body:
{
"project_id": "U_RATE_2",
"images": ["<строка base64>"],
"process_info": [настройки обработки]
"token": token,
"machine_uid": machine_uid
}
Пример ответа об успешной загрузке:
{
"document_id": "s-12345"
}
Структура передаваемых данных:
| Ключ | Описание |
|---|---|
| project_id | название проекта |
| token | токен доступа |
| machine_uid | идентификатор устройства |
| images | список из строк base64 (файлов) |
| process_info | настройки обработки |
Структура process_info:
| Ключ | Описание |
|---|---|
| key | свободный ключ для разделения документов при загрузке и получении результатов если не указан вместо него используется ключ type |
| type | тип документа |
| options | опции обработки документа |
Структура process_info.options:
| Ключ | Описание |
|---|---|
| stages | этапы обработки документа (Доступны: verification, biometry_match, biometry_liveness) |
| relation | связь с иным документом в одном запросе (Доступны: biometry_match) |
Для получения token, machine_uid и project_id обратитесь в подраздел "Начало работы" Python
import requests
import base64
with open("<путь до файла паспорта(2-3 страницы)>", "rb") as image_file:
b64_front = base64.b64encode(image_file.read()).decode()
with open("<путь до файла паспорта (регистрация)>", "rb") as image_file:
b64_reg = base64.b64encode(image_file.read()).decode()
r = requests.post(
"https://api.beorg.ru/api/bescan/add_document",
headers={"Content-Type": "application/json"},
json={
"project_id": project_id,
"token": token,
"machine_uid": machine_uid,
"images": [b64_front, b64_reg],
"set_id": "<идентификатор комплекта полученный из видеоидентификации>",
"process_info": [
{
"key": "PASSPORT_REG1",
"type": "PASSPORT_REG",
"stages": [
"verification",
"biometry_match",
],
"relation": {
"biometry_match": "SELFIE",
},
},
{
"key": "PASSPORT_REG1",
"type": "PASSPORT_REG",
"stages": [
"verification",
"biometry_match",
],
"relation": {
"biometry_match": "SELFIE",
},
},
],
},
)
r.json()