Отправка документов на подпись в «Госключ» посредством API ЕПГУ

epgu api goskey epgu api

Атрибут Значение
Название goskey
Наименование Отправка документов на подпись в «Госключ» через API ЕПГУ
Тип Адаптер для API ЕПГУ сервиса

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

Название Обязательность Описание Пример значения
LOG_LEVEL - Уровень логирования INFO
RESTART_COUNT_THRESHOLD - Количество обработанных сообщений перед перезапуском 10000
RESTART_DELAY - Временная задержка в секундах от запуска сервиса, после которой запускается проверка на количество обработанных сообщений 600
FILATOR_URL - HTTP ссылка на файловое хранилище http://filator
DISABLE_SSL_VERIFY - Флаг отключения проверки ssl сертификатов false
MQ_HOST - Хост RabbitMQ mq
MQ_PORT - Порт RabbitMQ 5671
MQ_VHOST - Виртуальный хост RabbitMQ /
MQ_ALIAS - Alias сервера RabbitMQ mq
MQ_CHANNEL_PREFETCH_SIZE - Количество сообщений, получаемых для одного консумера RabbitMQ 30
MQ_CONSUMER_POOL_SIZE - Размер пула потоков, прикрепленного к каналу RabbitMQ 3
MQ_USE_TLS - Флаг использования tls соединения с RabbitMQ true
MQ_USER - Имя пользователя используемого для не tls соединения к RabbitMQ epgu-api
MQ_PASS - Пароль пользователя используемого для не tls соединения к RabbitMQ password
CLIENT_KEY + Ключ используемый для tls соединения к RabbitMQ Ключ в pem формате
CLIENT_CERT + Сертификат используемый для tls соединения к RabbitMQ Сертификат в pem формате
CA_CERT + Сертификат УЦ выдавшего сертификат для RabbitMQ Сертификат в pem формате
DATABASE_HOST - Хост сервера базы данных db
DATABASE_PORT - Порт сервера базы данных 5432
DATABASE_NAME - Имя базы данных aggredator-service-epgu-api
DATABASE_USER - Имя пользователя используемое при подключение к базе данных postgres
DATABASE_PASS - Пароль пользователя используемый при подключении к базе данных  
DATABASE_POOL - Размер пула соединения к базе данных 5
CLIENTS_SIGNERS_CONFIGURATION + Конфигурация сервисов подписывателей под каждого клиента. В случае использования openssl, требуются также параметры OPENSSL_KEYS_<имя клиента="">_CERT и OPENSSL_KEYS_<имя клиента="">_KEY [{"name": "test_openssl", "type": "openssl"}, {"name": "jigner", "type": "jigner", "url": "http://user:pass@localhost:8000?cert=client_cert", "timeout": 15}]
EPGU_ADAPTERS_CONFIGURATION - Конфигурация обращения к средам API ЕПГУ [{"name":"test","endpoint":"https://svcdev-beta.test.gosuslugi.ru","esia_endpoint":"https://esia-portal1.test.gosuslugi.ru"},{"name":"production","endpoint":"https://www.gosuslugi.ru","esia_endpoint":"https://esia.gosuslugi.ru"}]
EPGU_DEFAULT_ADAPTER - Имя адаптера к ЕПГУ, используемый по умолчанию test

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

Параметр Описание Обязательное Пример
service Имя сервиса. Всегда должно принимать значение goskey + goskey
region Код ОКАТО местоположения организации (можно передавать код ОКАТО региона ) + 45000000000
client_uuid Уникальный идентификатор формата UUID, сформированный соответствующим сервисом ЕСИА в привязке на сотрудника организации и ИС вендора, зарегистрированной в ЕСИА + ddf21110-3548-44ec-a56a-4d954adff75a
signature_type Тип подписи. Допустимые значения:
- unep - УНЭП
- ukep - УКЭП
+ unep
oid Идентификатор пользователя в ЕСИА, которому направляются документы -1 1000550738
snils СНИЛС ФЛ, которому направляются документы -1 000-729-729 38
backlink Ссылка для возврата после подписания - https://lk.gosuslugi.ru/notifications
sign_expiration Максимальный срок для подписания документа. Не более 24 часов с момента отправки документов. Зарезервировано для использования в будущем. В настоящее время значение элемента игнорируется – всегда по умолчанию 24 часа - 2022-04-28T17:22:00.000+03:00
documents Данные по каждому документу + Последовательность элементов Document, длиной до 10 элементов

1 - долно быть указано хотя бы одно из значений

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

Параметр Описание Обязательное Пример
id Идентификатор документа. Произвольное значение. + 1896644961
storage_id Идентификатора файла в файловом хранилище агредатора + b1faa5c305208849be2b020cf960dfa35eec24daaa817eaa83acdb8e37c11366
mime_type Mime-type содержимого документа. Допустимые значения: image/tiff, application/pdf, application/xml, text/plain. + application/pdf
description Название пакета документов - Документ1
attributes Атрибуты документа +1 Последовательность элементов Attribute, длиной до 10 элементов

1 - обязательно требуется указание атрибутов mnemonics (мнемоника внешней информационной системы) и orgName (краткое наименование организации)

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

Параметр Описание Обязательное Пример
name Мнемоника атрибута + orgName
value Значение атрибута + ООО "СИМЭНЕРГО"

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

Параметр Описание Обязательное Пример
id Номер заявления + 74103637
status Код статуса заявления. Допустимые значения:
- 3 - документы подписаны
- 4 - отказано в предоставлении услуги
- 5 - ошибка отправки в ведомство
+ 3
status_description Наименование ведомственного статуса + Подписание документов отклонено
service_passport_id Идентификатор паспорта услуги + 600374
source_system Наименование системы от куда было подано заявление + RNDGTEST
request_date Метка даты и времени запроса + 2023-04-18T16:11:15.635+0300
user_id Идентификатор пользователя + 1000411228
current_status_id Идентификатор статуса заявления + 138764442
statuses Статусы заявления + Последовательность элементов OrderStatus
response_attachments Информация о файлах в ответе заявления - Последовательность элементов OrderResponseAttachment

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

Параметр Описание Обязательное Пример
id Идентификатор статуса + 138764433
title Наименование статуса + Черновик заявления
final_status Флаг финального статуса - true
date Дата и время смены статуса + 2023-04-18T16:11:11.617+0300
comment Комментарий к статусу - Учетная запись по СНИЛС не найдена

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

Параметр Описание Обязательное Пример
id Идентификатор файла + 138764146/files/ZmlsZS1leGFtcGxlX1BERl8xTUIucGRm
name Имя файла + file-example_PDF_1MB.pdf.sig
size Размер файла + 3000
mime_type MIME-тип файла + application/x-pkcs7-signature
storage_id Идентификатор файла в файловом хранилище Агредатора + 5da227c3b975f83c2ff1797f9781c8190b0943778c1221cc557361de5cd96df1

Примеры

Для проверки настройки сервиса можно отправить в консоли отправки панели администрирования следующий запрос:

{
  "service": "goskey",
  "region": "42",
  "signature_type": "unep",
  "client_uuid": "93d7aa39-79cb-41f4-acc5-cad2f3e845e6",
  "snils": "993-358-010 49",
  "backlink": "https://docs.agredator.ru",
  "documents": [
    {
      "id": "bc902716-dcf9-11ed-9034-af480ed850df",
      "storage_id": "303828d5c6a68e6ad5b17cabe668cc8f0ff23eae213094a47c55f0f09352d25d",
      "mime_type": "application/pdf",
      "description": "первый тестовый документ",
      "attributes": [
        {
          "name": "mnemonics",
          "value": "test"
        },
        {
          "name": "orgName",
          "value": "organization"
        }
      ]
    }
  ],
  "metadata": {
    "client": "rnds",
    "adapter": "test"
  }
}

В случае успешного подписания документа будет получен ответ:

{
  "id": 74103893,
  "status": 3,
  "status_description": "Документы подписаны",
  "service_passport_id": "600374",
  "source_system": "RNDGTEST",
  "request_date": "2023-04-18T17:10:13.367+0300",
  "user_id": 1000411228,
  "current_status_id": 138765063,
  "statuses": [
    {
      "id": 138765060,
      "title": "Черновик заявления",
      "date": "2023-04-18T17:10:10.845+0300"
    },
    {
      "id": 138765061,
      "title": "Заявление в очереди на отправку",
      "date": "2023-04-18T17:10:13.344+0300"
    },
    {
      "id": 138765063,
      "title": "Документы подписаны",
      "final_status": true,
      "date": "2023-04-18T17:10:37.705+0300"
    }
  ],
  "response_attachments": [
    {
      "storage_id": "90908e17aa02e6c4c6512508694186e3b9cf6c15e4b1ba384e0eca3587da1cf5",
      "name": "file-example_PDF_1MB.pdf.sig",
      "size": 3000,
      "id": "138765063/files/ZmlsZS1leGFtcGxlX1BERl8xTUIucGRm",
      "mime_type": "application/x-pkcs7-signature"
    },
    {
      "storage_id": "d104bd536cf8af76f17c10918d76b53b0509476c2fb7b59b94d75927f2233c29",
      "name": "file-example_PDF_1MB.pdf",
      "size": 1042157,
      "id": "138765063/files/ZmlsZS1leGFtcGxlX1BERl8xTUIucGRmX2F0dGFjaA",
      "mime_type": "application/pdf"
    },
    {
      "storage_id": "378031bb55ab2e75afd0dcf53602fcac1c63536f2fe309a5d8171f0076c68647",
      "name": "req.xml",
      "size": 831,
      "id": "138765063/files/cmVxLnhtbF9hdHRhY2g",
      "mime_type": "text/plain"
    }
  ]
}

В случае отказа от подписи, будет получен следующий ответ:

{
  "id": 74103912,
  "status": 4,
  "status_description": "Подписание документов отклонено",
  "service_passport_id": "600374",
  "source_system": "RNDGTEST",
  "request_date": "2023-04-18T17:14:56.164+0300",
  "user_id": 1000411228,
  "current_status_id": 138765101,
  "statuses": [
    {
      "id": 138765094,
      "title": "Черновик заявления",
      "date": "2023-04-18T17:14:53.576+0300"
    },
    {
      "id": 138765095,
      "title": "Заявление в очереди на отправку",
      "date": "2023-04-18T17:14:56.136+0300"
    },
    {
      "id": 138765101,
      "title": "Подписание документов отклонено",
      "final_status": true,
      "date": "2023-04-18T17:15:50.504+0300"
    }
  ]
}

В случае возникновения ошибок при отправке в ведомство, будет получен следующий ответ:

{
  "id": 74103942,
  "status": 5,
  "status_description": "",
  "service_passport_id": "600374",
  "source_system": "RNDGTEST",
  "request_date": "2023-04-18T17:18:18.576+0300",
  "user_id": 1000411228,
  "current_status_id": 138765121,
  "statuses": [
    {
      "id": 138765118,
      "title": "Черновик заявления",
      "date": "2023-04-18T17:18:15.078+0300"
    },
    {
      "id": 138765120,
      "title": "Заявление в очереди на отправку",
      "date": "2023-04-18T17:18:18.545+0300"
    },
    {
      "id": 138765121,
      "title": "Ошибка обработки заявления в ведомстве",
      "final_status": true,
      "date": "2023-04-18T17:18:19.047+0300",
      "comment": "Учетная запись по СНИЛС не найдена"
    }
  ]
}