Multibanсo

Обзор

Введение

Multibanсo — метод, позволяющий проводить платежи в евро с использованием банковских счетов в Португалии. Для этого метода в платёжной платформе ecommpay поддерживаются оплаты.

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

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

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

Схема работы

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



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

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

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

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

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

Проведение оплат с использованием метода Multibanсo осуществляется с отображением платёжной инструкции пользователям.

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

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

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

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

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

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

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

  1. Должен использоваться базовый минимум параметров, обязательный для любого платежа:
    • project_id — идентификатор проекта, полученный от ecommpay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — код валюты платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в дробных единицах валюты;
    • customer_id — идентификатор пользователя в рамках проекта.
  2. Должен использоваться базовый минимум параметров: project_id, payment_id, payment_currency, payment_amount, customer_id.
  3. Валютой платежа может быть только EUR.
  4. Дополнительно рекомендуется указывать имя, фамилию и адрес электронной почты в параметрах customer_first_name, customer_last_name и customer_email. Если какие-либо из этих параметров отсутствуют в запросе, в платёжной форме могут отображаться поля для ввода пользователем недостающих значений (подробнее — в разделе Дополнение информации о платежах).
  5. Для предварительного выбора метода Multibanсo необходимо указывать код этого метода в параметре force_payment_methodmultibanco.
  6. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
  7. После указания всех целевых параметров необходимо составлять подпись (подробнее).

Таким образом, корректный запрос на открытие платёжной формы с применением метода Multibanсo должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), информацию о пользователе и подпись.

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

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

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

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

Рис. 5. Пример данных из оповещения о проведении оплаты
{
{
        "project_id": 238,
        "payment": {
            "id": "TEST_1560760354708",
            "type": "purchase",
            "status": "success",
            "date": "2019-06-17T08:56:47+0000",
            "method": "multibanco",
            "sum": {
                "amount": 1000,
                "currency": "EUR"
            },
            "description": ""
        },
        "operation": {
            "id": 29891000002914,
            "type": "sale",
            "status": "success",
            "date": "2019-06-17T08:56:47+0000",
            "created_date": "2019-06-17T08:50:34+0000",
            "request_id": "0d6aabd20c7925f1719b7cb63f728b32a3450cf0",
            "sum_initial": {
                "amount": 1000,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "EUR"
            },
            "provider": {
                "id": 1208,
                "payment_id": "148907",
                "date": "2019-06-17T08:56:46+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "V0zYWk7OzwfcMJeQIHwj75hpkuXFNqHjYGMdfhycMw=="
    }
}

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

Рис. 6. Пример данных из оповещения об отклонении оплаты
{
{
        "project_id": 238,
        "payment": {
            "id": "TEST_15593086938557",
            "type": "purchase",
            "status": "decline",
            "date": "2019-05-31T13:36:03+0000",
            "method": "multibanco",
            "sum": {
                "amount": 100,
                "currency": "EUR"
            },
            "description": "TEST_15593086938557"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 24680000002456,
            "type": "sale",
            "status": "decline",
            "date": "2019-05-31T13:36:03+0000",
            "created_date": "2019-05-31T13:20:11+0000",
            "request_id": "c4a6cb475cf610bac95feba1",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "EUR"
            },
            "provider": {
                "id": 1208,
                "payment_id": ""
            },
            "code": "603",
            "message": "Auto decline"
        },
        "signature": "KDgghuSnXgvc9V9smeF+resLz/88b/uRrI04ggf2ALg=="
    }
}

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

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

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

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

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

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

Полная схема проведения оплаты выглядит следующим образом.



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

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

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

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

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

Таким образом, корректный запрос на оплату с применением метода Multibanсo должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), информацию о пользователе, URL для перенаправления, а также подпись.

{
    "general": {
        "project_id": 2990,
        "payment_id": "payment_id",
        "signature": "PJkV8ej\/UGSaRfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "customer": {
      "ip_address": "192.0.2.0",
      "email": "Johnson@example.com",
      "first_name": "John",
      "last_name": "Johnson",
      "id": "customer123"
    },
    "payment": {
      "amount": 1000,
      "currency": "EUR"
    },
    "return_url": {
      "return": "http://example.com"
    }
}
Рис. 8. Пример достаточного набора данных для запроса на оплату
{
    "general": {
        "project_id": 2990,
        "payment_id": "payment_id",
        "signature": "PJkV8ej\/UGSaRfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "customer": {
      "ip_address": "192.0.2.0",
      "email": "Johnson@example.com",
      "first_name": "John",
      "last_name": "Johnson",
      "id": "customer123"
    },
    "payment": {
      "amount": 1000,
      "currency": "EUR"
    },
    "return_url": {
      "return": "http://example.com"
    }
}

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

Для отображения пользователю инструкции по оплате необходимо принять оповещение от платёжной платформы, содержащее объект provider_extra_fields с необходимыми данными:
  • service_suppler_id — идентификатор банка, выбранного пользователем для оплаты,
  • payment_reference — номер (идентификатор) платежа для совершения оплаты.
Рис. 9. Пример объекта provider_extra_fields
{
"provider_extra_fields": {
            "service_suppler_id": "11854",
            "payment_reference": "646511672",
            "merchant_site_url": "https://example.com/"
        }
}

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

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

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

Рис. 10. Пример данных из оповещения о проведении оплаты
{
{
        "project_id": 238,
        "payment": {
            "id": "TEST_1560760354708",
            "type": "purchase",
            "status": "success",
            "date": "2019-06-17T08:56:47+0000",
            "method": "multibanco",
            "sum": {
                "amount": 1000,
                "currency": "EUR"
            },
            "description": ""
        },
        "operation": {
            "id": 29891000002914,
            "type": "sale",
            "status": "success",
            "date": "2019-06-17T08:56:47+0000",
            "created_date": "2019-06-17T08:50:34+0000",
            "request_id": "0d6aabd20c7925f1719b7cb63f728b32a3450cf0",
            "sum_initial": {
                "amount": 1000,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "EUR"
            },
            "provider": {
                "id": 1208,
                "payment_id": "148907",
                "date": "2019-06-17T08:56:46+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "V0zYWk7OzwfcMJeQIHwj75hpkuXFNqHjYGMdfhycMw=="
    }
}

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

Рис. 11. Пример данных из оповещения об отклонении оплаты
{
{
        "project_id": 238,
        "payment": {
            "id": "TEST_15593086938557",
            "type": "purchase",
            "status": "decline",
            "date": "2019-05-31T13:36:03+0000",
            "method": "multibanco",
            "sum": {
                "amount": 100,
                "currency": "EUR"
            },
            "description": "TEST_15593086938557"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 24680000002456,
            "type": "sale",
            "status": "decline",
            "date": "2019-05-31T13:36:03+0000",
            "created_date": "2019-05-31T13:20:11+0000",
            "request_id": "c4a6cb475cf610bac95feba1",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "EUR"
            },
            "provider": {
                "id": 1208,
                "payment_id": ""
            },
            "code": "603",
            "message": "Auto decline"
        },
        "signature": "KDgghuSnXgvc9V9smeF+resLz/88b/uRrI04ggf2ALg=="
    }
}

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

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

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

Для анализа информации о платежах и операциях, как в отдельности по методу Multibanсo, так и в совокупности с другими методами, можно использовать:

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

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