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

В 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
}

На обработку запроса система дает 10 секунд, за которые необходимо вернуть HTTP код 200.

Чтобы сообщить об ошибке нужно указать 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