Multibanco

Обзор

Введение

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 и принять оповещение о результате. Полная схема проведения оплаты выглядит следующим образом.

Рис.: Проведение оплаты через 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=="
}

Рис.: Пример достаточного набора данных для запроса на оплату

{
   "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.

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

{
{
        "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=="
    }
}

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

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

{
{
        "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. Принять итоговое оповещение от платёжной платформы.

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



Рис.: Проведение оплаты через 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"
    }
}

Рис.: Пример достаточного набора данных для запроса на оплату

{
    "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 — номер (идентификатор) платежа для совершения оплаты.

Рис.: Пример объекта 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.

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

{
{
        "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=="
    }
}

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

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

{
{
        "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.