# Упрощенная идентификация
# Схема взаимодействия
Упрощенная идентификация физического лица представляет собой процедуру по подтверждению достоверности данных физического лица. Включает в себя две проверки, которые выполняются параллельно, и каждая из которых имеет свой статус.
- Проверка имени, отчества, фамилии, серии и номера паспорта, СНИЛС и ИНН (достаточно одного из двух: СНИЛС или ИНН, но возможно передавать оба) производится через СМЭВ.
- Проверка номера мобильного телефона выполняется с помощью отправки СМС-кода. Она проводится, только если вы передали номер мобильного телефона физического лица (в параметре
phone
).
Обе проверки занимают некоторое время. Сразу после инициализации булевы параметры personVerificationFinished
и phoneVerificationFinished
имеют значения false
. По завершении проверки персональных данных personVerificationFinished
принимает значение true
, по окончании проверки номера телефона phoneVerificationFinished
тоже становится равным true
.
Когда проверка соответствующих данных завершена, булев параметр personVerified
указывает на правильность персональных данных, булев параметр phoneVerified
- на правильность номера мобильного телефона (если был передан). Когда оба параметра приняли значение true
, то упрощенная идентификация считается пройденной.
Если были переданы и СНИЛС, и ИНН, то их проверка производится параллельно. В текущей реализации, булев параметр personVerified
принимает значение результата той проверки, которая завершилась первой.
Запросы упрощенной идентификации используют стандартный для Mandarin способ аутентификации. Запросы как с боевыми, так и с тестовыми аутентификационными данными всегда включают в себя запрос в СМЭВ с реальными персональными данными, и реальную отправку СМС, и следовательно, являются боевыми.
ВАЖНО!
По умолчанию, функционал упрощенной идентификации отключен. Напишите в Cлужбу поддержки (opens new window) для получения доступа к упрощенной идентификации.
Система СМЭВ предоставляет результат проверки, как правило, в пределах 10 минут. Но время проверки может увеличиться по причинам, не зависящим от Mandarin.
ТЕСТИРОВАНИЕ
Данные для тестирования запросов по упрощенной идентификации находятся в отдельном разделе.
# Инициализация процесса идентификации
Запрос на инициализацию процесса идентификации должен включать в себя как параметр СНИЛС, так и параметр ИНН, причем один из этих двух параметров может быть пустым. В качестве серии и номера паспорта можно передать только данные паспорта гражданина РФ.
В случае успешной регистрации запроса вы синхронно получите идентификатор сессии id
, который необходимо использовать в следующих запросах. Если был передан опциональный параметр phone
, то на указанный в нем мобильный номер будет отправлено СМС-сообщение с кодом для подтверждения номера телефона.
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
firstName | string | Да | Имя. |
patronymic | string | Да | Отчество. |
lastName | string | Да | Фамилия. |
passportSeries | string | Да | Серия паспорта РФ. |
passportNumber | string | Да | Номер паспорта РФ. |
snils | string | Да | Номер СНИЛС (может быть пустым, если заполнен ИНН). |
inn | string | Да | Номер ИНН (может быть пустым, если заполнен СНИЛС). |
phone | string | Нет | Мобильный номер, в формате +79001234567 . |
gender | string | Да | Гендерная принадлежность (пол): Male (муж.), Female (жен.) |
Запрос на идентификацию по СНИЛС
POST https://secure.mandarinpay.com/api/v2/personidentification
{
"firstName": "Иван",
"patronymic": "Иванович",
"lastName": "Иванов",
"passportSeries": "1111",
"passportNumber": "111111",
"snils": "19033603123",
"inn": "",
"phone": "+79001234567",
"gender": "Male"
}
Запрос на идентификацию по ИНН
POST https://secure.mandarinpay.com/api/v2/personidentification
{
"firstName": "Иван",
"patronymic": "Иванович",
"lastName": "Иванов",
"passportSeries": "1111",
"passportNumber": "111111",
"snils": "",
"inn": "501716749325",
"phone": "+79001234567",
"gender": "Male"
}
Запрос на идентификацию по СНИЛС и ИНН
POST https://secure.mandarinpay.com/api/v2/personidentification
{
"firstName": "Иван",
"patronymic": "Иванович",
"lastName": "Иванов",
"passportSeries": "1111",
"passportNumber": "111111",
"snils": "19033603123",
"inn": "501716749325",
"phone": "+79001234567",
"gender": "Male"
}
Ответ в случае успешного создания запроса (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/v2/{id}
Ответ в случае успешного завершения запроса (200 ОК
)
{
"id": "794d3cc7-a2b4-4579-9173-bafc7d7dc29d",
"phoneVerified": true,
"phoneVerificationFinished": true,
"personVerified": true,
"personVerificationFinished": true,
"personVerificationError": ""
}
Ответ, если запрос находится в ожидании (200 ОК
)
{
"id": "e2c3c860-1d68-427c-a16d-9666e0ffb706",
"phoneVerified": null,
"phoneVerificationFinished": false,
"personVerified": null,
"personVerificationFinished": false,
"personVerificationError": null,
"inn": {
"status": "NotProcessed",
"description": "Не указан ИНН, проверка не производилась"
},
"snils": {
"status": "Processing",
"description": "В обработке"
},
"passport": {
"status": "Valid",
"description": "Сведения соответствуют"
},
"passportDeferred": null
}
Ответ в случае ошибки (400 Bad request
)
{
"error": "Invalid request"
}
Описание структуры ответа
Синхронный ответ содержит следующую информацию:
Параметр | Описание |
---|---|
id | Идентификатор сессии. |
phoneVerificationFinished | true - проверка СМС-кода завершена, false - проверка СМС-кода не завершена. |
phoneVerified | На телефон пользователя было выслано СМС-сообщение с кодом. null - пользователь не вводил код, true - пользователь ввел верный код, false - пользователь ввел неверный код. |
personVerificationFinished | true - проверка персональных данных завершена, false - проверка персональных данных не завершена. |
personVerified | null - проверка персональных данных не завершена, true - персональные данные верны, false - персональные данные не верны. |
personVerificationError | Строка-описание ошибки из СМЭВ в случае ее наличия. При отсутствии ошибок является пустой. |
inn | Объект, содержащий данные о проверке ИНН. |
inn.status | Статус проверки ИНН. |
inn.description | Расширенное описание статуса проверки ИНН. |
snils | Объект, содержащий данные о проверке СНИЛС. |
snils.status | Статус проверки СНИЛС. |
snils.description | Расширенное описание статуса проверки СНИЛС. |
passport | Объект, содержащий данные о проверке паспорта. |
passport.status | Статус проверки паспорта. |
passport.description | Расширенное описание статуса проверки паспорта. |
# Получение информации о статусе мобилизованного
Создание запроса статуса мобилизованного
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
firstName | string | Да | Имя |
lastName | string | Да | Фамилия |
patronymic | string | Да | Отчество |
dateOfBirth | string | Да | Дата рождения в формате ДД.ММ.ГГГГ |
inn | string | Да* | Номер ИНН (*не указывается, в случае проверки по паспорту) |
passport | string | Да* | Серия и номер паспорта без пробела (*не указывается, в случае проверки по ИНН) |
dateOfDocument | string | Да* | Дата выдачи документа в формате ДД.ММ.ГГГГ (*обязателен при указании passport) |
Проверка по паспорту:
POST https://secure.psp.io/api/mobilizations
{
"firstName": "Полиграф",
"lastName": "Шариков",
"patronymic": "Полиграфович",
"dateOfBirth": "07.09.1997",
"passport": "1111222222",
"dateOfDocument": "07.09.1977"
}
Проверка по ИНН:
POST https://secure.psp.io/api/mobilizations
{
"firstName": "Полиграф",
"lastName": "Шариков",
"patronymic": "Полиграфович",
"dateOfBirth": "07.09.1997",
"inn": "164441234567",
}
Ответ в случае успешного создания запроса
{
"ExtId": "34b63379-66ce-4496-9091-0ffef"
}
Проверка состояния запроса на получение статуса мобилизованного
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
extId | string | Да | Id запроса |
GET https://secure.psp.io/api/mobilizations/{ExtId}
Ответ в случае успешного создания запроса
{
"extId": "34b63379-66ce-4496-9091-0ffef",
"orderId": "958477919",
"actualDate": "2023-07-07T00:00:00+00:00",
"isMobilized": false,
"status": "Processed",
"description": "Операция завершена"
}