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

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

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

Документы для обработки должны быть закодированы в формат 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": "PASSPORT1",
                "type": "PASSPORT",
                "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",
            "type": "PASSPORT",
            "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 место рождения
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}
метаданные совершенных проверок -
содержит ключи и их значения проверок,
см. Правила проверок