Согласование договоров и соглашений

В Pro.rent есть возможность подключить вашу систему согласования договоров и соглашений. Для этого перейдите в раздел Настройки портала и включите согласование договоров.

Pro.rent поддерживает две метода передачи согласуемых договоров и соглашений в вашу систему:

  1. Путем HTTP-запроса на внешний сервис согласования. Стоит использовать этот метод, если есть endpoint, на который Pro.rent может сделать HTTP-запрос.

  2. Если нет возможности указать endpoint, на который Pro.rent может сделать HTTP-запрос, то вы должны с определенной периодичностью запрашивать список согласуемых документов.

Согласование выполняется в несколько этапов для обоих случаев.

Этап 1 (если указана ссылка на внешний сервис)

При установке статуса договора или соглашения в На согласовании, Pro.rent передаст информацию в ваш сервис согласования путем выполнения запроса:

POST {URL вашего сервиса}
HTTP-заголовки
User-Agent: Pro.rent/{версия}
Body
{
    contract: , // Сущность договора
    versionId: number, // ID согласуемого соглашения
    resultUrl: string // URL для возврата результата согласования
}

В ответ система ожидает успешный HTTP код 200 и следующие данные:

Body ответа
{
    id: string, // ID согласования во внешнем сервисе
    name: string, // Название сервиса согласования
    url?: string, // Ссылка на договор или соглашение в сервисе согласования
    oneCId?: Guid // ID договора в 1С для записи в Pro.rent
}

Чтобы сообщить об ошибке нужно указать HTTP код ответа 400.

После успешного ответа Pro.rent установит договору или соглашению статус На согласовании и отобразит в интерфейсе ссылку на него во внешнем сервисе.

Этап 1 (если не указана ссылка на внешний сервис)

При установке статуса договора или соглашения в На согласовании, Pro.rent заблокирует дальнешнее изменение статуса договора, и вы должны запросить список документов на согласование путем выполнения запроса:

GET https://portal.pro.rent/api/approval?token={token}&onlynew={false|true}
  • token – это токен приложения. Как его получить описано в разделе Доступ по API.

  • onlynew отвечает за возврат всех согласуемых на текущий момент документов, или только тех, которые до этого не были приняты вашим сервисом согласования.

В ответ система вернет успешный HTTP код 200 и массив документов для согласования:

Body ответа
[
    {
        contract: , // Сущность договора
        versionId: number, // ID согласуемого соглашения
        acceptUrl: string, // URL для уведомления об успешном приеме докумета на согласование
        resultUrl: string // URL для возврата результата согласования
    },
    ...
]

После успешного приема документов, необходимо для каждого из них выполнить запрос и уведомить Pro.rent о том, что документы были успешно приняты сервисом согласования:

POST {acceptUrl}
Body
{
    id: string, // ID согласования во внешнем сервисе
    name: string, // Название сервиса согласования
    url?: string // Ссылка на договор или соглашение в сервисе согласования
}

В ответ система вернет успешный HTTP код 204.

Этап 2

После согласования договора или соглашения внешний сервис должен вернуть результат в Pro.rent путем выполнения запроса:

POST {resultUrl}
Body
{
    signStatus: , // Обязательный статус договора, если согласование еще идет, то можно передать статус "На согласовании".
    reason?: string, // Необязательная причина отказа в согласовании или комментарии при согласовании. Максимальная длинна 1000 символов.
    number?: string, // Новый номер согласуемого договора или соглашения для записи в Pro.rent, если нужно изменить. Максимальная длинна 50 символов.
    date?: "yyyy-mm-dd", // Новая дата согласуемого договора или соглашения для записи в Pro.rent, если нужно изменить.
    oneCId?: Guid // ID договора в 1С для записи в Pro.rent
}

Возможные статусы подписания договора вы можете посмотреть в разделе Перечисления. Если согласование еще идет и вы лишь передаете новый номер договора, то можно указать статус «На согласовании».

Запрос на возврат результата согласования можно выполнять несколько раз, если в процессе согласования статус подписания или номер меняются несколько раз.

Отмена согласования

Пользователь Pro.rent может выбрать отмену согласования договора или соглашения. В этом случае будет выполнен следующий запрос:

POST {URL вашего сервиса}
Body
{
    contract: , // Сущность договора
    versionId: number, // ID согласуемого соглашения
    cancel: true
}

Согласование в Pro.rent будет отменено независимо от результата выполнения этого запроса.

Last updated