<aside> ⚠️ XP, XL, контекст клиента, V=0
</aside>
Передает в систему факт электронного подписания договора с клиентом
| Параметр | REQ | Описание |
|---|---|---|
| ClientIntegrationId | да | Идентификатор клиента – Ид интеграции клиента(уникальный код однозначно определяющий клиента) |
| ContractId | да | Код договора |
| SignDate | да | Дата подписания договора в формате dd.MM.yyyy HH:mm:ss |
| ContractVersion | нет | Версия алгоритма, с помощью которого была осуществлена подпись документа с клиентом |
| Documents | нет | Массив ссылок на подписанные клиентом документы |
| KeyTransport | нет | Сервис (или любой другой способ), с помощью которого пользователю был выслан ключ для подтверждения подписи (например сервис sms.ru в случае отправки смс) |
| UserSignKey | нет | публичный ключ, который был предоставлен пользователю для подписания договора (например, код из смс) |
| UserSignHash | нет | Хэш от набора полей, который при запросе данных контейнера подтвердит вызывающей стороне что данные подписи не были модифицированы на стороне XLombard/XProkat |
| CompanyId | нет | Код юр.лица |
Result - пустой объект (не содержит никаких полей). Результат выполнения операции считается успешным, если в процессе выполнения не возникло ошибок (коллекция Errors NULL или не содержит элементов).
{
"ClientIntegrationId":"nz2UG1",
"ContractId":313527,
"SignDate":"01.01.2024",
"ContractVersion":"3",
"Documents":["<http://test.com/doc.pdf","http://test.com/doc2.pdf>"],
"KeyTransport":"sms.ru",
"UserSignKey":"0001",
"UserSignHash":"o3275980rywefhjerty341",
"CompanyId":4188
}
<aside> 💡 ВАЖНО! XLombard или XProkat никаким образом не участвует в электронном подписании договора с клиентом, а только фиксирует факт подписи договора и выступает в качестве хранилища сформированного контейнера данных. Поэтому все поля за исключением Код договора и Даты подписания являются НЕ обязательными и их передача целиком определяется логикой сервиса, осуществляющего подпись договора.
</aside>
<aside> 💡 ВАЖНО2! UserSignHash необходимо для обеспечения условия неизменности данных на стороне XLombard/XProkat поэтому формируйте значение данного поля только исходя из переданных значений в контейнере. Например, если передается только SignDate и ContractId, то генерация значения UserSignHash в ПРОСТЕЙШЕМ случае может выглядеть следующим образом: UserSignHash1 = MD5(ContractId+SignDate). Полученная удостоверяющая подпись будет гарантировать неизменность данных со стороны системы только в случае повторной генерации данной подписи на стороне сервиса и сравнения их значений. В случае изменения алгоритма генерации подписи контейнера (например, UserSignHash2 = SHA256(ContractId+SignDate)), очевидным образом уже НЕ получится верифицировать данные всех контейнеров, сформированных ДО изменения алгоритма, так как UserSignHash1 будет НЕ РАВЕН UserSignHash2.
</aside>