Open Banking in the UK

Обзор

Open Banking in the UK — метод интернет-банкинга для проведения платежей через банки Великобритании. Для работы с этим методом доступно проведение оплат через Payment Page и Gate.

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

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

Схема работы

В проведении отдельного платежа с использованием Open Banking in the UK задействуются веб-сервис мерчанта, один из интерфейсов и платёжная платформа ECommPay, а также технические средства банка.



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

Интерфейсы Суммы, GBP Время**
Payment Page CMS Plug-ins Gate Dashboard (Old Dashboard) минимум максимум базовое предельное
Оплаты + + * * * *

* Ограничения сумм и время проведения платежей зависят от банков.

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

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

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

Проведение оплат с использованием метода Open Banking in the UK выполняется с перенаправлением пользователей к сервису банка.

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



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



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

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

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

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

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

{
  "general": {
    "project_id": 200,
    "payment_id": "ORDER_155860015",
    "signature": "K6jllym+PtObocZtr345st...=="
  },
  "payment": {
    "amount": 1000,
    "currency": "GBP"
  }
}
Табл. 1. Список банков
Банк ID
Adam&Company Bank 3481
Allied Irish Bank 3491
Allied Irish Bank Business 3501
Bank Of Ireland 3511
Bank of Scotland 3521
Barclaycard 3531
Barclays 3541
Cashplus 3801
Chelsea Building Society 3811
Coutts 3551
Creation 3821
Cumberland 3561
Cynergy Bank 3831
Danske 3571
Danske Business 3581
First Direct 3591
First Trust Bank 3601
First Trust Bank Business 3611
Halifax 3621
HSBC 3631
HSBC Business 3641
Kleinwort Hambros 3651
Lloyds 3661
Marks & Spencer 3671
MBNA 3841
Mettle 3681
Mizuho 3691
Monzo 3851
Nationwide 3701
NatWest 3711
Revolut 3731
Royal Bank of Scotland 3721
Sainsbury's Bank 3861
Santander 3741
Starling 3871
Tesco 3751
Ulster Bank 3761
Ulster Bank Republic Of Ireland 3771
Vanquis 3781
Yorkshire Building Society 3791

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

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

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

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



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

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

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

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

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

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в минорных единицах;
    • customer_id — идентификатор пользователя уникальный в рамках проекта.
  2. Дополнительно, в зависимости от провайдера, рекомендуется указывать имя и фамилию пользователя в параметрах customer_first_name и customer_last_name. Если параметры отсутствуют в запросе, на Payment Page пользователю отображаются поля для ввода недостающих значений. Подробнее об уточнении параметров — в разделе Дополнение информации о платеже.
  3. Валютой платежа может быть только GBP.
  4. При использовании платёжного метода Open Banking in the UK можно настраивать отображение страницы Payment Page с выбором метода оплаты.

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

    • Отображение поддерживаемых банков одной кнопкой UK Banks среди прочих методов.
    • Отображение только поддерживаемых банков одной кнопкой UK Banks. Для этого используется предварительный выбор метода Open Banking in the UK. Необходимо передавать код платежного метода uk в параметре force_payment_method. Пользователю открывается страница с выбором банков.
    • Отображение каждого поддерживаемого банка отдельной кнопкой. Для этого необходимо передавать параметр split_banks со значением true в строке payment_methods_options.
      payment_methods_options={"uk": {"split_banks": true}}
      
    • Отображение кнопок конкретных банков (одного или нескольких). В списке методов может присутствовать метод Open Banking in the UK. Для этого используется предварительный выбор метода Open Banking in the UK, но с указанием конкретного банка. Для этого необходимо передавать код платежного метода uk в параметре force_payment_method и идентификатор банка banks_id в параметре payment_methods_options. Для отображения нескольких банков необходимо перечислять идентификаторы этих банков через запятую c пробелом.
      payment_methods_options={"uk": {"split_banks": true, "banks_id": [3771, 3781]}}

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

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

          { payment_id: 'X03936', 
            payment_amount: 1000, 
            payment_currency: 'GBP', 
            project_id: 120,
            customer_id: 'customer1',
            customer_first_name: 'John',
            customer_last_name: 'Doe',
            force_payment_method: 'uk',
            payment_methods_options={"uk": {"banks_id": [3771]}},
            signature: "kUi2x9dKHAVNU0FYlSCQ9vySO\/...tVUkDJrOpZhkIQg=="
          }
  5. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
  6. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

Таким образом, корректный запрос на открытие платёжной формы с применением метода Open Banking in the UK должен содержать идентификаторы проекта и платежа, информацию о пользователе, валюту и сумму платежа, а также подпись:

    { 
      payment_id: 'X03936', 
      payment_amount: 1000, 
      payment_currency: 'GBP', 
      project_id: 123, 
      customer_id: 'customer1',
      customer_first_name: 'John',
      customer_last_name: 'Doe',
      signature: "kUi2x9dKHA...\/RLCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
    }

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

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

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

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

{
   "project_id":239,
   "payment":{
      "id":"ID_461239",
      "type":"purchase",
      "status":"success",
      "date":"2020-06-15T14:55:23+0000",
      "method":"UK banks",
      "sum":{
         "amount":1000,
         "currency":"GBP"
      },
      "description":"ID_461239"
   },
   "customer":{
      "id":"1"
   },
   "operation":{
      "id":59043000050811,
      "type":"sale",
      "status":"success",
      "date":"2020-06-15T14:55:23+0000",
      "created_date":"2020-06-15T14:51:35+0000",
      "request_id":"929c6911448765aedaf4df...79aa8d4adb6b78dc5-00059044",
      "sum_initial":{
         "amount":1000,
         "currency":"GBP"
      },
      "sum_converted":{
         "amount":1000,
         "currency":"GBP"
      },
      "code":"0",
      "message":"Success",
      "provider":{
         "id":2901,
         "payment_id":"385dc36c-7fac-4bf5-a0e6-6a16ebcc1962",
         "auth_code":"",
         "endpoint_id":"Halifax",
         "date":"2020-06-15T14:51:36+0000"
      }
   },
   "signature":"+KDWbziHMNDBSd2Y04Cc...xRb55AnjtvrZc4XgG6iXkJyLHPa3ZbYw=="
}

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

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

{
   "customer":{
      "id":"1"
   },
   "project_id":10801,
   "payment":{
      "id":"ID_542650",
      "type":"purchase",
      "status":"decline",
      "date":"2020-06-15T11:46:42+0000",
      "method":"UK banks",
      "sum":{
         "amount":100,
         "currency":"GBP"
      },
      "description":"ID_542650"
   },
   "operation":{
      "id":58778000050861,
      "type":"sale",
      "status":"decline",
      "date":"2020-06-15T11:46:42+0000",
      "created_date":"2020-06-15T11:36:39+0000",
      "request_id":"e6cb17dd0699001b813a0...6753e4dca478c7eb6-00058779",
      "sum_initial":{
         "amount":100,
         "currency":"GBP"
      },
      "sum_converted":{
         "amount":100,
         "currency":"GBP"
      },
      "code":"20000",
      "message":"General decline",
      "provider":{
         "id":2901,
         "payment_id":"BARCLAYS-P-10000000420474",
         "auth_code":"",
         "endpoint_id":"Barclays",
         "date":"2020-06-15T11:36:41+0000"
      }
   },
   "signature":"kC6wuur3Q2Dswd7A6R+C...1EaupyvFHs6q/aZ7lW17cUuFhXjHoVWbrTJqQ=="
}

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

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

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

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

Для оплаты через Gate с использованием метода Open Banking in the UK со стороны веб-сервиса необходимо:

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

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



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

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

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

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

При работе с запросами на оплаты с применением метода Open Banking in the UK необходимо учитывать следующее:

  1. Должен использоваться запрос к конечной точке /v2/payment/banks/uk/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 — идентификатор, уникальный в рамках проекта,
      • ip_address — используемый IP-адрес;
    • account — объект, содержащий сведения о банковском счёте пользователя:
      • bank_id — идентификатор банка;
    • return_url — объект, содержащий URL для перенаправления пользователя в веб-сервис:
      • return — URL для перенаправления пользователя на любом шаге оплаты.
  3. Дополнительно, в зависимости от провайдера, рекомендуется указывать имя и фамилию пользователя. Если параметры отсутствуют в запросе, список недостающих параметров отправляется в оповещении на уточнение. Подробнее об уточнении параметров — в разделе Дополнение информации о платеже.

    Рекомендуется использовать следующие объекты и параметры:

    • customer — объект, содержащий сведения о пользователе:
      • first_name — имя,
      • last_name — фамилия.
  4. Валютой платежа может быть только GBP.
  5. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на оплату с применением метода Open Banking in the UK должен содержать идентификаторы проекта и платежа, подпись, IP-адрес и информацию о пользователе, валюту и сумму платежа, идентификатор банка и URL для перенаправления:

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

  "general": {
    "project_id": 1111,
    "payment_id":"Test-sale-001",
    "signature": "52D7C03EA096CAB4F27...EC4280509D293D1094AA793BBC"
  },
  "customer": {
    "id": "customer123",
    "ip_address": "1.2.3.4",
    "first_name": "John",
    "last_name": "Doe"
  },
  "account": {
    "bank_id": 3791
  },
  "payment": {
    "amount": 1000,
    "currency": "GBP"
  },
  "return_url": {
    "return": "http://example.com/return"
  }

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

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

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

  "redirect_data": {
    "method": "GET",
    "url": "http://redirect.bank.exmaple.com"
  }

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

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

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

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

{
   "project_id":239,
   "payment":{
      "id":"ID_461239",
      "type":"purchase",
      "status":"success",
      "date":"2020-06-15T14:55:23+0000",
      "method":"UK banks",
      "sum":{
         "amount":1000,
         "currency":"GBP"
      },
      "description":"ID_461239"
   },
   "customer":{
      "id":"1"
   },
   "operation":{
      "id":59043000050811,
      "type":"sale",
      "status":"success",
      "date":"2020-06-15T14:55:23+0000",
      "created_date":"2020-06-15T14:51:35+0000",
      "request_id":"929c6911448765aedaf4df...79aa8d4adb6b78dc5-00059044",
      "sum_initial":{
         "amount":1000,
         "currency":"GBP"
      },
      "sum_converted":{
         "amount":1000,
         "currency":"GBP"
      },
      "code":"0",
      "message":"Success",
      "provider":{
         "id":2901,
         "payment_id":"385dc36c-7fac-4bf5-a0e6-6a16ebcc1962",
         "auth_code":"",
         "endpoint_id":"Halifax",
         "date":"2020-06-15T14:51:36+0000"
      }
   },
   "signature":"+KDWbziHMNDBSd2Y04Cc...xRb55AnjtvrZc4XgG6iXkJyLHPa3ZbYw=="
}

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

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

{
   "customer":{
      "id":"1"
   },
   "project_id":10801,
   "payment":{
      "id":"ID_542650",
      "type":"purchase",
      "status":"decline",
      "date":"2020-06-15T11:46:42+0000",
      "method":"UK banks",
      "sum":{
         "amount":100,
         "currency":"GBP"
      },
      "description":"ID_542650"
   },
   "operation":{
      "id":58778000050861,
      "type":"sale",
      "status":"decline",
      "date":"2020-06-15T11:46:42+0000",
      "created_date":"2020-06-15T11:36:39+0000",
      "request_id":"e6cb17dd0699001b813a0...6753e4dca478c7eb6-00058779",
      "sum_initial":{
         "amount":100,
         "currency":"GBP"
      },
      "sum_converted":{
         "amount":100,
         "currency":"GBP"
      },
      "code":"20000",
      "message":"General decline",
      "provider":{
         "id":2901,
         "payment_id":"BARCLAYS-P-10000000420474",
         "auth_code":"",
         "endpoint_id":"Barclays",
         "date":"2020-06-15T11:36:41+0000"
      }
   },
   "signature":"kC6wuur3Q2Dswd7A6R+C...1EaupyvFHs6q/aZ7lW17cUuFhXjHoVWbrTJqQ=="
}

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

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

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

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

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

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

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

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