Инициализация перевода денег другому ФЛ (C2C2)
Last updated
Last updated
Данный сценарий описывает инициализацию перевода денег от клиента (Отправитель денег) из одного БВУ (Банк отправителя денег) иному физическому лицу (Бенефициар) в другой БВУ (Банк бенефициара).
Перевод инициируется в приложении Банка отправителя денег.
Перевод денег осуществляется со счета Отправителя денег в Банке отправителя денег на счет Бенефициара в Банке бенефициара.
Отправитель денег для осуществления перевода указывает номер мобильного телефона бенефициара и Банк бенефициара.
Схему успешного сценария процесса «Инициализация перевода денег другому ФЛ (C2C2)» отображает рисунок ниже.
Примечание: На схеме темно-зелеными квадратами отображены методы (endpoint), которые должны быть реализованы на стороне соответствующего участника для реализации данного сценария. Описание методов приведено в электронном формате в https://transfers-openapi.npck.kz/.
Методы API (endpoint), которые необходимо реализовать каждому участнику на своей стороне в рамках процесса «Инициализация перевода денег другому ФЛ (C2C2)», приведены в таблице ниже.
Метод API (endpoint) | Банк отправителя денег | Банк бенефициара |
---|---|---|
Запрос верификации наличия счета клиента (POST /v1/transfers/iso20022/acmt.023.001.03) |
| + |
Результат верификации наличия счета клиента (POST /v1/transfers/iso20022/acmt.024.001.03) | + |
|
Запрос на перевод денег (POST /v1/transfers/iso20022/pacs.008.001.11) |
| + |
Статус обработки запроса перевода денег (POST /v1/transfers/iso20022/pacs.002.001.13) | + | + |
Процесс «Инициализация перевода денег другому ФЛ (C2C2)» построен на обмене сообщениями, основанными на стандарте ISO20022, которые логически связаны между собой.
Описание успешного сценария процесса «Инициализация перевода денег другому ФЛ (C2C2)»:
Верификация наличия счета клиента
Отправитель денег в приложении Банка отправителя денег инициирует перевод денег бенефициару по номеру телефона.
Банк отправителя денег направляет Платформе запрос верификации наличия счета клиента по номеру телефона (сообщение acmt.023), подписывая его своим ЭЦП.
В сообщении передается:
в теге <Document::Assgnmt:MsgId> – сгенерированный уникальный идентификатор сообщения
в теге <Document::Vrfctn:Id> – сгенерированный уникальный идентификатор запроса верификации, который будет выступать в качестве сквозного идентификатора для всей цепочки сообщений в рамках данной операции перевода
2.1. Платформа, получив запрос, проводит его обработку и валидацию, в том числе:
проверяет подпись Банка отправителя денег
проверяет корректность заполнения полей
проверяет, что сквозной идентификатор <Document::Vrfctn:Id> не использовался
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа направляет в Банк бенефициара запрос верификации наличия счета клиента по номеру телефона (сообщение acmt.023), подписывая его ЭЦП Платформы.
В сообщении передается:
в теге <Document::Assgnmt:MsgId> – сгенерированный уникальный идентификатор сообщения
в теге <Document::Vrfctn:Id> – сквозной идентификатор для всей цепочки сообщений в рамках данной операции перевода, полученный на шаге 2
3.1. Банк бенефициара, получив запрос, проводит его обработку, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.
Банк бенефициара проверяет наличие счета по указанному в запросе номеру телефона.
Банк бенефициара направляет результат верификации наличия счета клиента Платформе (сообщение acmt.024), подписав его своим ЭЦП.
В сообщении передается:
в теге <Document::Rpt:OrgnlId> – сквозной идентификатор из тега <Vrfctn:Id> исходного запроса (из acmt.023)
При наличии счета бенефициара передается его имя и первая буква фамилии (например, Имя Ф.) и IBAN для счета бенефициара
5.1. Платформа, получив запрос (сообщение acmt.024), проводит его валидацию, в том числе:
проверяет подпись Банка бенефициара
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа направляет результат верификации наличия счета клиента в Банк отправителя денег (сообщение acmt.024), подписав его ЭЦП Платформы.
В сообщении передается:
в теге <Document::Rpt:OrgnlId> – сквозной идентификатор из тега <Vrfctn:Id> исходного запроса (из acmt.023)
При наличии счета бенефициара передается его имя и первая буква фамилии (например, Имя Ф.) и IBAN для счета бенефициара
6.1. Банк отправителя денег, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк отправителя денег направляет ответ с HTTP статусом 200.
Банк отправителя денег отображает информацию о бенефициаре (имя и первая буква фамилии), чтобы Отправитель денег мог удостовериться в корректности получателя.
Отправитель денег подтверждает перевод в приложении Банка отправителя денег.
Транзакция по переводу денег
Банк отправителя денег проводит проверку счета клиента на:
валидность статуса для его дебетования
отсутствие наложенного ПТП/ РПРО/ ареста и т.п.
достаточности средств для списания суммы операции
Банк отправителя денег блокирует сумму операции по счету клиента и формирует платежное поручение (pacs.008).
Банк отправителя денег направляет Платформе запрос на перевод денег (сообщение pacs.008), подписав его своим ЭЦП.
В сообщении передается:
в теге <Document::GrpHdr:MsgId> – сгенерированный уникальный идентификатор нового сообщения
в теге <Document::PmtId:EndToEndId> – сквозной идентификатор из тега <OrgnlId> из сообщения acmt.024
в поле <Document::PmtId:TxId> – сгенерированный уникальный идентификатор новой транзакции
указывается IBAN для счета Отправителя денег
указывается IBAN для счета Бенефициара
11.1. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка отправителя денег
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа обрабатывает запрос на перевод денег (сообщение pacs.008), в том числе:
выполняет проверку позиций участников и лимитов;
выполняет блокирование средств для проведения транзакции;
выполняет поиск результата верификации наличия счета клиента по <EndToEndId> (acmt.024).
Платформа направляет в Банк бенефициара запрос на перевод денег (сообщение pacs.008), подписав его ЭЦП Платформы.
В сообщении передается:
в теге <Document::GrpHdr:MsgId> – сгенерированный уникальный идентификатор нового сообщения
в теге <Document::PmtId:EndToEndId> – сквозной идентификатор из тега <OrgnlId> из сообщения acmt.024, соответствует <EndToEndId> из сообщения pacs.008 Банка отправителя денег
в поле <Document::PmtId:TxId> – идентификатор транзакции из тега <TxId> из сообщения pacs.008 Банка отправителя денег
указывается IBAN для счета Отправителя денег
указывается IBAN для счета Бенефициара
13.1. Банк бенефициара, получив запрос, проводит его обработку, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.
Банк бенефициара проверяет счет бенефициара на возможность зачисления денег.
Банк бенефициара направляет статус обработки запроса перевода денег Платформе (сообщение pacs.002), подписав его своим ЭЦП.
В сообщении передается:
<Document::OrgnlEndToEndId> – сквозной идентификатор из тега <EndToEndId> исходного запроса (pacs.008)
<Document::OrgnlTxId> – идентификатор транзакции из тега <TxId> исходного запроса (из pacs.008)
Статус транзакции PDNG (в обработке)
15.1. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка бенефициара
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа направляет статус обработки запроса перевода денег в Банк отправителя денег (сообщение pacs.002), подписав его ЭЦП Платформы.
В сообщении передается:
в теге <Document::OrgnlEndToEndId> – сквозной идентификатор из тега <EndToEndId> исходного запроса (pacs.008)
в теге <Document::OrgnlTxId> – идентификатор транзакции из тега <TxId> исходного запроса (из pacs.008)
Статус транзакции PDNG (в обработке)
16.1. Банк отправителя денег, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк отправителя денег направляет ответ с HTTP статусом 200.
Платформа успешно завершает транзакцию (commit transaction).
Платформа направляет в качестве уведомления об успешной транзакции в Банк бенефициара сообщение pacs.002 со статусом транзакции ACSC, подписав его ЭЦП Платформы.
18.1. Банк бенефициара, получив сообщение pacs.002 со статусом транзакции, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.
Примечание: Если Платформа направляет в Банк бенефициара сообщение pacs.002 со статусом транзакции ACSC, и им уже был получен такой же запрос (повторно отправлен pacs.002), то дополнительных действий Банк бенефициара не производит (не производит повторное зачисление денег на счет бенефициара и т.д.), а лишь отправляет ответ с HTTP статусом 200
18.2. Банк бенефициара производит зачисление денег на счет бенефициара и уведомляет об этом бенефициара.
Платформа направляет в качестве уведомления об успешной транзакции в Банк отправителя денег сообщение pacs.002 со статусом транзакции ACSC, подписав его ЭЦП Платформы.
19.1. Банк отправителя денег, получив сообщение pacs.002 со статусом транзакции, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк отправителя денег направляет ответ с HTTP статусом 200.
Примечание: Если Платформа направляет в Банк отправителя денег сообщение pacs.002 со статусом транзакции ACSC, и им уже был получен такой же запрос (повторно отправлен pacs.002), то дополнительных действий Банк отправителя денег не производит (не производит повторное списание денег со счета отправителя денег и т.д.), а лишь отправляет ответ с HTTP статусом 200
19.2. Банк отправителя денег производит списание денег со счета отправителя денег и уведомляет его о завершении операции.