Запрос финансирования — сценарий
Сценарий демонстрирует ситуацию, в которой Финансовое учреждение запрашивает Финансирование у Токенизатора. Применяется для пополнения ликвидности, когда между Участником и Токенизатором существуют соглашения вне TKEY7.
Шаг 1. Создать запрос на финансирование
Финансовому учреждению-получателю необходимо получить список всех Участников через конечную точку /members и извлечь Участников с Бизнес-ролью Токенизатор — MIS
, затем сделать вызов в конечную точку /settlement-instruments/members/{member_identification}, чтобы получить список выпущенных Активов ЦРА, где member_identification
— идентификатор Токенизатора, например, tokenizerBankName
. После этого Участнику ОФУ необходимо определить параметры Запроса финансирования creditLine: код актива, запрашиваемая сумма активов у Токенизатора и идентификатор Операционного счёта, на который будут зачислены активы ЦРА, например, main
, затем требуется сформировать полезную нагрузку и передать её в объекте creditLine
с параметром credit_line_state
— request
через конечную точку /settlement-instruments/credit-line.
Пример запроса
{"method": "POST","url": "https://ru.bluebank.payments.tkey7.com/client/v1/api/settlement-instruments/credit-line","headers": {"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjYyODkwNDEzNWIyZDgzOWVjZWU1NjU5OCJ9.eyJ2cnNuIjoiMS4wLjAiLCJlbnYiOiJwcm9kIiwiaXAiOlsiMjUxLjI2LjEwOC4xNjMiLCI2Mi4yMDMuMTU2LjIyOCIsIjIxLjQ0LjIwLjIyNyIsIjE0OC4zNC4yMjUuMTUwIiwiMTU4LjE4Ni4yMDAuMTQwIl0sImFjY3QiOlsiZW1pc3Npb24iLCJtYWluIiwicmVzZXJ2ZSIsImRpc3RyaWJ1dGlvbiIsImNvbnNvbGlkYXRlIiwiY2hlY2tpbmciXSwiZW5kcHQiOlsiL2NsaWVudC92MS9hcGkvYmFsYW5jZXMvZGlnaXRhbC1hY2NvdW50cyIsIi9jbGllbnQvdjEvYXBpL2NoYXJnZXMvcmVxdWVzdCIsIi9jbGllbnQvdjEvYXBpL2NoYXJnZXMvcmVzcG9uc2UiLCIvY2xpZW50L3YxL2FwaS9kaWdpdGFsLWFjY291bnRzIiwiL2NsaWVudC92MS9hcGkvZXhjaGFuZ2UiLCIvY2xpZW50L3YxL2FwaS9leGNoYW5nZS9xdW90YXRpb25zIiwiL2NsaWVudC92MS9hcGkvZXhjaGFuZ2UvcXVvdGF0aW9ucy9yZXF1ZXN0IiwiL2NsaWVudC92MS9hcGkvZ2F0ZXdheS9tZXNzYWdlcyIsIi9jbGllbnQvdjEvYXBpL21lbWJlcnMiLCIvY2xpZW50L3YxL2FwaS9wYXltZW50LXBvaW50cyIsIi9jbGllbnQvdjEvYXBpL3BheW1lbnRzL21lc3NhZ2UvcmVkZWVtIiwiL2NsaWVudC92MS9hcGkvcGF5bWVudHMvbWVzc2FnZS9yZXBseSIsIi9jbGllbnQvdjEvYXBpL3BheW1lbnRzL21lc3NhZ2Uvc2VuZCIsIi9jbGllbnQvdjEvYXBpL3NldHRsZW1lbnQtaW5zdHJ1bWVudHMiLCIvY2xpZW50L3YxL2FwaS9zZXR0bGVtZW50LWluc3RydW1lbnRzL2RpZ2l0YWwtYWNjb3VudHMiLCIvY2xpZW50L3YxL2FwaS9zZXR0bGVtZW50LWluc3RydW1lbnRzL21lbWJlcnMiLCIvY2xpZW50L3YxL2FwaS9zZXR0bGVtZW50LW9ibGlnYXRpb25zIiwiL2NsaWVudC92MS9hcGkvc2lnbi9tZXNzYWdlIiwiL2NsaWVudC92MS9hcGkvc2lnbi9wYXlsb2FkIiwiL2NsaWVudC92MS9hcGkvdHJhbnNhY3Rpb25zIl0sImNudCI6MCwiaWF0IjoxNjU4MzkxNDA2LCJuYmYiOjE2NTgzOTE0MDksImV4cCI6MTY1ODQ3NzgwNiwiYXVkIjoiYmx1ZWJhbmsiLCJzdWIiOiItTjJfd2FQQkd2OXJuYmRfUmx1TiIsImp0aSI6IlFLNDN1RDF4Um5EOU1helpkdGF5eWVyMXZEIn0.lhEP1ZyYKgfC8UWnYloULUw00nEL0dxFSm_1WGHVxj0"},"body": {"account_identification": "main","asset_code_identification": "CHF",
Шаг 2. Принять запрос на финансирование
Токенизатору необходимо принять решение об утверждении или отклонении запроса на Финансирование, для этого требуется извлечь из запроса member_identification
— идентификатор Участника, который запросил Финансирование и через конечную точку /members/{member_identification} получить сведения об Участнике по его идентификатору. После этого Токенизатору необходимо проверить наличие соглашений на пополнение ликвидности с данным Участником на собственной серверной части вне TKEY7, в случае обнаружения соглашений, Токенизатору требуется сформировать полезную нагрузку и передать её в объекте creditLine
с параметром credit_line_state
— allow
через конечную точку /settlement-instruments/credit-line/{tokenizer_identification}, где tokenizer_identification
— идентификатор Токенизатора, например, tokenizerBankName
. В Распределённом реестре будет зарегистрирована транзакция изменения Кредитной линии по активу ЦРА между Операционным счётом Участника и Цифровым счётом Токенизатора.
Возможные сценарии идентификации
- Участник отправил запрос creditLine и с ним не существуют соглашений о ликвидности и он не состоит в санкционном списке Токенизатора,
credit_line_state
—allow
. - Участник отправил запрос creditLine и с ним существуют соглашения и сумма в пределах установленного лимита,
credit_line_state
—allow
. - Участник отправил запрос creditLine и с ним не существуют соглашений о ликвидности, но он состоит в санкционном списке Токенизатора,
credit_line_state
—revoke
. - Участник отправил запрос creditLine и с ним существуют соглашения, но сумма превышает установленный лимит,
credit_line_state
—revoke
.
Пример ответа
{"method": "POST","url": "https://payments.tkey7.com/tokenizer/v1/api/settlement-instruments/credit-line/centalbank","headers": {"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjQ0MTYzNDQ1OWEzZjQxMWNzYWEzODQwNCJ9.eyJ2cnNuIjoiMS4wLjAiLCJlbnYiOiJwcm9kIiwiaXAiOlsiMi4yMzMuMTUxLjI1NCIsIjEyNS4xNTYuMjExLjIxMSIsIjEyMy4xNTQuMTYyLjIyOCJdLCJhY2N0IjpbImVtaXNzaW9uIiwibWFpbiIsImRpc3RyaWJ1dGlvbmFjY3QiXSwiZW5kcHQiOlsiL3Rva2VuaXplci92MS9hcGkvYWNjb3VudC1hZGRyZXNzIiwiL3Rva2VuaXplci92MS9hcGkvbWVtYmVycyIsIi90b2tlbml6ZXIvdjEvYXBpL3NldHRsZW1lbnQtaW5zdHJ1bWVudHMvYXZhaWxhYmxlIiwiL3Rva2VuaXplci92MS9hcGkvc2V0dGxlbWVudC1pbnN0cnVtZW50cy9jcmVkaXQtbGluZSIsIi90b2tlbml6ZXIvdjEvYXBpL3RyYW5zYWN0aW9ucy9pbnN0cnVjdGlvbiIsIi90b2tlbml6ZXIvdjEvYXBpL3RyYW5zYWN0aW9ucy9tZXNzYWdlL3JlZGVlbSIsIi90b2tlbml6ZXIvdjEvYXBpL3RyYW5zYWN0aW9ucy9zZW5kIl0sImNudCI6MSwiaWF0IjoxNjU4Mzk4MDY2LCJuYmYiOjE2NTgzOTcxNzEsImV4cCI6MTY1ODM5ODA2NiwiYXVkIjoiY2VudHJhbGJhbmsiLCJzdWIiOiItTjJfWGdTc19FVjFOME5qeW5PdCIsImp0aSI6IkQ3M2R2WXlWYzVmejA2Y0RFb0NHZ2c1aXBjIn0.6dAFxNy0xICdq_BE2IYa9n6e2b83tyXEVr3XBzMu64I"},"body": {"account_identification": "distributionacct","asset_code_identification": "CHF",
Шаг 3. Финансировать Участника
Токенизатору первым шагом необходимо создать инструкцию по Финансированию, для этого требуется сформировать полезную нагрузку fundingInfo и передать её в объекте fundingInfo
через конечную точку /transactions/instruction, в ответ Токенизатор получит инструкцию по Финансированию: неподписанную транзакцию на финансирование Участника в кодировке base64 и сведения о Финансировании, на базе которых была сформирована транзакция. После этого Токенизатору необходимо закодировать данные fundingInfo
в base64 и получить подпись полезной нагрузки на собственной серверной системе, затем подписать транзакцию. Завершающим шагом требуется передать исходные сведения по Финансированию fundingInfo
через конечную точку /transactions/send с параметрами в строке запросе funding_payload_signature
— подпись полезной нагрузки, signed_funding_transaction
— подписанная транзакция, готовая к отправке в сеть для расчёта, в ответ Токенизатор получит квитанцию о завершении Финансирования. С Цифрового счёта Токенизатора будет осуществлён перевод активов ЦРА на Операционный счёт Участника в Распределённом реестре.
Пример запроса получения инструкции по Финансированию
{"method": "POST","url": "https://payments.tkey7.com/tokenizer/v1/api/transactions/instruction","headers": {"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjQ0MTYzNDQ1OWEzZjQxMWNzYWEzODQwNCJ9.eyJ2cnNuIjoiMS4wLjAiLCJlbnYiOiJwcm9kIiwiaXAiOlsiMi4yMzMuMTUxLjI1NCIsIjEyNS4xNTYuMjExLjIxMSIsIjEyMy4xNTQuMTYyLjIyOCJdLCJhY2N0IjpbImVtaXNzaW9uIiwibWFpbiIsImRpc3RyaWJ1dGlvbmFjY3QiXSwiZW5kcHQiOlsiL3Rva2VuaXplci92MS9hcGkvYWNjb3VudC1hZGRyZXNzIiwiL3Rva2VuaXplci92MS9hcGkvbWVtYmVycyIsIi90b2tlbml6ZXIvdjEvYXBpL3NldHRsZW1lbnQtaW5zdHJ1bWVudHMvYXZhaWxhYmxlIiwiL3Rva2VuaXplci92MS9hcGkvc2V0dGxlbWVudC1pbnN0cnVtZW50cy9jcmVkaXQtbGluZSIsIi90b2tlbml6ZXIvdjEvYXBpL3RyYW5zYWN0aW9ucy9pbnN0cnVjdGlvbiIsIi90b2tlbml6ZXIvdjEvYXBpL3RyYW5zYWN0aW9ucy9tZXNzYWdlL3JlZGVlbSIsIi90b2tlbml6ZXIvdjEvYXBpL3RyYW5zYWN0aW9ucy9zZW5kIl0sImNudCI6MSwiaWF0IjoxNjU4Mzk4MDY2LCJuYmYiOjE2NTgzOTcxNzEsImV4cCI6MTY1ODM5ODA2NiwiYXVkIjoiY2VudHJhbGJhbmsiLCJzdWIiOiItTjJfWGdTc19FVjFOME5qeW5PdCIsImp0aSI6IkQ3M2R2WXlWYzVmejA2Y0RFb0NHZ2c1aXBjIn0.6dAFxNy0xICdq_BE2IYa9n6e2b83tyXEVr3XBzMu64I"},"body": {"account_identification": "distributionacct","end_to_end_identification": "04c01497524342caa360d2b838339e51",
Пример ответа
{"funding_payload": {"account_identification": "distributionacct","end_to_end_identification": "04c01497524342caa360d2b838339e51","funding_amount": "250000","issued_asset_code_identification": "CHF","member_identification": "bluebank","tokenizer_identification": "centralbank"},
Пример запроса Финансирования
{"method": "POST","url": "https://payments.tkey7.com/tokenizer/v1/api/transactions/send?funding_payload_signature=7AMRWzYXDj4mxQL4mk+CIdAtDKIxw03E0ell2R+bMoroyaNmt+80AlhpHjFZgOTlwdW4N2zJi9tbB1FUMyAGBw==&signed_funding_transaction=AAAAAtAAAACIPiI0rtvdDmMIXmXxvUxUTM0hD/arBMgLoShkoMV+rAAAAGQAAAAAAAEv0QAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAIg+IjSu290OYwheZfG9TFRMzSEP9qsEyAuhKGSgxX6sAAAAAQAAAAApBr4PEcSuv1yHSVjMIWSgVfDufv8cLYQYhjXhlPtxPwAAAAFDSEYAAAAAAIg+IjSu290OYwheZfG9TFRMzSEP9qsEyAuhKGSgxX6sAAAWvMQekAAAAAAAAAAAAaDFfqwAAABAwiDxzZRJBnR+kOn5fC7mTUpwI3M/VYreJVAR/y0I8+9SQFLGISXHG5itR6wjdD0HfR2Z+zVfUx2GqoY/cLwnBA==","headers": {"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjQ0MTYzNDQ1OWEzZjQxMWNzYWEzODQwNCJ9.eyJ2cnNuIjoiMS4wLjAiLCJlbnYiOiJwcm9kIiwiaXAiOlsiMi4yMzMuMTUxLjI1NCIsIjEyNS4xNTYuMjExLjIxMSIsIjEyMy4xNTQuMTYyLjIyOCJdLCJhY2N0IjpbImVtaXNzaW9uIiwibWFpbiIsImRpc3RyaWJ1dGlvbmFjY3QiXSwiZW5kcHQiOlsiL3Rva2VuaXplci92MS9hcGkvYWNjb3VudC1hZGRyZXNzIiwiL3Rva2VuaXplci92MS9hcGkvbWVtYmVycyIsIi90b2tlbml6ZXIvdjEvYXBpL3NldHRsZW1lbnQtaW5zdHJ1bWVudHMvYXZhaWxhYmxlIiwiL3Rva2VuaXplci92MS9hcGkvc2V0dGxlbWVudC1pbnN0cnVtZW50cy9jcmVkaXQtbGluZSIsIi90b2tlbml6ZXIvdjEvYXBpL3RyYW5zYWN0aW9ucy9pbnN0cnVjdGlvbiIsIi90b2tlbml6ZXIvdjEvYXBpL3RyYW5zYWN0aW9ucy9tZXNzYWdlL3JlZGVlbSIsIi90b2tlbml6ZXIvdjEvYXBpL3RyYW5zYWN0aW9ucy9zZW5kIl0sImNudCI6MSwiaWF0IjoxNjU4Mzk4MDY2LCJuYmYiOjE2NTgzOTcxNzEsImV4cCI6MTY1ODM5ODA2NiwiYXVkIjoiY2VudHJhbGJhbmsiLCJzdWIiOiItTjJfWGdTc19FVjFOME5qeW5PdCIsImp0aSI6IkQ3M2R2WXlWYzVmejA2Y0RFb0NHZ2c1aXBjIn0.6dAFxNy0xICdq_BE2IYa9n6e2b83tyXEVr3XBzMu64I"},"body": {"account_identification": "distributionacct","end_to_end_identification": "04c01497524342caa360d2b838339e51",
Пример ответа
{"funding_payload": {"account_identification": "distributionacct","end_to_end_identification": "04c01497524342caa360d2b838339e51","funding_amount": "250000","issued_asset_code_identification": "CHF","member_identification": "bluebank","tokenizer_identification": "centralbank"},
Шаг 4. Извлечь транзакцию по Финансированию
TKEY7 получит завершённую транзакцию по Финансированию от Токенизатора, и сделает ответ доступным для Участника ОФУ через Службу прослушивания транзакций и Шлюзовую службу сообщений Kafka. Участнику необходимо выполнить вызов в конечную точку /gateway/messages с аргументом transactions
, чтобы извлечь транзакцию по Финансированию. Ответ будет содержать идентификатор транзакции в Распределённом реестре.
Пример ответа
{"response_data": [{"account_identification": "main","transaction_identification": "54b6813c974e53d2499876cee10f27535a04ac98201201ebed9847d156c472f7","transaction_reference_number": "936301270049156720"}],"topic_name": "transactions"