Создание сессии и метаданные¶
Для каждой попытки проверки создавайте отдельную сессию. Backend клиентской системы отправляет API KEY выбранного Workflow, получает одноразовый session_id и передаёт его в Remote, Widget или WebView.
Выполняйте запрос на backend
Не передавайте API KEY в браузер или мобильное приложение. Клиентская часть должна получать только session_id или готовый URL прохождения.
Создание сессии¶
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
api_key |
string |
Да | API KEY Workflow из личного кабинета |
metadata |
object |
Нет | Данные для технологий и дополнительных функций сессии |
Минимальный запрос:
curl --request POST \
--url 'https://kyc.biometric.vision/api/flows/sessions/create/' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "<FLOW_API_KEY>"
}'
Успешный ответ возвращается с HTTP 201 Created и содержит:
| Поле | Тип | Описание |
|---|---|---|
session_id |
string |
Одноразовый идентификатор созданной сессии |
technologies |
string[] |
Упорядоченный список кодов технологий Workflow |
digital_signature |
object |
Возвращается, если в Workflow включена технология DSS |
digital_signature.check_id |
string (UUID) |
Идентификатор проверки Digital Signature |
Не используйте один session_id для нескольких независимых попыток или пользователей.
Метаданные сессии¶
Объект metadata позволяет передать известные клиентской системе данные, предзаполнить поля технологии, указать эталонную фотографию или связать сессию с существующей персоной. Метаданные передаются при создании сессии и не добавляют технологии в Workflow.
Если метаданные не требуются настройками Workflow, поле metadata можно не передавать. Исключение — включённая отправка отчётов: в этом случае необходимо передать extra.iin.
| Раздел | Для чего используется |
|---|---|
face2face |
Передача эталонной фотографии для сравнения лиц |
edocument |
Предзаполнение ИИН и телефона, управление их редактированием и пропуском ввода |
ds_identifier |
Предзаполнение данных подписанта |
gbdul |
Предзаполнение БИН организации |
kz_info |
Передача ИИН для KZ Info и технологий, использующих общий поиск ИИН сессии |
erd |
Передача ИИН для ERD |
otp |
Передача номера телефона для отправки OTP |
extra |
Передача ИИН для отчётов |
person |
Поиск персоны по алиасу и сбор данных персоны |
Передавайте разделы, необходимые для вашего сценария. Не используйте metadata и extra как произвольное хранилище пользовательских полей: запрос создания сессии имеет фиксированную схему метаданных.
Face2Face¶
Если у клиентской системы уже есть фотография пользователя, передайте её для сравнения в Base64:
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
metadata.face2face |
object |
Нет | Метаданные Face2Face |
metadata.face2face.photo1 |
string |
Нет | Эталонная фотография в Base64 |
Переданная фотография используется в Workflow, где Face2Face выполняется вместе с Liveness, E-Document или Document Recognition.
Передавайте чистую строку Base64 без префикса data:image/...;base64,. URL изображения и ключ файла в хранилище не подходят для запроса создания сессии.
Если в Workflow включена DSI или DSS, передавать face2face.photo1 нельзя: создание сессии завершится ошибкой HTTP 400. Если также передан person.alias, фотография из face2face.photo1 имеет приоритет перед фотографией персоны.
E-Document¶
Метаданные E-Document позволяют предзаполнить ИИН и номер телефона, запретить их изменение и при выполнении всех условий пропустить экран ввода данных.
| Поле | Тип | Обязательно | Значение по умолчанию | Описание |
|---|---|---|---|---|
metadata.edocument |
object |
Нет | — | Метаданные E-Document |
metadata.edocument.iin |
object |
Нет | — | Настройки поля ИИН |
metadata.edocument.iin.value |
string |
Нет | — | ИИН пользователя |
metadata.edocument.iin.changeable |
boolean |
Нет | true |
Может ли пользователь изменить ИИН |
metadata.edocument.phone |
object |
Нет | — | Настройки поля телефона |
metadata.edocument.phone.value |
string |
Нет | — | Телефон пользователя в формате 77********* |
metadata.edocument.phone.changeable |
boolean |
Нет | true |
Может ли пользователь изменить телефон |
metadata.edocument.skip_input |
boolean |
Нет | false |
Пропустить экран ввода данных |
Чтобы пропустить экран ввода, одновременно передайте значения ИИН и телефона, установите для обоих полей changeable: false и задайте skip_input: true:
{
"api_key": "<FLOW_API_KEY>",
"metadata": {
"edocument": {
"iin": {
"value": "<SUBJECT_IIN>",
"changeable": false
},
"phone": {
"value": "<SUBJECT_PHONE>",
"changeable": false
},
"skip_input": true
}
}
}
Пользователь сразу перейдёт к вводу OTP-кода от 1414. Если передать skip_input: true, но не выполнить хотя бы одно из перечисленных условий, backend отклонит создание сессии с HTTP 400.
Чтобы показать экран ввода с предзаполненными данными, передайте skip_input: false. Для каждого переданного объекта iin или phone укажите непустое value; changeable: false запрещает пользователю редактировать соответствующее поле, а true разрешает.
Значения по умолчанию в таблице описывают поведение формы из интеграционной документации. Если эти параметры не переданы, backend не подставляет changeable и edocument.skip_input в сохранённые метаданные. Для явного управления сценарием передавайте их в запросе.
Digital Signature Identifier¶
Метаданные ds_identifier предзаполняют данные подписанта:
| Поле | Тип | Обязательно | Значение по умолчанию | Описание |
|---|---|---|---|---|
metadata.ds_identifier |
object |
Нет | — | Метаданные идентификации подписанта |
metadata.ds_identifier.iin |
object или string |
Нет | — | Настройки поля ИИН либо ИИН строкой |
metadata.ds_identifier.iin.value |
string |
Нет | — | ИИН подписанта |
metadata.ds_identifier.iin.changeable |
boolean |
Нет | true |
Может ли пользователь изменить ИИН |
metadata.ds_identifier.phone |
object или string |
Нет | — | Настройки поля телефона либо телефон строкой |
metadata.ds_identifier.phone.value |
string |
Нет | — | Телефон подписанта в формате 77********* |
metadata.ds_identifier.phone.changeable |
boolean |
Нет | true |
Может ли пользователь изменить телефон |
metadata.ds_identifier.skip_input |
boolean |
Нет | true |
Пропустить экран ввода данных; значение backend по умолчанию, если передан объект ds_identifier |
Для управления редактированием используйте объекты с value и changeable, как в примере ниже. Строковая форма также поддерживается, но не позволяет задать changeable для поля. Если changeable не передан, backend не добавляет его в метаданные; значение true в таблице описывает поведение формы.
ИИН должен содержать 12 цифр. Телефон передавайте цифрами, без +, пробелов и разделителей. Чтобы сохранить экран ввода данных, явно задайте skip_input: false:
{
"api_key": "<FLOW_API_KEY>",
"metadata": {
"ds_identifier": {
"iin": {
"value": "<SUBJECT_IIN>",
"changeable": true
},
"phone": {
"value": "<SUBJECT_PHONE>",
"changeable": true
},
"skip_input": false
}
}
}
Загрузка документов для подписания и получение CMS-подписи относятся к отдельным операциям Digital Signature и не входят в создание сессии.
GBDUL¶
Метаданные gbdul позволяют заранее указать БИН организации для получения данных из ГБД ЮЛ, в том числе в сценарии цифровой подписи для юридического лица.
| Поле | Тип | Обязательно | Значение по умолчанию | Описание |
|---|---|---|---|---|
metadata.gbdul |
object |
Нет | — | Метаданные GBDUL |
metadata.gbdul.bin |
object |
Нет | — | Настройки поля БИН |
metadata.gbdul.bin.value |
string |
Для предзаполнения | — | БИН организации |
metadata.gbdul.bin.changeable |
boolean |
Нет | true для формы |
Может ли пользователь изменить БИН |
metadata.gbdul.skip_input |
boolean |
Нет | false |
Пропустить экран ввода БИН |
Чтобы предзаполнить БИН и запретить его изменение, передайте:
{
"api_key": "<FLOW_API_KEY>",
"metadata": {
"gbdul": {
"bin": {
"value": "<ORGANIZATION_BIN>",
"changeable": false
},
"skip_input": false
}
}
}
Если changeable не передан или равен true, пользователь может ввести или изменить БИН. Backend не подставляет отсутствующий changeable в метаданные. skip_input управляет пропуском ввода; сам запрос к ГБД ЮЛ выполняется на этапе технологии, а не при создании сессии.
KZ Info¶
Поле kz_info.iin передаёт известный ИИН пользователя. В сценарии KZ Info с альтернативным способом получения данных он используется, если ИИН не указан в запросе самой технологии.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
metadata.kz_info |
object |
Нет | Метаданные KZ Info |
metadata.kz_info.iin |
string |
Нет | ИИН пользователя |
Этот ИИН также имеет приоритет при общем поиске ИИН в данных сессии, к которому обращаются, в зависимости от сценария, GBDFL, Address, RPN и PPS. Он не подставляется автоматически во все поля всех технологий: например, не заменяет edocument.iin.value или обязательный для отправки отчётов extra.iin.
ERD¶
Поле erd.iin позволяет передать ИИН для сценария ERD. Метаданные возвращаются интерфейсу прохождения при запуске сессии; запрос проверки ERD отдельно принимает ИИН в поле personal_number. Передача метаданных сама по себе не запускает проверку.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
metadata.erd |
object |
Нет | Метаданные ERD |
metadata.erd.iin |
string |
Нет | ИИН пользователя |
erd.iin также может использоваться генератором отчётов как источник ИИН, если не переданы extra.iin и kz_info.iin.
OTP¶
Поле otp.phone_number задаёт номер телефона для отдельной технологии OTP. Это не настройка OTP-кода E-Document от 1414 и не замена edocument.phone или ds_identifier.phone.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
metadata.otp |
object |
Нет | Метаданные OTP |
metadata.otp.phone_number |
string |
Нет | Телефон в международном формате с +, например +77771234567 |
{
"api_key": "<FLOW_API_KEY>",
"metadata": {
"otp": {
"phone_number": "<SUBJECT_PHONE_WITH_PLUS>"
}
}
}
Код отправляется при вызове технологии OTP. Номер из запроса отправки имеет приоритет; если он не передан, backend берёт metadata.otp.phone_number. Если номера нет в обоих местах, отправка не выполняется и результат OTP получает статус FAILED с причиной phone_number_missing.
Дополнительные метаданные¶
Поле extra.iin передаёт ИИН пользователя для формирования PDF-отчётов, в том числе подписанных отчётов Liveness и Face2Face.
Если в конфигурации Workflow включён параметр отправки отчётов Send signed report, непустое metadata.extra.iin обязательно уже при создании сессии. ИИН в других разделах метаданных не заменяет его при этой проверке.
При формировании отчёта extra.iin используется первым. Если он отсутствует, генератор также может получить ИИН из других метаданных или результатов технологий. Поэтому обязательность именно extra.iin при создании определяется настройкой Send signed report.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
metadata.extra |
object |
При Send signed report: true |
Дополнительные метаданные сессии |
metadata.extra.iin |
string |
При Send signed report: true |
ИИН пользователя |
Персона¶
Поле metadata.person.alias позволяет найти существующую персону или сохранить алиас при сборе данных новой персоны. Передайте значение действующего алиаса существующей персоны либо новый уникальный идентификатор клиентской системы. Для работы с персонами в Workflow должна быть включена технология PS и настроены соответствующие функции.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
metadata.person |
object |
Нет | Метаданные персоны |
metadata.person.alias |
string |
Нет | Алиас существующей персоны или новый уникальный алиас |
Тип алиаса отдельно передавать не нужно. Система обрабатывает значение следующим образом:
- при запуске сессии система ищет персону по значению действующего алиаса внутри организации, которой принадлежит Workflow; истёкшие алиасы не участвуют в поиске;
- после успешного завершения сессии при включённом сборе персон система асинхронно создаёт или обновляет персону по собранным данным, включая переданный алиас;
- если подходящей персоны нет, создаётся новая; новый алиас из метаданных сохраняется с типом
custom. Сам запрос создания сессии ещё не создаёт персону.
Повторное использование результатов включается настройкой Skip technology with existing Document result и зависит от пригодности сохранённых результатов, включая ограничения срока действия. Использование фотографии персоны для Face2Face включается настройкой Use person's photo for F2F comparison; истёкшая или удалённая фотография не используется как фотография по умолчанию. Если передана face2face.photo1, фотография персоны не добавляется для сравнения.
Подробности сбора персон и повторного использования данных описаны на странице «Персоны».
Валидация и ошибки метаданных¶
При создании сессии backend проверяет структуру запроса и дополнительные условия использования метаданных. Успешное создание сессии не означает, что данные уже проверены государственными сервисами или что технологии пройдены.
| Поле или условие | Требование при создании сессии |
|---|---|
face2face.photo1 |
Корректная строка Base64 без Data URL-префикса; URL и ключ хранилища не принимаются |
face2face.photo1 вместе с DSI или DSS |
Несовместимы; не передавайте фотографию для такого Workflow |
edocument.skip_input: true |
Оба поля iin.value и phone.value непустые, для обоих явно задано changeable: false |
edocument.skip_input: false или не передан |
Если объект iin или phone передан, его value должно быть непустым |
ds_identifier.iin |
Если значение задано, оно должно содержать 12 цифр; правило действует для строки и iin.value |
ds_identifier.phone |
Если значение задано, оно должно состоять из цифр; +, пробелы, разделители и пустая строка не допускаются |
Send signed report: true в конфигурации Workflow |
Требуется непустое metadata.extra.iin, даже если ИИН указан в другом разделе |
Условия edocument.skip_input не распространяются автоматически на ds_identifier или gbdul: для них при создании сессии нет аналогичной проверки сочетания skip_input, value и changeable. Для kz_info.iin, erd.iin, gbdul.bin.value, extra.iin и otp.phone_number создание сессии также не выполняет отдельную проверку формата значения, кроме проверки типа поля. Передавайте корректные данные для соответствующей технологии.
Нарушение дополнительных условий возвращает HTTP 400 с кодом invalid_flow_session_metadata. Например, если указать edocument.skip_input: true, но разрешить редактирование ИИН:
{
"message": "Invalid metadata for session",
"detail": "Value error, Both IIN and phone must have values and be non-changeable when skip_input is True",
"code": "invalid_flow_session_metadata"
}
Если при включённой отправке отчётов не передать extra.iin:
{
"message": "Invalid metadata for session",
"detail": "Value error, IIN is required in extra metadata when report should be sent",
"code": "invalid_flow_session_metadata"
}
Ошибки структуры запроса и типов полей могут возвращаться отдельно с HTTP 422. Для обработки ошибок используйте HTTP-статус и code, если он присутствует; detail содержит пояснение конкретной причины.
Метаданные в вебхуках¶
Вебхуки содержат сохранённый объект metadata сессии. Он может отличаться от исходного запроса: поля со значением null исключаются при сохранении, а некоторые значения по умолчанию добавляются согласно схеме.
В частности, после загрузки фотографии face2face.photo1 заменяется ключом файла в хранилище. В вебхуке это поле содержит ключ, а не исходную строку Base64 и не готовую ссылку на изображение. Не используйте его как URL для скачивания.
Полный запрос¶
Следующий cURL-пример показывает совместную передачу метаданных персоны и E-Document. Примеры других разделов выше предназначены для соответствующих сценариев Workflow; объединять все разделы в одном запросе не требуется. Замените значения в угловых скобках своими данными перед отправкой:
curl --request POST \
--url 'https://kyc.biometric.vision/api/flows/sessions/create/' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "<FLOW_API_KEY>",
"metadata": {
"person": {
"alias": "<PERSON_ALIAS>"
},
"edocument": {
"iin": {
"value": "<SUBJECT_IIN>",
"changeable": false
},
"phone": {
"value": "<SUBJECT_PHONE>",
"changeable": false
},
"skip_input": true
}
}
}'
После получения session_id передайте его в выбранный интерфейс прохождения. Завершение сессии можно отслеживать через Webhooks, а итоговые данные получить через API результата.