Сотрудники готовят документы в 1С, ЭДО и других корпоративных системах, а для подписания переходят в отдельную программу. При небольшом объёме это почти незаметно. Когда операций становится больше, на переключения уходит всё больше рабочего времени.
REST API позволяет запускать подписание из той же рабочей системы. Разберём, когда такой способ нужен, что меняется после внедрения и что важно предусмотреть заранее.
Когда компании нужен REST API для электронной подписи
REST API нужен, когда электронную подпись нужно встроить в регулярную работу с документами: в 1С, ЭДО, на электронных торговых площадках или при взаимодействии с государственными системами.
С ростом объёма важно уже не просто подписывать документы, а контролировать весь поток: какие операции завершены и где возникла ошибка. При большом количестве документов их можно передавать на подписание пакетами. Если система не получила ответ и отправляет запрос повторно, это не должно приводить ко второй подписи или дублированию операции.
Как меняется работа после интеграции
Сотрудник продолжает работать с документом в привычной системе и не открывает отдельную программу для ЭП. Когда документ нужно подписать, запрос уходит в сервис подписания через API, а результат возвращается обратно. В некоторых процессах подписание можно запускать автоматически — например, после согласования документа.
В упрощённом виде архитектура выглядит следующим образом:
корпоративная система → REST API → сервис подписания → результат
При такой схеме корпоративная система не работает с ключевым носителем напрямую. История операций сохраняется в журнале: можно проверить, откуда пришёл запрос, какой сертификат использовался и чем завершилось подписание.
Где используют подписание через API
Ниже — чем отличаются основные варианты использования API для электронной подписи.
| Где используют | Что подписывают | Что важно в этом сценарии
|
| 1С | Счета, акты, первичные документы, договоры, отчётность, заявления | Из 1С можно отправить запрос на подписание и получить результат обратно.
Если подписание выполняет отдельный сервис, закрытый ключ не передаётся в 1С и не хранится
в её файловой системе.
|
| ЭДО | Договоры и другие документы после согласования | После согласования документ можно передать на подпись в рамках того же маршрута. Дальше важно учесть полномочия подписанта, отправку контрагенту и хранение подписанного экземпляра.
Если документ от имени компании подписывает сотрудник, ему нужна машиночитаемая доверенность (МЧД) с соответствующими полномочиями.
|
| ЭТП | Заявки, протоколы и сопроводительные документы | При большом количестве заявок важно отслеживать статус каждого документа и отдельно видеть ошибки подписания. |
Что важно учесть при интеграции
Совместимость с системами-получателями
У ЭДО, электронной торговой площадки, государственного сервиса или внутренней системы могут быть свои требования к алгоритмам и формату электронной подписи.
До интеграции нужно проверить, поддерживает ли сервис нужные ГОСТ-алгоритмы, сертификаты российских удостоверяющих центров и формат подписи — например, CAdES, CMS или XMLDSig.
В некоторых системах дополнительно проверяют, действителен ли сертификат и не был ли он отозван. Если принимающая система требует подтверждать точное время подписания, понадобится метка доверенного времени.
Как защитить передачу данных и доступ к подписанию
После проверки совместимости нужно определить, как корпоративная система будет обмениваться данными с сервисом подписания. Документы, хэши и результаты подписания должны передаваться через защищённый канал. Также нужно контролировать целостность данных, чтобы их нельзя было незаметно изменить при передаче.
Отдельно нужно разграничить права подключённых систем. Каждая из них должна получать доступ только к тем сертификатам и операциям, которые нужны для её работы. Например, бухгалтерской системе можно разрешить использовать только сертификаты для подписания счетов и актов.
Контроль операций
По каждой операции должна сохраняться история. Она понадобится, если подписание завершилось ошибкой или позже возник спор по документу.
В журнале должна сохраняться информация о запросе: дата и время, система-источник, пользователь или сервисная учётная запись, сертификат, результат и данные об ошибке. По этим сведениям можно установить, кто инициировал подписание и чем оно завершилось. При этом в журнал не должны попадать закрытые ключи и PIN-коды, а доступ к нему нужно ограничить.