Водительское удостоверение
Водительское удостоверение РФ, обе стороны
Примеры изображений документов

Документы для обработки должны быть закодированы в формат 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)
⚠️ Важно: Минимальный допустимый порог успешной сверки лиц - 0.95 (95%)
"relation": {
"biometry_match": "SELFIE1",
},
А фотография(селфи) в свою очередь должно пройти проверку на живость (biometry_liveness)
⚠️ Важно: Минимальный допустимый порог успешной проверки живости - 0.9 (90%)
{
"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",
"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,
"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,
"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"
}
}
}
},
{
"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"
}
}
},
"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. |
| verifications | dictionary {key: boolean, key: integer} |
метаданные совершенных проверок - содержит ключи и их значения проверок, см. Правила проверок |
| broken | boolean | Является ли документ бракованным |
| broken_reasons | list | список причин брака (англ) |
| broken_reasons_ru | list | список причин брака (рус) |