Перейти к содержанию

Паспорт гражданина РФ с регистрацией

Примеры изображений документов

Документы для обработки должны быть закодированы в формат base64

Отправка документа

Структура запроса:

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 настройки обработки


Структура prosess_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("<путь до файла паспорта>", "rb") as image_file:
    b64 = base64.b64encode(image_file.read()).decode()

with open("<путь до файла фотографии(селфи)>", "rb") as image_file:
    b64_selfie = 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, b64_selfie],
        "process_info": [
            {
                "key": "PASSPORT_REG1",
                "type": "PASSPORT_REG",
                "options": {
                    "stages": [
                        "verification",
                        "biometry_match",
                    ],
                    "relation": {
                        "biometry_match": "SELFIE1",
                    },
                }
            },
            {
                "key": "SELFIE1",
                "type": "SELFIE",
                "options": {
                    "stages": [
                        "biometry_liveness",
                    ],
                },
            },
        ],
    },
)
r.json()


В примере выше по ключам images и process_info представлены 2 файла: документ и фотография(селфи).

В images первым указан файл документа, а вторым указан файл фотографии(селфи). В process_info в том же порядке указаны настройки обработки документов.

Обратите внимание, что порядок и длина images и process_info должны быть одинаковыми

В process_info.options.relation указывается, что документ должен пройти сверку лиц (biometry_match) с фотографией(селфи) (SELFIE1)

"relation": {
    "biometry_match": "SELFIE1",
},

А фотография(селфи) в свою очередь должно пройти проверку на живость (biometry_liveness)

{
    "key": "SELFIE1",
    "type": "SELFIE",
    "options": {
        "stages": [
            "biometry_liveness",
        ],
    },
},


Получение результатов

Структура запроса:

url: https://api.beorg.ru/api/document/result/s-12345?token=
methods: GET, POST
  • Python
import requests
import base64
r = requests.get("https://api.beorg.ru/api/document/result/s-12345?token=")
r.json()

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

{
    "document_id": "s-12345",
    "documents": [
        {
            "key": "PASSPORT_REG1",
            "type": "PASSPORT_REG",
            "data": {
                "IssuedBy": "IssuedBy",
                "IssueDate": "",
                "IssueId": "IssueId",
                "Series": "Series",
                "Number": "Number",
                "Gender": "Gender",
                "LastName": "LastName",
                "FirstName": "FirstName",
                "MiddleName": "MiddleName",
                "BirthDate": "",
                "BirthPlace": "BirthPlace",
                "Address": "Address",
                "HasPhoto": true,
                "HasOwnerSignature": true,
                "HasStamp": ""
            },
            "metadata": {
                "confidences": {
                    "IssuedBy": "0.9999",
                    "IssueDate": "0.9999",
                    "IssueId": "0.9999",
                    "Series": "0.9999",
                    "Number": "0.9999",
                    "Gender": "0.9999",
                    "LastName": "0.9999",
                    "FirstName": "0.9999",
                    "MiddleName": "0.9999",
                    "BirthDate": "0.9999",
                    "BirthPlace": "0.9999",
                    "Address": "0.9999",
                    "MRZ1": "0.9999",
                    "MRZ2": "0.9999",
                    "HasPhoto": "0.9999",
                    "HasOwnerSignature": "0.9999"
                }
            },
            "verifications": {
                "status": 0,
                "status_text": "ок",
                "bad_fields": []
            }
        }
    ]
}

Описание ключей

Ключ Тип Описание
document_id string номер документа в формате s-<номер документа>
documents list список данных по каждому документу
documents[].key string ключ заданный при отправке документа для отслеживания
documents[].type string тип документа
documents[].data dictionary обработанные данные по каждому полю,
содержит ключи полей и их определенные значения
IssuedBy string кем выдан паспорт
IssueDate string дата выдачи паспорта
IssueId string код подразделения
Series string серия паспорта с первого разворота
Number string номер паспорта с первого разворота
Gender string пол
LastName string фамилия
FirstName string имя
MiddleName string отчество
BirthDate string дата рождения
BirthPlace string место рождения
Address string адрес регистрации(отличие от от сценария обработки
Паспорт гражданина РФ (2 и 3 страницы)
)
HasPhoto boolean или string попала ли в кадр фотография владельца
HasOwnerSignature boolean или string попала ли в кадр подпись владельца
MRZ1 string первая строка машиночитаемой записи
MRZ2 string вторая строка машиночитаемой записи
metadata dictionary содержит ключи метаданных
confidences dictionary
{key: float}
метаданные с точностью обработки по каждому полю -
содержит ключи полей и значения уровня уверенности.
Значения от 0.0000 до 0.9999, где чем значение больше,
тем уверенность в результате выше.
Максимальная уверенность - 0.9999.
verifications dictionary
{key: boolean, key: integer}
метаданные совершенных проверок -
содержит ключи и их значения проверок,
см. Правила проверок
biometrics dictionary Результаты проверок биометрии
(доступны в тарифах Биорг.Универсальный и Биорг.KYC)
liveness dictionary
{key: integer, key: integer}
результаты проверки живости человека на селфи
Значения 0 или 1 для ключа liveness,
значения от 0 до 1 для ключа probability
match_faces dictionary
{key: integer, key: integer}
результаты проверки схожести человека на
изображении в паспорте и селфи
Значения 0 или 1 для ключа match_faces,
значения от 0 до 1 для ключа similarity