Возврат денег по проведенной ранее оплате за товар/ услугу (C2BR)
Last updated
Last updated
Данный сценарий описывает возврат денег по проведенной ранее оплате за товар/услугу.
Поставщик/продавец (т.е. изначальный получатель денег за товар/услугу) выступает в качестве отправителя денег в рамках данного сценария (бенефициар из оригинальной транзакции).
Бенефициаром является клиент, которому возвращаются деньги (т.е. изначальный плательщик, отправитель денег из оригинальной транзакции).
Запрос возврата денег (pacs.004) формируется на основе исходного платежного поручения (pacs.008), по которому была ранее выполнена оплате за товар/услугу.
Важно! Допускается возврат части суммы или полной суммы по проведенной ранее оплате за товар/услугу. Общая сумма возврата не должна превышать суммы исходной транзакции с учетом возвратов по ней (в том числе выполненных и находящихся в обработке).
Схему успешного сценария процесса «Возврат денег по проведенной ранее оплате за товар/ услугу (C2BR)» отображает рисунок ниже.
Примечание: На схеме темно-зелеными квадратами отображены методы (endpoint), которые должны быть реализованы на стороне соответствующего участника для реализации данного сценария. Описание методов приведено в электронном формате в https://transfers-openapi.npck.kz/.
Методы API (endpoint), которые необходимо реализовать каждому участнику на своей стороне в рамках процесса «Возврат денег по проведенной ранее оплате за товар/ услугу (C2BR)», приведены в таблице ниже.
Метод API (endpoint) | Банк отправителя денег | Банк бенефициара |
---|---|---|
Запрос данных для оплаты (POST /v1/transfers/iso20022/admi.009.001.02) | + | |
Запрос возврата денег (POST /v1/transfers/iso20022/pacs.004.001.12) |
| + |
Статус обработки запроса перевода денег (POST /v1/transfers/iso20022/pacs.002.001.13) | + | + |
Для получения информации об ошибке при обработке запроса данных для оплаты | ||
Получение информации об ошибке при обработке запроса данных для оплаты (POST /v1/transfers/iso20022/admi.010.001.02) | + |
Процесс «Возврат денег по проведенной ранее оплате за товар/ услугу (C2BR)» построен на обмене сообщениями, основанными на стандарте ISO20022, которые логически связаны между собой.
Описание успешного сценария процесса «Возврат денег по проведенной ранее оплате за товар/ услугу (C2BR)»:
Сотрудник мерчанта инициирует отображение QR-кода для возврата. На POS-терминале отображается QR-код для возврата.
Клиент (отправитель денег из оригинальной транзакции) в приложении Банка бенефициара сканирует QR-код для возврата в POS-терминале.
Банк бенефициара денег направляет Платформе запрос данных по QR-коду для возврата (сообщение admi.009), подписав его своим ЭЦП.
В сообщении передается:
в теге <Document:MsgId> – сгенерированный уникальный идентификатор нового сообщения
в теге <Document:SplmtryData:PlaceAndName> с ключом END_TO_END_ID – сгенерированный уникальный идентификатор, который будет выступать в качестве сквозного идентификатора для всей цепочки сообщений в рамках данной операции оплаты
3.1. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка бенефициара
проверяет корректность заполнения полей
Платформа направляет в Банк отправителя денег запрос данных по QR-коду для возврата (сообщение admi.009), подписав его ЭЦП Платформы.
В сообщении передается:
в теге <Document:MsgId> – сгенерированный уникальный идентификатор нового сообщения
в теге <Document:SplmtryData:PlaceAndName> с ключом END_TO_END_ID –
сквозной идентификатор из сообщения admi.009 Банка бенефициара
4.1. Банк отправителя денег, получив запрос, проводит его обработку, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
выполняет поиск данных по QR-коду, производит сверку контрольной суммы с данными из полученного сообщения admi.009
Банк отправителя денег направляет на POS-терминал информацию о платежах клиента, совершенных с данного терминала и доступных для возврата.
Сотрудник мерчанта инициирует возврат денег по проведенной ранее оплате за товар/услугу с указанием суммы возврата.
Допускается возврат части суммы или полной суммы по проведенной ранее оплате за товар/услугу
Транзакция по проведению возврата денег
Банк отправителя денег производит проверку, что сумма возврата не превышает суммы исходной транзакции с учетом возвратов по ней (выполненных и находящихся в обработке).
Банк отправителя денег проводит проверку счета клиента на:
валидность статуса для его дебетования
отсутствие наложенного ПТП/ РПРО/ ареста и т.п.
достаточности средств для списания суммы операции
Банк отправителя денег блокирует сумму операции по счету клиента и формирует запрос возврата денег (pacs.004) на основе исходного сообщения pacs.008, по которому была проведена оплата.
Банк отправителя денег направляет Платформе запрос на проведение возврата денег (сообщение pacs.004), подписав его своим ЭЦП.
В сообщении передается:
в теге <Document::GrpHdr:MsgId> – сгенерированный уникальный идентификатор нового сообщения
в теге <Document::TxInf:RtrId> – сгенерированный уникальный идентификатор транзакции на возврат денег
в теге <Document::TxInf:OrgnlInstrId > –сквозной идентификатор для всей цепочки сообщений в рамках данной операции возврата денег
в теге <Document::OrgnlEndToEndId> – сквозной идентификатор из тега <EndToEndId> исходного сообщения pacs.008, по которому была проведена оплата
в теге <Document::OrgnlTxId> –идентификатор транзакции из тега <TxId> исходного сообщения pacs.008, по которому была проведена оплата
указывается IBAN для счета Отправителя денег (бенефициара из оригинальной транзакции)
указывается IBAN для счета Бенефициара (отправителя денег из оригинальной транзакции)
10.1. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка отправителя денег
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа обрабатывает запрос на проведение возврата денег (сообщение pacs.004), в том числе:
производит проверку, что сумма возврата не превышает суммы исходной транзакции с учетом возвратов по ней (выполненных и находящихся в обработке);
выполняет проверку позиций участников и лимитов;
выполняет блокирование средств для проведения транзакции
Платформа направляет в Банк бенефициара запрос на проведение возврата денег (сообщение pacs.004), подписав его ЭЦП Платформы.
В сообщении передается:
в теге <Document::GrpHdr:MsgId> – сгенерированный уникальный идентификатор нового сообщения
в теге <Document::RtrId> – идентификатор транзакции из тега <RtrId> сообщения pacs.004 Банка отправителя денег
в теге <Document::OrgnlInstrId> – сквозной идентификатор из тега <OrgnlInstrId> сообщения pacs.004 Банка отправителя денег
в теге <Document::OrgnlEndToEndId> – сквозной идентификатор исходной операции оплаты из тега <OrgnlEndToEndId> сообщения pacs.004 Банка отправителя денег
в теге <Document::OrgnlTxId> – идентификатор транзакции исходной операции оплаты из тега <OrgnlTxId> из сообщения pacs.004 Банка отправителя денег
указывается IBAN для счета Отправителя денег (бенефициар из оригинальной транзакции) из сообщения pacs.004 Банка отправителя денег
указывается IBAN для счета Бенефициара (отправителя денег из оригинальной транзакции) из сообщения pacs.004 Банка отправителя денег
12.1. Банк бенефициара, получив запрос, проводит его обработку, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.
Банк бенефициара проверяет счет бенефициара на возможность зачисления денег.
Банк бенефициара направляет статус обработки запроса проведения возврата денег Платформе (сообщение pacs.002), подписав его своим ЭЦП.
В сообщении передается:
<Document::OrgnlEndToEndId> – сквозной идентификатор из тега <OrgnlEndToEndId> исходного запроса (pacs.004)
<Document::OrgnlTxId> – идентификатор транзакции из тега <OrgnlTxId> исходного запроса (из pacs.004)
Статус транзакции PDNG (в обработке)
14.1. Платформа, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Банка бенефициара
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.
Платформа направляет статус обработки запроса проведения возврата денег в Банк отправителя денег (сообщение pacs.002), подписав его ЭЦП Платформы.
В сообщении передается:
в теге <Document::OrgnlEndToEndId> – сквозной идентификатор из тега <OrgnlEndToEndId> исходного запроса (pacs.004)
в теге <Document::OrgnlTxId> – идентификатор транзакции из тега <OrgnlTxId> исходного запроса (из pacs.004)
Статус транзакции PDNG (в обработке)
15.1. Банк отправителя денег, получив запрос, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк отправителя денег направляет ответ с HTTP статусом 200.
Платформа успешно завершает транзакцию (commit transaction).
Платформа направляет в качестве уведомления об успешной транзакции в Банк бенефициара сообщение pacs.002 со статусом транзакции ACSC, подписав его ЭЦП Платформы.
17.1. Банк бенефициара, получив сообщение pacs.002 со статусом транзакции, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.
Примечание:
Если Платформа направляет в Банк бенефициара сообщение pacs.002 со статусом транзакции ACSC, и им уже был получен такой же запрос (повторно отправлен pacs.002), то дополнительных действий Банк бенефициара не производит (не производит повторное зачисление денег на счет бенефициара и т.д.), а лишь отправляет ответ с HTTP статусом 200
17.2. Банк бенефициара производит зачисление денег на счет бенефициара (отправителя денег из оригинальной транзакции) и уведомляет об этом бенефициара.
Платформа направляет в качестве уведомления об успешной транзакции в Банк отправителя денег сообщение pacs.002 со статусом транзакции ACSC, подписав его ЭЦП Платформы.
18.1. Банк отправителя денег, получив сообщение pacs.002 со статусом транзакции, проводит его валидацию, в том числе:
проверяет подпись Платформы
проверяет корректность заполнения полей
Если валидация запроса проходит успешно, Банк отправителя денег направляет ответ с HTTP статусом 200.
Примечание:
Если Платформа направляет в Банк отправителя денег сообщение pacs.002 со статусом транзакции ACSC, и им уже был получен такой же запрос (повторно отправлен pacs.002), то дополнительных действий Банк отправителя денег не производит (не производит повторное списание денег со счета отправителя денег и т.д.), а лишь отправляет ответ с HTTP статусом 200
18.2. Банк отправителя денег производит списание денег со счета Отправителя денег (бенефициара из оригинальной транзакции)и уведомляет его о завершении операции.