# Упрощенная идентификация
# Схема взаимодействия
Упрощенная идентификация физического лица представляет собой процедуру по подтверждению достоверности данных физического лица. Включает в себя две проверки, которые выполняются параллельно, и каждая из которых имеет свой статус.
- Проверка имени, отчества, фамилии, серии и номера паспорта, СНИЛС/ИНН (один из двух) производится через СМЭВ.
- Проверка номера мобильного телефона выполняется с помощью отправки СМС-кода.
Обе проверки занимают некоторое время. Сразу после инициализации булевы параметры personVerificationFinished
и phoneVerificationFinished
имеют значения false
. По завершении проверки персональных данных personVerificationFinished
принимает значение true
, по окончании проверки номера телефона phoneVerificationFinished
тоже становится равным true
.
Когда проверка соответствующих данных завершена, булев параметр personVerified
указывает на правильность персональных данных, булев параметр phoneVerified
- на правильность номера мобильного телефона. Если оба параметра приняли значение true
, то упрощенная идентификация считается пройденной.
Запросы упрощенной идентификации используют стандартный для Mandarin способ аутентификации. Запросы как с боевыми, так и с тестовыми аутентификационными данными всегда включают в себя запрос в СМЭВ с реальными персональными данными, и реальную отправку СМС, и следовательно, являются боевыми.
ВАЖНО!
По умолчанию, функционал упрощенной идентификации отключен. Напишите в Cлужбу поддержки (opens new window) для получения доступа к упрощенной идентификации.
Первые 50 запросов по упрощенной идентификации являются бесплатными. Все последующие запросы тарифицируются.
Система СМЭВ предоставляет результат проверки, как правило, в пределах 10 минут. Но время проверки может увеличиться по причинам, не зависящим от Mandarin. Если проверка СМЭВ заняла более 300 минут (5 часов), то данный запрос не тарифицируется.
# Инициализация процесса идентификации
Запрос на инициализацию процесса идентификации может быть отправлен с двумя наборами параметров (вариант со СНИЛС или вариант с ИНН). В качестве серии и номера паспорта можно передать только данные паспорта гражданина РФ.
В случае успешной регистрации запроса вы синхронно получите идентификатор сессии id
, который необходимо использовать в следующих запросах. На указанный в параметре phone
мобильный номер будет отправлено СМС-сообщение с кодом для подтверждения номера телефона.
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
firstName | string | Да | Имя. |
patronymic | string | Да | Отчество. |
lastName | string | Да | Фамилия. |
passportSeries | string | Да | Серия паспорта РФ. |
passportNumber | string | Да | Номер паспорта РФ. |
snils | string | Да | Номер СНИЛС. |
inn | string | Нет | Номер ИНН. |
phone | string | Да | Мобильный номер, в формате +79001234567 . |
Запрос на идентификацию по СНИЛС
POST https://secure.mandarinpay.com/api/personidentification
{
"firstName": "Иван",
"patronymic": "Иванович",
"lastName": "Иванов",
"passportSeries": "1111",
"passportNumber": "111111",
"snils": "19033603123",
"phone": "+79001234567"
}
Запрос на идентификацию по ИНН
POST https://secure.mandarinpay.com/api/personidentification
{
"firstName": "Иван",
"patronymic": "Иванович",
"lastName": "Иванов",
"passportSeries": "1111",
"passportNumber": "111111",
"snils": "",
"inn": "501716749325",
"phone": "+79001234567"
}
Ответ в случае успешного создания запроса (200 ОК
)
{
"id": "794d3cc7-a2b4-4579-9173-bafc7d7dc29d"
}
Ответ в случае, если запрос не создан (400 Bad request
)
{
"error": "Invalid request"
}
# Передача СМС-кода
Запрос на передачу СМС-кода на проверку включает в себя id
сессии (в адресе), полученный в предыдущем запросе, и СМС-код (в теле запроса).
В случае успешной регистрации запроса вы синхронно получите тот же самый идентификатор сессии id
.
В случае, если пользователь неправильно ввел СМС-код, то на этапе проверки статуса вы получите "phoneVerified": false
.
Тогда вы можете повторять отправку данного запроса, передав тот же id
и новый СМС-код, введенный пользователем, до тех пор, пока не получите "phoneVerified": true
.
ВАЖНО!
Текущая версия протокола позволяет использовать до 5 (включительно) попыток передачи СМС-кода. Если лимит превышен, то необходимо инициализировать процесс идентификации заново.
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
smsCode | string | Да | СМС-код. |
Запрос с передачей СМС-кода на проверку
PUT https://secure.mandarinpay.com/api/personidentification/{id}
{
"smsCode": "123456"
}
Ответ в случае успешного создания запроса (200 ОК
)
{
"id": "794d3cc7-a2b4-4579-9173-bafc7d7dc29d"
}
Ответ в случае ошибки (400 Bad request
)
{
"error": "Invalid request"
}
# Проверка статуса идентификации
Запрос по проверке статуса идентификации включает в себя id
сессии (в адресе).
Ответ содержит идентификатор сессии, индикаторы окончания обеих проверок и индикаторы правильности предоставленных данных.
Запрос статуса идентификации
GET https://secure.mandarinpay.com/api/personidentification/{id}
Ответ в случае успешного завершения запроса (200 ОК
)
{
"id": "794d3cc7-a2b4-4579-9173-bafc7d7dc29d",
"phoneVerified": true,
"phoneVerificationFinished": true,
"personVerified": true,
"personVerificationFinished": true,
"personVerificationError": ""
}
Ответ в случае ошибки (400 Bad request
)
{
"error": "Invalid request"
}
Описание структуры ответа
Синхронный ответ содержит следующую информацию:
Параметр | Описание |
---|---|
id | Идентификатор сессии. |
phoneVerificationFinished | true - проверка СМС-кода завершена, false - проверка СМС-кода не завершена. |
phoneVerified | На телефон пользователя было выслано СМС-сообщение с кодом. null - пользователь не вводил код, true - пользователь ввел верный код, false - пользователь ввел неверный код. |
personVerificationFinished | true - проверка персональных данных завершена, false - проверка персональных данных не завершена. |
personVerified | null - проверка персональных данных не завершена, true - персональные данные верны, false - персональные данные не верны. |
personVerificationError | Строка-описание ошибки из СМЭВ в случае ее наличия. При отсутствии ошибок является пустой. |