Vietnamese ATM cards (NAPAS)

Обзор

Vietnamese ATM cards NAPAS — платёжный метод, который позволяет осуществлять платежи с помощью карт, брендированных местным поставщиком платёжных услуг NAPAS, который подключен к местным банкам. Обычные внутренние карты во Вьетнаме ограничиваются функциями выплаты заработной платы и снятия наличных, но с возможностью проведения внутренних покупок через платежную сеть NAPAS. Оплаты осуществляются через Payment Page и Gate, выплаты — через Gate.

Для проведения оплат используется два канала. Номер подключённого канала необходимо уточнять у курирующего менеджера ecommpay. Проведение выплат проходит по общему каналу.

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

Тип платёжного метода банковские платежи
Платёжные инструменты платёжные карты
Регионы использования VN
Валюты платежей VND
Конвертация валют
Оплаты +
Выплаты +
Оплаты по сохранённым данным
Полные возвраты по запросу в службу технической поддержки ecommpay
Частичные возвраты
Опротестования
Особенности
  • Можно задавать дополнительные параметры при вызове Payment Page
  • Для валюты VND суммы указываются без дробной части
Организация и стоимость подключения По согласованию с курирующим менеджером ecommpay

Схема работы

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



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

Интерфейсы Суммы, VND
Payment Page CMS Plug-ins Gate Dashboard минимум максимум
Оплаты + + 2 000 *

Канал 1: ограничение карты пользователя

Канал 2: 20 000 000 000

Выплаты + 100 000 100 000 000

* Для большинства банков минимальная суммам оплаты составляет 2 000 VND, но есть исключение для банка Vietcombank — 20 000 VND.

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

Проведение оплат с использованием метода Vietnamese ATM выполняется с перенаправлением пользователя на сайт выбранного банка для использования виртуального банкомата (ATM), проведение выплат — с уведомлением пользователей через веб-сервис мерчанта.

Рис.: Оплата через Payment Page



Рис.: Оплата через Gate



Рис.: Выплата через Gate



Поддержка со стороны банков

Проведение платежей с применением метода Vietnamese ATM осуществляется через банки, поддерживающие работу с этим методом. Банкам соответствуют свои идентификаторы, которые используются при инициировании выплат через Gate, а также при вызове Payment Page для отображения страницы с выбором метода оплаты.

Далее в таблице в ознакомительных целях представлена информация об этих банках, которую следует уточнять у курирующего менеджера ecommpay или по запросу /v2/info/banks/{payment_method}/{operationType}/list, отправляемым методом POST через Gate API: /v2/info/banks/atm/vietnam/sale/list для уточнения списка банков, поддерживающих проведение оплат, или /v2/info/banks/atm/vietnam/payout/list — проведение выплат.

Запрос должен содержать идентификаторы проекта и платежа, подпись, валюту и сумму платежа, как указано в примере. Важно передавать реальные данные о платеже, но в случае если платёж еще не сформирован, для идентификатора платежа в запросе можно указать случайное значение.

Рис.: Пример запроса списка банков

{
  "general": {
    "project_id": 200,
    "payment_id": "ORDER_155860015",
    "signature": "K6jllym+PtObocZtr345st...=="
  },
  "payment": {
    "amount": 1000,
    "currency": "VND"
  }
}

В зависимости от канала, используемого для проведения оплат, различается список доступных банков.

Табл. 1. Канал 1. Список банков
Банк ID Оплаты Выплаты
Agribank 139 + +
An Binh Commercial Joint Stock Bank (ABBANK) 465 + +
ANZ bank 464 +
Asia Commercial Bank 150 + +
Bac A Commercial Joint Stock Bank (Bac A Bank) 439 + +
Bank for Investment and Development of Vietnam 136 + +
Bao Viet Bank 453 +
Citibank 454 +
Dai A Joint-stock Commercial Bank 466 + +
DongA Joint Stock Commercial Bank 130 + +
Eximbank Vietnam 135 + +
Global Petro Commercial Joint Stock Bank (GPBank) 444 + +
Global Trust Bank 459 +
HoChiMinh City Development Joint Stock Commercial Bank (HDBank) 448 + +
HSBC Vietnam 462 +
Joint Stock Commercial Bank for Foreign Trade of Vietnam (Vietcombank) 133 + +
KB Kookmin Bank 458 +
Kien Long Commercial Joint - Stock Bank 455 + +
LienVietPostBank 706 +
Military JSC Bank (MB) 447 + +
Nam A commercial joint stock bank (NamABank) 452 + +
Nam Viet Bank (NaviBank) 441 +
National Citizen Bank 442 +
Ocean Commercial One Member Limited Liability Bank (OceanBank) 450 + +
Orient Commercial Bank (PhuongDong Bank) 467 + +
Petrolimex Group Commercial Joint Stock Bank (PGBank) 443 + +
Public Bank Vietnam 3981 +
Sai Gon Joint Stock Commercial Bank (SCB) 460 + +
Sai Gon Thuong Tin Commercial Joint Stock Bank 131 + +
SAIGON Bank 137 + +
Saigon Hanoi Commercial Joint Stock Bank (SHB) 451 + +
SHINHAN bank 461 + +
SouthEast Asia Joint Stock Commercial Bank (SeaBank) 468 + +
Standard Chartered Bank 463 +
Tien Phong Commercial Joint Stock Bank (TienPhongBank) 445 + +
VietinBank 134 + +
Vietnam Asia Commercial Joint Stock Bank (VietA Bank) 446 + +
Vietnam International Bank 138 + +
Vietnam Maritime Commercial Joint Stock Bank (MaritimeBank) 440 + +
Vietnam Prosperity Bank (VPBank) 449 + +
Vietnam Public Joint-stock Commercial Bank 457 + +
Vietnam Technological and Commercial Joint- stock Bank 132 + +
Vietnam-Russia Joint Venture Bank 4691 +
Табл. 2. Канал 2. Список банков
Банк ID Оплаты Выплаты
Agribank 139 + +
An Binh Commercial Joint Stock Bank (ABBANK) 465 + +
ANZ bank 464 +
Asia Commercial Bank 150 + +
Bac A Commercial Joint Stock Bank (Bac A Bank) 439 + +
Bank for Investment and Development of Vietnam 136 + +
Bao Viet Bank 453 +
Citibank 454 +
Dai A Joint-stock Commercial Bank 466 +
DongA Joint Stock Commercial Bank 130 +
Eximbank Vietnam 135 + +
Global Petro Commercial Joint Stock Bank (GPBank) 444 + +
Global Trust Bank 459 +
HoChiMinh City Development Joint Stock Commercial Bank (HDBank) 448 + +
HSBC Vietnam 462 +
Joint Stock Commercial Bank for Foreign Trade of Vietnam 456 +
Joint Stock Commercial Bank for Foreign Trade of Vietnam (Vietcombank) 133 + +
KB Kookmin Bank 458 +
Kien Long Commercial Joint - Stock Bank 455 +
Military JSC Bank (MB) 447 + +
Nam A commercial joint stock bank (NamABank) 452 + +
Nam Viet Bank (NaviBank) 441 +
National Citizen Bank 442 +
Ocean Commercial One Member Limited Liability Bank (OceanBank) 450 + +
Orient Commercial Bank (PhuongDong Bank) 467 + +
Petrolimex Group Commercial Joint Stock Bank (PGBank) 443 + +
SAIGON Bank 137 + +
Saigon Hanoi Commercial Joint Stock Bank (SHB) 451 + +
Sai Gon Joint Stock Commercial Bank (SCB) 460 + +
Sai Gon Thuong Tin Commercial Joint Stock Bank 131 + +
SHINHAN bank 461 +
SouthEast Asia Joint Stock Commercial Bank (SeaBank) 468 + +
Standard Chartered Bank 463 +
Tien Phong Commercial Joint Stock Bank (TienPhongBank) 445 + +
VietinBank 134 +
Vietnam Asia Commercial Joint Stock Bank (VietA Bank) 446 + +
Vietnam International Bank 138 + +
Vietnam Maritime Commercial Joint Stock Bank (MaritimeBank) 440 + +
Vietnam Prosperity Bank (VPBank) 449 + +
Vietnam Public Joint-stock Commercial Bank 457 +
Vietnam Technological and Commercial Joint-stock Bank 132 + +

Регионы проведения выплат

При проведении выплаты с использованием метода Vietnamese ATM обязательно учитывается регион банковского счёта пользователя. Для этого используется идентификатор региона, который передаётся в параметре region_id в запросе на выплату. Далее в таблице приведена информация о регионах и их идентификаторах.

Табл. 3. Список регионов
Наименование региона Идентификатор региона
An Giang 137
Bà Rịa - Vũng Tàu 138
Bình Thuận 141
Bình Định 142
Bến Tre 147
Cao Bằng 149
Gia Lai 152
Hà Giang 156
Hà Tĩnh 158
Hòa Bình 159
Hậu Giang 162
Khánh Hòa 163
Kiến Giang 164
Kon Tum 165
Lai Châu 166
Long An 167
Lào Cai 168
Lâm Đồng 169
Lạng Sơn 170
Nghệ An 172
Ninh Bình 173
Ninh Thuận 174
Phú Yên 176
Quảng Bình 177
Quảng Nam 178
Quảng Ngãi 179
Quảng Ninh 180
Quảng Trị 181
Sóc Trăng 182
Sơn La 183
Thanh Hóa 184
Thái Bình 185
Thừa Thiên-Huế 187
Tiền Giang 188
Trà Vinh 189
Tuyên Quang 190
Tây Ninh 191
Vĩnh Long 192
Yên Bái 194
Điện Biên 195
Đắk Lắk 196
Đắk Nông 197
Đồng Nai 198
Đồng Tháp 199
Bắc Kạn 277
Bắc Giang 278
Bạc Liêu 279
Bắc Ninh 280
Bình Dương 281
Bình Phước 282
Cà Mau 283
Can Tho 284
Da Nang 285
Hà Nam 286
Ha Noi 287
Hải Dương 288
Hai Phong 289
Ho Chi Minh 290
Hưng Yên 291
Nam Định 292
Phú Thọ 293
Thái Nguyên 294
Toàn quốc 295
Vĩnh Phúc 296

Детальные сведения о том, что необходимо делать со стороны мерчанта для проведения платежей, а также о том, что можно использовать для анализа информации о проведённых платежах, представлены далее.

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

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

Для оплаты через Payment Page с использованием метода Vietnamese ATM со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате оплаты. При этом метод Vietnamese ATM можно сделать предварительно выбранным (подробнее — в разделе Предварительный выбор платёжных методов). Полная схема проведения оплаты представлена далее.



Рис.: Проведение оплаты через Payment Page

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

Информация о формате запросов и параметрах вызова Payment Page при работе с Vietnamese ATM, а также о формате оповещений о результатах оплат приведена далее; общая информация о работе с API — в отдельном разделе.

Канал 1. Формат запросов

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

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ecommpay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа, без дробной части;
    • customer_id — идентификатор пользователя уникальный в рамках проекта.
  2. Валютой платежа может быть только VND.
  3. Дополнительно должны использоваться параметры customer_email, customer_phone — адрес электронной почты и телефон пользователя в рамках проекта.
  4. Payment Page можно открывать на вьетнамском языке. Для этого необходимо передавать код языка vi в параметре language_code (подробнее — в разделе Управление языком платёжной формы).
  5. Можно настраивать отображение страницы Payment Page с выбором метода оплаты.

    По умолчанию банки, поддерживающие проведение оплат методом Vietnamese ATM, объединены в группу и отображаются кнопкой Vietnam ATM, поэтому выбор банка осуществляется в два этапа. Сначала выбирается метод среди прочих, а затем на следующей странице с перечнем банков выбирается конкретный банк. Существует несколько вариантов отображения страницы Payment Page с выбором метода оплаты:

    • Отображение кнопок конкретных банков (одного или нескольких). В списке методов может присутствовать метод Vietnamese ATM. Для этого необходимо передавать идентификаторы банков в параметре banks_id строки payment_methods_options. Для отображения нескольких банков необходимо перечислять идентификаторы этих банков через запятую c пробелом.
      "payment_methods_options": {\"vietnam_atm\": {\"split_banks\": true, \"banks_id\": [135, 136]}}
    • Отображение только банков группы без других методов. Для этого используется предварительный выбор метода Vietnamese ATM. Необходимо передавать код платежного метода vietnam-atm в параметре force_payment_method. Пользователю открывается страница с выбором банков, минуя страницу с выбором метода оплаты.
    • Отображение сайта конкретного банка. Для этого используется предварительный выбор метода Vietnamese ATM. Необходимо передавать код платежного метода vietnam-atm в параметре force_payment_method и идентификатор банка banks_id в параметре payment_methods_options. Перенаправление пользователя на сайта банка осуществляется без подтверждения готовности оплатить, минуя страницы с выбором метода оплаты и с выбором банков.

      В некоторых случаях провайдеры могут запрашивать дополнительные параметры, которые необходимо передать в запросе на открытие Payment Page, после чего произойдет прямое перенаправление пользователя на страницу банка. Подробности уточняйте у вашего курирующего менеджера ecommpay.

      Рис.: Пример запроса на оплату с перенаправлением на сайт банка

      EPayWidget.run(
          { payment_id: 'X03936', 
            payment_amount: 2000, 
            payment_currency: 'VND', 
            project_id: 0,
            customer_id: 'customer1',
            customer_email: 'johna@gmail.com',
            customer_phone: 84438336996
            force_payment_method: 'vietnam-atm',
            payment_methods_options: '{\"vietnam_atm\": {\"banks_id\": [135]}}',
            signature: "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y1Y4HASCQ9vySO\/RLCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
          }
      )
  6. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех указанных параметрах приведена в разделе Параметры вызова платёжной формы.
  7. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

Таким образом, корректный запрос на открытие платёжной формы с применением метода Vietnamese ATM должен содержать идентификаторы проекта и платежа, адрес электронной почты и телефон пользователя, а также валюту и сумму платежа:

EPayWidget.run(
    { payment_id: 'X03936', 
      payment_amount: 2000, 
      payment_currency: 'VND', 
      project_id: 0, 
      customer_id: 'customer1',
      customer_email: 'johna@gmail.com',
      customer_phone: 84438336996
      signature: "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y1Y4HASCQ9vySO\/RLCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
    }
)

Канал 2. Формат запросов

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

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ecommpay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа, без дробной части;
    • customer_id — идентификатор пользователя уникальный в рамках проекта.
  2. Валютой платежа может быть только VND.
  3. В зависимости от выбранного банка у пользователя на Payment Page запрашиваются некоторые данные карты (подробнее — Дополнение информации о платежах).
  4. Payment Page можно открывать на вьетнамском языке. Для этого необходимо передавать код языка vi в параметре language_code (подробнее — в разделе Управление языком платёжной формы).
  5. Можно настраивать отображение страницы Payment Page с выбором метода оплаты.

    По умолчанию банки, поддерживающие проведение оплат методом Vietnamese ATM, объединены в группу и отображаются кнопкой Vietnam ATM, поэтому выбор банка осуществляется в два этапа. Сначала выбирается метод среди прочих, а затем на следующей странице с перечнем банков выбирается конкретный банк. Существует несколько вариантов отображения страницы Payment Page с выбором метода оплаты:

    • Отображение кнопок конкретных банков (одного или нескольких). В списке методов может присутствовать метод Vietnamese ATM. Для этого необходимо передавать идентификаторы банков в параметре banks_id строки payment_methods_options. Для отображения нескольких банков необходимо перечислять идентификаторы этих банков через запятую c пробелом.
      payment_methods_options: {"vietnam_atm": {"split_banks": true, "banks_id": [135, 136]}}
    • Отображение только банков группы без других методов. Для этого используется предварительный выбор метода Vietnamese ATM. Необходимо передавать код платежного метода vietnam-atm в параметре force_payment_method. Пользователю открывается страница с выбором банков, минуя страницу с выбором метода оплаты.
    • Отображение сайта конкретного банка. Для этого используется предварительный выбор метода Vietnamese ATM. Необходимо передавать код платежного метода vietnam-atm в параметре force_payment_method и идентификатор банка banks_id в параметре payment_methods_options. Перенаправление пользователя на сайта банка осуществляется без подтверждения готовности оплатить, минуя страницы с выбором метода оплаты и с выбором банков.

      Рис.: Пример запроса на оплату с перенаправлением на сайт банка

      EPayWidget.run(
          { payment_id: 'X03936', 
            payment_amount: 2000, 
            payment_currency: 'VND', 
            project_id: 0,
            customer_id: 'customer1',
            customer_email: 'johna@gmail.com',
            force_payment_method: 'vietnam-atm',
            payment_methods_options: '{\"vietnam_atm\": {\"banks_id\": [135]}}',
            signature: "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y1Y4HASCQ9vySO\/RLCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
          }
      )
  6. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех указанных параметрах приведена в разделе Параметры вызова платёжной формы.
  7. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

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

EPayWidget.run(
    { payment_id: 'X03936', 
      payment_amount: 2000, 
      payment_currency: 'VND', 
      project_id: 0,
      customer_id: 'customer1',
      signature: "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y1Y4HASCQ9vySO\/RLCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
    }
)

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

Для оповещений о результатах оплат с применением метода Vietnamese ATM используется стандартный формат, описание которого представлено в разделе Оповещения.

В следующем примере оповещение свидетельствует о том, что в рамках проекта 603 от пользователя была успешно проведена оплата в размере 2 000 VND.

Рис.: Пример оповещения о проведении оплаты

{
        "project_id": 603,
        "payment": {
            "id": "EP3f43-5d18",
            "type": "purchase",
            "status": "success",
            "date": "2019-02-22T13:36:17+0000",
            "method": "ATM Vietnam banking",
            "sum": {
                "amount": 2000,
                "currency": "VND"
            },
            "description": ""
        },
        "operation": {
            "id": 2000000471,
            "type": "sale",
            "status": "success",
            "date": "2019-02-22T13:36:17+0000",
            "created_date": "2019-02-22T13:35:13+0000",
            "request_id": "db567db9bf0fdbecba5b7",
            "sum_initial": {
                "amount": 2000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 2000,
                "currency": "VND"
            },
            "provider": {
                "id": 1331,
                "payment_id": "19647319",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "iJtnnWh4EyZWnWt0uzv+A3hb//4oz43juZrsYyK4tI6zl01MxRhz0eL7wqYts8ugrA=="
    }

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

Рис.: Пример оповещения об отказе в проведении оплаты

{
        "project_id": 603,
        "payment": {
            "id": "EPd87a-9ea7",
            "type": "purchase",
            "status": "decline",
            "date": "2019-02-22T13:42:26+0000",
            "method": "ATM Vietnam banking",
            "sum": {
                "amount": 2000,
                "currency": "VND"
            },
            "description": ""
        },
        "operation": {
            "id": 1000000477,
            "type": "sale",
            "status": "decline",
            "date": "2019-02-22T13:42:26+0000",
            "created_date": "2019-02-22T13:42:22+0000",
            "request_id": "251469bcb435b24e9a55dd1b",
            "sum_initial": {
                "amount": 2000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 2000,
                "currency": "VND"
            },
            "provider": {
                "id": 1332,
                "payment_id": "",
                "auth_code": ""
            },
           "code": "20102",
            "message": "Incorrect account data entered"
        },
        "signature": "9TDUuc8PLSzgwD2jE5MaXIgzhTRYMwYq3PTqN0Gjc+7I59NZCkC5pZ6XA2rQ=="
    }

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

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

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

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

Для оплаты через Gate с использованием метода Vietnamese ATM со стороны веб-сервиса необходимо:

  1. Отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay.
  2. Осуществить перенаправление пользователя на сайт банка, поддерживающего работу с методом Vietnamese ATM.
  3. Принять оповещение о результате оплаты.

Полная схема проведения оплаты представлена далее.



Рис.: Проведение оплаты через Gate

  1. Пользователь на стороне веб-сервиса инициирует оплату через один из банков, поддерживающих работу с методом Vietnamese ATM.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Gate.
  3. Запрос на проведение оплаты поступает в платёжную платформу.
  4. Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
  6. В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис банка.
  7. На стороне банка выполняется обработка запроса на оплату.
  8. От сервиса банка к платёжной платформе передаются данные для перенаправления пользователя на сайт банка.
  9. От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя на сайт банка в объекте redirect_data.
  10. Пользователь перенаправляется на сайт банка.
  11. Пользователь выполняет необходимые действия для оплаты на сайте банка.
  12. На стороне сервиса банка выполняется обработка платежа.
  13. Пользователю отображается результат оплаты на сайте банка.
  14. Пользователь перенаправляется к веб-сервису.
  15. От сервиса банка к платёжной платформе направляется уведомление о результате оплаты.
  16. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
  17. От веб-сервиса пользователю направляется результат оплаты.

Информация о формате запросов и параметрах инициирования оплат через Gate при работе с методом Vietnamese ATM, а также о форматах данных для перенаправления пользователей и о формате оповещений о результатах оплат приведена далее; общая информация о работе с API — в разделе Работа с API.

Канал 1. Формат запросов

При формировании запросов на оплату с применением метода Vietnamese ATM необходимо учитывать следующее:

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

Таким образом, корректный запрос на оплату с применением метода Vietnamese ATM должен содержать идентификаторы проекта, платежа и банка, подпись, сумму и валюту платежа, IP-адрес и адрес электронной почты пользователя, идентификатор банка:

Рис.: Пример запроса на оплату

{
"general": {
      "project_id": 2990,
      "payment_id": payment_id,
      "signature": "PJkV8ejrtyUG0Di8hTng6JvC7vQsaC6tajQVVfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "payment": {
      "amount": 2000,
      "currency": "VND"
      },
    "customer": {
      "ip_address": "248.121.176",
      "email": "1@1.ru",
      "phone": "64891845653",
      "id": "customer123"
    },
    "account":{
      "bank_id": 135
    }
}

Канал 2. Формат запросов

При формировании запросов на оплату с применением метода Vietnamese ATM необходимо учитывать следующее:

  1. Должен использоваться запрос /v2/payment/atm/vietnam/sale , отправляемый методом POST. Этот запрос относится к группе запросов /v2/payment/atm/{payment_method}/sale.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ecommpay при интеграции;
      • payment_id — идентификатор платежа, уникальный в рамках проекта;
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • customer — объект, содержащий сведения о пользователе:
      • email — адрес электронной почты,
      • ip_address — используемый IP-адрес;
    • payment — объект, содержащий сведения о платеже:
      • amount — сумма платежа,
      • currency — валюта платежа в формате ISO-4217 alpha-3;
    • account — объект, содержащий сведения о банковском счёте пользователя:
      • bank_id — идентификатор банка.
  3. Дополнительно может потребоваться передавать некоторые из следующих параметров:
    • card.pan — номер карты пользователя,
    • card.card_holder — имя держателя карты,
    • card.year — год выдачи или истечения срока действия карты,
    • card.month — месяц выдачи или истечения срока действия карты.

    Список дополнительных параметров для проведения платежа зависит от выбранного банка. Если веб-сервис мерчанта поддерживает уточнение дополнительных параметров (Дополнение информации о платеже), то после отправки запроса, содержащего только обязательные параметры, придёт оповещение со списком дополнительных параметров для выбранного пользователем банка.

    В противном случае все указанные в пунктах 2 и 3 параметры необходимо передавать в запросе на оплату.

  4. Валютой платежа может быть только VND.
  5. Дополнительно могут использоваться любые другие параметры, указанные в спецификации.

Таким образом, корректный запрос на оплату с применением метода Vietnamese ATM должен содержать идентификаторы проекта, платежа и банка, подпись, сумму и валюту платежа, IP-адрес и адрес электронной почты пользователя, URL для перенаправления, а также дополнительную информацию о карте:

Рис.: Пример запроса на оплату (при поддержке запросов на уточнение параметров)

{
"general": {
      "project_id": 2990,
      "payment_id": payment_id,
      "signature": "PJkV8ejrtyUG0Di8hTng6JvC7vQsaC6tajQVVfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "payment": {
      "amount": 2000,
      "currency": "VND"
      },
    "customer": {
      "ip_address": "248.121.176",
      "email": "1@1.ru"
    },
    "account":{
      "bank_id": 135
    }
}

Рис.: Пример запроса на оплату (без поддержки запросов на уточнение параметров)

{
"general": {
      "project_id": 2990,
      "payment_id": payment_id,
      "signature": "PJkV8ejrtyUG0Di8hTng6JvC7vQsaC6tajQVVfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "payment": {
      "amount": 2000,
      "currency": "VND"
      },
    "customer": {
      "ip_address": "248.121.176",
      "email": "1@1.ru"
    },
    "account":{
      "bank_id": 135,
    },
    "card": {
        "pan": "4321432154325432",
        "card_holder": "FORD PREFECT",
        "year": 2018,
        "month": 11
    }
}

Форматы данных для перенаправления пользователей

Для перенаправления пользователя от веб-сервиса на сайт банка необходимо принять оповещение от платёжной платформы, содержащее ссылку для перенаправления в параметре redirect_data.url и данные для отправки в теле запроса redirect_data.body, и использовать эти параметры при открытии HTML-страницы банка методом, указанным в redirect_data.method.

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

"redirect_data": {
    "method": "GET",
    "body": [],
    "encrypted": [],
    "url": "https://www.vn/checkout/version31/index/token_code/24963023"
  }

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

Для оповещений о результатах оплат с применением метода Vietnamese ATM используется стандартный формат, описание которого представлено в разделе Оповещения.

В следующем примере оповещение свидетельствует о том, что в рамках проекта 603 от пользователя 1 была успешно проведена оплата в размере 2 000 VND.

Рис.: Пример оповещения о проведенной оплате

 {
        "project_id": 603,
        "payment": {
            "id": "TEST_154385980520099",
            "type": "purchase",
            "status": "success",
            "date": "2018-12-03T13:06:32+0000",
            "method": "ATM Vietnam banking",
            "sum": {
                "amount": 2000,
                "currency": "VND"
            },
            "description": "TEST_1543831735980"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 12919000002116,
            "type": "sale",
            "status": "success",
            "date": "2018-12-03T13:06:32+0000",
            "created_date": "2018-12-03T13:06:29+0000",
            "request_id": "41fcbd2791eabee713b7d7e89e53",
            "sum_initial": {
                "amount": 2000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 2000,
                "currency": "VND"
            },
            "provider": {
                "id": 1154,
                "payment_id": "",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "Cug4rIB6OimEkwmMBi1OfYpapSpZrz00eNLNIwE/eugWYrFyBErmi0OVw34WpHt5CzEA=="
    }

В следующем примере оплата была отклонена, так как идентификатор банка не передан в запросе.

Рис.: Пример оповещения об отказе в проведении оплаты

{
        "project_id": 603,
        "payment": {
            "id": "TEST_1548313365790",
            "type": "purchase",
            "status": "decline",
            "date": "2019-01-24T09:43:27+0000",
            "method": "ATM Vietnam banking",
            "sum": {
                "amount": 4000,
                "currency": "VND"
            },
            "description": "TEST_1548313365790"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 3745000002722,
            "type": "sale",
            "status": "decline",
            "date": "2019-01-24T09:43:27+0000",
            "created_date": "2019-01-24T09:41:49+0000",
            "request_id": "3a872bd43f92091",
            "sum_initial": {
                "amount": 4000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 4000,
                "currency": "VND"
            },
            "provider": {
                "id": 1154,
                "payment_id": "010UDR0CCTJEPAN6KFWU14VDN",
                "date": "2019-01-24T09:42:58+0000",
                "auth_code": ""
            },           
           "errors": [
            {
                "code": "2801",
                "message": "Bank ID not found",
                "description": "Gate. Bank ID was not found in request"
             }
           ],
            "code": "2801",
            "message": "Bank ID not found"
        },
        "signature": "cQbMiD0pON9eJc5ZugNK0iT5Qubo0+7RCZWuxc0feItZRcABrPdFA4EKQiyWj7NWQRmVyHzNTmOX6Zg5w=="
    }

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

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

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

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

Для выплаты через Gate с использованием метода Vietnamese ATM со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате выплаты. Полная схема проведения выплаты представлена далее.



Рис.: Проведение выплаты через Gate

  1. Пользователь на стороне веб-сервиса инициирует выплату через один из банков, поддерживающих работу с методом Vietnamese ATM.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение выплаты через Gate.
  3. Запрос на проведение выплаты поступает в платёжную платформу.
  4. Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
  6. В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис Vietnamese ATM.
  7. На стороне банка выполняется обработка платежа.
  8. От сервиса банка к платёжной платформе направляется уведомление о результате выплаты.
  9. От платёжной платформы к веб-сервису направляется оповещение о результате выплаты.
  10. От веб-сервиса пользователю направляется результат выплаты.

Информация о формате запросов и параметрах инициализации выплат методом Vietnamese ATM через Gate, а также о формате оповещений о результатах выплат приведена далее, общая информация о работе с API — в отдельном разделе.

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

При работе с запросами на выплаты с применением метода Vietnamese ATM необходимо учитывать следующее:

  1. Должен использоваться запрос /v2/payment/atm/vietnam/payout, отправляемый методом POST. Этот запрос относится к группе запросов для платежей с использованием виртуальных банкоматов /v2/payment/atm/{payment_method}/payout.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — основные сведения:
      • project_id — идентификатор проекта,
      • payment_id — идентификатор платежа;
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • customer — сведения о пользователе:
      • id — идентификатор,
      • ip_address — используемый IP-адрес;
    • account — сведения о счёте пользователя:
      • bank_id — идентификатор банка,
      • region_id — регион;
    • card — сведения о платёжной карте пользователе:
      • pan — PAN карты,
      • year — год истечения срока действия карты,
      • month — месяц истечения срока действия карты,
      • card_holder — имя держателя карты;
    • payment — сведения о платеже:
      • amount — сумма,
      • currency — валюта платежа в формате ISO-4217 alpha-3.
  3. Валютой платежа может быть только VND.
  4. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на выплату с применением метода Vietnamese ATM должен содержать идентификаторы проекта, платежа и пользователя, подпись, сумму и валюту платежа, IP-адрес пользователя, данные карты пользователя, а также данные о счёте пользователя: идентификатор банка и регион:

Рис.: Пример запроса на выплату

{
  "general": {
    "project_id": 603,
    "payment_id": "10000004",
    "signature": "PJkV8ej\/UG0Di8hTng6JvC7vQsaC6LwY3T\/pOMeSaRfBaNIipTv+AWoXW\/9MTO8yJA=="
  },
  "card": {
    "pan": "4242424242424242",
    "month": 12,
    "year": 2021,
    "card_holder": "Card Holder"
  },
 "account":{
      "bank_id": 130,
      "region_id": 137
 },
 "customer": {
    "id":"2990", 
    "ip_address": "248.121.176.220"
  },
  "payment": {
    "amount": 100000,
    "currency": "VND"
  }
}

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

Для оповещений о результатах оплат с применением метода Vietnamese ATM используется стандартный формат, описание которого представлено в разделе Оповещения.

В следующем примере оповещение свидетельствует о том, что в рамках проекта 603 для пользователя 111232323 была успешно проведена выплата в размере 100 000 VND на карточный счёт 424242******4242.

Рис.: Пример оповещения о проведенной выплате

{
        "project_id": 603,
        "payment": {
            "id": "100000010",
            "type": "payout",
            "status": "success",
            "date": "2019-02-22T13:50:52+0000",
            "method": "ATM Vietnam banking",
            "sum": {
                "amount": 100000,
                "currency": "VND"
            },
            "description": ""
        },
        "account": {
            "number": "424242******4242"
        },
        "customer": {
            "id": "111232323"
        },
        "operation": {
            "id": 2000000472,
            "type": "payout",
            "status": "success",
            "date": "2019-02-22T13:50:52+0000",
            "created_date": "2019-02-22T13:50:48+0000",
            "request_id": "c0c14111edf06ba2",
            "sum_initial": {
                "amount": 100000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 100000,
                "currency": "VND"
            },
            "provider": {
                "id": 1331,
                "payment_id": "843",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "qeaYBc4TzLFqi9+KOzNw/6V37PNwQXvz50SJDdevayqTjWGDoDatdK4CHaPpw=="
    }

В следующем примере выплата была отклонена, так как идентификатор банка не передан в запросе.

Рис.: Пример оповещения об отказе в проведении выплаты

{
        "project_id": 603,
        "payment": {
            "id": "10000034",
            "type": "payout",
            "status": "decline",
            "date": "2019-02-22T14:00:17+0000",
            "method": "ATM Vietnam banking",
            "sum": {
                "amount": 100000,
                "currency": "VND"
            },
            "description": ""
        },
        "account": {
            "number": "424242******4242"
        },
        "customer": {
            "id": "111232323"
        },
        "operation": {
            "id": 2000000474,
            "type": "payout",
            "status": "decline",
            "date": "2019-02-22T14:00:17+0000",
            "created_date": "2019-02-22T14:00:14+0000",
            "request_id": "a43380dbe08d069b0dd61c895db3257",
            "sum_initial": {
                "amount": 100000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 100000,
                "currency": "VND"
            },
            "provider": {
                "id": 1330,
                "payment_id": "770",
                "auth_code": ""
            },
           "errors": [
            {
                "code": "2801",
                "message": "Bank ID not found",
                "description": "Gate. Bank ID was not found in request"
             }
           ],
            "code": "2801",
            "message": "Bank ID not found"
        },
        "signature": "rdewQxGU7ur5cfWWZc76glYgWnb0h6XfZgfMwWJKJMLoC5Pfpcn9TrQC4IamAw=="
    }

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

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

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

Как и при работе с другими платёжными методами, которые предоставляет ecommpay, при использовании метода Vietnamese ATM доступны разные способы анализа информации о платежах и операциях с применением этого метода — как в отдельности, так и в совокупности с другими методами.

Всю необходимую информацию можно получать и анализировать средствами Dashboard, в том числе с помощью аналитических панелей на вкладке Analytics.

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

  • Dashboard позволяет выгружать данные в форматах CSV и XLS с помощью инструментов на вкладке Платежи. При этом можно выполнять разовые выгрузки информации на локальный компьютер и задействовать периодическую выгрузку и отправку информации на заданные адреса электронной почты.
  • Data API позволяет получать информацию в формате JSON и отправлять ее на заданный URL — для этого применяются запросы /operations/get.

С любыми вопросами о возможностях анализа можно обращаться в службу технической поддержки ecommpay.