В сервисе используется понятия:
- Документ - файл с данными
- Пакет - набор файлов (копия Документа, его подпись, сопутствующие технологические квитанции, титулы и т.п. неразрывно связанные с документом)
- Группа пакетов - набор Пакетов (по сути документов), имеющих общего отправителя и получателя, передающихся одновременно. Может состоять из одного пакета (документа).
Порядок работы:Загружаем необходимые для отправки документы, указывая свой идентификатор (GUID) для каждого загружаемого файла:
- неформализованный - /api/v1/documents/{DocumentId}/informal,
- формализованный УПД (json) - /api/v1/documents/upd.
- с авто определением типа - /api/v1/documents/{id}
После загрузки формализованного документа, сервис автоматически выполняет визуализацию этого документа в pdf-формате.
При успешном завершении визуализации формируется идентификатор
{id} полученного файла визуализации (id) и передается в
очередь сообщений .
При необходимости, запросить визуализацию черновика документа в формате pdf можно через
/api/v1/documents/upd/draft-visualization/{id}.
Создаем группу пакетов методом
- /api/v1/package-groups, указывая код абонента получателя документов
recipientAbonentCode или, если код абонента не известен, заполняем блок
recipientOrg (e-mail, название, ИНН, КПП, ОГРН получателя документов), при этом для каждого документа создается Пакет внутри Группы пакетов (т.е. любой документ всегда "завернут" в пакет и далее группу пакетов).
Для каждого документа проставляется отдельным параметром необходимость подписания его получателем.
При необходимости добавить пакеты в уже созданную группу это делается методом -
/api/v1/package-groups/{id}/packages.
Подписываем документы:
- Пользовательским сертификатом: Запрашиваем хеши документов пакета для подписания, передавая сертификат подписанта - /api/v1/sign/package-group/prepare, подписываем хеши на клиенте и завершаем подписание методом - /api/v1/sign/package-group/finish
- Серверным сертификатом, указав UserId сотрудника, чей сертификат хранится на сервере - /api/v1/sign/package-group/user
- Сертификатом КЭП сотрудника на его рабочем месте, для этого сервис отправляет ссылку на подписание на e-mail этого сотрудника. Нужно указать идентификатор сотрудника, кто будет подписывать документы - /api/v1/sign/package-group/user.
Идентификатор Сотрудника можно получить методом /api/v1/organization-usersПосле подписания документов в пакете, для которого был указан ID Абонента, Сервис проверит наличие связи (дружбы) с указанным Абонентом, и если ее нет - Сервис самостоятельно вышлет приглашение этому Абоненту. При наличии установленной связи, или когда Контрагент примет приглашение, сервис опять же самостоятельно отправит подготовленный документ получателю.
После подписания документов в пакете, для которых НЕ был указан ID Абонента, Сервис подготовит ссылку для подписания документов этого пакета Получателем и отправит ее на указанный e-mail получателя в виде письма-уведомления о необходимости подписать документ.
Получатель, пройдя по полученной ссылке сможет на выбор:
- подписать документ КЭП уполномоченного лица
- указать нужный (другой) ID Абонента в том сервисе ЭДО, который он использует
- отказаться от подписания, указав причину и контактные данные для связи.
Сервис подготовит и передаст соответствующее выбранному действию контрагента сообщение в
очередь сообщений.
Все статусы обработки документов автоматически передаются Сервисом в индивидуальную
очередь сообщений в Rabbit. Так же в эту очередь передаются все факты принятия или отказа приглашений для обмена документами (дружба).