Инициализация перевода денег между своими счетами (M2M)
Данный сценарий описывает инициализацию перевода денег клиентом со своего счета в одном БВУ на свой счет в другой БВУ. Перевод осуществляется по номеру мобильного телефона.
Перевод выполняется только при совпадении идентификационных данных отправителя и получателя; при выявлении расхождений операция отклоняется.
Методы API (endpoint), которые необходимо реализовать
Схему успешного сценария процесса «Инициализация перевода денег между своими счетами (M2M)» отображает рисунок ниже.

Методы API (endpoint), которые необходимо реализовать каждому участнику на своей стороне в рамках процесса «Инициализация перевода денег между своими счетами (M2M)», приведены в таблице ниже.
Запрос верификации наличия счета клиента
(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)
+
+
Взаимосвязь идентификаторов сообщений
Процесс «Инициализация перевода денег между своими счетами (M2M)» построен на обмене сообщениями, основанными на стандарте ISO20022, которые логически связаны между собой.

Описание процесса
Описание успешного сценария процесса «Инициализация перевода денег между своими счетами (M2M)»:
Верификация наличия счета клиента
Отправитель денег в приложении Банка отправителя денег инициирует перевод денег на свой счет в другой БВУ по номеру телефона.
Банк отправителя денег направляет Платформе запрос верификации наличия счета клиента по номеру телефона (сообщение acmt.023), подписывая его своим ЭЦП.
2.1. Платформа, получив запрос, проводит его обработку и валидацию, в том числе:
проверяет подпись Банка отправителя денег
проверяет корректность заполнения полей
проверяет, что сквозной идентификатор <Document::Vrfctn:Id> не использовался
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа направляет в Банк бенефициара запрос верификации наличия счета клиента по номеру телефона (сообщение acmt.023), подписывая его ЭЦП Платформы.
3.1. Банк бенефициара, получив запрос, проводит его обработку, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.
Банк бенефициара проверяет наличие счета по указанному в запросе номеру телефона и проверяет соответствие идентификационных данных отправителя (из acmt.023) идентификационным данным получателя.
Банк бенефициара направляет результат верификации наличия счета клиента Платформе (сообщение acmt.024), подписав его своим ЭЦП. При этом идентификационные данные получателя (в acmt.024 - значение и тип для NIDN/CCPT из тега Rpt.UpdtdPtyAndAcctId.Pty.Id.PrvtId) должны в точности совпадать с данными отправителя (из acmt.023 - значение и тип для NIDN/CCPT из тега Assgnmt.Cretr.Pty.Id.PrvtId) для успешного перевода денег.
5.1. Платформа, получив запрос (сообщение acmt.024), проводит его валидацию, в том числе:
проверяет подпись Банка бенефициара
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа направляет результат верификации наличия счета клиента в Банк отправителя денег (сообщение acmt.024), подписав его ЭЦП Платформы.
6.1. Банк отправителя денег, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк отправителя денег направляет ответ с HTTP статусом 200.
Отправитель денег подтверждает перевод в приложении Банка отправителя денег.
Транзакция по переводу денег
Банк отправителя денег проводит проверку счета клиента на:
валидность статуса для его дебетования
отсутствие наложенного ПТП/ РПРО/ ареста и т.п.
достаточности средств для списания суммы операции
Банк отправителя денег блокирует сумму операции по счету клиента и формирует платежное поручение (pacs.008).
Банк отправителя денег направляет Платформе запрос на перевод денег (сообщение pacs.008), подписав его своим ЭЦП.
11.1. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка отправителя денег
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа обрабатывает запрос на перевод денег (сообщение pacs.008), в том числе:
выполняет проверку позиций участников и лимитов;
выполняет блокирование средств для проведения транзакции;
выполняет поиск результата верификации наличия счета клиента по <EndToEndId> (acmt.024).
Платформа направляет в Банк бенефициара запрос на перевод денег (сообщение pacs.008), подписав его ЭЦП Платформы.
13.1. Банк бенефициара, получив запрос, проводит его обработку, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.
Банк бенефициара проверяет счет бенефициара на возможность зачисления денег.
Банк бенефициара направляет статус обработки запроса перевода денег Платформе (сообщение pacs.002), подписав его своим ЭЦП.
15.1. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка бенефициара
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа направляет статус обработки запроса перевода денег в Банк отправителя денег (сообщение pacs.002), подписав его ЭЦП Платформы.
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. Банк отправителя денег производит списание денег со счета отправителя денег и уведомляет его о завершении операции.
Last updated