Banks of the Philippines

Обзор

Banks of the Philippines — метод интернет-банкинга для проведения платежей через Филиппинские банки. Для работы с этим методом доступно проведение оплат через Payment Page и Gate, а также выплат через Gate.

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

Тип платёжного метода Интернет-банкинг
Регионы использования PH
Валюты платежей PHP
Конвертация валют доступна только для оплат — на стороне ECommPay
Оплаты +
Выплаты +
Оплаты по сохранённым данным
Полные возвраты +
Частичные возвраты +
Опротестования
Особенности поддержка полных и частичных возвратов осуществляется со стороны провайдера
Организация и стоимость подключения По согласованию с курирующим менеджером ECommPay

Схема работы

В проведении выплаты с использованием метода Banks of the Philippines задействуются веб-сервис мерчанта, один из интерфейсов и платёжная платформа ECommPay, а также сервис одного из банков, поддерживающих работу с этим методом.



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

Интерфейсы Суммы, PHP Время**
Payment Page CMS Plug-ins Gate Dashboard (Old Dashboard) Минимум Максимум Базовое Предельное
Оплаты + + 1,00 1 000 000,00 30 минут 1 день
Полные возвраты * * * * * *
Частичные возвраты * * * * * *
Выплаты + 10,00 100 000,00 до 10 минут 48 часов

*Для проведения полных и частичных возвратов пользователям необходимо заполнять форму обращения.

** Базовое и предельное время определяются следующим образом:

  • Базовое время — среднее расчётное время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Это время, определяемое для условий штатной работы всех технических средств и каналов связи, а также типичных действий со стороны пользователя (там, где они необходимы). Базовое время рекомендуется использовать для реагирования на отсутствие оповещений о результате платежа и выполнения опроса состояния платежа.
  • Предельное время — максимально допустимое время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Если платёж не был проведён или отклонён за это время, он автоматически переводится в статус decline. Для индивидуальной настройки предельного времени следует обращаться к специалистам технической поддержки ECommPay.

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

Проведение оплат с использованием метода Banks of the Philippines выполняется с перенаправлением пользователей к сервису Banks of the Philippines, выплат — с уведомлением пользователей со стороны веб-сервиса.

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



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



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



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

Проведение платежей с применением метода Banks of the Philippines осуществляется через банки, поддерживающие работу с этим методом. Каждому банку соответствуют свой идентификатор, который используется при инициировании выплат через Gate, и буквенный код, который используется в оповещениях о результатах выплат для идентификации банка.

В таблице далее в ознакомительных целях представлена информация об этих банках. Эту информацию следует уточнять у курирующего менеджера ECommPay или с помощью запросов /v2/info/banks/philippines/payout/list (для выплат) и /v2/info/banks/philippines/sale/list (для оплат), относящихся к группе запросов /v2/info/banks/{payment_method}/{operationType}/list.

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

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

{
  "general": {
    "project_id": 200,
    "payment_id": "ORDER_155860015",
    "signature": "K6jllym+PtObocZtr345st...=="
  },
  "payment": {
    "amount": 1500,
    "currency": "PHP"
  }
}
Табл. 1. Список банков
Банк Оплата Выплата ID Код
AUB Online/Cash Payment + 485 AUB
Bank of Commerce + + 1561 BOC
BDO Corporate Internet Banking + 2241 BDOC
BDO Internet Banking + + 486 BDO
BDO Internet Banking (Bills Payment) + 2231 BDOP
BDO Mobile Internet Banking + 2251 BDOM
BPI ExpressOnline/Mobile (Fund Transfer) + + 487 BPI
BPI ExpressOnline/Mobile (new) + 2261 BPIA
BPI ExpressOnline (Bills Payment) + 2271 BPIB
BPI Family Bank + 488 BFB
Chinabank Online + + 489 CBC
Chinabank Savings + 1531 CBCS
Chinatrust + 1571 CTBC
EastWest CA/SA + 490 EWB
Landbank ATM Online + 2291 LBPA
Landbank CA/SA + 491 LBP
Maybank + 1541 MAY
Maybank Online Banking + 2281 MAYB
Metrobankdirect + + 492 MBTC
PBCom + 1511 PBCM
PNB E-Banking + 493 PNB
PNB e-Banking Bills Payment + 2301 PNBB
PSBank + 1501 PSB
RCBC Online Banking + + 494 RCBC
RobinsonsBank Online Bills Payment + + 495 RSB
Security Bank Online Transfer + + 496 SBC
Sterling Bank + 1551 SBA
UCPB Connect + + 498 UCPB
Unionbank CA/SA, EON + 497 UBP
Unionbank EON + 2321 UBE
Unionbank Internet Banking + 2311 UBPB
Veterans Bank + 1521 PVB

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

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

Табл. 2. Список регионов
Регион ID
National Capital Region 297
Ilocos (Region I) 298
Cagayan Valley (Region II) 299
Central Luzon (Region III) 300
Bicol (Region V) 301
Western Visayas (Region VI) 302
Central Visayas (Region VII) 303
Eastern Visayas (Region VIII) 304
Zamboanga Peninsula (Region IX) 305
Northern Mindanao (Region X) 306
Davao (Region XI) 307
Soccsksargen (Region XII) 308
Caraga (Region XIII) 309
Autonomous Region in Muslim Mindanao (ARMM) 310
Cordillera Administrative Region (CAR) 311
Calabarzon (Region IV-A) 312
Mimaropa (Region IV-B) 313
Abra 314
Agusan del Norte 315
Agusan del Sur 316
Aklan 317
Albay 318
Antique 319
Apayao 320
Aurora 321
Bataan 322
Basilan 323
Benguet 324
Biliran 325
Bohol 326
Batangas 327
Batanes 328
Bukidnon 329
Bulacan 330
Cagayan 331
Camiguin 332
Camarines Norte 333
Capiz 334
Camarines Sur 335
Catanduanes 336
Cavite 337
Cebu 338
Compostela Valley 339
Davao Oriental 340
Davao del Sur 341
Davao del Norte 342
Dinagat Islands 343
Davao Occidental 344
Eastern Samar 345
Guimaras 346
Ifugao 347
Iloilo 348
Ilocos Norte 349
Ilocos Sur 350
Isabela 351
Kalinga 352
Laguna 353
Lanao del Norte 354
Lanao del Sur 355
Leyte 356
La Union 357
Marinduque 358
Maguindanao 359
Masbate 360
Mindoro Occidental 361
Mindoro Oriental 362
Mountain Province 363
Misamis Occidental 364
Misamis Oriental 365
Cotabato 366
Negros Occidental 367
Negros Oriental 368
Northern Samar 369
Nueva Ecija 370
Nueva Vizcaya 371
Pampanga 372
Pangasinan 373
Palawan 374
Quezon 375
Quirino 376
Rizal 377
Romblon 378
Sarangani 379
South Cotabato 380
Siquijor 381
Southern Leyte 382
Sulu 383
Sorsogon 384
Sultan Kudarat 385
Surigao del Norte 386
Surigao del Sur 387
Tarlac 388
Tawi-Tawi 389
Samar 390
Zamboanga del Norte 391
Zamboanga del Sur 392
Zambales 393

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

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

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

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



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

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

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

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

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

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в минорных единицах;
    • customer_id — идентификатор пользователя в рамках проекта.
  2. Дополнительно рекомендуется указывать адрес электронной почты пользователя в параметре customer_email. Также может потребоваться указание имени и фамилии пользователя в параметрах customer_first_name и customer_last_name соответственно. Необходимость использования этих параметров следует уточнять у курирующего менеджера ECommPay. Если хотя бы один из тех параметров, которые должны использоваться, отсутствует в запросе, на Payment Page пользователю отображаются поля для ввода недостающих значений. Более подробная информация представлена в разделе Дополнение информации о платеже.
  3. Можно настраивать отображение страницы Payment Page с выбором метода оплаты.

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

    • Отображение банков одной кнопкой Philippines Online Banking среди прочих платёжных методов.
    • Отображение банков отдельными кнопками среди прочих методов. Для этого необходимо передавать параметр split_banks со значением true в параметре payment_methods_options.
      payment_methods_options: {"online_philippines_banks": {"split_banks": true}}
      
    • Отображение кнопок конкретных банков (одного или нескольких). В списке методов может присутствовать метод Banks of the Philippines. Для этого необходимо передавать идентификаторы банков в параметре banks_id. Для отображения нескольких банков необходимо перечислять идентификаторы через запятую c пробелом.
      payment_methods_options: {"online_philippines_banks": {"split_banks": true, "banks_id": [2421, 2371]}}
    • Отображение только точек приёма платежей и банкоматов одной кнопкой Philippines Online Banking. Для этого используется предварительный выбор метода Banks of the Philippines. Необходимо передавать код платежного метода online-philippines-banks в параметре force_payment_method. Пользователю сразу открывается страница с выбором банков.
    • Отображение отдельного банка. Для этого используется предварительный выбор метода Banks of the Philippines. Необходимо передавать код платежного метода online-philippines-banks в параметре force_payment_method и идентификатор банка banks_id в параметре payment_methods_options.

      Ниже приведён пример запроса на открытие Payment Page с предварительно выбранным банком.

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

          { payment_id: 'X03936', 
            payment_amount: 10000, 
            payment_currency: 'PHP', 
            project_id: 123,
            customer_id: '123',
            customer_email: 'test@example.com',
            customer_first_name: 'John',
            customer_last_name: 'Doe',
            force_payment_method: 'online-philippines-banks',
            payment_methods_options: {"online_philippines_banks": {"banks_id": [2371]}},
            signature: "kUi2x9dKHAVNU0FYldJrxh+...tT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
          }
  4. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
  5. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

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

    { payment_id: 'ECT_TEST_1547', 
      payment_amount: 1000, 
      payment_currency: 'PHP', 
      project_id: 210,
      customer_id: '123',
      customer_email: 'test@example.com',
      customer_first_name: 'John',
      customer_last_name: 'Doe',
      signature: "kUi2x9dKHAVNU0FYldJrxh4yo+K...tT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
    }

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

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

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

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

 {
        "project_id": 239,
        "payment": {
            "id": "EPfa87-bcfd",
            "type": "purchase",
            "status": "success",
            "date": "2020-03-06T14:11:00+0000",
            "method": "Philippines banks",
            "sum": {
                "amount": 1000,
                "currency": "PHP"
            },
            "description": ""
        },
        "operation": {
            "id": 464,
            "type": "sale",
            "status": "success",
            "date": "2020-03-06T14:11:00+0000",
            "created_date": "2020-03-06T14:10:34+0000",
            "request_id": "f6ab99eb0940e43a774b969cb74a88ef08eec6c8951-00000001",
            "sum_initial": {
                "amount": 1000,
                "currency": "PHP"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "PHP"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 1369,
                "payment_id": "7QKID3P3",
                "auth_code": "",
                "endpoint_id": "BOG",
                "date": "2020-03-06T14:10:54+0000"
            }
        },
        "signature": "YZKXHr2ZdK3tPqiMzPpSJZ...+WGku5dANQAVWPteHKmwzMQ+mvGoA=="
    }
}

В следующем примере оплата была отклонена из-за превышения максимального ограничения суммы:

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

 {
        "project_id": 239,
        "payment": {
            "id": "EPfa87-bcfc",
            "type": "purchase",
            "status": "decline",
            "date": "2020-03-07T14:11:00+0000",
            "method": "Philippines banks",
            "sum": {
                "amount": 200000000,
                "currency": "PHP"
            },
            "description": ""
        },
        "operation": {
            "id": 465,
            "type": "sale",
            "status": "decline",
            "date": "2020-03-07T14:11:00+0000",
            "created_date": "2020-03-06T14:10:34+0000",
            "request_id": "f6ab99eb0940e43a774b969cb74a88ef08eec6c8951-00000002",
            "sum_initial": {
                "amount": 200000000,
                "currency": "PHP"
            },
            "sum_converted": {
                "amount": 200000000,
                "currency": "PHP"
            },
            "code": "20101",
            "message": "Decline due to amount or frequency limit",
            "provider": {
                "id": 1369,
                "payment_id": "7QKID3P3",
                "auth_code": "",
                "endpoint_id": "BOG",
                "date": "2020-03-06T14:10:54+0000"
            }
        },
        "signature": "YZKXHr2ZdK3tPqiMzPpSJZ...+WGku5dANQAVWPteHKmwzMQ+mvGob=="
    }
}

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

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

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

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

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

  1. Отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay.
  2. Осуществить перенаправление в сервис Banks of the Philippines.
  3. Принять оповещение от платежной платформы ECommPay о результате оплаты.

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



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

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

Информация о формате запросов и параметрах инициации оплат методом Banks of the Philippines через Gate, а также о формате оповещений о результатах оплат приведена далее, общая информация о работе с API см. в разделе Работа с API.

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

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

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

Таким образом, корректный запрос на оплату с применением метода Banks of the Philippines должен содержать идентификаторы проекта и платежа, валюту и сумму платежа, данные пользователя, подпись, идентификатор банка и URL для перенаправления:

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

{
    "general": {
        "project_id": 580,
        "payment_id": "test_philippines_sale",
        "signature": "pgwRHcfv2OTsdILn33R5Nr/ymu08nMx/9FSeIqYHTTd6YhIiLWw=="
    },
    "payment": {
        "amount": 1000,
        "currency": "PHP"
    },
    "customer": {
        "id": "123",
        "email": "test_customer@example.com",
        "ip_address": "1.1.1.1",
        "first_name": "John",
        "last_name": "Doe"
    },
    "account": {
        "bank_id": 2681
    },
    "return_url": {
        "success": "http://example.com/success"
    }
}

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

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

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

"redirect_data": {
    "body": {},
    "method": "GET",
    "url": "https://test.ph/Pay.aspx?tokenid=3f511c2d&procid=BITC"
  }

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

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

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

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

 {
        "project_id": 239,
        "payment": {
            "id": "EPfa87-bcfd",
            "type": "purchase",
            "status": "success",
            "date": "2020-03-06T14:11:00+0000",
            "method": "Philippines banks",
            "sum": {
                "amount": 1000,
                "currency": "PHP"
            },
            "description": ""
        },
        "operation": {
            "id": 464,
            "type": "sale",
            "status": "success",
            "date": "2020-03-06T14:11:00+0000",
            "created_date": "2020-03-06T14:10:34+0000",
            "request_id": "f6ab99eb0940e43a774b969cb74a88ef08eec6c8951-00000001",
            "sum_initial": {
                "amount": 1000,
                "currency": "PHP"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "PHP"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 1369,
                "payment_id": "7QKID3P3",
                "auth_code": "",
                "endpoint_id": "BOG",
                "date": "2020-03-06T14:10:54+0000"
            }
        },
        "signature": "YZKXHr2ZdK3tPqiMzPpSJZ...+WGku5dANQAVWPteHKmwzMQ+mvGoA=="
    }
}

В следующем примере оплата была отклонена из-за превышения максимального ограничения суммы:

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

 {
        "project_id": 239,
        "payment": {
            "id": "EPfa87-bcfc",
            "type": "purchase",
            "status": "decline",
            "date": "2020-03-07T14:11:00+0000",
            "method": "Philippines banks",
            "sum": {
                "amount": 200000000,
                "currency": "PHP"
            },
            "description": ""
        },
        "operation": {
            "id": 465,
            "type": "sale",
            "status": "decline",
            "date": "2020-03-07T14:11:00+0000",
            "created_date": "2020-03-06T14:10:34+0000",
            "request_id": "f6ab99eb0940e43a774b969cb74a88ef08eec6c8951-00000002",
            "sum_initial": {
                "amount": 200000000,
                "currency": "PHP"
            },
            "sum_converted": {
                "amount": 200000000,
                "currency": "PHP"
            },
            "code": "20101",
            "message": "Decline due to amount or frequency limit",
            "provider": {
                "id": 1369,
                "payment_id": "7QKID3P3",
                "auth_code": "",
                "endpoint_id": "BOG",
                "date": "2020-03-06T14:10:54+0000"
            }
        },
        "signature": "YZKXHr2ZdK3tPqiMzPpSJZ...+WGku5dANQAVWPteHKmwzMQ+mvGob=="
    }
}

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

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

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

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

Для выплаты через Gate с использованием метода Banks of the Philippines со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay и принять оповещение о результате выплаты. Полная схема проведения выплаты представлена далее.



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

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

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

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

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

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

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

{
  "general": {
    "project_id": 445,
    "payment_id": "1000003",
    "signature": "PJkV8ej\/UG0Di8hTng6JvC7vQsa789ajQVVLhNN5e
                        7cV+VHq3LwY3T\/pOMeSaRfBaNIipTv+AWoXW\/9MTO8yJA=="
  },
 "customer": {
    "id": "123",
    "ip_address": "1.1.1.1"
  },
  "payment": {
    "amount": 1000,
    "currency": "PHP",
    "description": "Payout description"
  },
    "account": {
    "bank_id": 486,
    "customer_name": "John Doe",
    "city": "Manila",
    "region_id": 297,
    "branch": "Bank Branch",
    "number": "1670033323"
  }
}

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

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

К особенностям метода Banks of the Philippines можно отнести то, что название банка, в котором открыт счёт пользователя, указывается в параметре endpoint_id объекта operation.provider (информация о банках и соответствующих им буквенных кодах представлена в пункте Список банков).

В следующем примере оповещение свидетельствует о том, что в рамках проекта 445 для пользователя 123 была успешно проведена выплата в размере 10,00 PHP на счёт 1670033323, открытый в банке Banco de Oro CA/SA.

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

 {
        "project_id": 445,
        "payment": {
            "id": "100011",
            "type": "payout",
            "status": "success",
            "date": "2019-03-18T08:06:13+0000",
            "method": "Philippines banks",
            "sum": {
                "amount": 1000,
                "currency": "PHP"
            },
            "description": "payout"
        },
        "account": {
            "number": "1670033323"
        },
        "customer": {
            "id": "123"
        },
        "operation": {
            "id": 147,
            "type": "payout",
            "status": "success",
            "date": "2019-03-18T08:06:13+0000",
            "created_date": "2019-03-18T08:06:06+0000",
            "request_id": "9499286583e3d43bcf14dbd0d4502260b85fb78b-a9058f97ef1102f752a9cd47d2fb7469cc613e11",
            "sum_initial": {
                "amount": 1000,
                "currency": "PHP"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "PHP"
            },
            "provider": {
                "id": 1346,
                "payment_id": "6Q2G5D83",
                "date": "2019-03-18T08:06:11+0000",
                "auth_code": "",
                "endpoint_id": "BDO"
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "oFGfjOtZZkFxi7Pd1yikCw01b0BsedgKr8QQrAUZS5LA
                            3+xEZP6cIOiB0v21vBp6O7KfQgcPJ+Gz/E8qfizh1A=="
    }

В следующем примере выплата была отклонена из-за нарушения ограничения на сумму или частоту выплаты.

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

{
        "project_id": 445,
        "payment": {
            "id": "100014",
            "type": "payout",
            "status": "decline",
            "date": "2019-03-18T10:49:50+0000",
            "method": "Philippines banks",
            "sum": {
                "amount": 900,
                "currency": "PHP"
            },
            "description": "payout"
        },
        "account": {
            "number": "1670033323"
        },
        "customer": {
            "id": "123"
        },
        "operation": {
            "id": 148,
            "type": "payout",
            "status": "decline",
            "date": "2019-03-18T10:49:51+0000",
            "created_date": "2019-03-18T10:49:46+0000",
            "request_id": "d626cece0855a8863f687985e6169c9f07b17e91c-
                            f5fb6c317444750d8301e8ff8c57935d9872183c",
            "sum_initial": {
                "amount": 900,
                "currency": "PHP"
            },
            "sum_converted": {
                "amount": 900,
                "currency": "PHP"
            },
            "provider": {
                "id": 1346,
                "payment_id": "YDK0QS4X",
                "auth_code": ""
            },
            "code": "20101",
            "message": "Decline due to amount or frequency limit"
        },
        "signature": "fz0Yu5BFLRLJez747kDfZHgmKGtCmzduW27YGzLvo649gXqxPIOgMa5DAzPE/4GLWlZSzCwkdkqyrTqUQvLp6A=="
    }

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

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

Выплаты через Dashboard (Old Dashboard)

Для проведения выплат через Dashboard (Old Dashboard) со стороны мерчанта необходимо инициировать запросы на выплаты и принять уведомления об их успешной обработке. Инициировать такие выплаты можно двумя способами:
  • как единичную выплату — в этом случае для каждой выплаты необходимо указать доступные для данного метода валюту и сумму, выбрать метод и заполнить все поля, отображаемые в интерфейсе с учётом выбранного метода;
  • в рамках массового платежа — в этом случае все параметры выплат необходимо задать в файле формата CSV с учётом требований, представленных в разделе Выплаты через Gate (кроме пункта о подписи).

Информация о проведении выплат отображается в разделе Платежи интерфейса Dashboard (Old Dashboard).

Более подробная информация о проведении выплат через Dashboard (Old Dashboard) представлена в разделе Проведение выплат.

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

Как и при работе с другими платёжными методами, которые предоставляет ECommPay, при использовании метода Banks of the Philippines доступны разные способы анализа информации о платежах и операциях с применением этого метода — как в отдельности, так и в совокупности с другими методами.

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

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

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

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