Сервис цифровой идентификации УПРИД
Сервис-адаптер для выполнения требований 115-ФЗ
в части проведения упрощенной идентификации клиентов.
Сервис выполняет дополнительные подзапросы на основании поступивших в запросе данных. Он позволяет проверить данные гражданина с использованием разных сервисов-поставщиков данных и обеспечить проверку по 115-ФЗ
в максимально короткие сроки.
Конфигурация сервиса
УПРИД может быть сконфигурирован в зависимости от Ваших потребностей и имеющихся доступов к ВС.
Доступные адаптеры к видам сведений для конфигурации:
Наименование адаптера | Наименование ВС | Потребители |
---|---|---|
pfr-snils-validation | Проверка соответствия фамильно-именной группы, даты рождения, пола и СНИЛС в ПФР | Все ФОИВ, все РОИВ, Банк России (в том числе поднадзорные финансовые организации, уполномоченные проводить упрощенную идентификацию). Доступ предоставляется по согласованию с СФР, необходимо направить заявку о предоставлении доступа на support@101.pfr.ru |
fns-paspinn | О соответствии паспортных данных и ИНН физического лица | КО, УЦ |
mvd-rfp-actual-full | Проверка действительности паспорта (расширенная) | Доступ предоставляется по согласованию с владельцем вида сведений |
mvd-rfp-actual-bank | Проверка действительности паспорта для банков | Доступ предоставляется по согласованию с владельцем вида сведений |
mvd-rfp-check | Проверка действительности паспорта гражданина Российской Федерации, удостоверяющего личность гражданина Российской Федерации на территории Российской Федерации | Доступ предоставляется по согласованию с владельцем вида сведений |
fns-web-inn | Поиск ИНН физических лиц через форму ФНС | - |
Конфигурация представляет строку в JSON формате массива объектов конфигурации сервисов, например:
[
{
"module": "mvd-rfp-actual-full",
"name": "mvd",
"service_name": "bedrock$$mvd-rfp-actual-full",
"deprecation_interval": "1d"
},
{
"module": "fns-paspinn",
"name": "fns",
"service_name": "bedrock$$fns-paspinn"
},
{
"module": "pfr-snils-validation",
"name": "pfr",
"service_name": "bedrock$$pfr-snils-validation"
}
]
где
Параметр | Название | Обязательное | Пример |
---|---|---|---|
module | Наименование модуля. Допустимые значения: mvd-rfp-actual-full , fns-paspinn , pfr-snils-validation |
+ | mvd-rfp-actual-full |
name | Имя сервиса, используемое в возвращаемых ответах | + | mvd |
service_name | Имя сервиса Агредатора, к которому будет направлен запрос | + | bedrock$$mvd-rfp-actual-full |
deprecation_interval | Время устаревания запроса к сервису. По умолчанию 1 неделя (в соответствии с 210-ФЗ срок подготовки ответа на межведомственный запрос составляет не более 5 рабочих дней) | - | 1w |
Переменные окружения
Название | Описание |
---|---|
SERVICES_CONFIG | конфигурация используемых сервисов |
DEPRECATION_BATCH_SIZE | максимальное количество устаревающих запросов на одном шаге |
DEPRECATION_SLEEP_INTERVAL | промежуток времени между выполнением проверок устаревания запроса |
Переменные для конфигурирования подключения к БД PostgreSQL:
DATABASE_HOST
, DATABASE_PORT
, DATABASE_NAME
, DATABASE_USER
, DATABASE_PASS
.
Переменные для конфигурирования подключения к RabbitMQ:
MQ_HOST
, MQ_PORT
, CA_CERT
, CLIENT_CERT
, CLIENT_KEY
Переменные для конфигурирования подключения к ELK:
ELASTIC_HOST
, ELASTIC_PORT
, ELASTIC_METRIC_PREFIX
Принимаемые параметры
Сервис не проверяет входные данные на корректность форматам, специфичным для каждого сервиса. Сервис проверяет, что получен не пустой запрос и создан хотя бы один подзапрос (получено достаточно данных для отправки запроса в один из сервисов). Отправлять или нет подзапрос, определяется на основании обязательных полей для конкретного сервиса.
Параметр | Название | mvd в СМЭВ3 |
mvd в СМЭВ4 |
pfr | fns | Поиск ИНН |
Пример |
---|---|---|---|---|---|---|---|
name | Имя | ✅ | ✅ | ✅ | ✅ | ✅ | Иван |
surname | Фамилия | ✅ | ✅ | ✅ | ✅ | ✅ | Иванов |
patronymic | Отчество | ⭕ | ⭕ | ⭕ | ⭕ | ⭕ | Иванович |
pass_series | Серия паспорта | ✅ | ✅ | - | ✅ | ✅ | 1234 |
pass_number | Номер паспорта | ✅ | ✅ | - | ✅ | ✅ | 123456 |
inn | ИНН | - | - | - | ✅ | - | 520205004556 |
snils | СНИЛС | - | - | ✅ | - | - | 152-111-22 13 |
birthdate | Дата рождения | ✅ | ✅ | ✅ | - | ✅ | 1966-09-12 |
birthplace | Место рождения | ⭕ | ⭕ | - | - | - | г. Москва |
gender | Пол | - | - | ✅ | - | - | Female |
pass_issuer | Орган, выдавший паспорт | - | - | - | ⭕ | - | АРОВД |
pass_issuer_date | Дата выдачи паспорта | ⭕ | ⭕ | - | ⭕ | ⭕ | 2015-01-09 |
pass_issuer_code | Код выдавшего подразделения | ⭕ | ⭕ | - | ⭕ | - | 000-000 |
✅ - обязательный параметр
⭕ - необязательный параметр
тире - параметр отсутствует в запросе
Параметры ответа
Запрос к сервису находится в статусе waiting до поступления ответов от всех сервисов. Сообщение переходит в статус error
, если все запросы завершились ошибкой. Сообщение переходит в статус success
, если выполнение всех подзапросов завершилось, и хотя бы один не завершился ошибкой.
Параметр | Название | Обязательное | Пример |
---|---|---|---|
fl | логическое значение, определяющее выполнение требований ФЗ: true , если были успешно проверены ФИО и паспорт и подтверждена правильность либо СНИЛС, либо ИНН false , если проверка не прошла null , если данных недостаточно или ответы еще не получены |
||
services | ответы, полученные от каждого сервиса | - | |
attributes | хэш проверяемых параметров, с данными подтверждения сервисами | - | |
code | Код выполнения запроса. Принимает значения:PROCESSING - запрос обрабатываетсяVALID - по переданным данным/параметрам по каждому параметру был получен хотя бы один положительный ответINVALID - по одному из параметров ни одна из проверок не вернула положительный результатFAULT - запрос завершился ошибкой Параметр требуется для совместимости с использовавшимся ранее видом сведений УПРИД |
Структура элемента services
Параметр | Название | Обязательное | Пример |
---|---|---|---|
status | Статус выполнения запроса | + | success |
message | Сообщение об ошибке | - | Timeout error |
ticket | Идентификатор квитка | + | 01adc83a-d4a9-4a81-b8dc-7767296bfa4b |
service_name | Имя сервиса агредатора, обрабатывавшего запрос | + | pfr-snils-validation |
result | Результат, полученный от сервиса | - | {"code": "VALID"} |
Совместимость с УПРИД
Формат ответа (поля) совместимы с форматом ответа использовавшегося ранее сервиса uprid3, но одновременно с этим имеет расширенную информацию по каждому запрашиваемому параметру.
При работе по HTTP-API с использованием версии протокола v0
потребуется добавить поле birthdate
в поля запроса.
Примеры
Для проверки настройки сервиса можно отправить в консоли отправки панели администрирования следующий запрос:
{
"name": "ЕЛЕНА",
"surname": "ПЕТИНА",
"patronymic": "ВЛАДИМИРОВНА",
"pass_series": "7866",
"pass_number": "123456",
"inn": "520205004556",
"snils": "027-733-198 62",
"gender": "Female",
"birthdate": "1966-09-12",
"birthplace": "г. Москва",
"pass_issuer": "АРОВД",
"pass_issuer_date": "2010-10-10",
"pass_issuer_code": "666-666"
}
В случае корректной настройки должен прийти следующий ответ (сервисы работают в тестовой среде СМЭВ 3 и для сервиса fns происходит ошибка из-за ненахождения тестового сценария):
{
"attributes": {
"surname": {
"fns": false,
"pfr": true,
"mvd": true
},
"name": {
"fns": false,
"pfr": true,
"mvd": true
},
"patronymic": {
"fns": false,
"pfr": true,
"mvd": true
},
"inn": {
"fns": false
},
"pass_series": {
"fns": false,
"mvd": true
},
"pass_number": {
"fns": false,
"mvd": true
},
"snils": {
"pfr": true
}
},
"fl": true,
"code": "VALID",
"services": [
{
"id": "1dffa9f7-49c2-4c99-9c5c-5346c4a37cd7",
"service": "fns",
"status": "error",
"message": "UNKNOWN_REQUEST_DESCRIPTION: Ошибка идентификации сценария тестирования. Доступны следующие сценарии: [Тестовый сценарий 1 (//ns2:FNSPaspINNRequest/ns2:ФИО[@FamilyName='ЧАХЛОВ']), Тестовый сценарий 2 (//ns2:FNSPaspINNRequest/ns2:ФИО[@FamilyName='НЕЧАХЛОВ'])]"
},
{
"id": "6f991c22-bcdf-4811-a092-670a367702c0",
"service": "pfr",
"status": "success",
"result": {
"result": true,
"description": "Сведения соответствуют"
}
},
{
"id": "71aa61c1-db71-4fce-8829-b9a10dfb6b2d",
"service": "mvd",
"status": "success",
"result": {
"code": "VALID",
"valid": true,
"description": "Данные корректны"
}
}
]
}
Пример запроса с валидным запросом для fns и постепенным получением результата
Запрос
{
"name": "ПЕТР",
"surname": "ЧАХЛОВ",
"patronymic": "АЛЕКСЕЕВИЧ",
"pass_series": "1234",
"pass_number": "123456",
"inn": "520205004556",
"snils": "027-733-198 62",
"gender": "Male",
"birthdate": "1966-09-12"
}
Цепочка получаемых ответов (здесь приведено полное содержимое payload RabbitMQ сообщения): Получен результат проверки ИНН сервисом ФНС:
{
"attributes": {
"surname": {
"fns": true,
"pfr": null,
"mvd": null
},
"name": {
"fns": true,
"pfr": null,
"mvd": null
},
"patronymic": {
"fns": true,
"pfr": null,
"mvd": null
},
"inn": {
"fns": true
},
"pass_series": {
"fns": true
"mvd": null
},
"pass_number": {
"fns": true,
"mvd": null
},
"snils": {
"pfr": null
}
},
"fl": true,
"code": "VALID",
"services": [
{
"id": "839dfad3-8f90-4e98-8968-eb531482c71f",
"service": "fns",
"status": "success",
"result": {
"code": 1
}
},
{
"id": "db2aa325-a356-455d-a787-6f2ecfb61f4a",
"service": "pfr",
"status": "waiting"
},
{
"id": "eb82ac87-4eea-4b13-8ff1-01d4b8035fc6",
"service": "mvd",
"status": "waiting"
}
]
}
Получен ответ от сервиса ПФР:
{
"attributes": {
"surname": {
"pfr": false,
"fns": true,
"mvd": null
},
"name": {
"pfr": false,
"fns": true,
"mvd": null
},
"patronymic": {
"pfr": false,
"fns": true,
"mvd": null
},
"snils": {
"pfr": false
},
"inn": {
"fns": true
},
"pass_series": {
"fns": true,
"mvd": null
},
"pass_number": {
"fns": true,
"mvd": null
}
},
"fl": true,
"code": "VALID",
"services": [
{
"id": "db2aa325-a356-455d-a787-6f2ecfb61f4a",
"service": "pfr",
"status": "error",
"message": "UNKNOWN_REQUEST_DESCRIPTION: Ошибка проверки содержимого тестового запроса по сценарию 'Тестовый сценарий 1': следующие контрольные примеры не прошли: [//smev:FamilyName='ПЕТИНА' and //smev:FirstName='ЕЛЕНА' and //smev:Patronymic='ВЛАДИМИРОВНА' and //tns:Snils='02773319862' and //tns:Gender='Female' and //tns:BirthDate]"
},
{
"id": "839dfad3-8f90-4e98-8968-eb531482c71f",
"service": "fns",
"status": "success",
"result": {
"code": 1
}
},
{
"id": "eb82ac87-4eea-4b13-8ff1-01d4b8035fc6",
"service": "mvd",
"status": "waiting"
}
]
}
Получен ответ от сервиса МВД:
{
"attributes": {
"name": {
"mvd": false,
"pfr": false,
"fns": true
},
"surname": {
"mvd": false,
"pfr": false,
"fns": true
},
"patronymic": {
"mvd": false,
"pfr": false,
"fns": true
},
"pass_series": {
"mvd": false,
"fns": true
},
"pass_number": {
"mvd": false,
"fns": true
},
"snils": {
"pfr": false
},
"inn": {
"fns": true
}
},
"fl": true,
"code": "VALID",
"services": [
{
"id": "eb82ac87-4eea-4b13-8ff1-01d4b8035fc6",
"service": "mvd",
"status": "error",
"message": "UNKNOWN_REQUEST_DESCRIPTION: Ошибка идентификации сценария тестирования. Доступны следующие сценарии: [Тестовый сценарий 3 (1.2.0) (//ns:passportValidityExtendedRequest//bt:series='7844'), Тестовый сценарий 2 (1.2.0) (//ns:passportValidityExtendedRequest//bt:series='7801'), Тестовый сценарий 1 (1.2.0) (//ns:passportValidityExtendedRequest//bt:series='7866')]"
},
{
"id": "db2aa325-a356-455d-a787-6f2ecfb61f4a",
"service": "pfr",
"status": "error",
"message": "UNKNOWN_REQUEST_DESCRIPTION: Ошибка проверки содержимого тестового запроса по сценарию 'Тестовый сценарий 1': следующие контрольные примеры не прошли: [//smev:FamilyName='ПЕТИНА' and //smev:FirstName='ЕЛЕНА' and //smev:Patronymic='ВЛАДИМИРОВНА' and //tns:Snils='02773319862' and //tns:Gender='Female' and //tns:BirthDate]"
},
{
"id": "839dfad3-8f90-4e98-8968-eb531482c71f",
"service": "fns",
"status": "success",
"result": {
"code": 1
}
}
]
}
Набор HTTP запросов
Файл набора HTTP запросов - это файл, созданный в приложении Postman, который содержит набор HTTP запросов, ответов и сопутствующей информации, связанной с тестированием API.
Коллекция в Postman обычно включает в себя следующую информацию:
- HTTP запросы: GET, POST, PUT, DELETE и другие типы запросов.
- Параметры запросов: параметры пути, параметры запроса, тело запроса, заголовки запроса и другие параметры.
- Ожидаемые ответы: коды ответов, тела ответов и заголовки ответов.
- Тесты: наборы скриптов, которые используются для проверки правильности ответов на запросы.
- Переменные: значения переменных, которые могут использоваться в разных запросах, чтобы избежать повторений.
УПРИД может быть сконфигурирован в зависимости от Ваших потребностей и имеющихся доступов к ВС. Ниже представлены наборы HTTP запросов для текущих конфигураций, а также для каждого сервиса, входящего в конфигурации.
Конфигурация | Файл набора HTTP запросов для конфигурации |
---|---|
digital-identity | Загрузить файл с набором HTTP запросов |
digital-identity-ex | Загрузить файл с набором HTTP запросов |
digital-identity-ko | Загрузить файл с набором HTTP запросов |
digital-identity-4 | Загрузить файл с набором HTTP запросов |