Котировки и обмен активами
Раздел описывает логику процесса запроса и получения Котировок, и последующего Двустороннего обмена активами на условиях DvP.
Обработка котировок
Серверная часть Участника ОФУ формирует Запрос котировок и передаёт её в объекте requestQuotation
через конечную точку /exchange/quotations/request.
Служба котировок обрабатывает запрос и отправляет квитанцию об успешном Запросе котировок
requestQuotationResult
, содержащую уникальный идентификатор Запроса котировок, по которому Участник ОФУ будет отслеживать и получать Котировки от других Участников.Служба котировок будет запрашивать внутренний Реестр участников, чтобы найти Участников ПФУ, которые могут предоставить Котировки.
Служба котировок будет выполнять асинхронные вызовы к доверенным Участникам и передавать идентификатор Запроса котировок. Ответить на Запрос котировок смогут Участники, включённые в Разрешённый список.
В случае если время Запроса котировок истекло, Служба котировок автоматически удалит запрос.
Серверная часть Участника ПФУ получает Запрос котировок через Шлюзовую службу сообщений Kafka и принимает решение, ответить Котировкой или проигнорировать запрос.
В случае если принимается решение ответить котировкой, серверная часть Участника ПФУ формирует условия Котировки quotationInfo, а затем делает вызов в конечную точку /sign/payload для подписания полезной нагрузки quotationInfo
, в ответ серверная часть Участника ПФУ получит подпись объекта, необходимую для отправки Котировки. Для завершения публикации Котировки, серверная часть Участника ПФУ формирует полезную нагрузку quotationObject и передаёт в конечную точку /exchange/quotations/{quotation_uuid}, в ответ Служба котировок вернёт подтверждение об успешной отправке Котировки.
Если время действия Котировки истекло, Служба котировок автоматически удалит Котировку.
Серверная часть Участника ПФУ может отменить котировку с помощью конечной точки
DELETE
/exchange/quotations/{quotation_uuid} или все Котировки, используя конечную точкуDELETE
/exchange/quotations. Если Участник ОФУ принял Котировку, отменить Котировку невозможно.Серверная часть Участника ПФУ может получить список всех Котировок, которые были предоставлены Участникам с помощью конечной точки
POST/GET
/exchange/quotations.
Серверная часть Участника ОФУ получает Котировку через Шлюзовую службу сообщений Kafka и принимает дальнейшее решение об обмене Активами.
- В случае принятия решения об обмене активами, Участнику ОФУ требуется действовать в соответствии с условиями Котировки, чтобы завершить Расчёт на условиях DvP.
- Серверная часть Участника ОФУ может получить все Котировки по идентификатору Запроса котировок с помощью конечной точки
GET
/exchange/quotations/request/{request_uuid}.
Обработка обмена Активами
Серверная часть Участника ОФУ формирует сведения об обмене активами exchangeInfo в соответствии с полученной Котировкой, а затем делает вызов в конечную точку /sign/payload для подписания полезной нагрузки, в ответ серверная часть Участника ОФУ получит подпись объекта, необходимую для инициализации запроса обмена активами. Серверная часть Участника ОФУ объединяет сведения exchangeInfo
и подпись memberSignedPayload
в объекте exchangeObject, а затем передаёт exchangeObject
в конечную точку /exchange.
Служба котировок получает запрос и проверяет статус Котировки в базе данных для предотвращения атаки повторного воспроизведения и проблемы параллелизма.
Служба котировок запрашивает у внутренней Службы управления транзакциями центральный счёт TKEY7 и порядковый номер транзакции.
Служба котировок формирует транзакцию для Распределённого реестра на основе полученных сведений.
Атомарная транзакция
# Адрес счёта Участника ОФУ, с которого будет списан базовый активTAKU63TTBEQA5VSOZHGF3W25OAQMM3F4OGCAYM3QHPXC6T25DTGBZJVJ# Адрес счёта Участнику ПФУ, на который будет зачислен базовый активTBHFFM2LWJWNF5XLLCQZMFY7PKET3SLL2DHVMWK5PQAHKNEEPRJ4J5QQ# Сумма в базовом активе100777# Код активаRUB# Адрес счёта Эмитента актива
Служба котировок делает асинхронные вызовы в Службы электронной подписи Участников ОФУ и ПФУ.
Служба электронной подписи Участника ОФУ подписывает транзакцию и возвращает подпись.
Служба электронной подписи Участника ПФУ проверяет подпись Котировки, затем подписывает транзакцию и возвращает подпись.
Служба котировок делает вызов во внутреннюю Службу управления транзакциями и передаёт транзакцию с подписями Участников.
Служба управления транзакциями подписывает транзакцию центральным ключом TKEY7.
Служба управления транзакциями делает вызов во внутреннюю Службу коннектора и передаёт транзакцию с подписями Участников в TKEY7.
Служба коннектора отправляет транзакцию в Распределённый реестр для проверки и последующей записи.
Распределённый реестр проверяет транзакцию и после достижения консенсуса, транзакция регистрируется в неизменяемом Реестре.
Служба коннектора отправляет идентификатор успешной транзакции в Службу котировок.
Служба котировок отправляет квитанцию о завершении Расчёта на условиях DvP, которая содержит идентификатор успешной транзакции в Распределённом реестре.