Blik

Обзор

Введение

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

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

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

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

Схема работы

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



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

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

Суммы, PLN ¹ Время ²
минимум максимум базовое предельное
Оплаты 0,01 10 000,00* * *
Возвраты
Прим.:
  1. Ограничения сумм и время проведения платежей зависят от банков.
  2. Базовое и предельное время определяются следующим образом:
    • Базовое время — среднее расчётное время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Это время определяется для условий штатной работы всех технических средств и каналов связи, а также типичных действий со стороны пользователя (там, где они необходимы). Базовое время рекомендуется использовать для реагирования на отсутствие оповещений о результате платежа и выполнения опроса состояния платежа (подробнее).
    • Предельное время — максимально допустимое время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Если платёж не был проведён или отклонён за это время, он автоматически переводится в статус decline. Для индивидуальной настройки предельного времени следует обращаться к специалистам технической поддержки ecommpay.

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

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

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

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

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



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

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

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

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

  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. Дополнительно рекомендуется указывать следующие параметры:
    • customer_last_name — фамилия пользователя в рамках проекта (для предотвращения ошибок при проведении платежей рекомендуется указывать не менее 3 и не более 100 символов),
    • customer_email — адрес электронной почты.

    Если какие-либо из этих параметров отсутствуют в запросе, в платёжной форме могут отображаться поля для ввода пользователем недостающих значений (подробнее — в разделе Дополнение информации о платежах).

  4. Валютой платежа может быть только PLN.
  5. Для предварительного выбора метода Blik необходимо указывать код этого метода в параметре force_payment_methodblik.
  6. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
  7. После указания всех целевых параметров необходимо составлять подпись (подробнее).

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

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

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

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

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

Рис. 6. Пример данных из оповещения о проведении оплаты
{
        "project_id": 423,
        "payment": {
            "id": "03315",
            "type": "purchase",
            "status": "success",
            "date": "2022-05-12T14:32:59+0000",
            "method": "blik",
            "sum": {
                "amount": 100,
                "currency": "PLN"
            },
            "description": "PAYMENT_03315"
        },
            "customer": {
            "id": "11"
        },
        "operation": {
            "id": 50241,
            "type": "sale",
            "status": "success",
            "date": "2022-05-09T09:32:10+0000",
            "created_date": "2022-05-09T09:20:09+0000",
            "request_id": "6db6ed63860b74b33b0c870-00010993",
            "sum_initial": {
                "amount": 100,
                "currency": "PLN"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "PLN"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 151,
                "payment_id": "8464654",
                "auth_code": ""
            }
        },
        "signature": "5xpLaag4iVH4p5poiI25KSUQWESwbg/gVj4fWfTzVBg=="
    }

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

Рис. 7. Пример данных из оповещения об отклонении оплаты
 {
        "project_id": 423,
        "payment": {
            "id": "3614",
            "type": "purchase",
            "status": "decline",
            "date": "2022-05-16T08:16:29+0000",
            "method": "blik",
            "sum": {
                "amount": 100,
                "currency": "PLN"
            },
            "description": "PAYMENT_3614"
        }, 
        "customer": {
            "id": "11"
        },
        "operation": {
            "id": 73761,
            "type": "sale",
            "status": "decline",
            "date": "2022-05-16T08:16:29+0000",
            "created_date": "2022-05-16T08:06:20+0000",
            "request_id": "b4aa45de7042c95b992e9a5ab874bfbcf-00051169",
            "sum_initial": {
                "amount": 100,
                "currency": "PLN"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "PLN"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 151,
                "payment_id": "600325",
                "auth_code": ""
            }
        },
        "signature": "wn7dHQhfgluzGfw1EJGZ5tHfS8oTW1EsxEhvJW6Tiw=="
    }

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

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

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

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

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

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

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



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

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

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

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

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

    Если какие-либо из этих параметров отсутствуют в запросе, список с названиями недостающих параметров может отправляться в оповещении на уточнение (подробнее — в статье Дополнение информации о платеже).

  4. Дополнительно можно передавать URL для перенаправления пользователя в веб-сервис.
    • return_url — объект, содержащий URL для перенаправления пользователя в веб-сервис:
      • return — URL для возврата пользователя в веб-сервис мерчанта во время или после оплаты.
  5. Валютой платежа может быть только PLN.
  6. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.

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

{
    "general": {
      "project_id": 423,
      "payment_id": "5554",
      "signature": "PJkV8ej\/UG0Di8LwY3T\/pOMeSaRfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "payment": {
      "amount": 100,
      "currency": "PLN"
    },
    "customer": {
      "last_name": "Johnson",
      "id": "123",
      "ip_address": "192.0.2.0",
      "email": "customer@example.com"
    }  
}
Рис. 9. Пример достаточного набора данных для запроса на оплату
{
    "general": {
      "project_id": 423,
      "payment_id": "5554",
      "signature": "PJkV8ej\/UG0Di8LwY3T\/pOMeSaRfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "payment": {
      "amount": 100,
      "currency": "PLN"
    },
    "customer": {
      "last_name": "Johnson",
      "id": "123",
      "ip_address": "192.0.2.0",
      "email": "customer@example.com"
    }  
}

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

Для перенаправления пользователей от веб-сервиса мерчанта к сервису Blik при проведении каждого платежа с использованием метода Blik необходимо принять промежуточное оповещение от платёжной платформы и использовать информацию из него, включённую в объект redirect_data. Формат таких оповещений является типовым (подробнее), при этом в состав объекта redirect_data включаются следующие объекты и параметры:

  • body — объект с данными для отправки в теле запроса;
  • method — параметр с указанием HTTP-метода отправки запроса (GET или POST);
  • url — параметр со ссылкой для перенаправления.
Рис. 10. Пример объекта redirect_data
  "redirect_data": {
    "body": {},
    "method": "GET",
    "url": "https://www.example.com/pay"
  }

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

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

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

Рис. 11. Пример данных из оповещения о проведении оплаты
{
        "project_id": 423,
        "payment": {
            "id": "03315",
            "type": "purchase",
            "status": "success",
            "date": "2022-05-12T14:32:59+0000",
            "method": "blik",
            "sum": {
                "amount": 100,
                "currency": "PLN"
            },
            "description": "PAYMENT_03315"
        },
            "customer": {
            "id": "11"
        },
        "operation": {
            "id": 50241,
            "type": "sale",
            "status": "success",
            "date": "2022-05-09T09:32:10+0000",
            "created_date": "2022-05-09T09:20:09+0000",
            "request_id": "6db6ed63860b74b33b0c870-00010993",
            "sum_initial": {
                "amount": 100,
                "currency": "PLN"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "PLN"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 151,
                "payment_id": "8464654",
                "auth_code": ""
            }
        },
        "signature": "5xpLaag4iVH4p5poiI25KSUQ/gVj4fWfTzVBg=="
    }

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

Рис. 12. Пример данных из оповещения об отклонении оплаты
 {
        "project_id": 423,
        "payment": {
            "id": "3614",
            "type": "purchase",
            "status": "decline",
            "date": "2022-05-16T08:16:29+0000",
            "method": "blik",
            "sum": {
                "amount": 100,
                "currency": "PLN"
            },
            "description": "PAYMENT_3614"
        }, 
        "customer": {
            "id": "11"
        },
        "operation": {
            "id": 73761,
            "type": "sale",
            "status": "decline",
            "date": "2022-05-16T08:16:29+0000",
            "created_date": "2022-05-16T08:06:20+0000",
            "request_id": "b4aa45de7042c95b992e9a5ab874bfbcf-00051169",
            "sum_initial": {
                "amount": 100,
                "currency": "PLN"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "PLN"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 151,
                "payment_id": "600325",
                "auth_code": ""
            }
        },
        "signature": "wn7dHQhfVYLPZuVx8r0ggluzGf8oTW1EsxEhvJW6Tiw=="
    }

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

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

Возвраты через Gate

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

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



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

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

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

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

  1. Для инициирования каждого возврата должен использоваться отдельный POST-запрос к конечной точке /v2/payment/blik/refund.
  2. В каждом запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ecommpay при интеграции;,
      • payment_id — идентификатор платежа, для которого необходимо выполнить возврат;,
      • signature — подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью); (подробнее)),
    • payment — объект, содержащий сведения о возврате:
      • description — комментарий к возврату или его описание;,
      • amount — сумма возврата в дробных единицах валюты (является обязательной при частичном возврате);,
      • currency — код валюты возврата в формате ISO-4217 alpha-3 (является обязательным при частичном возврате).
  3. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.

Таким образом, корректный запрос на возврат с применением метода Blik должен содержать идентификаторы проекта и платежа, описание возврата, подпись, а также, при необходимости, код валюты и сумму возврата.

"general": {    
    "project_id": 430,    
    "payment_id": "refund_02",   
    "signature": "4XL1QFaDH3p9Mh0CIcjmOwSwKJ7KLTZYO56lCv+f1M0Sf/7eg=="
  },
  "payment": {    
    "amount": 100,    
    "currency": "PLN",
    "description": "refund"
  }
Рис. 14. Пример достаточного набора данных для запроса на возврат
"general": {    
    "project_id": 430,    
    "payment_id": "refund_02",   
    "signature": "4XL1QFaDH3p9Mh0CIcjmOwSwKJ7KLTZYO56lCv+f1M0Sf/7eg=="
  },
  "payment": {    
    "amount": 100,    
    "currency": "PLN",
    "description": "refund"
  }

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 171 для пользователя user_33 был выполнен возврат в размере 50,00 PLN.

Рис. 15. Пример данных из оповещения о выполнении возврата
{
        "project_id": 171,
        "payment": {
            "id": "PAYMENT_6315",
            "type": "purchase",
            "status": "refunded",
            "date": "2022-05-12T14:32:59+0000",
            "method": "blik",
            "sum": {
                "amount": 0,
                "currency": "PLN"
            },
            "description": "REFUND_FOR_PAYMENT_6315"
        },
            "customer": {
            "id": "user_33"
        },
        "operation": {
            "id": 10992010050461,
            "type": "refund",
            "status": "success",
            "date": "2022-05-12T14:32:59+0000",
            "created_date": "2022-05-12T14:32:56+0000",
            "request_id": "1d970130f663c4639a2058a6b4727c9b710ddb3-00010993",
            "sum_initial": {
                "amount": 5000,
                "currency": "PLN"
            },
            "sum_converted": {
                "amount": 5000,
                "currency": "PLN"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 151,
                "payment_id": "151983",
                "auth_code": ""
            }
        },
        "signature": "TueTURmjrc9Vw2b1LtOG1NCCRA+UO0ov3wWc6ueXYUSTdxaZHj0w=="
    }

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

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

Возвраты через Dashboard

При использовании интерфейса Dashboard можно выполнять одиночные и массовые возвраты методом Blik с единичной и пакетной отправкой запросов, называемые соответственно одиночными и массовыми.

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

    При этом должен использоваться файл формата CSV, структура которого соответствует требованиям, представленным в разделе Сведения о массовых платежах, а параметры возвратов — требованиям, представленным в разделе Возвраты через Gate этой статьи (за исключением пункта о подписи).

Более подробная информацияИнформация о выполнении возвратов через Dashboard представлена в отдельном разделе.

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

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

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

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