Оплаты с банковских счетов Mbank

Обзор

Введение

«Оплаты с банковских счетов Mbank» — метод, позволяющий проводить платежи в киргизских сомах с использованием интернет-банкинга в Кыргызстане. Для этого метода в платёжной платформе Flashpay поддерживаются оплаты.

В этой статье представлена информация о работе с методом «Оплаты с банковских счетов Mbank»: обзорный раздел с общими сведениями и последующие разделы с информацией о действиях, необходимых со стороны мерчанта для решения разных задач.

Характеристика

Тип платёжного метода банковские платежи
Платёжные инструменты банковские счета
Регионы использования KG
Валюты платежей KGS
Конвертация валют
Разовые оплаты +
Повторяемые оплаты
Полные возвраты
Частичные возвраты
Выплаты
Опротестования
Особенности
Организация и стоимость подключения по согласованию с курирующим менеджером Flashpay

Схема работы

В проведении отдельного платежа с использованием метода «Оплаты с банковских счетов Mbank» задействуются веб-сервис мерчанта, один из интерфейсов и платёжная платформа Flashpay, а также технические средства сервиса Mbank.



Основные операции

Для проведения платежей и выполнения операций с использованием метода «Оплаты с банковских счетов Mbank» могут применяться различные интерфейсы платёжной платформы. Так, оплаты могут проводиться через Payment Page, Gate и Dashboard (с применением платёжных ссылок). При этом, независимо от используемых интерфейсов, для этого метода характерны следующие свойства и ограничения.

При работе с методом «Оплаты с банковских счетов Mbank», независимо от используемых интерфейсов, актуальны следующие свойства и ограничения.

Суммы, KGS Время ¹
минимум максимум базовое предельное
Оплаты 50,00 50 000,00 1 минута 60 минут
Прим.:
  1. Базовое и предельное время определяются следующим образом:
    • Базовое время — среднее расчётное время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Это время определяется для условий штатной работы всех технических средств и каналов связи, а также типичных действий со стороны пользователя (там, где они необходимы). Базовое время рекомендуется использовать для реагирования на отсутствие оповещений о результате платежа и выполнения опроса состояния платежа (подробнее).
    • Предельное время — максимально допустимое время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Если платёж не был проведён или отклонён за это время, он автоматически переводится в статус decline. Для индивидуальной настройки предельного времени следует обращаться к специалистам технической поддержки Flashpay.

Сценарии использования

Проведение оплат с использованием метода «Оплаты с банковских счетов Mbank» осуществляется с перенаправлением пользователей к сервису Mbank.

Оплаты через Payment Page

Общая информация

Для проведения оплаты через Payment Page с использованием метода «Оплаты с банковских счетов Mbank» со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL Flashpay и принять оповещение о результате.



Рис. 3. Проведение оплаты через Payment Page. Описание шагов
  1. Пользователь на стороне веб-сервиса инициирует оплату.
  2. От веб-сервиса на заданный URL Flashpay передаётся запрос на проведение оплаты через Payment Page.
  3. Запрос на проведение оплаты поступает в платёжную платформу.
  4. В платёжной платформе выполняется приём запроса, с проверкой наличия обязательных параметров и корректной подписи.
  5. Осуществляется подготовка к открытию платёжной формы согласно параметрам проекта и вызова.
  6. Пользователю отображается платёжная форма.
  7. Пользователь выбирает для оплаты метод «Оплаты с банковских счетов Mbank» и указывает номер телефона, ассоциированный с учётной записью в банке.
  8. В платёжную платформу передаётся запрос на проведение оплаты с использованием метода «Оплаты с банковских счетов Mbank».
  9. В платёжной платформе выполняются обработка полученного запроса и его отправка в сервис Mbank.
  10. В сервисе Mbank выполняется обработка запроса на оплату.
  11. От сервиса Mbank к платёжной платформе передаётся информация о необходимости подтвердить платёж с использованием кода подтверждения оплаты.
  12. От платформы к Payment Page передаётся информация о необходимости подтвердить платёж с использованием кода подтверждения оплаты.
  13. На Payment Page пользователю отображается форма для ввода кода подтверждения.
  14. Со стороны Mbank пользователю отправляется код подтверждения оплаты.
  15. Пользователь указывает код подтверждения на Payment Page и подтверждает оплату
  16. В сервисе Mbank выполняется обработка платежа.
  17. Информация о результате оплаты отображается пользователю в сервисе Mbank.
  18. От сервиса Mbank к платёжной платформе направляется информация о результате оплаты.
  19. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
  20. От платёжной платформы к Payment Page направляется информация о результате оплаты.
  21. Информация о результате оплаты отображается пользователю на Payment Page.

Информация о форматах запросов и оповещений, используемых для проведения оплат методом «Оплаты с банковских счетов Mbank» через Payment Page, приведена далее в этом разделе; общая информация о работе с Payment Page API — в отдельной статье Организация взаимодействия.

Формат запросов

При формировании запросов на открытие платёжной формы с применением метода «Оплаты с банковских счетов Mbank» необходимо учитывать следующее:

  1. Должен использоваться базовый минимум параметров, обязательный для любого платежа:
    • project_id — идентификатор проекта, полученный от Flashpay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — буквенный код валюты платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в дробных единицах валюты;
    • customer_id — идентификатор пользователя в рамках проекта.
  2. Должен использоваться базовый минимум параметров: project_id, payment_id, payment_currency, payment_amount, customer_id.
  3. Для предварительного выбора метода «Оплаты с банковских счетов Mbank» необходимо указывать код этого метода в параметре force_payment_methodmbank.
  4. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
  5. После указания всех целевых параметров необходимо составлять подпись (подробнее).

Таким образом, корректный запрос на открытие платёжной формы с применением метода «Оплаты с банковских счетов Mbank» должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), идентификатор пользователя и подпись, а также может содержать различные дополнительные параметры.

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "KGS",
   "customer_id": "customer1",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}
Рис. 4. Пример достаточного набора данных для запроса на оплату
{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "KGS",
   "customer_id": "customer1",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

Формат оповещений

Для оповещений о результатах оплат с применением метода «Оплаты с банковских счетов Mbank» используется типовой формат, описание которого представлено в статье Работа с оповещениями (подробнее).

В следующем примере оповещение свидетельствует о том, что в рамках проекта 137493 была проведена оплата в размере 50,00 KGS.

Рис. 5. Пример данных из оповещения о проведении оплаты
{
        "customer": {
            "id": "1"
        },
        "account": {
            "number": "341******554"
        },
        "project_id": 137493,
        "payment": {
            "id": "TEST_PAYMENT_212105",
            "type": "purchase",
            "status": "success",
            "date": "2025-01-27T08:15:24+0000",
            "method": "mbank",
            "sum": {
                "amount": 50000,
                "currency": "KGS"
            },
            "description": "TEST_PAYMENT_212105"
        },
        "operation": {
            "sum_initial": {
                "amount": 5000,
                "currency": "KGS"
            },
            "sum_converted": {
                "amount": 5000,
                "currency": "KGS"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 17101,
                "payment_id": "0194a6d2-ff53-762a-a493-d0f017bd4875",
                "auth_code": ""
            },
            "id": 6503010168993,
            "type": "sale",
            "status": "success",
            "date": "2025-01-27T08:15:24+0000",
            "created_date": "2025-01-27T08:13:50+0000",
            "request_id": "d5156dd4af333bfbfd24ca-00006504"
        },
        "signature": "fXUbnU5Zff/hGskEkG8k2+Gyz3SKcQ=="
    }

В следующем примере оповещение свидетельствует об отклонённой оплате.

Рис. 6. Пример данных из оповещения об отклонении оплаты
{
        "customer": {
            "id": "1"
        },
        "account": {
            "number": "123******432"
        },
        "project_id": 137493,
        "payment": {
            "id": "TEST_PAYMENT_331631",
            "type": "purchase",
            "status": "decline",
            "date": "2025-01-28T10:45:41+0000",
            "method": "mbank",
            "sum": {
                "amount": 5000,
                "currency": "KGS"
            },
            "description": "TEST_PAYMENT_331631"
        },
        "operation": {
            "sum_initial": {
                "amount": 5000,
                "currency": "KGS"
            },
            "sum_converted": {
                "amount": 5000,
                "currency": "KGS"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 17101,
                "payment_id": "0194ac84-0992-7bf3-bd8e-0b1170cc2b8b",
                "auth_code": ""
            },
            "id": 6296010169189,
            "type": "sale",
            "status": "decline",
            "date": "2025-01-28T10:45:41+0000",
            "created_date": "2025-01-28T10:45:18+0000",
            "request_id": "080bc706bb3fa2f3ec4509055e-00006297"
        },
        "signature": "WpWZ+gvMPe9ldONXZEUZpRisl3m+udOyy21XZBYftVTWg=="
    }

Дополнительные материалы

Для организации работы с оплатами через Payment Page также могут быть полезны следующие материалы:

Оплаты через Gate

Общая информация

Для проведения оплаты через Gate с использованием метода «Оплаты с банковских счетов Mbank» со стороны веб-сервиса необходимо:

  1. Отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL Flashpay.
  2. Принять промежуточное оповещение о необходимости дополнения данных и отправить запрос для продолжения платежа. Подробнее о дополнении данных — в разделе Дополнение информации о платеже.
  3. Принять итоговое оповещение от платёжной платформы.


Рис. 7. Проведение оплаты через Gate. Описание шагов
  1. Пользователь на стороне веб-сервиса инициирует оплату с использованием метода «Оплаты с банковских счетов Mbank».
  2. От веб-сервиса на заданный URL Flashpay передаётся запрос на проведение оплаты через Gate.
  3. Запрос на проведение оплаты поступает в платёжную платформу Flashpay.
  4. В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
  6. В платёжной платформе выполняются дальнейшая обработка запроса (с проверкой согласованности параметров) и его отправка в сервис Mbank.
  7. В сервисе Mbank выполняется обработка запроса на оплату.
  8. От сервиса Mbank к платёжной платформе передаётся информация о необходимости подтвердить платёж с использованием кода подтверждения оплаты.
  9. От платформы к веб-сервису передаётся информация о необходимости подтвердить платёж с использованием кода подтверждения оплаты.
  10. На стороне веб-сервиса пользователю отображается форма для ввода кода подтверждения.
  11. Со стороны Mbank пользователю отправляется код подтверждения оплаты.
  12. Пользователь указывает код подтверждения на стороне веб-сервиса и подтверждает оплату
  13. В сервисе Mbank выполняется обработка платежа.
  14. Пользователю отображается информация о результате оплаты.
  15. От сервиса Mbank к платёжной платформе направляется информация о результате оплаты.
  16. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
  17. На стороне веб-сервиса обеспечивается информирование пользователя о результате оплаты.

Информация о форматах запросов и оповещений, используемых для проведения оплат методом «Оплаты с банковских счетов Mbank» через Gate, приведена далее в этом разделе; общая информация о работе с Gate API — в отдельной статье Организация взаимодействия.

Формат запросов

При работе с запросами на оплаты с применением метода «Оплаты с банковских счетов Mbank» необходимо учитывать следующее:

  1. Для инициирования каждой оплаты должен использоваться отдельный POST-запрос к конечной точке /v2/payment/wallet/mbank/sale. Эта точка относится к группе /v2/payment/wallet/{payment_method}/sale.
  2. В каждом запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от Flashpay при интеграции;,
      • payment_id — идентификатор платежа, уникальный в рамках проекта;,
      • signature — подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
    • payment — объект, содержащий сведения о платеже:
      • amount — сумма платежа в дробных единицах валюты;,
      • currency — буквенный код валюты платежа в формате ISO-4217 alpha-3;,
    • customer — объект, содержащий сведения о пользователе:
      • id — идентификатор пользователя, уникальный в рамках проекта;,
      • ip_address — IP-адрес пользователя, актуальный для инициируемого платежа.
    • account — объект, содержащий сведения о счёте получателя:
      • number — номер телефона, ассоциированный с учётной записью в банке.
  3. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.

Таким образом, корректный запрос на оплату с применением метода «Оплаты с банковских счетов Mbank» должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), информацию о пользователе и счёте, подпись, а также может содержать различные дополнительные параметры.

{
  "general": {
    "project_id": 210,
    "payment_id": "test_payment",
    "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA=="
  },
  "payment": {
    "amount": 1000,
    "currency": "KGS"
  },
  "customer": {
    "id": "customer123",
    "ip_address": "192.0.2.0"
  },
   "account": {
     "number": "189011234567"
  },
}
Рис. 8. Пример достаточного набора данных для запроса на оплату
{
  "general": {
    "project_id": 210,
    "payment_id": "test_payment",
    "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA=="
  },
  "payment": {
    "amount": 1000,
    "currency": "KGS"
  },
  "customer": {
    "id": "customer123",
    "ip_address": "192.0.2.0"
  },
   "account": {
     "number": "189011234567"
  },
}

Форматы оповещений и запросов для дополнения информации о платеже

Когда от платёжной платформы поступает оповещение о необходимости дополнения информации о платеже, для проведения платежа необходимо отправить POST-запрос к конечной точке /v2/payment/clarification с кодом подтверждения платежа, полученным от пользователя, и получить ответ о приёме этого запроса в обработку.

В таком оповещении содержится объект clarification_fields с параметром approval_code — кодом подтверждения платежа, который пользователь указывает на стороне веб-сервиса. Время действия такого кода по умолчанию составляет 60 минут с момента его создания на стороне сервиса Mbank. Для изменения этого времени следует обращаться к курирующему менеджеру Flashpay.

Далее приведён фрагмент оповещения, содержащего названия параметров для дополнения информации о платеже.

{
 "clarification_fields": {
      "approval_code"
   }
}

Запрос для продолжения платежа с учётом дополнения данных отправляется методом POST к конечной точке /v2/payment/clarification и должен содержать следующие объекты и параметры:

  • general — объект, содержащий основные идентификационные сведения запроса:
    • project_id — идентификатор проекта, к которому относится проводимый платёж;
    • payment_id — идентификатор платежа, к которому относятся отправляемые данные;
    • signature — подпись, составленная после указания целевых параметров (подробнее — в разделе Работа с подписью к данным).
  • additional_data — объект с запрошенными данными:
    • approval_code — код подтверждения платежа, который пользователь указывает на стороне веб-сервиса.

Таким образом, корректный запрос должен содержать идентификаторы проекта и платежа, подпись и данные, которые требуются для продолжения платежа.

{
  "general": {
    "project_id": 11,
    "payment_id": "EPr-bf14",
    "signature": "v7KNMpfogAthg1ZZ5D/aZAeb0VMdeR+CqghwSm...=="
  },
  "additional_data": {
    "approval_code": "1234"
    }
}
Рис. 9. Пример достаточного набора данных для запроса
{
  "general": {
    "project_id": 11,
    "payment_id": "EPr-bf14",
    "signature": "v7KNMpfogAthg1ZZ5D/aZAeb0VMdeR+CqghwSm...=="
  },
  "additional_data": {
    "approval_code": "1234"
    }
}
Прим.: Если переданный код не является корректным, или код не был передан в течение установленного времени, то платёж отклоняется и переводится в статус decline.

Формат итоговых оповещений

Для итоговых оповещений об оплатах с применением метода «Оплаты с банковских счетов Mbank» используется типовой формат, описание которого представлено в статье Работа с оповещениями (подробнее).

В следующем примере оповещение свидетельствует о том, что в рамках проекта 137493 была проведена оплата в размере 50,00 KGS.

Рис. 10. Пример данных из оповещения о проведении оплаты
{
        "customer": {
            "id": "1"
        },
        "account": {
            "number": "341******554"
        },
        "project_id": 137493,
        "payment": {
            "id": "TEST_PAYMENT_212105",
            "type": "purchase",
            "status": "success",
            "date": "2025-01-27T08:15:24+0000",
            "method": "mbank",
            "sum": {
                "amount": 50000,
                "currency": "KGS"
            },
            "description": "TEST_PAYMENT_212105"
        },
        "operation": {
            "sum_initial": {
                "amount": 5000,
                "currency": "KGS"
            },
            "sum_converted": {
                "amount": 5000,
                "currency": "KGS"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 17101,
                "payment_id": "0194a6d2-ff53-762a-a493-d0f017bd4875",
                "auth_code": ""
            },
            "id": 6503010168993,
            "type": "sale",
            "status": "success",
            "date": "2025-01-27T08:15:24+0000",
            "created_date": "2025-01-27T08:13:50+0000",
            "request_id": "d5156dd4af333bfbfd24ca-00006504"
        },
        "signature": "fXUbnU5Zff/hGskEkG8k2+Gyz3SKcQ=="
    }

В следующем примере оповещение свидетельствует об отклонённой оплате.

Рис. 11. Пример данных из оповещения об отклонении оплаты
{
        "customer": {
            "id": "1"
        },
        "account": {
            "number": "123******432"
        },
        "project_id": 137493,
        "payment": {
            "id": "TEST_PAYMENT_331631",
            "type": "purchase",
            "status": "decline",
            "date": "2025-01-28T10:45:41+0000",
            "method": "mbank",
            "sum": {
                "amount": 5000,
                "currency": "KGS"
            },
            "description": "TEST_PAYMENT_331631"
        },
        "operation": {
            "sum_initial": {
                "amount": 5000,
                "currency": "KGS"
            },
            "sum_converted": {
                "amount": 5000,
                "currency": "KGS"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 17101,
                "payment_id": "0194ac84-0992-7bf3-bd8e-0b1170cc2b8b",
                "auth_code": ""
            },
            "id": 6296010169189,
            "type": "sale",
            "status": "decline",
            "date": "2025-01-28T10:45:41+0000",
            "created_date": "2025-01-28T10:45:18+0000",
            "request_id": "080bc706bb3fa2f3ec4509055e-00006297"
        },
        "signature": "WpWZ+gvMPe9ldONXZEUZpRisl3m+udOyy21XZBYftVTWg=="
    }

Дополнительные материалы

Для организации работы с оплатами через Gate также могут быть полезны следующие материалы:

Анализ результатов проведения платежей

Для анализа информации о платежах и операциях, как в отдельности по методу «Оплаты с банковских счетов Mbank», так и в совокупности с другими методами, можно использовать:

  • инструментарий интерфейса Dashboard, с различными реестрами и аналитическими панелями;,
  • отчёты в формате CSV, выгружаемые (как разово, так и периодически) через раздел Отчёты интерфейса Dashboard;,
  • данные в формате JSON, получаемые по программным запросам через интерфейс Data API.

С вопросами по анализу информации можно обращаться к разделам документации (Dashboard и Использование Data API) и специалистам Flashpay.