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

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

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

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

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

Endpoint: POST https://api.beorg.ru/api/bescan/add_document

Тело запроса:

{
  "project_id": "U_RATE_3",
  "images": ["<строка base64>", "<строка 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 Опции обработки документа

Для получения 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"
                  ]
                }
            }
        ]
    }
)
print(r.json())

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

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

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

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

⚠️ Важно: минимальный допустимый порог успешной сверки лиц — 0.95 (95 %)

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

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

⚠️ Важно: минимальный допустимый порог успешной проверки живости — 0.9 (90 %)

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

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

Endpoint: GET/POST https://api.beorg.ru/api/document/result/s-12345?token=<token>

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

import requests

r = requests.get("https://api.beorg.ru/api/document/result/s-12345?token=<token>")
print(r.json())

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

{
  "document_id": "s-7137",
  "documents": [
    {
      "key": "DLIC1",
      "type": "DLIC",
      "data": {
        "Gender": "M",
        "LastName": "LastName",
        "FirstName": "FirstName",
        "MiddleName": "MiddleName",
        "BirthDate": "BirthDate",
        "BirthPlace": "BirthPlace",
        "IssueDate": "IssueDate",
        "EndDate": "EndDate",
        "IssuedBy": "IssuedBy",
        "SeriesFront": "1234",
        "NumberFront": "567890",
        "SeriesBack": "",
        "NumberBack": "",
        "Series": "1234",
        "Number": "567890",
        "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,
        "CategoryCEndDate": null,
        "CategoryC1EStartDate": null,
        "CategoryC1EEndDate": null,
        "CategoryDEStartDate": null,
        "CategoryDEndDate": 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,
          "BirthPlace": 0.999436318874359,
          "IssueDate": 0.996931493282318,
          "EndDate": 0.996931493282318,
          "IssuedBy": 0.997896015644074,
          "PlaceOfResidence": 0.999530375003815,
          "Categories": 0.997450947761536,
          "SeriesFront": 0.999705923557282,
          "NumberFront": 0.987468848691711,
          "SeriesBack": 0,
          "NumberBack": 0
        },
        "verifications": {},
        "biometrics": {
          "match_faces": {
            "match_faces": 1,
            "similarity": 1,
            "error_code": 0,
            "comment": "Success"
          }
        }
      },
      "broken": false,
      "broken_reasons": [],
      "broken_reasons_ru": []
    },
    {
      "key": "SELFIE1",
      "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"
          }
        }
      },
      "broken": false,
      "broken_reasons": [],
      "broken_reasons_ru": []
    }
  ]
}

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

Ключ Тип Описание
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 Дата рождения
BirthPlace string Место рождения
IssueDate string Дата выдачи
EndDate string Дата окончания действия
IssuedBy string Кем выдан
PlaceOfResidence string Место жительства
SeriesFront string Серия (передняя сторона)
NumberFront string Номер (передняя сторона)
SeriesBack string Серия (задняя сторона)
NumberBack 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
broken boolean Является ли документ бракованным
broken_reasons list Список причин брака (на английском языке)
broken_reasons_ru list Список причин брака (на русском языке)