Согласование договоров и соглашений
В Pro.rent есть возможность подключить вашу систему согласования договоров и соглашений. Для этого перейдите в раздел Настройки портала и включите согласование договоров.
Pro.rent поддерживает две метода передачи согласуемых договоров и соглашений в вашу систему:
Путем HTTP-запроса на внешний сервис согласования. Стоит использовать этот метод, если есть endpoint, на который Pro.rent может сделать HTTP-запрос.
Если нет возможности указать endpoint, на который Pro.rent может сделать HTTP-запрос, то вы должны с определенной периодичностью запрашивать список согласуемых документов.
Согласование выполняется в несколько этапов для обоих случаев.
Этап 1 (если указана ссылка на внешний сервис)
При установке статуса договора или соглашения в На согласовании
, Pro.rent передаст информацию в ваш сервис согласования путем выполнения запроса:
POST {URL вашего сервиса}
User-Agent: Pro.rent/{версия}
{
contract: , // Сущность договора
versionId: number, // ID согласуемого соглашения
resultUrl: string // URL для возврата результата согласования
}
В ответ система ожидает успешный HTTP код 200
и следующие данные:
{
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
и массив документов для согласования:
[
{
contract: , // Сущность договора
versionId: number, // ID согласуемого соглашения
acceptUrl: string, // URL для уведомления об успешном приеме докумета на согласование
resultUrl: string // URL для возврата результата согласования
},
...
]
После успешного приема документов, необходимо для каждого из них выполнить запрос и уведомить Pro.rent о том, что документы были успешно приняты сервисом согласования:
POST {acceptUrl}
{
id: string, // ID согласования во внешнем сервисе
name: string, // Название сервиса согласования
url?: string // Ссылка на договор или соглашение в сервисе согласования
}
В ответ система вернет успешный HTTP код 204
.
Этап 2
После согласования договора или соглашения внешний сервис должен вернуть результат в Pro.rent путем выполнения запроса:
POST {resultUrl}
{
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 вашего сервиса}
{
contract: , // Сущность договора
versionId: number, // ID согласуемого соглашения
cancel: true
}
Согласование в Pro.rent будет отменено независимо от результата выполнения этого запроса.
Last updated