Описание API KYC + WEBApp
Основные составлющие системы
-
API
Система управления идентификациями и получения информации об идентификациях c Вашей стороны
-
WEB-интерфейс пользователя
Используется для загрузки изображений документов Вашими клиентами
-
Личный кабинет
Используется для отображения и управления в реальном времени процессов идентификации, поиска персональных данных
API
Схема работы с API
Запрос на создание идентификации KYC
Структура запроса:
url: https://webapp.beorg.ru/kyc/create
method: POST
headers:
Content-Type: application/json
body:
{
"project_id": "U_RATE_3",
"machine_uid": "<machine_uid>",
"token": "token",
"process_info": [
настройки обработки
],
"client_user_token": "идентификатор со стороны заказчика (необязательный)"
}
Структура ответа:
{
"status": true/false статус выполнения запроса,
"error": описание ошибки (если имеется),
"link": постоянная уникальная ссылка на идентификацию,
"user_token": уникальный идентификатор пользователя,
"client_user_token": идентификатор со стороны заказчика,
"qr_code": строка-изображение QR-кода
}
Для получения token, machine_uid и project_id обратитесь в подраздел "Начало работы"
Python
import requests r = requests.post( "https://webapp.beorg.ru/kyc/create", headers={"Content-Type": "application/json"}, json={ "project_id": project_id, "token": token, "machine_uid": machine_uid, "process_info": [ { "key": "SELFIE1", "type": "SELFIE", "options": { "stages": [ "biometry_liveness", ], }, }, { "key": "PASSPORT1", "type": "PASSPORT", "options": { "stages": [ "verification", "biometry_match", ], "relation": { "biometry_match": "SELFIE1", }, } }, ], }, ) r.json()
В примере выше по ключу process_info представлен 2 документа: документ Паспорт РФ (2 и 3 страницы) и фотография(селфи).
Эта структура генерирует идентификацию, в которой у пользователя будет запрошено сначала селфи и в случае успешной обработки селфи будет запрошен Паспорт РФ (2 и 3 страницы)
В process_info.options.relation указывается, что документ должен пройти сверку лиц (biometry_match) с фотографией(селфи) (SELFIE1)
"relation": { "biometry_match": "SELFIE1", },
А фотография(селфи) в свою очередь должно пройти проверку на живость (biometry_liveness)
{ "key": "SELFIE1", "type": "SELFIE", "options": { "stages": [ "biometry_liveness", ], }, },
Получение результатов
Структура запроса:
url: https://webapp.beorg.ru/kyc/get_result
method: GET
headers:
Content-Type: application/json
query_params: token, user_token
Структура ответа:
{
"done_state": статус обработки (true - завершено корректно, false - завершено некорректно, null - не завершена),
"user_token": уникальный идентификатор пользователя,
"client_user_token": идентификатор со стороны заказчика,
"set_id": идентификатор комплекта документов пользователя,
"data": результат обработки данных
}
Python
import requests r = requests.get("https://webapp.beorg.ru/kyc/get_result?token={token}&user_token={user_token}") r.json()
Для получения token обратитесь в подраздел "Начало работы"
Получение статистики по идентификации
Структура запроса:
url: https://webapp.beorg.ru/kyc/stats
method: GET
headers:
Content-Type: application/json
query_params: token, user_token
Структура ответа:
{
"done_state": статус обработки (true - завершено корректно, false - завершено некорректно, null - не завершена),
"user_token": уникальный идентификатор пользователя,
"client_user_token": идентификатор со стороны заказчика,
"events": [события по индентификации],
"master_set": центральный комплект пользователя,
"sets": [все комплекы пользователя],
"uploaded_docs": [информация о загруженных документах],
"link": ссылка на идентификацию,
"qr_code": строка-изображение QR-кода
}
Python
import requests r = requests.get("https://webapp.beorg.ru/kyc/stats?user_token={user_token}&token={token}") r.json()
Принудительное изменение статуса идентификации
Структура запроса:
url: https://webapp.beorg.ru/kyc/set_done_status
method: POST
headers:
Content-Type: application/json
body:
{
"token": "token",
"user_token": "уникальный идентификатор пользователя",
"status": true - завершено корректно, false - завершено некорректно, null - не завершена,
"data": {
"initiator": "свободный необязательный ключ, инициатор изменения"
},
"client_user_token": "идентификатор со стороны заказчика, может использоваться вместо user_token",
}
Структура ответа:
{
"status": true/false - статус выполения запроса,
"done_state": установленный статус обработки (
true - завершено корректно,
false - завершено некорректно,
null - не завершена
),
}
Для получения token обратитесь в подраздел "Начало работы"
Python
import requests r = requests.post(f"https://webapp.beorg.ru/kyc/set_done_status", json = { "token": "token", "user_token": "уникальный идентификатор пользователя", "status": True, "data": { "initiator": "Иванов Иван Иванович" }, }) r.json()
Принудительное бракование документа
Для получения типов и ключей загруженных документов воспользуйтесь методом "Получение статистики по идентификации"
Структура запроса:
url: https://webapp.beorg.ru/kyc/set_doc_broken
method: POST
headers:
Content-Type: application/json
body:
{
"token": "token"
"document_type": "тип документа из загруженых",
"document_key": "ключ документа из загруженых",
"user_token": "уникальный идентификатор пользователя",
"comment": "cвободный комментарий, который будет отображен пользователю",
"data": {
"initiator": "свободный необязательный ключ, инициатор изменения"
},
"client_user_token": "идентификатор со стороны заказчика, может использоваться вместо user_token"
}
Структура ответа:
{
"status": true/false - статус выполения запроса
}
Для получения token обратитесь в подраздел "Начало работы"
Python
import requests r = requests.post(f"https://webapp.beorg.ru/kyc/set_done_status", json = { "token": "token", "user_token": "уникальный идентификатор пользователя", "document_type": "тип документа из загруженых", "document_key": "ключ документа из загруженых", "comment": "В этом документе не видно...", "data": { "initiator": "Иванов Иван Иванович" }, }) r.json()
WEB-интерфейс пользователя
Интерфейс предназначен для загрузки изображений документов со стороны Вашего клиента.
Интерфейс может быть отображен на стороне клиента несколькими путями:
-
Отдельной вкладкой в браузере на ПК
по прямой ссылке:
https://webapp.kyc.beorg.ru/kyc? token=<уникальный идентификатор пользователя>& client_key=<уникальный идентификатор заказчика>
-
Отдельной вкладкой в браузере на смартфоне
по прямой ссылке:
https://webapp.kyc.beorg.ru/kyc? token=<уникальный идентификатор пользователя>& client_key=<уникальный идентификатор заказчика>
- Размещением в качестве HTML-тега на сайте/приложении
<iframe width="400px" height="600px" allow="camera" src="<ссылка>">
</iframe>
Протестировать работу Web-интерфейса можно в разделе "KYC"
Интерфейс лаконичен и ведет пользователя "за руку" при использовании. На каждом этапе пользователю отображаются соотвествующие интуитивные подсказки позволяющие ему корректно пройти идентификацию.
При загрузке документа пользователю отображается куда необходимо нажать, чтобы сделать фото:
При некорректном документе пользователю отображается обратная связь с причинами брака документа
При завершении идентификации пользователю отображается соответствующее уведомление
Также для упрощения перехода между ПК и мобильным устройством интерфейс встроен QR-код.