Перейти к основному содержимому

Частые вопросы по MandarinID

СМЭВ: основы и доступность

Банк обязуется по поручению организации (при наличии договора) проводить упрощённую идентификацию клиента через СМЭВ в целях заключения с указанным клиентом договора потребительского кредита (займа), предоставляемого клиенту посредством перевода денежных средств в соответствии с законодательством о национальной платёжной системе.

Нужно учитывать, что СМЭВ — государственная информационная система и не всегда доступна: возможно как полное отключение, так и частичное (например, в отдельном регионе).

По какому протоколу у вас СМЭВ?
Протокол СМЭВ-4.

Как определить доступность СМЭВ?
Однозначного способа понять, доступен СМЭВ или нет, нет: у них нет обязательств по доступности. Ориентироваться можно по косвенным признакам:

  • длительная обработка запросов — ответ с результатом приходит дольше обычного;
  • ошибки в ответе на запрос (примеры ниже в разделе об ошибках);
  • оповещения в канале Телеграм; о восстановлении работоспособности тоже публикуется отдельное оповещение.

Какой регламент по срокам получения ответа на запрос?
Система СМЭВ обычно возвращает результат проверки в пределах 10 минут. Время может увеличиться по причинам, не зависящим от Mandarin. Максимальное регламентное время ответа на СМЭВ-запрос может составить до 5 рабочих дней, такие случаи крайне редки.

Идентификация: поля, статусы и сессия

Является ли поле personVerificationFinished финальным маркером окончания идентификации пользователя?
Да. personVerificationFinished означает, что идентификация этого пользователя завершена; значение может быть true или false.

Возможен ли кейс: personVerificationFinished: true, phoneVerificationFinished: false?
Да. Подробнее в документации. Если phoneVerificationFinished: false, на этапе подтверждения телефона был введён неверный код из SMS.

Идентификация клиента и идентификация телефона — это один процесс или два разных?
Это разные процедуры: personVerified (проверка персональных данных в СМЭВ) и phoneVerified (валидация номера).

В течение какого времени по id сессии можно получить результат идентификации?
Срока у id сессии нет: результат можно запросить и через неделю, и через месяц, и позже.

PersonVerified — false: что означает?
Данные клиента не прошли проверку. Какие именно поля неверны, СМЭВ не уточняет: возможна ошибка в ФИО, в паспортных данных или в СНИЛС/ИНН, либо данные недействительны или не совпадают. Если всё введено верно, клиенту стоит обратиться в ФМС по вопросу прохождения упрощённой идентификации.

Почему статус запроса в ожидании (Pending)?
В редких случаях СМЭВ отвечает с задержкой, поэтому статус может долго оставаться в ожидании. Пример ответа при проверке статуса:

{
"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
}

Рекомендуем периодически повторять проверку статуса в рамках вашего SLA.

GET https://secure.mandarinpay.com/api/personidentification/v2/{id}

Передача SMS-кода на проверку: PUT https://secure.mandarinpay.com/api/personidentification/{id} с телом {"smsCode": "..."} — см. документацию (раздел «Передача СМС-кода»).

POST https://secure.mandarinpay.com/api/v2/personidentification

Если ответа от СМЭВ долго нет, можно заново выполнить инициализацию процесса — тот же метод POST /api/v2/personidentification, описанный в документации (раздел «Инициализация процесса идентификации»).

Тестовый режим и проверка данных

Взимается ли оплата за запросы на идентификацию в тестовом режиме?
В тестовом режиме за отправку запросов оплата не взимается.

Можно ли протестировать идентификацию без отправки SMS-кода?
Да: в запросе не передавайте поле phone.

На тестовом проекте невалидные паспортные данные дадут успешную идентификацию?
Для тестовых запросов: если ФИО совпадает с примером ниже, будет "personVerified": true; любое другое ФИО даст false.

"firstName": "Полиграф",
"lastName": "Шариков",
"patronymic": "Полиграфович",

ВАЖНО: это не отменяет необходимость передавать паспорт и остальные данные — проверка на тесте идёт по ФИО. При подтверждении телефона код состоит из нулей, реальное SMS не отправляется.

Для упрощённой идентификации можно изменить длину SMS-кода при проверке телефона?
Да, возможна любая длина — напишите в службу поддержки.

Можно получить перечень проверок на стороне Mandarin (как у СНИЛС, телефона и т.д.), чтобы дублировать их у себя?
Своей валидации у нас нет: запрос передаётся в СМЭВ в том виде, в каком получен; проверку выполняет СМЭВ, затем приходит ответ.

SMS и интерфейс

Клиент получает SMS от «Mandarin» с текстом «Код для подтверждения: …». Можно ли изменить имя отправителя?
Нет: текст и отправитель стандартные, индивидуально не настраиваются.

Сколько времени есть клиенту, чтобы ввести код из SMS для проверки телефона?
Код действует до тех пор, пока не отправлен новый код. В текущей версии протокола допускается не более 5 попыток передачи SMS-кода (включительно); при превышении лимита нужно заново инициализировать процесс идентификации — см. документацию (раздел «Передача СМС-кода»).

Ошибки запросов MandarinID

PersonIdentificationError: ESIA-000001 (внутренняя ошибка)
Внутренняя ошибка на стороне ЕСИА/СМЭВ. Можно повторить запрос согласно документации (инициализация процесса идентификации).

PersonIdentificationError: внутренняя ошибка сервера
Смысл уточняется по конкретному запросу. Например: проблемы на стороне СМЭВ (connection time out); проблемы у провайдера — имеет смысл повторить запрос по документации (инициализация процесса идентификации).

Ошибка СМЭВ (SAXException): Content is not allowed in …
В этот период на стороне СМЭВ были или есть неполадки. Запросы с такой ошибкой повторите после восстановления работы СМЭВ.

"personVerificationError": "Ошибка СМЭВ. Обратитесь в службу технической поддержки."
Проблема на стороне СМЭВ. Повторите запрос.

Ответ с Connection timed out в errorStatusInfo

{"status":"PROCESSING","errorStatusInfo":[{"code":"0","message":"java.net.ConnectException: Connection timed out: connect"}]}

Ошибку возвращает СМЭВ: перебои на их стороне.

Ответ с Internal service error (код 500)

{"status":"PROCESSING","errorStatusInfo":[{"code":"0","message":"Код ответа: 500, сообщение: Internal service error"}]}

Нужно уточнение; чаще источник — СМЭВ и перебои у них; для уверенности можно уточнить у провайдера.

PersonIdentificationError: ошибка при выполнении запроса
СМЭВ вернул, например, "status":"FAILED","errorStatusInfo":[{"code":"-1","message":"Ошибка при выполнении запроса"}]: сервис был недоступен на их стороне. При необходимости запрос можно повторить.