> For the complete documentation index, see [llms.txt](https://docs.npck.kz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.npck.kz/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/inicializaciya-oplaty-v-ramkakh-elektronnoi-kommercii/inicializaciya-oplaty-v-ramkakh-elektronnoi-kommercii.md).

# Инициализация оплаты в рамках электронной коммерции

Данный сценарий описывает инициализацию проведения оплаты за товар/услугу посредством платежной ссылки в рамках электронной коммерции.

{% hint style="warning" %}
АО «НПК» по запросу Банка готово предоставить презентацию клиентского пути в рабочем порядке.
{% endhint %}

## Методы API (endpoint), которые необходимо реализовать&#x20;

{% hint style="info" %}
При реализации участниками информационного взаимодействия данные API должны быть идемпотентны (получив повторный запрос с теми же параметрами, должен выдаваться в ответе результат исходного запроса).
{% endhint %}

Схему успешного сценария процесса «Инициализация оплаты в рамках электронной коммерции (C2B2E)» отображает рисунок ниже.

<figure><img src="https://3642634829-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoKJIIe9wXRYlANVFHqJE%2Fuploads%2FXkUV6PIPpqpmEMDWF5Ik%2FPrPayments%20-%20C2B2E%20(1).jpg?alt=media&amp;token=1f2863a9-1725-4ee4-a24f-ac82b7f3ad09" alt=""><figcaption><p>Схема процесса «Инициализация оплаты в рамках электронной коммерции (C2B2E)»</p></figcaption></figure>

{% file src="/files/UwESRZ1nA2JEtUqBB9AT" %}
Схематичное отображение процесса
{% endfile %}

{% hint style="info" %}
*Примечание: На схеме темно-зелеными квадратами отображены методы (endpoint), которые должны быть реализованы на стороне соответствующего участника для реализации данного сценария. Описание методов приведено  в электронном формате в* [*https://transfers-openapi.npck.kz/*](https://transfers-openapi.npck.kz/)*.*
{% endhint %}

Методы API (endpoint), которые необходимо реализовать каждому участнику на своей стороне в рамках процесса «Инициализация оплаты в рамках электронной коммерции (C2B2E)», приведены в таблице ниже.

<table><thead><tr><th width="388">Метод API (endpoint)</th><th width="170">Банк отправителя денег</th><th>Банк бенефициара</th></tr></thead><tbody><tr><td><p>Запрос данных для оплаты</p><p>(POST /v1/transfers/iso20022/admi.009.001.02)</p></td><td><br></td><td>+</td></tr><tr><td><p>Данные для оплаты</p><p>(POST /v1/transfers/iso20022/admi.010.001.02)</p></td><td>+</td><td>+</td></tr><tr><td><p>Запрос на перевод денег </p><p> (POST /v1/transfers/iso20022/pacs.008.001.11)</p></td><td></td><td>+</td></tr><tr><td><p>Статус обработки запроса перевода денег </p><p>(POST /v1/transfers/iso20022/pacs.002.001.13)</p></td><td>+</td><td>+</td></tr></tbody></table>

## Взаимосвязь идентификаторов сообщений

Процесс «Инициализация оплаты в рамках электронной коммерции (C2B2E)» построен на обмене сообщениями, основанными на стандарте ISO20022, которые логически связаны между собой.

<figure><img src="https://3642634829-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoKJIIe9wXRYlANVFHqJE%2Fuploads%2FLOIcaI4U3aspEe3Ah2DZ%2FPrPayments%20-%202024-08-22T220441.789.jpg?alt=media&amp;token=76735244-ed75-4d46-82a2-8d7ca03e401d" alt=""><figcaption><p>Логическая схема взаимосвязи идентификаторов сообщений</p></figcaption></figure>

## Описание процесса

Описание успешного сценария процесса «Инициализация оплаты в рамках электронной коммерции (C2B2E)»:

Поддерживаются два способа инициирования платежа:

1. **Выведение QR-кода на десктопе.** Данный сценарий осуществляется в рамках процесса [«Инициализация проведения платежей (по QR-коду) в рамках целевой модели (C2B2\_V2)».](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/inicializaciya-provedeniya-platezhei-po-qr-kodu-v-ramkakh-celevoi-modeli.md)
2. **Мобильная версия сайта/мобильное приложение торгово-сервисного предприятия** (далее — **Mobile App**). Данный сценарий осуществляется по типу транзакции **C2B2E**.

{% hint style="danger" %}
Для сценария **C2B2E** в сообщениях [**admi.009**](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/opisanie-struktury-zaprosov/formaty-soobshenii/soobshenie-admi.009.md) и [**admi.010**](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/opisanie-struktury-zaprosov/formaty-soobshenii/soobshenie-admi.010.md) передаются дополнительные параметры: **информация о владельце счета** (от эмитента к эквайеру) и **информация о мерчанте** (от эквайера к эмитенту).
{% endhint %}

***При заказе через Mobile App:***

1. Отправитель денег (клиент) формирует заказ в мобильном приложении продавца (Mobile App) и переходит к выбору способа оплаты.
2. Отправитель денег выбирает способ оплаты «Оплата посредством сервиса межбанковских QR-платежей МСМП».
3. На основании сформированного заказа обеспечивается получение платежной ссылки (QR URL) банка-эквайера, содержащей идентификатор QR (QR\_ID), необходимый для последующего получения платежных реквизитов. Mobile App также определяет адрес возврата (`return_url`), предназначенный для возврата клиента в мобильное приложение продавца после завершения платежной операции или ее отмены.
4. Mobile App осуществляет переход по HTTPS-ссылке на страницу выбора банков-участников с передачей платежной ссылки (QR URL) банка-эквайера и адреса возврата (`return_url`).
5. На странице выбора банков отображается перечень доступных банков-эмитентов. Для каждого банка предусматривается ссылка (deeplink) для открытия его мобильного приложения с передачей данных, необходимых для идентификации платежной операции, включая:

   * платежную ссылку, QR URL банка-эквайера ({bank\_base\_domain}/{QR\_ID});
   * адрес возврата (return\_url).&#x20;

   Шаблон  ссылки (deeplink): <mark style="color:blue;">**`https://{Домен эмитента}.kz/qr-pay?qr_url={encoded_qr_url} &return_url={encoded_return_url}`**</mark>*<mark style="color:blue;">**`,`**</mark>* где:

> <mark style="color:blue;">{Домен эмитента}.kz</mark> - домен банка-эмитента, ассоциированный с его мобильным приложением;
>
> <mark style="color:blue;">{encoded\_qr\_url}</mark> - URL-кодированная платежная ссылка банка-эквайера ({bank\_base\_domain}/{QR\_ID});
>
> <mark style="color:blue;">{encoded\_return\_url}</mark> - URL-кодированный адрес возврата в Mobile App.

6. Отправитель денег выбирает банк-эмитент (Банк отправителя денег), посредством которого намерен осуществить оплату.
7. По результатам выбора банка выполняется переход в соответствующее мобильное приложение банка-эмитента посредством deep-link с передачей платежной ссылки.
8. При открытии мобильного приложения банка-эмитента выполняется проверка авторизации клиента. При отсутствии действующей авторизованной сессии клиент проходит предусмотренную банком процедуру аутентификации.
9. Банк отправителя денег определяет банк бенефициара (банк-эквайер) на основании платежной ссылки.
10. Банк отправителя денег направляет Платформе запрос данных для оплаты (сообщение admi.009) по ссылке, подписав его своим ЭЦП

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Платформа не отвечает:**

1. Банк отправителя денег завершает процесс, не получив ответ в срок в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)).&#x20;
2. Процесс завершается неуспешно.

* **Валидация сообщения не прошла успешно:**

1. Валидация сообщения не проходит успешно, Платформа направляет Банку отправителя денег ответ с соответствующим ошибке HTTP статусом.&#x20;
2. Процесс завершается неуспешно.

</details>

10.1. Платформа, получив запрос, проводит его валидацию, в том числе:

* проверяет подпись Банка отправителя денег
* проверяет корректность заполнения полей

Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.

11. Платформа направляет в Банк бенефициара запрос данных для оплаты (сообщение admi.009), подписав его ЭЦП Платформы

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Банк бенефициара не отвечает:**

1. Если Банк бенефициара не направляет ответ,  то Платформа должна считать, что запрос не доставлен.
2. Платформа завершает процесс, не получив ответ в срок в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)).
3. Платформа направляет в Банк отправителя сообщение admi.010 с ошибкой.
4. Банк отправителя денег завершает процесс, получив сообщение с информацией об ошибке.&#x20;
5. Процесс завершается неуспешно.

* **Валидация сообщения не прошла успешно:**

1. Валидация сообщения не проходит успешно, Банк бенефициара направляет ответ Платформе с соответствующим ошибке HTTP статусом.
2. Платформа завершает процесс, получив сообщение с информацией об ошибке.
3. Платформа направляет в Банк отправителя сообщение admi.010 с ошибкой.
4. Банк отправителя денег завершает процесс, получив сообщение с информацией об ошибке.&#x20;
5. Процесс завершается неуспешно.

</details>

11.1. Банк бенефициара, получив запрос, проводит его обработку, в том числе:

* проверяет подпись Платформы
* проверяет корректность заполнения полей
* выполняет поиск данных по идентификатору QR-кода

Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.

12. Банк бенефициара направляет данные для оплаты Платформе (сообщение admi.010), подписав его своим ЭЦП

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Платформа не отвечает:**

1. Если Платформа не направляет ответ,  то Банк бенефициара должен считать, что запрос не доставлен.
2. Банк бенефициара выполняет попытку повторной отправки запроса в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)).

* **Валидация сообщения не прошла успешно:**

1. Валидация сообщения не проходит успешно, Платформа направляет Банку бенефициара ответ с соответствующим ошибке HTTP статусом.&#x20;
2. Банк бенефициара завершается процесс с ошибкой.
3. Банк отправителя денег завершает процесс по тайм-ауту (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)).
4. Процесс завершается неуспешно.

</details>

12.1. Платформа, получив ответ, проводит его валидацию, в том числе:

* проверяет подпись Банка бенефициара
* проверяет корректность заполнения полей

Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.

13. Платформа направляет данные для оплаты в Банк отправителя денег (сообщение admi.010), подписав его ЭЦП Платформы

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Банк отправителя денег не отвечает:**

1. Если Банк отправителя денег не направляет ответ,  то Платформа должна считать, что запрос не доставлен.
2. Платформа выполняет попытку повторной отправки запроса в соответствии с установленным регламентом  (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)).

</details>

13.1. Банк отправителя денег, получив ответ, проводит его валидацию, в том числе:

* проверяет подпись Платформы
* проверяет корректность заполнения полей

Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.

14. Отправитель денег на странице оплаты приложения Банка отправителя проверяет корректность данных по заказу (наименование поставщика товара, работы или услуги, итоговую сумму к оплате, полученные из сообщения admi.010) и подтверждает проведение оплаты нажатием кнопки «Оплатить».

<details>

<summary><strong>Возможные неуспешные сценарии</strong></summary>

1. *Клиент отменил операцию или операция отменена по иной причине на стороне Банка отправителя денег*:

* Банк отправителя денег направляет Платформе уведомление об отмене операции (сообщение admi.010), подписав его своим ЭЦП.

1.1. Платформа, получив запрос, проводит его валидацию, в том числе

* проверяет подпись Банка отправителя денег
* проверяет корректность заполнения полей

Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.

***

<mark style="color:$info;">**• Возможные неуспешные сценарии**</mark>

<mark style="color:$info;">**• Платформа не отвечает**</mark>

1. <mark style="color:$info;">Если Платформа не направляет ответ, то Банк отправителя денег должен считать, что запрос не доставлен.</mark>
2. <mark style="color:$info;">Банк отправителя денег выполняет попытку повторной отправки запроса в соответствии с установленным регламентом (см.</mark>

   &#x20;[<mark style="color:$info;">Тайм-ау ты и логика повторных запросов</mark>](https://docs.npck.kz/mezhbankovskaya-sistema-perevodov-i-platezhei/taim-auty-i-logika-povtornykh-zaprosov)<mark style="color:$info;">).</mark>

<mark style="color:$info;">**•    Валидация сообщения не прошла успешно:**</mark>

1. <mark style="color:$info;">Валидация сообщения не проходит успешно, Платформа направляет Банку отправителя денег ответ с соответствующим ошибке HTTP статусом.</mark>
2. <mark style="color:$info;">Банк отправителя денег завершается процесс с ошибкой.</mark>
3. <mark style="color:$info;">Банк бенефициара завершает процесс по тайм-ауту (см.</mark> [ <mark style="color:$info;">Тайм-ау ты и логика повторных запросов</mark>](https://docs.npck.kz/mezhbankovskaya-sistema-perevodov-i-platezhei/taim-auty-i-logika-povtornykh-zaprosov)<mark style="color:$info;">).</mark>
4. <mark style="color:$info;">Процесс завершается неуспешно</mark>

***

1.2. Платформа направляет в Банк бенефициара уведомление об отмене операции (сообщение admi.010), подписав его ЭЦП Платформы.&#x20;

***

<mark style="color:$info;">**• Возможные неуспешные сценарии**</mark>

<mark style="color:$info;">**• Банк бенефициара не отвечает**</mark>

1. <mark style="color:$info;">Если Банк бенефициара не направляет ответ, то Платформа должна считать, что запрос не доставлен.</mark>
2. <mark style="color:$info;">Платформа завершает процесс, не получив ответ в срок в соответствии с установленным регламентом (см.</mark> [<mark style="color:$info;">Тайм-ауты и логика повторных запросов</mark>](https://docs.npck.kz/mezhbankovskaya-sistema-perevodov-i-platezhei/taim-auty-i-logika-povtornykh-zaprosov)<mark style="color:$info;">).</mark>

<mark style="color:$info;">**•    Валидация сообщения не прошла успешно:**</mark>

1. <mark style="color:$info;">Валидация сообщения не проходит успешно, Банк бенефициара направляет ответ Платформе с соответствующим ошибке HTTP статусом.</mark>
2. <mark style="color:$info;">Платформа завершает процесс, получив сообщение с информацией об ошибке.</mark>
3. <mark style="color:$info;">Процесс завершается неуспешно.</mark>

***

1.3. Банк бенефициара, получив запрос, проводит его обработку, в том числе:

* проверяет подпись Платформы
* проверяет корректность заполнения полей

Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.

1.4. В МП ЮЛ/ЛК ЮЛ выводится информация о том, что операция отменена клиентом, и процесс завершается.

</details>

15. Банк отправителя денег проводит проверку счета клиента на:&#x20;

* валидность статуса для его дебетования&#x20;
* отсутствие наложенного ПТП/ РПРО/ ареста и т.п.&#x20;
* достаточности средств для списания суммы операции

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Проверка счета не прошла успешно:**

1. Банк отправителя денег уведомляет клиента о невозможности проведения операции.&#x20;
2. Процесс завершается неуспешно

</details>

16. Банк отправителя денег проверяет возможность транзакции по счету клиента и формирует платежное поручение (pacs.008), предварительно блокирует сумму операции по счету клиента.
17. Банк отправителя денег направляет Платформе запрос на проведение оплаты (сообщение pacs.008), подписав его своим ЭЦП.

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Платформа не отвечает:**

1. Если Платформа не направляет ответ, то Банк отправителя денег должен считать, что запрос не доставлен.
2. Банк отправителя денег выполняет попытку повторной отправки корректного запроса в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)).&#x20;

* **Валидация сообщения не прошла успешно:**

1. Валидация сообщения не проходит успешно, Платформа направляет Банку отправителя денег ответ с соответствующим ошибке HTTP статусом.&#x20;
2. Процесс завершается неуспешно.

</details>

17.1. Платформа, получив запрос, проводит его валидацию, в том числе:

* проверяет подпись Банка отправителя денег
* проверяет корректность заполнения полей

Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.

18. Платформа обрабатывает  запрос на проведение оплаты (сообщение pacs.008), в том числе:&#x20;

* выполняет проверку позиций участников и лимитов;
* выполняет блокирование средств для проведения транзакции.
* осуществляет проверку чистой позиции - при достижении лимита чистой позиции направляет в Банк отправителя и Банк бенефициара сообщение pacs.002 со статусом RJCT и кодом ошибки PACS\_002\_NET\_POSITION\_LIMIT\_REACHED.

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Обработка запроса на перевод денег pacs.008 Платформой не проходит успешно:**

1. Платформа направляет статус обработки запроса на проведение оплаты в Банк отправителя денег (сообщение pacs.002), подписав его ЭЦП Платформы, со статусом транзакции RJCT (отклонена).&#x20;
2. Процесс завершается неуспешно.

</details>

19. Платформа направляет в Банк бенефициара запрос на проведение оплаты (сообщение pacs.008), подписав его ЭЦП Платформы.

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Банк бенефициара не отвечает:**

1. Если Банк бенефициара не направляет ответ,  то Платформа должна считать, что запрос не доставлен.
2. Платформа выполняет попытку повторной отправки запроса в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)).
3. Платформа завершает процесс, не получив ответ в срок в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)).
4. Платформа направляет в Банк отправителя сообщение pacs.002 с ошибкой.
5. Банк отправителя денег завершает процесс, получив сообщение с информацией об ошибке.&#x20;
6. Процесс завершается неуспешно.

* **Валидация сообщения не прошла успешно:**

1. Валидация сообщения не проходит успешно, Банк бенефициара направляет ответ Платформе с соответствующим ошибке HTTP статусом.
2. Платформа устанавливает статус транзакции RJCT (отклонена).&#x20;
3. Платформа направляет в Банк отправителя сообщение pacs.002 с ошибкой.
4. Банк отправителя денег завершает процесс, получив сообщение с информацией об ошибке, устанавливает статус транзакции RJCT (отклонена).&#x20;
5. Процесс завершается неуспешно.

</details>

19.1. Банк бенефициара, получив запрос, проводит его обработку, в том числе:

* проверяет подпись Платформы;
* проверяет корректность заполнения полей.

Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.

20. Банк бенефициара проверяет счет бенефициара на возможность зачисления денег.
21. Банк бенефициара направляет статус обработки запроса проведения оплаты Платформе (сообщение pacs.002), подписав его своим ЭЦП.

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Платформа не отвечает:**

1. Если Платформа не направляет ответ,  то Банк бенефициара должен считать, что запрос не доставлен.
2. Банк бенефициара выполняет попытку повторной отправки запроса в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)).

* **Валидация сообщения не прошла успешно:**

1. Валидация сообщения не проходит успешно, Платформа направляет ответ Банку бенефициара с соответствующим ошибке HTTP статусом. Банк бенефициара устанавливает статус транзакции RJCT (отклонена).
2. Платформа устанавливает статус транзакции RJCT (отклонена).&#x20;
3. Банк отправителя денег, не получив ответ в срок в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)), устанавливает статус транзакции RJCT (отклонена).&#x20;
4. Процесс завершается неуспешно.

* **Транзакция отклонена (статус транзакции RJCT):**

1. Банк бенефициара направляет Платформе статус обработки запроса проведения оплаты (сообщение pacs.002) - RJCT (отклонена).
2. Платформа направляет статус обработки запроса проведения оплаты в Банк отправителя денег (сообщение pacs.002), подписав его ЭЦП Платформы, со статусом транзакции RJCT (отклонена).&#x20;
3. Процесс завершается неуспешно.

</details>

21.1. Платформа, получив запрос, проводит его валидацию, в том числе:

* проверяет подпись Банка бенефициара;&#x20;
* проверяет корректность заполнения полей.

Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.

22. Платформа направляет статус обработки запроса проведения оплаты в Банк отправителя денег (сообщение pacs.002), подписав его ЭЦП Платформы.

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Банк отправителя денег не отвечает:**

1. Если Банк отправителя денег не направляет ответ,  то Платформа должна считать, что запрос не доставлен.
2. Платформа выполняет попытку повторной отправки запроса в соответствии с установленным регламентом  (см. [Тайм-ауты и логика повторных запросов](/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov.md)).

</details>

22.1. Банк отправителя денег, получив запрос, проводит его валидацию, в том числе:

* проверяет подпись Платформы;
* проверяет корректность заполнения полей.

Если валидация запроса проходит успешно, Банк отправителя денег направляет ответ с HTTP статусом 200.

23. Банк отправителя денег направляет в качестве уведомления об успешной транзакции в Платформу сообщение pacs.002 со статусом транзакции ACSC, подписав его своим ЭЦП.

{% hint style="success" %}
Ответ HTTP 200 подтверждает приём сообщения Платформой; итоговый результат транзакции приходит отдельным сообщением pacs.002 от Платформы.
{% endhint %}

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Платформа не отвечает или возвращает HTTP 500 (5xx):**

1. Банк отправителя денег повторяет отправку того же сообщения не чаще одного раза в 3 секунды до получения ответа HTTP 200. Повторная отправка безопасна: Платформа обрабатывает повторный pacs.002 идемпотентно.

* **Платформа возвращает HTTP 429:**

1. Повтор отправлен раньше минимального интервала. Необходимо выдержать 3 секунды с момента предыдущей попытки. Для pacs.028 интервал иной: первые две попытки — через 3 секунды, третья и последующие — не чаще одного раза в 10 секунд.

* **Платформа возвращает HTTP 408, код TRANSACTION\_TIMEOUT\_EXCEEDED:**

1. Истёк таймаут стадии (30 секунд, см. пункт 17.1), транзакция переведена в статус «истекла». Повторные отправки бесполезны и должны быть прекращены. Банку необходимо запросить статус обработки транзакции (pacs.028) и обработать транзакцию как несостоявшуюся.

* **Платформа возвращает HTTP 400:**

1. Сообщение не принято Платформой. Повторные отправки прекращаются; банку необходимо запросить статус обработки транзакции (pacs.028) и действовать в соответствии с полученным статусом. Если код ошибки указывает на некорректное содержимое сообщения (FIELD\_INVALID, HEADER\_INVALID, HEADER\_MISSING), банку дополнительно необходимо устранить причину на своей стороне — иначе ошибка повторится на последующих операциях.

</details>

23.1. Платформа, получив запрос, проводит его валидацию, в том числе:

* проверяет подпись Банка отправителя денег;
* проверяет корректность заполнения полей.

&#x20;Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Не получен pacs.002 ACSC от Банка отправителя денег:**

1. Если Платформа в течение 30 секунд не получает сообщение pacs.002 (ACSC) от Банка отправителя денег, то транзакция завершается со статусом RJCT и при получении pacs.002 ACSC от Банка отправителя денег будет возвращен HTTP 408.

</details>

24. Платформа направляет в качестве уведомления сообщение pacs.002 со статусом ACSC в Банк бенефициара, подписав его ЭЦП Платформы.

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Банк бенефициара не отвечает:**

1. Платформа выполняет попытку повторной отправки запроса в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](https://docs.npck.kz/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov)).
2. Если Банк бенефициара не направляет ответ, то Платформа считает запрос не доставленным, при этом транзакция не отклоняется и остается в состоянии ожидания сообщения pacs.002 с финальным статусом от Банка бенефициара.
3. Банк бенефициара не получив ответ от платформы в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](https://docs.npck.kz/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov)), завершает транзакцию с ошибкой и направляет в Платформу pacs.002 со статусом RJCT с интервалом 3 секунды до тех пор, пока не будет получен ответ HTTP 200.

</details>

24.1. Банк бенефициара, получив сообщение pacs.002 со статусом транзакции, проводит его валидацию, в том числе:

* проверяет подпись Платформы;
* проверяет корректность заполнения полей.

Если валидация запроса проходит успешно, Банк бенефициара направляет ответ с HTTP статусом 200.

25. Банк бенефициара производит зачисление денег на счет бенефициара и направляет информацию об этом на мобильное приложение ЮЛ/ЛК ЮЛ.
26. Банк бенефициара направляет в качестве уведомления об успешной транзакции в Платформу сообщение pacs.002 со статусом транзакции ACSC, подписав его своим ЭЦП.

{% hint style="success" %}
Сообщение направляется после получения от Платформы уведомления из пункта 22.&#x20;

Ответ HTTP 200 подтверждает приём сообщения Платформой.
{% endhint %}

<details>

<summary>Возможные неуспешные сценарии</summary>

* **Платформа не отвечает или возвращает HTTP 500 (5xx):**

1. Банк бенефициара повторяет отправку того же сообщения не чаще одного раза в 3 секунды до получения ответа HTTP 200. Повторная отправка безопасна: Платформа обрабатывает повторный pacs.002 идемпотентно. Отдельный таймаут на этой стадии не применяется.

* **Платформа возвращает HTTP 429:**

1. Повтор отправлен раньше минимального интервала. Необходимо выдержать 3 секунды с момента предыдущей попытки.

* **Платформа возвращает HTTP 400, коды FIELD\_INVALID / HEADER\_INVALID / HEADER\_MISSING:**

1. Сообщение не прошло проверку содержимого. Транзакция при этом не отклоняется и остаётся в обработке. Банку бенефициара необходимо проанализировать код и описание ошибки, скорректировать сообщение и направить исправленный pacs.002 повторно.

</details>

26.1. Платформа, получив запрос, проводит его валидацию, в том числе:

* проверяет подпись Банка бенефициара;
* проверяет корректность заполнения полей.

Если валидация запроса проходит успешно, Платформа направляет ответ с HTTP статусом 200.

27. Платформа успешно завершает транзакцию (commit transaction).
28. Платформа направляет уведомление pacs.002 со статусом ACSC до Банка отправителя денег и Банка Бенефициара с информацией о дате обработки транзакции (Processing Date) и информацией о размерах комиссий, подписав его ЭЦП Платформы.
29. Банк отправителя завершает транзакцию и уведомляет клиента о завершении операции.

<details>

<summary>Возможные неуспешные сценарии</summary>

1. Банк отправителя денег  и (или) Банк Бенефициара не получил финальное уведомление от платформы pacs.002 со статусом ACSC с информацией о дате обработки транзакции (Processing Date) и информацией о размерах комиссий.
2. Банк отправителя денег отправляет запрос на получение статуса обработки транзакции (pacs.028) в соответствии с установленным регламентом (см. [Тайм-ауты и логика повторных запросов](https://docs.npck.kz/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/mezhbankovskaya-sistema-mobilnykh-platezhei-msmp/taim-auty-i-logika-povtornykh-zaprosov)).

</details>

30. После выполнения платежной операции отправителю денег предоставляется возможность возврата в Mobile App по адресу возврата. Mobile App отображает итоговый статус заказа.

{% hint style="info" %}
*Рекомендуется: Банку отправителя денег начинать направлять запрос статуса обработки транзакции (pacs.028) через 5 секунд после успешной отправки pacs.002.*
{% endhint %}
