Пошаговое руководство по формированию и отправке запросов в СМЭВ

Бесплатная консультация юриста

+7 (800) 302-87-29

Реклама jurik.ru

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

Содержание

  1. Что такое СМЭВ и зачем он нужен
  2. Подготовка к работе
  3. Формирование XML‑запроса
  4. Электронная подпись сообщения
  5. Отправка запроса через HTTP‑интерфейс
  6. Получение и обработка ответа
  7. Тестирование в тестовом контуре
  8. Частые ошибки и способы их устранения

Что такое СМЭВ и зачем он нужен

СМЭВ обеспечивает:

  • Единый формат обмена данными (XML‑сообщения, соответствующие утверждённым XSD‑схемам);
  • Контроль подлинности и целостности сообщений посредством электронной подписи (Квалифицированная электронная подпись – КЭП);
  • Асинхронную обработку запросов: запрос отправляется, а ответ приходит позже в отдельном сообщении;
  • Логирование и аудит всех операций.

Запрос в СМЭВ обычно используется для получения сведений из государственных реестров (ЕГРЮЛ, ЕГРИП, ФНС, ПФР и др.), отправки заявлений, получения выписок и т.д.

Подготовка к работе

  1. Получите доступ к СМЭВ. Необходимо оформить заявку на подключение через портал sdsc.digital.gov.ru и получить сертификат КЭП участника.
  2. Установите необходимые инструменты. Для работы с СМЭВ подходят:
    • Java‑клиент от НИИ «Восход» (библиотека ru.voskhod.smev);
    • Любой HTTP‑клиент (cURL, Postman, Apache HttpClient) при условии формирования корректного SOAP‑конверта;
    • Специализированные адаптеры (Адаптер СМЭВ, ЕСКС и др.).
  3. Получите XSD‑схемы. Схемы для конвертов SendRequestRequest, GetResponseRequest и статусных сообщений доступны в документации СМЭВ‑3 (версии 3.х).
  4. Настройте truststore и keystore. В keystore разместите свой сертификат и закрытый ключ, в truststore – корневые сертификаты УЦ, выдавших сертификаты участникам СМЭВ.

Формирование XML‑запроса

Основной элемент запроса – SendRequestRequest. Пример минимального конверта для получения выписки из ЕГРЮЛ:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:smev="http://smev;gosuslugi.ru/rev120315"

 xmlns:bus="http://smev.gosuslugi.ru/rev120315/business">
 <soapenv:Header/>
 <soapenv:Body>
 <smev:SendRequestRequest Id="REQUEST_20260910_001">
 <smev:Sender>
 <smev:ProviderCode>ИНН_ОРГАНИЗАЦИИ</smev:ProviderCode>
 <smev:Identifier>ОГРН_ОРГАНИЗАЦИИ</smev:Identifier>
 </smev:Sender>
 <smev:Recipient>
 <smev:ProviderCode>ИНН_ПОЛУЧАТЕЛЯ</smev:ProviderCode>
 <smev:Identifier>ОГРН_ПОЛУЧАТЕЛЯ</smev:Identifier>
 </smev:Recipient>
 <smev:TypeOfRequest>ЗапросСведенийЕГРЮЛ</smev:TypeOfRequest>
 <smev:MessageID>urn:uuid:{{GUID}}</smev:MessageID>
 <smev:Timestamp>2026-09-10T12:44:54Z</smev:Timestamp>
 <smev:Status>Запрос</smev:Status>
 <smev:Attachment>
 <smev:Hash>BASE64_HASH_OF_ATTACHMENT</smev:Hash>
 <smev:MimeType>application/xml</smev:MimeType>
 <smev:Data>BASE64_ENCODED_XML_PAYLOAD</smev:Data>
 </smev:Attachment>
 </smev:SendRequestRequest>
 </soapenv:Body>
</soapenv:Envelope>

Ключевые поля:

  • Sender.ProviderCode и Sender.Identifier – реквизиты отправителя (ИНН и ОГРН).
  • Recipient.ProviderCode и Recipient.Identifier – реквизиты получателя (например, ФНС).
  • TypeOfRequest – код услуги, согласно справочнику услуг СМЭВ.
  • MessageID – уникальный идентификатор сообщения (GUID).
  • Timestamp – время формирования в формате ISO 8601.
  • Attachment – опциональный блок с данными запроса (XML‑пакет, хеш, MIME‑тип).

Электронная подпись сообщения

СМЭВ требует подписи всего SOAP‑конверта (или только тела, в зависимости от версии). Процесс подписи:

  1. Канонизировать XML согласно алгоритму http://www.w3.org/2001/10/xml-exc-c14n# (или http://www.w3.org/2001/10/xml-exc-c14n#WithComments).
  2. Вычислить хеш‑значение (ГОСТ Р 34.11‑2012/SHA‑256 в зависимости от используемого алгоритма подписи).
  3. Сформировать подпись Signature в формате XML‑DSig, поместив её в элемент ds:Signature внутри soapenv:Header или soapenv:Body.
  4. Закрытый ключ берётся из вашего КЭП‑сертификата.

Библиотека НИИ «Восход» предоставляет метод signMessage(Document doc, PrivateKey key, X509Certificate cert), который выполняет все шаги автоматически.

Отправка запроса через HTTP‑интерфейс

СМЭВ‑3 принимает SOAP‑сообщения по протоколу HTTPS на endpoint, выданный при подключении (например, https://smev3.gosuslugi.ru:443/smev/v1.1).

Пример отправки с использованием Apache HttpClient:

CloseableHttpClient httpClient = HttpClients.custom
 .setSSLContext(sslContext) // sslContext с вашим keystore/truststore
 .build;

HttpPost post = new HttpPost("https://smev3.gosuslugi.ru:443/smev/v1.1");
post.setHeader("Content-Type", "application/soap+xml; charset=utf-8");
post.setEntity(new StringEntity(signedXml, ContentType.APPLICATION_XML));

CloseableHttpResponse response = httpClient.execute(post);
int status = response.getStatusLine.getStatusCode;
String responseBody = EntityUtils.toString(response.getEntity, StandardCharsets.UTF_8);
response.close;

При успешной приёмке СМЭВ вернёт HTTP 200 и SOAP‑ответ типа SendRequestResponse с кодом обработки (Status = «Принято в обработку»).

Получение и обработка ответа

Ответ приходит асинхронно. Для его получения используется запрос GetResponseRequest с тем же MessageID, что и в исходном запросе.

<smev:GetResponseRequest Id="GETRESP_20260910_001">
 <smev:MessageID>urn:uuid:{{GUID}}</smev:MessageID>
 <smev:Timestamp>2026-09-10T13:00:00Z</smev:Timestamp>
</smev:GetResponseRequest>

После подписи и отправки данного запроса СМЭВ вернёт GetResponseResponse, в котором будет элемент ResponseMessage содержащий:

  • Статус обработки (Status = «Выполнено», «Отклонено» и т.д.);
  • Приложение с результатом (XML‑выписка, PDF и др.) в блоке Attachment;
  • Возможные коды ошибок (ErrorCode, ErrorMessage).
  • Обработка ответа включает проверку подписи, извлечение attachment, декодирование Base64 и, при необходимости, дальнейшую валидацию полученных данных против соответствующей XSD‑схемы услуги.

    Тестирование в тестовом контуре

    Перед выходом в продуктив рекомендуется отработать взаимодействие в тестовом контуре СМЭВ:

    1. Получите тестовые сертификаты от УЦ, аккредитованного для тестов (часто выдаются самим СМЭВ).
    2. Используйте тестовый endpoint, например https://test.smev3.gosuslugi.ru:443/smev/v1.1.
    3. Отправляйте запросы с тестовыми кодами услуг (например, ### – «Тестовый запрос»).
    4. Проверяйте, что ответ содержит ожидаемые тестовые данные (часто это фиксированные XML‑файлы с примерами).
    5. Логируйте все запросы и ответы, сверяя их с контрольными суммами, указанными в документации.

    Частые ошибки и способы их устранения

    Ошибка Возможная причина Как исправить
    HTTP 400 Bad Request Неправильный Content-Type или неканоничный XML Убедитесь, что заголовок Content-Type: application/soap+xml; charset=utf-8 и XML соответствует схеме (проверьте через xmllint или аналогичный валидатор).
    HTTP 401 Unauthorized Отсутствует или неверная электронная подпись Проверьте цепочку сертификатов в keystore, срок действия КЭП, правильность алгоритма подписи (ГОСТ Р 34.10‑2012 vs RSA).
    HTTP 200, но Status = «Отклонено» Ошибка в бизнес‑логике запроса (неверный код услуги, отсутствующие обязательные поля) Сверьте запрос с методическими рекомендациями по конкретной услуге, проверьте наличие всех обязательных тегов (Sender, Recipient, TypeOfRequest, Attachment).
    Получен пустой attachment Сервис не вернул данные (например, запрос к несуществующему ИНН) Убедитесь, что идентификаторы получателя корректны, повторите запрос с актуальными данными.
    Ошибка при проверке подписи ответа Неправильный truststore или использование промежуточного УЦ Добавьте в truststore корневые и промежуточные сертификаты УЦ, выдавшего сертификат СМЭВ.

    Направление запроса в СМЭВ – это последовательный процесс: подготовка доступа, формирование XML‑сообщения согласно утверждённым XSD‑схемам, электронная подпись, отправка через HTTPS‑endpoint и последующее получение асинхронного ответа. Соблюдение всех требований к формату, подписи и обработке ответов гарантирует успешное взаимодействие с государственными информационными системами.

    При работе с СМЭВ рекомендуется:

    • Хранить копии всех отправленных и полученных сообщений в аудит‑журнале;
    • Регулярно обновлять сертификаты и проверять их срок действия;
    • Использовать логирование на уровне SOAP‑заголовков для быстрой диагностики проблем;
    • Следить за обновлениями методических рекомендаций и версий XSD‑схем, публикуемых на официальном портале СМЭВ.
    • Следуя этим рекомендациям, вы сможете надёжно и безопасно обмениваться данными с различными ведомствами через СМЭВ.