Skip to main content
Интегратор не всегда создаёт документы — часто он действует на стороне согласующего: система на вашей стороне решает, согласовать приказ или вернуть его на доработку, и должна сделать это через API. Всё ниже требует области documents:write, а чтение документа — documents:read.
Документ, доступный вам только через участие в маршруте, не появляется в GET /documents: реестр перечисляет документы по инициатору и по правам. Поэтому единственный надёжный вход в этот сценарий — события. Подробнее в Списке документов.
1

Подпишитесь на события согласования

Событие приносит {"document_id": "…"} — этого достаточно, чтобы прочитать документ своим ключом.
2

Прочитайте документ вместе с маршрутом

3

Найдите свой слот

Нужен участник, у которого employee_id совпадает с карточкой владельца ключа, а status равен PARTICIPANT_STATUS_ACTIVE. Именно его id передаётся в действие.
Эндпоинта «кто я» в Developer API нет. Сохраните employee_id владельца ключа в конфигурации интеграции — он не меняется, пока владелец работает в той же организации.
4

Выполните действие

Правила прохождения шага

rule определяет, когда шаг закрывается:
  • STEP_RULE_ALL — нужны действия всех участников шага;
  • STEP_RULE_ANY_ONE — достаточно одного, остальные слоты получат PARTICIPANT_STATUS_SKIPPED.
Поэтому не считайте, что ваше согласование завершит шаг: после ответа перечитайте документ либо дождитесь document.signing_started или document.completed.

Ошибки, которые стоит обработать

Повторный _approve на отработавшем слоте безопасен: он не создаёт второго согласования, а возвращает ошибку состояния.

Дальше

События документов

Полный список событий и что делать по каждому.

Подписание

Если ваш слот — подписывающий, а не согласующий.