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

Паспорт гражданина РФ (2-3 стр.) с регистрацией

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

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


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

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

Заголовки:

Content-Type: application/json

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

{
  "project_id": "U_RATE_2",
  "images": ["<строка base64>"],
  "process_info": [
    {
      "key": "PASSPORT_REG1",
      "type": "PASSPORT_REG",
      "options": {
        "stages": ["verification"],
        "relation": {
          "biometry_match": "SELFIE1"
        }
      }
    }
  ],
  "token": "<token>",
  "machine_uid": "<machine_uid>"
}

Пример ответа об успешной загрузке:

{
  "document_id": "s-12345"
}

Структура передаваемых данных

Ключ Описание
project_id Название проекта
token Токен доступа
machine_uid Идентификатор устройства
images Список строк в формате base64 (файлов)
process_info Настройки обработки

Структура process_info

Ключ Описание
key Свободный ключ для разделения документов при загрузке и получении результатов. Если не указан, вместо него используется ключ type
type Тип документа (PASSPORT_REG)
options Опции обработки документа

Для получения token, machine_uid и project_id обратитесь в подраздел «Начало работы».


Примеры запросов (Python)

Пример 1. Отправка паспорта (страницы 2–3 и регистрация)

import requests
import base64


with open("<путь до файла паспорта (2–3 страницы)>", "rb") as image_file:
    b64_front = base64.b64encode(image_file.read()).decode()


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

Пример 2. Отправка паспорта и селфи для сверки лиц

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": "SELFIE"
            }
                }
            },
            {
                "key": "SELFIE1",
                "type": "SELFIE",
                "options": {
            "stages": ["biometry_liveness"]
                }
            }
        ]
    }
)
print(r.json())

Важные замечания:

  • Порядок и длина массивов images и process_info должны быть одинаковыми.
  • В process_info.options.relation указывается, что документ должен пройти сверку лиц (biometry_match) с фотографией (селфи) (SELFIE).
  • Минимальный допустимый порог успешной сверки лиц — 0.95 (95 %).
  • Минимальный допустимый порог успешной проверки живости — 0.9 (90 %).

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

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-12345",
  "documents": [
    {
      "key": "PASSPORT_REG1",
      "type": "PASSPORT_REG",
      "data": {
        "LastName": "LastName",
        "FirstName": "FirstName",
        "MiddleName": "MiddleName",
        "Gender": "M",
        "BirthDate": "BirthDate",
        "BirthPlace": "BirthPlace",
        "Series": "Series",
        "Number": "Number",
        "IssuedBy": "IssuedBy",
        "IssueDate": "IssueDate",
        "IssueId": "IssueId",
        "Address": "Address",
        "Series_REG": "Series_REG",
        "Number_REG": "Number_REG",
        "RegDate": "RegDate",
        "MRZ1": "MRZ1",
        "MRZ2": "MRZ2"
      },
      "metadata": {
        "confidences": {
          "Address": 0.99410206079483,
          "BirthDate": 0.999997735023499,
          "BirthPlace": 0.999923765659332,
          "FirstName": 0.999989628791809,
          "Gender": 0.999987900257111,
          "IssueDate": 0.999991178512573,
          "IssuedBy": 0.999420583248138,
          "IssueId": 0.999999642372131,
          "LastName": 0.565220594406128,
          "MiddleName": 0.999979138374329,
          "MRZ1": 1,
          "MRZ2": 1,
          "Number": 1,
          "Series": 1,
          "RegDate": 0.997209232063105,
          "Series_REG": 1,
          "Number_REG": 1
        }
      },
      "verifications": {
        "status": 0,
        "status_text": "ок",
        "bad_fields": []
      },
      "biometrics": {
        "liveness": {
          "liveness": 1,
          "probability": 0.95
        },
        "match_faces": {
          "match_faces": 1,
          "similarity": 0.97
        }
      },
      "broken": false,
      "broken_reasons": [],
      "broken_reasons_ru": []
    }
  ]
}

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

Ключ Тип Описание
document_id string Номер документа в формате s-<номер документа>
documents list Список данных по каждому документу
documents[].key string Ключ, заданный при отправке документа для отслеживания
documents[].type string Тип документа (PASSPORT_REG)
documents[].data dictionary Обработанные данные по каждому полю — содержит ключи полей и их определённые значения
IssuedBy string Кем выдан паспорт
IssueDate string Дата выдачи паспорта (в формате ДД.ММ.ГГГГ)
IssueId string Код подразделения
Series string Серия паспорта с первого разворота
Number string Номер паспорта с первого разворота
Gender string Пол (M — мужской, F — женский)
LastName string Фамилия
FirstName string Имя
MiddleName string Отчество
BirthDate string Дата рождения (в формате ДД.ММ.ГГГГ)
BirthPlace string Место рождения
Address string Адрес регистрации (отличие от сценария обработки «Паспорт гражданина РФ (2 и 3 страницы)»)
Series_REG string Серия со страницы регистрации
Number_REG string Номер со страницы регистрации
RegDate string Дата регистрации (в формате ДД.ММ.ГГГГ)
HasPhoto boolean или string Попала ли в кадр фотография владельца
HasOwnerSignature boolean или string Попала ли в кадр подпись владельца
MRZ1 string Первая строка машиночитаемой записи
MRZ2 string Вторая строка машиночитаемой записи
metadata dictionary Содержит ключи метаданных
confidences dictionary ({key: float}) Метаданные с точностью обработки по каждому полю —
содержит ключи полей и значения уровня уверенности.
Значения от 0.0000 до 0.9999, где чем значение больше,
тем уверенность в результате выше.
Максимальная уверенность — 0.9999
broken boolean Является ли документ бракованным
broken_reasons list Список причин брака (на английском языке)
broken_reasons_ru list Список причин брака (на русском языке)