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

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

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

Документы для обработки должны быть закодированы в формат 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": "DLIC1",
                "type": "DLIC",
                "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-7137",
  "documents": [
    {
      "key": "DLIC1",
      "type": "DLIC",
      "data": {
        "Gender": "M",
        "LastName": "LastName",
        "FirstName": "FirstName",
        "MiddleName": "MiddleName",
        "BirthDate": "BirthDate",
        "IssueDate": "IssueDate",
        "EndDate": "EndDate",
        "IssuedBy": "IssuedBy",
        "Series": "Series",
        "Number": "Number",
        "PlaceOfResidence": "PlaceOfResidence",
        "Categories": "Categories",
        "CategoryAStartDate": null,
        "CategoryAEndDate": null,
        "CategoryA1StartDate": null,
        "CategoryA1EndDate": null,
        "CategoryBStartDate": null,
        "CategoryBEndDate": null,
        "CategoryB1StartDate": null,
        "CategoryB1EndDate": null,
        "CategoryCStartDate": null,
        "CategoryCEndDate": null,
        "CategoryC1StartDate": null,
        "CategoryC1EndDate": null,
        "CategoryDStartDate": null,
        "CategoryDEndDate": null,
        "CategoryD1StartDate": null,
        "CategoryD1EndDate": null,
        "CategoryBEStartDate": null,
        "CategoryBEEndDate": null,
        "CategoryCEStartDate": null,
        "CategoryCEEndDate": null,
        "CategoryC1EStartDate": null,
        "CategoryC1EEndDate": null,
        "CategoryDEStartDate": null,
        "CategoryDEEndDate": null,
        "CategoryD1EStartDate": null,
        "CategoryD1EEndDate": null,
        "CategoryMStartDate": null,
        "CategoryMEndDate": null,
        "CategoryTmStartDate": null,
        "CategoryTmEndDate": null,
        "CategoryTbStartDate": null,
        "CategoryTbEndDate": null,
        "SpecialMarks": ""
      },
      "metadata": {
        "confidences": {
          "Gender": 1,
          "LastName": 0.998705923557282,
          "FirstName": 0.987468838691711,
          "MiddleName": 0.987468838691711,
          "BirthDate": 0.999436318874359,
          "IssueDate": 0.996931493282318,
          "EndDate": 0.996931493282318,
          "IssuedBy": 0.997896015644074,
          "PlaceOfResidence": 0.999530375003815,
          "Categories": 0.997450947761536
        },
        "verifications": {

        },
        "biometrics": {
          "match_faces": {
            "match_faces": 1,
            "similarity": 1,
            "error_code": 0,
            "comment": "Success"
          }
        }
      }
    },
    {
      "key": "SELFIE",
      "type": "SELFIE",
      "data": {

      },
      "metadata": {
        "confidences": null,
        "verifications": {

        },
        "biometrics": {
          "liveness": {
            "liveness": 0,
            "probability": 0,
            "error_code": 0,
            "comment": "not live [low probability] Success"
          },
          "match_faces": {
            "match_faces": 1,
            "similarity": 1,
            "error_code": 0,
            "comment": "Success"
          }
        }
      }
    }
  ]
}

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

Ключ Тип Описание
document_id string номер документа в формате s-<номер документа>
documents list список данных по каждому документу
documents[].key string ключ заданный при отправке документа для отслеживания
documents[].type string тип документа
documents[].data dictionary обработанные данные по каждому полю,
содержит ключи полей и их определенные значения
Gender string пол
LastName string фамилия
FirstName string имя
MiddleName string отчество
BirthDate string дата рождения
IssueDate string дата выдачи
EndDate string дата окончания
IssuedBy string кем выдан
PlaceOfResidence string место жительства
Series string серия
Number string номер
Categories string категории ТС
Category<код категории>StartDate string дата выдачи прав категории
Category<код категории>EndDate string дата истечения прав категории
SpecialMarks string специальные отметки
metadata dictionary содержит ключи метаданных
confidences dictionary
{key: float}
метаданные с точностью обработки по каждому полю -
содержит ключи полей и значения уровня уверенности.
Значения от 0.0000 до 0.9999, где чем значение больше,
тем уверенность в результате выше.
Максимальная уверенность - 0.9999.
verifications dictionary
{key: boolean, key: integer}
метаданные совершенных проверок -
содержит ключи и их значения проверок,
см. Правила проверок