Отправка документов по СНИЛС на подпись усиленной неквалифицированной электронной подписью

smev3 link

smev manual

Атрибут Значение
Название epgu-sign-contract-snils-unep
Наименование Отправка документов по СНИЛС на подпись усиленной неквалифицированной электронной подписью
Тип Адаптер для СМЭВ3 сервиса
Версия СМЭВ СМЭВ3
Версия ВС 1.0.0
Версия МР 3.5.0
Поставщик Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Потребители Все пользователи СМЭВ

Описание бизнес-процесса взаимодействия:

Организация хочет направить документ на подпись усиленной неквалифицированной электронной подписью гражданину в личный кабинет на ЕПГУ.

ИС организации отправляет запрос через Агредатор, Агредатор в свою очередь отправляет запрос в СМЭВ к виду сведений, СМЭВ получает запрос и направляет его в ЛК ЕПГУ.

После получения запроса на подписание, гражданин в мобильном приложении "Госключ" выбирает: подписать ему документ или отказать. Далее через СМЭВ направляет в Агредатор подписанный документ или отказ в подписании, Агредатор направляет данную информацию в ИС организации.

Если отправка запроса не произошла, то Агредатор получит от СМЭВ сообщение об ошибке и передаст его в ИС организации.

flowchart LR; A[ИС организации] <--> B[Агредатор]; B <--> C[СМЭВ]; C <--> D[ЕПГУ];

Переменные окружения

Название Описание
CA_CERT Сертификат центра сертификации для подключения к rabbitmq
CLIENT_CERT Сертификат, используемый для подключения к rabbitmq
CLIENT_KEY Ключ, используемый для подключения к rabbitmq
MQ_HOST Хост rabbitmq
MQ_PORT Порт rabbitmq
SMEV_SERVICE Название СМЭВ сервиса, на который будут отправляться запросы

Переменные для конфигурирования подключения к БД:

DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USER, DATABASE_PASS.

Переменные для конфигурирования отправки метрик в Elasticsearch:

ELASTIC_HOST, ELASTIC_PORT, ELASTIC_METRIC_PREFIX

Принимаемые параметры

Параметр Описание Обязательное Пример
id Идентификатор запроса + Q-a7c09763-c077-46eb-8fb6-38356f456404
timestamp Дата и время формирования запроса + 2021-05-31T18:54:42.963+03:00
route_number Маршрутная информация + MNSV03
snils СНИЛС пользователя + 111-111-111 11
sign_exp Максимальный срок для подписания документа + 2021-05-25T15:00:00.945+03:00
desc_doc Общее описание документов на подпись + Договор об оказании услуг связи
contracts Документы на подпись + Массив (1-1000) составных элементов Contract
backlink Ссылка для возврата пользователя после подписания - https://tele2.ru
add_data Дополнительные данные - Массив (0-10) составных элементов AddData

Структура элемента Contract

Документ на подпись

Параметр Описание Обязательное Пример
document Документ на подпись + Составной элемент Document
signature Подпись документа + Составной элемент Document

Структура элемента Document

Описание документов

Параметр Описание Обязательное Пример
doc_id Имя-идентификатор вложения с документом + 777d8baf-b05b-4e46-afde-3cace90bd9d5
mime_type Тип содержимого + application/pdf
uuid Идентификатор файла в хранилище + 4833e4c4385dc47f2d2a08469f246e7cd1f66f416691d0b5a92a00d722f8d4ec
description Название документа - Договор купли-продажи

Структура элемента AddData

Дополнительные атрибуты

Параметр Описание Обязательное Пример
attr_name Мнемоника атрибута +  
attr_value Значение атрибута +  

Параметры ответа

Параметр Описание Обязательное Пример
id Идентификатор ответа + Q-a7c09763-c077-46eb-8fb6-38356f456404
req_id Идентификатор запроса + Q-a7c09763-c077-46eb-8fb6-38356f456404
timestamp Дата и время формирования ответа + 2021-05-31T09:05:42.963+03:00
snils СНИЛС пользователя + 111-111-111 11
documents Подписанные документы -1 Массив (1..1000) составных элементов SigDocument
sign_reject Отказ от подписания -1 true
error Ошибка -1 Составной элемент Error

1 - обязательно должен присутствовать один из элементов

Структура элемента SigDocument

Подписанный документ

Параметр Описание Обязательное Пример
id Имя-идентификатор вложения с документом, полученное в запросе + 777d8baf-b05b-4e46-afde-3cace90bd9d5
signature_gos_key Файл с подписью документа МП «Госключ» + Составной элемент Document

Структура элемента Error

Дополнительные атрибуты

Параметр Описание Обязательное Пример
error_code Код ошибки + 4
error_message Сообщение об ошибке + Истекло время для подписания документов

Примеры

особенности эксплуатации

Параметр uuid в тестовых запросах — это значение "uuid" из ответа сервиса filator при загрузке в него файлов для подписания. Подробности загрузки файлов. В тестовой среде эмулятор не возвращает вложения и uuid в ответе будет равен 0.

Тестовый сценарий 1. Успешное подписание документов.

Запрос:

{
  "id": "Q-a7c09763-c077-46eb-8fb6-38356f456404",
  "route_number": "MNSV03",
  "timestamp": "2022-05-31T18:54:42.963+03:00",
  "snils": "111-111-111 11",
  "sign_exp": "2022-05-25T15:00:00.945+03:00",
  "desc_doc": "Договор об оказании услуг связи",
  "contracts": [
    {
      "document": {
        "doc_id": "777d8baf-b05b-4e46-afde-3cace90bd9d5",
        "uuid": "b8db842e8b72a60d4c4059326445359872b3bfe32accb57e9a2929bdf6c878f5",
        "mime_type": "application/docx",
        "description": "Договор купли-продажи"
      },
      "signature": {
        "doc_id": "5bfd8baf-b05b-4e46-afde-3cace90bd9db",
        "uuid": "38db842e8b72a60d4c4059326445359872b3bfe32accb57e9a2929bdf6c878f5",
        "mime_type": "application/sig",
        "description": "Подпись оператора связи"
      }
    }
  ],
  "backlink": "https://tele2.ru"
}

Ответ:

{
  "id": "Q-a7c09763-c077-46eb-8fb6-38356f456404",
  "req_id": "Q-a7c09763-c077-46eb-8fb6-38356f456404",
  "timestamp": "2022-05-31T09:05:42.963+03:00",
  "snils": "111-111-111 11",
  "documents": [
    {
      "id": "777d8baf-b05b-4e46-afde-3cace90bd9d5",
      "signature_gos_key": {
        "doc_id": "5bfd8baf-b05b-4e46-afde-3cace90bd9db",
        "uuid": "0",
        "mime_type": "application/sig"
      }
    }
  ]
}

Тестовый сценарий 2. Отклонение подписания пользователем.

Запрос:

{
  "id": "Q-a7c09763-c077-46eb-8fb6-38356f456404",
  "route_number": "MNSV03",
  "timestamp": "2022-05-31T18:54:42.963+03:00",
  "snils": "111-111-111 11",
  "sign_exp": "2022-05-30T18:00:00.945+03:00",
  "desc_doc": "Пакет документов для оказания услуг связи",
  "contracts": [
    {
      "document": {
        "doc_id": "777d8baf-b05b-4e46-afde-3cace90bd9d5",
        "uuid": "b8db842e8b72a60d4c4059326445359872b3bfe32accb57e9a2929bdf6c878f5",
        "mime_type": "application/docx",
        "description": "Договор купли-продажи"
      },
      "signature": {
        "doc_id": "5bfd8baf-b05b-4e46-afde-3cace90bd9db",
        "uuid": "38db842e8b72a60d4c4059326445359872b3bfe32accb57e9a2929bdf6c878f5",
        "mime_type": "application/sig",
        "description": "Подпись оператора связи"
      }
    }
  ],
  "backlink": "https://tele2.ru"
}

Ответ:

{
  "id": "Q-a7c09763-c077-46eb-8fb6-38356f456404",
  "req_id": "Q-a7c09763-c077-46eb-8fb6-38356f456404",
  "timestamp": "2022-05-31T09:05:42.963+03:00",
  "snils": "111-111-111 11",
  "sign_reject": true
}

Тестовый сценарий 3. Ошибка подписания документов.

Запрос:

{
  "id": "Q-a7c09763-c077-46eb-8fb6-38356f456404",
  "route_number": "MNSV03",
  "timestamp": "2022-05-31T18:54:42.963+03:00",
  "snils": "111-111-111 11",
  "sign_exp": "2022-05-31T19:00:00.945+03:00",
  "desc_doc": "Договор с физ. лицом",
  "contracts": [
    {
      "document": {
        "doc_id": "777d8baf-b05b-4e46-afde-3cace90bd9d5",
        "uuid": "b8db842e8b72a60d4c4059326445359872b3bfe32accb57e9a2929bdf6c878f5",
        "mime_type": "application/docx",
        "description": "Договор купли-продажи"
      },
      "signature": {
        "doc_id": "5bfd8baf-b05b-4e46-afde-3cace90bd9db",
        "uuid": "38db842e8b72a60d4c4059326445359872b3bfe32accb57e9a2929bdf6c878f5",
        "mime_type": "application/sig",
        "description": "Подпись оператора связи"
      }
    }
  ],
  "backlink": "https://tele2.ru"
}

Ответ:

{
  "id": "Q-a7c09763-c077-46eb-8fb6-38356f456404",
  "req_id": "Q-a7c09763-c077-46eb-8fb6-38356f456404",
  "timestamp": "2022-05-31T09:05:42.963+03:00",
  "snils": "111-111-111 11",
  "error": {
    "error_code": "4",
    "error_message": "Истекло время для подписания документов"
  }
}