Возврат перевода по инициативе Отправителя (C2CR_RTP)
Данный сценарий описывает процесс возврата денежных средств по ранее совершенному переводу, инициируемый бенефициаром (отправителем денег в оригинальной транзакции).
Важно! Допускается возврат только полной суммы полученного ранее перевода. Возврат по ранее полученному переводу может быть выполнен только один раз. Если запрос возврата денег по переводу находится в обработке, то повторный запрос возврата денег по данному переводу не должен отправляться до ее завершения.
Методы API (endpoint), которые необходимо реализовать
При реализации участниками информационного взаимодействия данные API должны быть идемпотентны (получив повторный запрос с теми же параметрами, должен выдаваться в ответе результат исходного запроса).
Схему успешного сценария процесса «Возврат перевода по инициативе Отправителя (C2CR_RTP)» отображает рисунок ниже.

Примечание: На схеме темно-зелеными квадратами отображены методы (endpoint), которые должны быть реализованы на стороне соответствующего участника для реализации данного сценария. Описание методов приведено в электронном формате в https://transfers-openapi.npck.kz/.
Методы API (endpoint), которые необходимо реализовать каждому участнику на своей стороне в рамках процесса «Возврат перевода по инициативе Отправителя (C2CR_RTP)», приведены в таблице ниже.
Запрос на осуществление возврата от отправителя денег (POST /v1/transfers/iso20022/ pain.013.001.11)
+
Отчет о статусе запроса на возврат от отправителя денег (POST /v1/transfers/iso20022/ pain.014.001.11)
+
Запрос возврата денег
(POST /v1/transfers/iso20022/pacs.004.001.12)
+
Статус обработки запроса перевода денег
(POST /v1/transfers/iso20022/pacs.002.001.13)
+
+
Взаимосвязь идентификаторов сообщений
Успешный процесс «Возврат перевода по инициативе Отправителя (C2CR_RTP)»построен на обмене сообщениями, основанными на стандарте ISO20022, которые логически связаны между собой.

Неуспешный процесс «Возврат перевода по инициативе Отправителя (C2CR_RTP)»построен на обмене сообщениями, основанными на стандарте ISO20022, которые логически связаны между собой.

Описание процесса
Описание успешного сценария процесса «Возврат перевода по инициативе Отправителя (C2CR_RTP)»:
Отправитель денег из оригинальной транзакции обнаружив ошибку в ранее выполненном переводе, инициирует запрос в приложении Банка бенефициара на возврат денег по ошибочному переводу.
Допускается возврат только полной суммы полученного ранее перевода
Банк бенефициара направляет Платформе запрос на возврат денег от отправителя перевода (сообщение pain.013), подписав его своим ЭЦП.
Возможные неуспешные сценарии
Платформа не отвечает:
Банк Бенефициара завершает процесс, не получив ответ в срок в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
Процесс завершается неуспешно.
Валидация сообщения не прошла успешно:
Валидация сообщения не проходит успешно, Платформа направляет банку бенефициара ответ с соответствующим ошибке HTTP статусом.
Процесс завершается неуспешно.
2.1. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка бенефициара
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа направляет в Банк отправителя денег запрос на возврат (сообщение pain.013), подписав его ЭЦП Платформы.
Возможные неуспешные сценарии
Банк отправителя денег не отвечает:
Платформа завершает процесс, не получив ответ в срок в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
Платформа направляет в Банк бенефициара сообщение pain.014 с ошибкой.
Банк бенефициара завершает процесс, получив сообщение с информацией об ошибке.
Процесс завершается неуспешно.
Валидация сообщения не прошла успешно:
Валидация сообщения не проходит успешно, Банк отправителя денег направляет ответ Платформе с соответствующим ошибке HTTP статусом.
Платформа завершает процесс, получив сообщение с информацией об ошибке.
Платформа направляет в Банк бенефициара сообщение pain.014 с ошибкой.
Банк бенефициара завершает процесс, получив сообщение с информацией об ошибке.
Процесс завершается неуспешно.
3.1. Банк отправителя денег, получив запрос, проводит его обработку, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк отправителя денег направляет ответ с HTTP статусом 200.
3.2. Уведомление клиента и срок действия запроса на возврат
После успешной обработки сообщения pain.013 Банк отправителя денег инициирует направление клиенту–отправителю денег (ФЛ) push-уведомления в мобильном приложении о поступлении запроса на возврат денег.
С момента получения Банком отправителя денег сообщения pain.013 запускается таймер срока действия запроса на возврат.
Срок действия запроса на возврат составляет 7 календарных дней. В течение указанного срока клиент–отправитель денег может подтвердить или отклонить возврат денег.
По истечении 7 дней с момента поступления запроса, при отсутствии решения клиента–отправителя денег, запрос на возврат автоматически переводится в неактивный статус и считается отклоненным.
Отправитель денег просматривает запрос на возврат денег и подтверждает согласие на его возврат.
4.1. Отказ в возврате денег:
4.1.1. Банк отправителя денег направляет статус обработки запроса на возврат денег Платформе (сообщение pain.014), подписав его своим ЭЦП, со статусом транзакции RJCT (отклонена) и соответствующим кодом ошибки.
Возможные неуспешные сценарии
Платформа не отвечает:
Банк отправителя денег завершает процесс, не получив ответ в срок в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
Процесс завершается неуспешно.
Валидация сообщения не прошла успешно:
Валидация сообщения не проходит успешно, Платформа направляет Банку отправителя денег ответ с соответствующим ошибке HTTP статусом.
Процесс завершается неуспешно.
4.1.2. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка бенефициара
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
4.1.3. Платформа завершает процесс статусом RJCT.
4.1.4. Платформа направляет статус обработки запроса в Банк бенефициара (сообщение pain.014 со статусом RJCT), подписав его ЭЦП Платформы, со статусом транзакции RJCT (отклонена) и соответствующим кодом ошибки.
Возможные неуспешные сценарии
Банк бенефициара не отвечает:
Платформа завершает процесс, не получив ответ в срок в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
Процесс завершается неуспешно.
Валидация сообщения не прошла успешно:
Валидация сообщения не проходит успешно, Банк бенефициара направляет ответ Платформе с соответствующим ошибке HTTP статусом.
Платформа завершает процесс, получив сообщение с информацией об ошибке.
Процесс завершается неуспешно.
4.1.5. Банк бенефициара, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.
4.1.6 Банк бенефициара завершает процесс статусом RJCT.
4.2 Отправитель денег не возвращает средства в течение 7 дней:
Процесс завершается неуспешно.
Транзакция по проведению возврата денег
Банк отправителя денег производит проверку, что сумма возврата соответствует исходной транзакции, и по данному переводу возврат не производился (выполненный или находящийся в обработке).
Возможные неуспешные сценарии
Запрошена некорректная сумма возврата или отсутствуют данные о полученном ранее переводе, по которому запрошен возврат:
Банк отправителя денег отклоняет запрос возврата полученного перевода.
Процесс завершается неуспешно.
Банк отправителя денег проводит проверку счета клиента на:
валидность статуса для его дебетования
отсутствие наложенного ПТП/ РПРО/ ареста и т.п.
достаточности средств для списания суммы операции
Возможные неуспешные сценарии
Проверка счета не прошла успешно:
Банк отправителя денег уведомляет клиента о невозможности проведения операции.
Процесс завершается неуспешно.
Банк отправителя денег блокирует сумму операции по счету клиента и формирует запрос возврата денег (pacs.004) на основе исходного сообщения pacs.008, по которому был проведен перевод.
Банк отправителя денег направляет Платформе запрос на проведение возврата денег (сообщение pacs.004), подписав его своим ЭЦП.
Возможные неуспешные сценарии
Платформа не отвечает:
Если Платформа не направляет ответ, то Банк отправителя денег должен считать, что запрос не доставлен.
Банк отправителя денег выполняет попытку повторной отправки корректного запроса в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
Валидация сообщения не прошла успешно:
Валидация сообщения не проходит успешно, Платформа направляет Банку отправителя денег ответ с соответствующим ошибке HTTP статусом.
Процесс завершается неуспешно.
8.1. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка отправителя денег
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа обрабатывает запрос на проведение возврата денег (сообщение pacs.004), в том числе:
производит проверку, что сумма возврата соответствует исходной транзакции, и по данному переводу возврат не производился (выполненный или находящийся в обработке);
выполняет проверку позиций участников и лимитов;
выполняет блокирование средств для проведения транзакции
Возможные неуспешные сценарии
Обработка запроса возврата денег pacs.004 Платформой не проходит успешно:
Платформа направляет статус обработки запроса на проведение возврата денег в Банк отправителя денег (сообщение pacs.002), подписав его ЭЦП Платформы, со статусом транзакции RJCT (отклонена).
Процесс завершается неуспешно.
Платформа направляет в Банк бенефициара запрос на проведение возврата денег (сообщение pacs.004), подписав его ЭЦП Платформы.
Возможные неуспешные сценарии
Банк бенефициара не отвечает:
Если Банк бенефициара не направляет ответ, то Платформа должна считать, что запрос не доставлен.
Платформа выполняет попытку повторной отправки запроса в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
Платформа завершает процесс, не получив ответ в срок в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
Платформа направляет в Банк отправителя сообщение pacs.002 с ошибкой.
Банк отправителя денег завершает процесс, получив сообщение с информацией об ошибке.
Процесс завершается неуспешно.
Валидация сообщения не прошла успешно:
Валидация сообщения не проходит успешно, Банк бенефициара направляет ответ Платформе с соответствующим ошибке HTTP статусом.
Платформа устанавливает статус транзакции RJCT (отклонена).
Платформа направляет в Банк отправителя сообщение pacs.002 с ошибкой.
Банк отправителя денег завершает процесс, получив сообщение с информацией об ошибке, устанавливает статус транзакции RJCT (отклонена).
Процесс завершается неуспешно.
10.1. Банк бенефициара, получив запрос, проводит его обработку, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.
Банк бенефициара проверяет счет бенефициара (отправителя денег из оригинальной транзакции) на возможность зачисления денег.
Банк бенефициара направляет статус обработки запроса проведения возврата денег Платформе (сообщение pacs.002), подписав его своим ЭЦП.
Возможные неуспешные сценарии
Платформа не отвечает:
Если Платформа не направляет ответ, то Банк бенефициара должен считать, что запрос не доставлен.
Банк бенефициара выполняет попытку повторной отправки запроса в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
Валидация сообщения не прошла успешно:
Валидация сообщения не проходит успешно, Платформа направляет ответ Банку бенефициара с соответствующим ошибке HTTP статусом. Банк бенефициара устанавливает статус транзакции RJCT (отклонена).
Платформа устанавливает статус транзакции RJCT (отклонена).
Банк отправителя денег, не получив ответ в срок в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов), устанавливает статус транзакции RJCT (отклонена).
Процесс завершается неуспешно.
Транзакция отклонена (статус транзакции RJCT):
Банк бенефициара направляет Платформе статус обработки запроса проведения возврата денег (сообщение pacs.002) - RJCT (отклонена).
Платформа направляет статус обработки запроса проведения возврата денег в Банк отправителя денег (сообщение pacs.002), подписав его ЭЦП Платформы, со статусом транзакции RJCT (отклонена).
Процесс завершается неуспешно.
12.1. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка бенефициара
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа направляет статус обработки запроса проведения возврата денег в Банк отправителя денег (сообщение pacs.002), подписав его ЭЦП Платформы.
Возможные неуспешные сценарии
Банк отправителя денег не отвечает:
Если Банк отправителя денег не направляет ответ, то Платформа должна считать, что запрос не доставлен.
Платформа выполняет попытку повторной отправки запроса в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
13.1. Банк отправителя денег, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк отправителя денег направляет ответ с HTTP статусом 200.
Платформа успешно завершает транзакцию (commit transaction).
Платформа направляет в качестве уведомления об успешной транзакции в Банк бенефициара сообщение pacs.002 со статусом транзакции ACSC, подписав его ЭЦП Платформы.
Возможные неуспешные сценарии
Банк бенефициара не отвечает:
Если Банк бенефициара не направляет ответ, то Платформа должна считать, что запрос не доставлен.
Платформа выполняет попытку повторной отправки запроса в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
15.1. Банк бенефициара, получив сообщение pacs.002 со статусом транзакции, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.
Примечание:
Если Платформа направляет в Банк бенефициара сообщение pacs.002 со статусом транзакции ACSC, и им уже был получен такой же запрос (повторно отправлен pacs.002), то дополнительных действий Банк бенефициара не производит (не производит повторное зачисление денег на счет бенефициара и т.д.), а лишь отправляет ответ с HTTP статусом 200
Возможные неуспешные сценарии
Банк бенефициара не получил сообщение pacs.002 с финальным статусом транзакции (ACSC или RJCT):
Банк бенефициара ожидает получение сообщения pacs.002 с финальным статусом транзакции (ACSC или RJCT) в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
Не получив сообщения pacs.002 с финальным статусом транзакции (ACSC или RJCT), Банк бенефициара в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов) завершает транзакцию неуспешно (RJCT) по тайм-ауту, зачисление средств бенефициару не производится. Платформа производит откат транзакции, устанавливает статус транзакции - RJCT (неуспешно). Банк отправителя денег, получив статус транзакции RJCT (неуспешно), разблокирует средства Отправителя денег, списание средств не производится.
Примечание: перед завершением транзакции Банк бенефициара может проверить статус транзакции на Платформе, отравив сообщение pacs.028 (см. Сервис получения статуса обработки транзакции)
15.2. Банк бенефициара производит зачисление денег на счет бенефициара (отправителя денег из оригинальной транзакции) и уведомляет об этом бенефициара (отправителя денег из оригинальной транзакции).
Платформа направляет в качестве уведомления об успешной транзакции в Банк отправителя денег сообщение pacs.002 со статусом транзакции ACSC, подписав его ЭЦП Платформы.
Возможные неуспешные сценарии
Банк отправителя денег не отвечает:
Если Банк отправителя денег не направляет ответ, то Платформа должна считать, что запрос не доставлен.
Платформа выполняет попытку повторной отправки запроса в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
16.1. Банк отправителя денег, получив сообщение pacs.002 со статусом транзакции, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк отправителя денег направляет ответ с HTTP статусом 200.
Примечание: Если Платформа направляет в Банк отправителя денег сообщение pacs.002 со статусом транзакции ACSC, и им уже был получен такой же запрос (повторно отправлен pacs.002), то дополнительных действий Банк отправителя денег не производит (не производит повторное списание денег со счета отправителя денег и т.д.), а лишь отправляет ответ с HTTP статусом 200
Возможные неуспешные сценарии
Банк отправителя денег не получил сообщение pacs.002 с финальным статусом транзакции (ACSC или RJCT):
Банк отправителя денег ожидает получение сообщения pacs.002 с финальным статусом транзакции (ACSC или RJCT) в соответствии с установленным регламентом (см. Тайм-ауты и логика повторных запросов).
Не получив сообщения pacs.002 с финальным статусом транзакции (ACSC или RJCT), Банк отправителя денег направляет запрос статуса транзакции Платформе (сообщение pacs.028, см. Сервис получения статуса обработки транзакции), подписав его своим ЭЦП.
Платформа, успешно выполнив обработку запроса, направляет ответ с HTTP статусом 200.
Платформа направляет в Банк отправителя денег сообщение pacs.002 со статусом транзакции, подписав его ЭЦП Платформы.
16.2. Банк отправителя денег производит списание денег со счета Отправителя денег (бенефициара из оригинальной транзакции) и уведомляет его о завершении операции.
Last updated