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* | * | * |
| Возвраты | – | – | – | – |
- Ограничения сумм и время проведения платежей зависят от банков.
- Базовое и предельное время определяются следующим образом:
- Базовое время — среднее расчётное время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Это время определяется для условий штатной работы всех технических средств и каналов связи, а также типичных действий со стороны пользователя (там, где они необходимы). Базовое время рекомендуется использовать для реагирования на отсутствие оповещений о результате платежа и выполнения опроса состояния платежа (подробнее).
- Предельное время — максимально допустимое время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Если платёж не был проведён или отклонён за это время, он автоматически переводится в статус
decline. Для индивидуальной настройки предельного времени следует обращаться к специалистам технической поддержки ecommpay.
Сценарии использования
Проведение оплат с использованием метода Blik выполняется с перенаправлением пользователей к сервису Blik, выполнение возвратов — с заявкой со стороны пользователя и уведомлением со стороны веб-сервиса.
Оплаты через Payment Page
Общая информация
Для проведения оплаты через Payment Page с использованием метода Blik со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате. Полная схема проведения оплаты выглядит следующим образом.
- Пользователь на стороне веб-сервиса инициирует оплату.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
- Запрос на проведение оплаты поступает в платёжную платформу.
- В платёжной платформе выполняется приём запроса, с проверкой наличия обязательных параметров и корректной подписи.
- Осуществляется подготовка Payment Page согласно параметрам проекта и вызова.
- Пользователю отображается платёжная форма.
- Пользователь выбирает для оплаты метод Blik.
- В платёжную платформу передаётся запрос на проведение оплаты с использованием метода Blik.
- В платёжной платформе выполняются обработка полученного запроса и его отправка в сервис Blik.
- В сервисе Blik выполняется обработка запроса на оплату.
- От сервиса Blik к платёжной платформе передаются данные для перенаправления пользователя к сервису Blik.
- Данные для перенаправления пользователя передаются к Payment Page.
- Пользователь перенаправляется к сервису Blik.
- Пользователь выполняет необходимые действия для оплаты.
- В сервисе Blik выполняется обработка платежа.
- Информация о результате оплаты отображается пользователю в сервисе Blik.
- Пользователь перенаправляется к Payment Page.
- От сервиса Blik к платёжной платформе направляется информация о результате оплаты.
- От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
- От платёжной платформы к Payment Page направляется информация о результате оплаты.
- Информация о результате оплаты отображается пользователю на Payment Page.
Информация о форматах запросов и оповещений, используемых для проведения оплат методом Blik через Payment Page, приведена далее в этом разделе; общая информация о работе с Payment Page API — в отдельной статье Организация взаимодействия.
Формат запросов
При формировании запросов на открытие платёжной формы с применением метода Blik необходимо учитывать следующее:
- Должен использоваться базовый минимум параметров, обязательный для любого платежа:
project_id— идентификатор проекта, полученный от ecommpay при интеграции;payment_id— идентификатор платежа, уникальный в рамках проекта;payment_currency— код валюты платежа в формате ISO-4217 alpha-3;payment_amount— сумма платежа в дробных единицах валюты;customer_id— идентификатор пользователя в рамках проекта.
- Должен использоваться базовый минимум параметров:
project_id,payment_id,payment_currency,payment_amount,customer_id. - Дополнительно рекомендуется указывать следующие параметры:
customer_first_name— имя пользователя (для предотвращения ошибок при проведении платежей рекомендуется указывать не менее 3 и не более 100 символов);customer_last_name— фамилия пользователя в рамках проекта (для предотвращения ошибок при проведении платежей рекомендуется указывать не менее 3 и не более 100 символов),customer_email— адрес электронной почты.
Если какие-либо из этих параметров отсутствуют в запросе, в платёжной форме могут отображаться поля для ввода пользователем недостающих значений (подробнее — в разделе Дополнение информации о платежах).
- Валютой платежа может быть только PLN.
- Для предварительного выбора метода Blik необходимо указывать код этого метода в параметре
force_payment_method—blik. - Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
- После указания всех целевых параметров необходимо составлять подпись (подробнее).
Таким образом, корректный запрос на открытие платёжной формы с применением метода Blik должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), информацию о пользователе и подпись.
{
"project_id": 120,
"payment_id": "580",
"payment_amount": 1000,
"payment_currency": "PLN",
"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": "PLN",
"customer_id": "customer1",
"customer_first_name": "John",
"customer_last_name": "Johnson",
"customer_email": "customer@example.com',
"signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}
Формат оповещений
Для оповещений о результатах оплат с применением метода Blik используется типовой формат, описание которого представлено в статье Работа с оповещениями.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 423 была проведена оплата в размере 1,00 PLN.
{
"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=="
}
В следующем примере оповещение свидетельствует об отклонённой оплате.
{
"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 также могут быть полезны следующие материалы:
- Организация взаимодействия — о том, как организовать взаимодействие с платёжной платформой через Payment Page.
- Работа с подписью к данным — о порядке создания и проверки подписи в программных запросах и оповещениях при взаимодействии с платёжной платформой.
- Проведение платежей — о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций.
- Проведение оплат — о том, как проводить разовые оплаты через Payment Page.
- Работа с информацией об операциях — о служебных кодах, которые используются в платёжной платформе, чтобы фиксировать информацию о выполнении операций.
Оплаты через Gate
Общая информация
Для проведения оплаты через Gate с использованием метода Blik со стороны веб-сервиса необходимо:
- Отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay.
- Принять промежуточное оповещение от платёжной платформы и осуществить перенаправление пользователя к сервису Blik.
- Принять итоговое оповещение от платёжной платформы.
Полная схема проведения оплаты выглядит следующим образом.
- Пользователь на стороне веб-сервиса инициирует оплату с использованием метода Blik.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Gate.
- Запрос на проведение оплаты поступает в платёжную платформу ecommpay.
- В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
- В платёжной платформе выполняются дальнейшая обработка запроса (с проверкой согласованности параметров) и его отправка в сервис Blik.
- В сервисе Blik выполняется обработка запроса на оплату.
- От сервиса Blik к платёжной платформе передаются данные для перенаправления пользователя к сервису Blik.
- От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя к сервису Blik.
- Пользователь перенаправляется к сервису Blik.
- Пользователь выполняет необходимые действия для оплаты.
- В сервисе Blik выполняется обработка платежа.
- Пользователю отображается информация о результате оплаты.
- Пользователь перенаправляется к веб-сервису.
- От сервиса Blik к платёжной платформе направляется информация о результате оплаты.
- От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
- На стороне веб-сервиса обеспечивается информирование пользователя о результате оплаты.
Информация о форматах запросов и оповещений, используемых для проведения оплат методом Blik через Gate, приведена далее в этом разделе; общая информация о работе с Gate API — в отдельной статье Организация взаимодействия.
Формат запросов
При работе с запросами на оплаты с применением метода Blik необходимо учитывать следующее:
- Для инициирования каждой оплаты должен использоваться отдельный POST-запрос к конечной точке /v2/payment/blik/sale.
- В каждом запросе должны использоваться следующие объекты и параметры:
general— объект, содержащий основные идентификационные сведения запроса:project_id— идентификатор проекта, полученный от ecommpay при интеграции;,payment_id— идентификатор платежа, уникальный в рамках проекта;,signature— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
payment— объект, содержащий сведения о платеже:amount— сумма платежа в дробных единицах валюты;currency— код валюты платежа в формате ISO-4217 alpha-3;
customer— объект, содержащий сведения о пользователе:id— идентификатор, уникальный в рамках проекта;ip_address— IP-адрес, актуальный для инициируемого платежа.
- Дополнительно рекомендуется указывать фамилию и адрес электронной почты пользователя.
customer— объект, содержащий сведения о пользователе:first_name— имя пользователя (для предотвращения ошибок при проведении платежей рекомендуется указывать не менее 3 и не более 100 символов);last_name— фамилия (для предотвращения ошибок при проведении платежей рекомендуется указывать не менее 3 и не более 100 символов);email— адрес электронной почты.
Если какие-либо из этих параметров отсутствуют в запросе, список с названиями недостающих параметров может отправляться в оповещении на уточнение (подробнее — в статье Дополнение информации о платеже).
- Дополнительно можно передавать URL для перенаправления пользователя в веб-сервис.
return_url— объект, содержащий URL для перенаправления пользователя в веб-сервис:return— URL для возврата пользователя в веб-сервис мерчанта во время или после оплаты.
- Валютой платежа может быть только PLN.
- Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.
Таким образом, корректный запрос на оплату с применением метода Blik должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), информацию о пользователе и подпись.
{
"general": {
"project_id": 423,
"payment_id": "5554",
"signature": "PJkV8ej\/UG0Di8LwYipTv+AWoXW\/9MTO8yJA=="
},
"payment": {
"amount": 100,
"currency": "PLN"
},
"customer": {
"id": "123",
"ip_address": "192.0.2.0",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Johnson"
}
}
{
"general": {
"project_id": 423,
"payment_id": "5554",
"signature": "PJkV8ej\/UG0Di8LwYipTv+AWoXW\/9MTO8yJA=="
},
"payment": {
"amount": 100,
"currency": "PLN"
},
"customer": {
"id": "123",
"ip_address": "192.0.2.0",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Johnson"
}
}
Формат промежуточных оповещений для перенаправления пользователей
Для перенаправления пользователей от веб-сервиса мерчанта к сервису Blik при проведении каждого платежа с использованием метода Blik необходимо принять промежуточное оповещение от платёжной платформы и использовать информацию из него, включённую в объект redirect_data. Формат таких оповещений является типовым (подробнее), при этом в состав объекта redirect_data включаются следующие объекты и параметры:
body— объект с данными для отправки в теле запроса;method— параметр с указанием HTTP-метода отправки запроса (GETилиPOST);url— параметр со ссылкой для перенаправления.
"redirect_data": { "body": {}, "method": "GET", "url": "https://www.example.com/pay" }
Формат итоговых оповещений
Для итоговых оповещений об оплатах с применением метода Blik используется типовой формат, описание которого представлено в статье Работа с оповещениями.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 423 была проведена оплата в размере 1,00 PLN.
{
"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=="
}
В следующем примере оповещение свидетельствует об отклонённой оплате.
{
"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.
- Работа с подписью к данным — о том, как создавать и проверять подписи в запросах и оповещениях при взаимодействии с платёжной платформой.
- Проведение платежей — о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций.
- Разовая оплата в одну стадию — о том, как проводить разовые оплаты через Payment Page.
- Работа с информацией об операциях — о служебных кодах, используемых в платёжной платформе для фиксации информации о выполнении операций.
Возвраты через Gate
Общая информация
Для выполнения возврата через Gate с использованием метода Blik со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате. Полная схема выполнения возврата выглядит следующим образом.
- Пользователь инициирует возврат.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на выполнение возврата.
- Запрос на выполнение возврата поступает в платёжную платформу ecommpay.
- В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
- В платёжной платформе обеспечиваются дальнейшая обработка запроса (с проверкой согласованности параметров) и его отправка в сервис Blik.
- В сервисе Blik выполняется обработка возврата.
- От сервиса Blik к платёжной платформе направляется информация о результате возврата.
- От платёжной платформы к веб-сервису направляется оповещение о результате возврата.
- На стороне веб-сервиса обеспечивается информирование пользователя о результате возврата.
Информация о форматах запросов и оповещений, используемых для выполнения возвратов методом Blik через Gate, приведена далее в этом разделе; общая информация о работе с Gate API — в отдельной статье Организация взаимодействия.
Формат запросов
При работе с запросами на возвраты с применением метода Blik необходимо учитывать следующее:
- Для инициирования каждого возврата должен использоваться отдельный POST-запрос к конечной точке /v2/payment/blik/refund.
- В каждом запросе должны использоваться следующие объекты и параметры:
general— объект, содержащий основные идентификационные сведения запроса:project_id— идентификатор проекта, полученный от ecommpay при интеграции;,payment_id— идентификатор платежа, для которого необходимо выполнить возврат;,signature— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее)),
payment— объект, содержащий сведения о возврате:description— комментарий к возврату или его описание;,amount— сумма возврата в дробных единицах валюты (является обязательной при частичном возврате);,currency— код валюты возврата в формате ISO-4217 alpha-3 (является обязательным при частичном возврате).
- Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.
Таким образом, корректный запрос на возврат с применением метода Blik должен содержать идентификаторы проекта и платежа, описание возврата, подпись, а также, при необходимости, код валюты и сумму возврата.
"general": { "project_id": 430, "payment_id": "refund_02", "signature": "4XL1QFaDH3p9Mh0CIcjmOwSwKJ7KLTZYO56lCv+f1M0Sf/7eg==" }, "payment": { "amount": 100, "currency": "PLN", "description": "refund" }
"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.
{
"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 также могут быть полезны следующие материалы:
- Организация взаимодействия — о том, как взаимодействовать с платёжной платформой через Gate.
- Работа с подписью к данным — о том, как создавать и проверять подписи в запросах и оповещениях при взаимодействии с платёжной платформой.
- Проведение платежей — о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций.
- Возвраты средств после оплат — о том, как выполнять возвраты через Gate.
- Работа с информацией об операциях — о служебных кодах, используемых в платёжной платформе для фиксации информации о выполнении операций.
Возвраты через Dashboard
При использовании интерфейса Dashboard можно выполнять одиночные и массовые возвраты методом Blik с единичной и пакетной отправкой запросов, называемые соответственно одиночными и массовыми.
- Для выполнения одиночного возврата необходимо выбрать целевую оплату, открыть карточку этой оплаты, указать сумму возврата, отправить запрос и убедиться в выполнении возврата.
-
Для выполнения массового возврата необходимо подготовить и загрузить файл с информацией обо всех целевых возвратах, отправить пакет запросов и убедиться в выполнении возвратов.
При этом должен использоваться файл формата CSV, структура которого соответствует требованиям, представленным в разделе Сведения о массовых платежах, а параметры возвратов — требованиям, представленным в разделе Возвраты через Gate этой статьи (за исключением пункта о подписи).
Более подробная информацияИнформация о выполнении возвратов через Dashboard представлена в отдельном разделе.
Анализ результатов проведения платежей
Для анализа информации о платежах и операциях, как в отдельности по методу Blik, так и в совокупности с другими методами, можно использовать:
- инструментарий интерфейса Dashboard, с различными реестрами и аналитическими панелями;,
- отчёты в формате CSV, выгружаемые (как разово, так и периодически) через раздел Отчёты интерфейса Dashboard;,
- данные в формате JSON, получаемые по программным запросам через интерфейс Data API.
С вопросами по анализу информации можно обращаться к разделам документации (Dashboard и Использование Data API) и специалистам ecommpay.