Open Banking in Luxembourg

Обзор

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

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

Тип платёжного метода интернет-банкинг
Регионы использования LU
Валюты платежей EUR
Конвертация валют на стороне ECommPay
Оплаты +
Выплаты
Оплаты по сохранённым данным
Полные возвраты
Частичные возвраты
Опротестования
Особенности
  • При работе с методом Open Banking in Luxembourg требуется получение дополнительного согласия пользователя на проведение платежа с использованием этого метода.
  • Для метода Open Banking in Luxembourg можно задавать дополнительные параметры при вызове Payment Page
Организация и стоимость подключения по согласованию с курирующим менеджером ECommPay

Схема работы

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



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

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

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

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

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

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

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

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

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

Далее в таблице в ознакомительных целях представлена информация об этих банках, которую следует уточнять у курирующего менеджера ECommPay или по запросу /v2/info/banks/luxembourg/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": 1500,
    "currency": "EUR"
  }
}
Табл. 1. Список банков
Банк ID
Deutsche Bank AG, Branch Luxemburg 22681
UBS Luxembourg 22671
Banque de Luxembourg 22661
Societe Generale 22651
Banque et Caisse d'Epargne de l'Etat 22641
ING Luxembourg 22631
Banque Raiffeisen Luxemburg 22621
Banque Internationale a Luxembourg 22611

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

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

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

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

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

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



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

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

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

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

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

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

    Также при выборе некоторых банков пользователю может потребоваться указать на Payment Page номер счёта (International Bank Account Number, IBAN), в то время как при работе с другими банками номер счёта указывается пользователем уже на стороне провайдера. В силу специфики метода этот номер может указываться только пользователем и не может быть указан в запросах.

  3. Рекомендуется передавать в запросе параметр merchant_return_url с указанием URL для перенаправления пользователя к веб-сервису, чтобы в случае отказа от предоставления согласия пользователь мог вернуться к веб-сервису мерчанта, щёлкнув соответствующую кнопку в платёжной форме. При этом, во избежание повторного оформления заказа на стороне веб-сервиса, рекомендуется указать тот адрес, который ведёт на страницу подтверждения заказа.
  4. Можно настраивать отображение страницы Payment Page с выбором метода оплаты.

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

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

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

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

          { 
            payment_id: '580', 
            payment_amount: 1000, 
            payment_currency: 'EUR', 
            project_id: 120,
            force_payment_method: 'online-luxembourg-banks',
            payment_methods_options={"luxembourg": {"banks_id": [22661]}},
            customer_id: 'customer1',
            customer_first_name: 'John',
            customer_last_name: 'Doe',
            signature: "XFyr/D1zXj84lUZVfpbWZol9JAZLnUZoPJKPXRbOqBUpxxa/hOKm2
                                  P8XOqydoyeIi7KdqrcxLFd3GxgPgUzIDg==
          }
  5. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
  6. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

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

    { 
      payment_id: 'X03936', 
      payment_amount: 1000, 
      payment_currency: 'EUR', 
      project_id: 123, 
      customer_id: 'customer1',
      customer_first_name: 'John',
      customer_last_name: 'Doe',
      merchant_return_url: 'http://example.com/return',
      signature: "kUi2x9dKHA...\/RLCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
    }

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

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

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

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

 {
        "project_id": 239,
        "payment": {
            "id": "TEST_PAYMENT_671446",
            "type": "purchase",
            "status": "success",
            "date": "2020-11-03T14:41:38+0000",
            "method": "Luxenbourg Banks",
            "sum": {
                "amount": 1000,
                "currency": "EUR"
            },
            "description": "TEST_PAYMENT_671446"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 77796010023511,
            "type": "sale",
            "status": "success",
            "date": "2020-11-03T14:41:38+0000",
            "created_date": "2020-11-03T14:39:34+0000",
            "request_id": "4727897a23d96203f784...d22c87a7f4f473d93-00077797",
            "sum_initial": {
                "amount": 1000,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "EUR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 3901,
                "payment_id": "t:5nFu358iuKC3vz8g...zQLtgSSoyAQubVf",
                "auth_code": ""
            }
        },
        "signature": "8UuSBBDvR9RlVXJR+3A3JeYOOPhf...1VlLygAOq+NPNKLu37IZ0kw=="
    }

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

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

 {
        "customer": {
            "id": "1"
        },
        "project_id": 10801,
        "payment": {
            "id": "TEST_PAYMENT_624318",
            "type": "purchase",
            "status": "decline",
            "date": "2020-11-03T15:47:39+0000",
            "method": "Luxenbourg Banks",
            "sum": {
                "amount": 100,
                "currency": "EUR"
            },
            "description": "TEST_PAYMENT_624318"
        },
        "operation": {
            "id": 92939010024021,
            "type": "sale",
            "status": "decline",
            "date": "2020-11-03T15:47:39+0000",
            "created_date": "2020-11-03T15:47:02+0000",
            "request_id": "2973231f346e408fcf62f1e3388a...3971c8ccb13-00092940",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "EUR"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 3901,
                "payment_id": ""
            }
        },
        "signature": "GK7q/MHaYQuUqSQiCzWFi.../6UzJhblNPSr7tj1/PWfWgCJLbnaeg=="
    }

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

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

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

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

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

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

При работе с методом Open Banking in Luxembourg требуется получение дополнительного согласия пользователя на проведение платежа с использованием этого метода. Информация о том, что необходимо сделать со стороны веб-сервиса для получения согласия пользователя, представлена в разделе Форматы данных для получения согласия пользователей, а далее приведена полная схема проведения оплаты.



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

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

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

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

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

  1. Должен использоваться запрос к конечной точке /v2/payment/banks/luxembourg/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 — фамилия.
    Также при выборе некоторых банков может потребоваться номер счёта пользователя (International Bank Account Number, IBAN), в то время как при работе с другими банками этот номер указывается пользователем на стороне провайдера. В случаях, когда необходимо указать номер счёта до перенаправления пользователя к сервису провайдера, в оповещении на уточнение указывается параметр number объекта account; и если в исходном запросе не были указаны параметры first_name и last_name объекта customer, то все эти три параметра указываются в одном оповещении на уточнение. В силу специфики метода, если номер счёта пользователя указывается в исходном запросе, он не учитывается при первичной обработке этого запроса, и может быть указан либо на стороне веб-сервиса после получения оповещения на уточнение, либо на стороне провайдера после перенаправления пользователя.
  4. Дополнительно могут использоваться любые другие параметры, указанные в спецификации.

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

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

{
    "general": {
      "project_id": 2990,
      "payment_id": payment_id,
      "signature": "PJkV8ej\/UG0Di8hTng6JvC7vQsaC6tajQVVfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "payment": {
      "amount": 1000,
      "currency": "EUR"
      },
    "customer": {
      "id": "customer1",
      "ip_address": "66.249.64.45",
      "first_name": "John",
      "last_name": "Doe"
    },
    "account":{
      "bank_id": 22651
    },
    "return_url":{
      "return": "http://example.com/return"
 }
}

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

При работе с методом Open Banking in Luxembourg требуется получать дополнительное согласие пользователей на проведение платежей с использованием этого метода. Для проведения платежа с учётом согласия пользователя со стороны веб-сервиса необходимо:

  1. Принять от платёжной платформы оповещение о необходимости получения согласия пользователя (и дополнения информации о платеже, если это необходимо).
  2. Получить от пользователя это согласие (и дополнительные сведения, если это необходимо).
  3. Передать информацию о согласии пользователя (и дополнительные сведения, если это необходимо) в запросе в платёжную платформу.

В оповещении от платёжной платформы в параметре clarification_fields.customer.properties.psu_consent_text.default содержится текст, который необходимо отобразить пользователю для получения его согласия на проведение платежа.

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

{
    "clarification_fields": {
        "customer": {
            "type": "object",
            "description": "",
            "properties": {
                "psu_consent": {
                    "type": "string",
                    "description": "Need to request the users consent to make a payment"
                 },
                "psu_consent_text": {
                    "type": "string",
                    "description": "The text to be displayed on the payment form",
                    "default": "=== The PSU consent text to be displayed on payment page ==="  
}

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

  • general — объект, содержащий основные идентификационные сведения запроса:
    • project_id — идентификатор проекта, к которому относится проводимый платёж.
    • payment_id — идентификатор платежа, к которому относятся отправляемые данные.
    • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным).
  • additional_data — объект с информацией о согласии пользователя на проведение платежа (и дополнительными сведениями, если они необходимы):
    • customer — объект, содержащий сведения о пользователе:
      • psu_consent — информация о получении согласия пользователя на проведение оплаты. Если пользователь дал согласие на проведение платежа, необходимо передать значение 1; если указать иное значение, согласие на проведение платежа запрашивается повторно.
      • psu_consent_text — текст запроса согласия пользователя на проведение оплаты, который был отображён пользователю. В значении этого параметра должен передаваться именно тот текст, который был получен в оповещении о необходимости получения согласия пользователя. Если текст, указанный в запросе, отличается от текста, полученного в оповещении, согласие на проведение платежа запрашивается повторно.

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

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

{
    "general": {
        "project_id": 10571,
        "payment_id": "1234567890",
        "signature": "=== signature ==="
    },
    "additional_data": {
        "customer": {
            "psu_consent": "1",
            "psu_consent_text": "=== The PSU consent text to be displayed on payment page ===",
            "first_name": "Firstname",
            "last_name": "Lastname"
        "account": {
            "number": "AB123456789"
        }
    }
}

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

  • general — объект, содержащий основные идентификационные сведения запроса:
    • project_id — идентификатор проекта, к которому относится проводимый платёж.
    • payment_id — идентификатор платежа, к которому относятся отправляемые данные.
    • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным).
  • additional_data — объект с информацией о согласии пользователя на проведение платежа (и дополнительными сведениями, если они необходимы):
    • customer — объект, содержащий сведения о пользователе:
      • psu_consent — информация о получении согласия пользователя на проведение оплаты. Если пользователь дал согласие на проведение платежа, необходимо передать значение 1; если указать иное значение, согласие на проведение платежа запрашивается повторно.
      • psu_consent_text — текст запроса согласия пользователя на проведение оплаты, который был отображён пользователю. В значении этого параметра должен передаваться именно тот текст, который был получен в оповещении о необходимости получения согласия пользователя. Если текст, указанный в запросе, отличается от текста, полученного в оповещении, согласие на проведение платежа запрашивается повторно.

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

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

{
    "general": {
        "project_id": 10571,
        "payment_id": "1234567890",
        "signature": "=== signature ==="
    },
    "additional_data": {
        "customer": {
            "psu_consent": "1",
            "psu_consent_text": "=== The PSU consent text to be displayed on payment page ===",
            "first_name": "Firstname",
            "last_name": "Lastname""account": {
            "number": "AB123456789"
        }
    }
}

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

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

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

"redirect": {
        "method": "POST",
        "encrypted": [],
        "url": "https://web-app.example.com/app/request-token/rq:3R123"
    }

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

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

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

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

 {
        "project_id": 239,
        "payment": {
            "id": "TEST_PAYMENT_671446",
            "type": "purchase",
            "status": "success",
            "date": "2020-11-03T14:41:38+0000",
            "method": "Luxembourg Banks",
            "sum": {
                "amount": 1000,
                "currency": "EUR"
            },
            "description": "TEST_PAYMENT_671446"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 77796010023511,
            "type": "sale",
            "status": "success",
            "date": "2020-11-03T14:41:38+0000",
            "created_date": "2020-11-03T14:39:34+0000",
            "request_id": "4727897a23d96203f784...d22c87a7f4f473d93-00077797",
            "sum_initial": {
                "amount": 1000,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "EUR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 3901,
                "payment_id": "t:5nFu358iuKC3vz8g...zQLtgSSoyAQubVf",
                "auth_code": ""
            }
        },
        "signature": "8UuSBBDvR9RlVXJR+3A3JeYOOPhf...1VlLygAOq+NPNKLu37IZ0kw=="
    }

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

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

 {
        "customer": {
            "id": "1"
        },
        "project_id": 10801,
        "payment": {
            "id": "TEST_PAYMENT_624318",
            "type": "purchase",
            "status": "decline",
            "date": "2020-11-03T15:47:39+0000",
            "method": "Luxembourg Banks",
            "sum": {
                "amount": 100,
                "currency": "EUR"
            },
            "description": "TEST_PAYMENT_624318"
        },
        "operation": {
            "id": 92939010024021,
            "type": "sale",
            "status": "decline",
            "date": "2020-11-03T15:47:39+0000",
            "created_date": "2020-11-03T15:47:02+0000",
            "request_id": "2973231f346e408fcf62f1e3388a...3971c8ccb13-00092940",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "EUR"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 3901,
                "payment_id": ""
            }
        },
        "signature": "GK7q/MHaYQuUqSQiCzWFi.../6UzJhblNPSr7tj1/PWfWgCJLbnaeg=="
    }

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

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

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

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

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

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

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

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