Оплата 2: с запросом согласия пользователя и отображением платежной инструкции
При оплате пользователь инициирует платеж, выбирает метод, при необходимости, дает согласие на проведение платежа и получает платежные инструкции для завершения оплаты.
| Регионы использования | Базово доступны: AT, BE, ES, DE, GR, HU, IT, IE, LT, LV, NL, NO, PL, PT |
| Валюты оплаты | Базово доступны: EUR (для AT, BE, ES, DE, GR, IT, IE, LT, LV, NL, PL, PT, RO), HUF (для HU), NOK (для NO), PLN (для PL) |
| Суммы платежей | Информацию уточняйте у курирующего менеджера Benker. Также вы можете уточнить в Dashboard минимальную и максимальную сумму платежа, доступную в вашем проекте. |
| Время проведения платежа | Информацию уточняйте у курирующего менеджера Benker. |
| Конвертация валют | Информацию уточняйте у вашего курирующего менеджера Benker. |
| Возврат | |
| Организация и стоимость подключения | По согласованию с курирующим менеджером Benker |
Особенности
| |
Основные операции
| Интерфейсы | |||
|---|---|---|---|
| Payment Page | Gate | Dashboard | |
| Оплата | |||
Уточнить минимальную и максимальную сумму платежа, доступную в вашем проекте, вы можете в Dashboard. Для этого в Dashboard перейдите в раздел Проекты и выберите вкладку Платежные методы.
Далее подробно рассказывается, что вам нужно делать для проведения платежа, а также о возможностях анализа уже проведенных платежей.
Оплата через Payment Page
Общая информация
Чтобы выполнить оплату через Payment Page с использованием метода Open Banking:
- Отправьте запрос с нужными параметрами и подписью на рабочий URL-адрес платежной платформы Benker.
- Примите от платежной платформы Benker оповещение (callback) с результатом оплаты.
Полная схема оплаты через Payment Page выглядит следующим образом.
- Пользователь инициирует оплату в вашей системе.
- Ваша система передает запрос на оплату через Payment Page на URL-адрес платежной платформы Benker.
- Страница оплаты отображается пользователю.
- Пользователь выбирает на странице оплаты метод Open Banking. В платежной платформе выполняется обработка полученного запроса с выявлением необходимости в получении дополнительных сведений о пользователе. Если необходимо получить такие сведения, выполняются следующие шаги:
- Платежная платформа направляет к Payment Page информацию о необходимости получения дополнительных сведений о пользователе.
- В Payment Page пользователю отображается поля, которые необходимо заполнить для продолжения платежа.
- Пользователь предоставляет необходимые сведения и подтверждает проведение платежа.
- Payment Page отправляет к платежной платформе запрос на продолжение платежа с предоставленными пользователем сведениями.
- Пользователю отображается платежная инструкция на странице оплаты.
- Пользователь выполняет оплату.
- Пользователь перенаправляется обратно на страницу оплаты.
- Сервис провайдера оповещает платежную платформу о результате оплаты.
- Платежная платформа отправляет вашей системе оповещение (callback) о результате оплаты.
- Результат оплаты отображается пользователю на странице оплаты.
Запрос
В запросе на открытие страницы оплаты с использованием метода Open Banking укажите необходимые параметры:
|
||
|---|---|---|
| Параметр | Описание | |
project_id | Идентификатор проекта, полученный от Benker при интеграции. Пример: | |
payment_id | Идентификатор платежа, уникальный в рамках проекта. Пример: | |
customer_id | Идентификатор пользователя, уникальный в рамках проекта. Пример: | |
customer_first_name | Имя пользователя. Пример: | |
customer_last_name | Фамилия пользователя. Пример: | |
customer_email | Адрес электронной почты пользователя. Информацию о необходимости этого параметра для вас уточняйте у специалистов технической поддержки Benker. Пример: | |
customer_account_number | В некоторых случаях, с учетом специфики используемого банка, пользователю может требоваться указывать в Payment Page номер счета (International Bank Account Number (IBAN)), в то время как в других случаях этот номер указывается пользователем уже на стороне провайдера или банка. Поскольку этот номер может указываться только пользователем, он не может быть учтен на стороне провайдера или банка даже при его указании в исходном запросе и должен указываться отдельно.Пример: | |
payment_currency | Код валюты платежа в формате ISO-4217 alpha-3.
Пример: | |
payment_amount | Сумма платежа в дробных единицах валюты без десятичного разделителя (точки или запятой) и пробелов за исключением случаев, когда у валюты нет дробной части. Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Использование дробных единиц валюты и Коды валют. Пример: 100,00 EUR передается как | |
force_payment_method | Параметр, позволяющий пропустить страницу выбора метода и принудительно выбрать Open Banking в качестве платежного метода. Чтобы пропустить страницу выбора метода и принудительно выбрать Open Banking в качестве платежного метода, добавьте в запрос параметр force_payment_method со значением Пример: | |
merchant_return_url | Поскольку при проведении платежа может требоваться дополнительное согласие пользователя, рекомендуется передавать параметр merchant_return_url с указанием адреса для предварительного возвращения пользователя к вашей системе — чтобы в случае отказа от предоставления согласия пользователь мог вернуться к вашей системе с помощью соответствующей ссылки в платежной форме.Пример: | |
signature | Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Работа с подписью к данным. | |
| При необходимости добавьте в запрос необязательные параметры из числа доступных для работы с Payment Page. Подробнее о параметрах запросов в Payment Page см. Параметры вызова платёжной формы. | ||
Вот пример параметров из запроса на открытие страницы оплаты с использованием виджета
EPayWidget:
EPayWidget.run(
{
project_id: 1234,
payment_id: 'payment_47',
customer_id: 'customer_123',
customer_first_name: 'John',
customer_last_name: 'Doe',
customer_email: 'johndoe@example.com',
customer_account_number: 'DE89370400440532013000',
payment_currency: 'EUR',
payment_amount: 10000,
force_payment_method: 'open-banking',
merchant_return_url: 'http://example.com/return',
signature: 'kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y19vySO/RLUkDJrOcZzUCwX6R/ekpZhkIQg=='
}
)Отображение иконок банков на странице оплаты
Платежи в методе Open Banking осуществляются через определенные банки. Поэтому помимо платежного метода, на странице оплаты пользователю предлагается выбрать банк, через который он будет совершать оплату.
Метод Open Banking позволяет вам определить, как отображать значки банков на странице оплаты:
- Выбор банка в два шага Этот вариант используется по умолчанию. Пользователь выбирает банк в два шага: сначала он выбирает Open Banking среди прочих методов, а затем — конкретный банк среди доступных в методе, вводя название банка или номер счета пользователя IBAN (International Bank Account Number).
- Отображение банков только одного метода Чтобы отобразить на странице оплаты только банки (без других платежных методов), доступные в методе Open Banking, передайте в запросе на открытие страницы оплаты код платежного метода
open-bankingв параметре force_payment_method. - Принудительный выбор банка Если в запросе на открытие страницы оплаты передать код платежного метода
open-bankingв параметре force_payment_method вместе с параметром payment_extra_param и идентификатором одного из банков в параметре account_bank_id, то страницы выбора метода и банка будут пропущены, а пользователь будет сразу перенаправлен в сервис банка. Информация об идентификаторах банков, доступных в этом методе, указана в соответствующем разделе Банки для оплаты.Прим.: Значение параметра payment_extra_param необходимо согласовать со специалистами технической поддержки Benker.Далее приведен пример данных из запроса на открытие страницы оплаты с предварительно выбранным банком через виджет
EPayWidget.Рис. 2. Пример данных из запроса на оплату с предварительно выбранным банком EPayWidget.run( { project_id: 1234, payment_id: 'payment_47', customer_id: 'customer_123', customer_first_name: 'John', customer_last_name: 'Doe', customer_email: 'johndoe@example.com', payment_currency: 'EUR', payment_amount: 10000, force_payment_method: 'open-banking', payment_extra_param: 'deeplink', account_bank_id: '12345', signature: 'kUi2x9dKHA5VNU0FY...vySO/RLCv1htT4DqtVUkDJrOcZzUCwX6Rek7pZhkIQg==' } )
Оповещение (callback)
В методе Open Banking результат оплаты платежная платформа возвращает в оповещении. Подробнее о структуре оповещений см. Оповещения.
Вот пример тела оповещения с информацией об успешно выполненной оплате:
{
"project_id": 1234,
"payment": {
"id": "payment_47",
"type": "purchase",
"status": "success",
"date": "2024-12-07T19:08:45+0000",
"method": "open-banking",
"sum": {
"amount": 10000,
"currency": "EUR"
},
"description": ""
},
"customer": {
"id": "customer_123"
},
"operation": {
"id": 47,
"type": "sale",
"status": "success",
"date": "2024-12-07T19:08:45+0000",
"created_date": "2024-12-07T19:08:05+0000",
"request_id": "1a23456bc7890de",
"sum_initial": {
"amount": 10000,
"currency": "EUR"
},
"sum_converted": {
"amount": 10000,
"currency": "EUR"
},
"code": "0",
"message": "Success",
"provider": {
"id": 12345,
"payment_id": "123abc123-123",
"auth_code": ""
}
},
"signature": "U7HQO7ToISZhMPKdM4XrUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}
Вот пример тела оповещения с информацией об отклоненной оплате.
{
"project_id": 1234,
"payment": {
"id": "payment_47",
"type": "purchase",
"status": "decline",
"date": "2024-12-07T19:08:45+0000",
"method": "open-banking",
"sum": {
"amount": 10000,
"currency": "EUR"
},
"description": ""
},
"customer": {
"id": "customer_123"
},
"operation": {
"id": 47,
"type": "sale",
"status": "decline",
"date": "2024-12-07T19:08:45+0000",
"created_date": "2024-12-07T19:08:05+0000",
"request_id": "1a23456bc7890de",
"sum_initial": {
"amount": 10000,
"currency": "EUR"
},
"sum_converted": {
"amount": 10000,
"currency": "EUR"
},
"code": "20000",
"message": "General decline",
"provider": {
"id": 12345,
"payment_id": "123abc123-123",
"auth_code": ""
}
},
"signature": "U7HQO7ToISZhMPKdM4XrUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}
Оплата через Gate
Общая информация
Чтобы выполнить оплату через Gate с использованием метода Open Banking:
- Отправьте запрос с нужными параметрами и подписью на рабочий URL-адрес платежной платформы Benker.
- Получите от платежной платформы оповещение (callback) с информацией о том, какие данные вы должны передать платежной платформе.
- Отправьте запрос с этими данными платежной платформе Benker.
- Примите от платежной платформы Benker оповещение (callback) с результатом оплаты.
Полная схема оплаты с использованием метода Open Banking выглядит следующим образом.
- Пользователь инициирует оплату в вашей системе.
- Ваша система передает запрос на оплату в платежную платформу.
- Платежная платформа отправляет вашей системе ответ с информацией о получении запроса и о результате проверки его корректности (подробнее о структуре ответа см. Формат ответа). В платежной платформе выполняются дальнейшая обработка полученного запроса (с проверкой корректности и согласованности параметров). При этом на стороне провайдера выявляется необходимость в получении дополнительных сведений о пользователе. Если необходимо получить такие сведения, выполняются следующие шаги:
- Платежная платформа направляет вашей системе оповещение о необходимости получения ополнительных сведений о пользователе.
- Ваша система запрашивает дополнительные сведения о пользователе.
- Пользователь предоставляет запрашиваемые сведения и подтверждает проведение платежа.
- Ваша система отправляет к платежной платформе запрос на продолжение платежа с предоставленными пользователем сведениями.
- Платежная платформа генерирует и отправляет вашей системе данные отображения пользователю платежной инструкции в объекте display_data.
- Ваша система отображает пользователю платежную инструкцию.
- Пользователь выполняет оплату.
- Сервис провайдера перенаправляет пользователя в вашу систему.
- Сервис провайдера оповещает платежную платформу о результате оплаты.
- Платежная платформа отправляет в вашу систему оповещение (callback) с результатом оплаты.
- Ваша система направляет пользователю информацию о результате оплаты.
Запрос
Далее представлена информация, необходимая для создания и отправки запроса на оплату с использованием метода Open Banking.
| HTTP-метод запроса | POST |
| Формат тела запроса | JSON |
| Конечная точка | /v2/payment/open-banking/sale |
|
|||
|---|---|---|---|
| Объект | Параметр | Описание | |
general | project_id | Идентификатор проекта, полученный от Benker при интеграции. Пример: | |
payment_id | Идентификатор платежа, уникальный в рамках проекта. Пример: | ||
signature | Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Использование подписи к данным. | ||
customer | id | Идентификатор пользователя, уникальный в рамках проекта. Пример: | |
ip_address | IP-адрес устройства пользователя. Пример: | ||
first_name | Имя пользователя. Пример: | ||
last_name | Фамилия пользователя. Пример: | ||
email | Адрес электронной почты пользователя. Информацию о необходимости этого параметра для вас уточняйте у специалистов технической поддержки Benker. Пример: | ||
language | Код языка платежной страницы. Пример: | ||
account | bank_id | Идентификатор банка пользователя. Пример: | |
payment | currency | Код валюты платежа в формате ISO-4217 alpha-3. Пример: | |
amount | Сумма платежа в дробных единицах валюты без десятичного разделителя (точки или запятой) и пробелов за исключением случаев, когда у валюты нет дробной части. Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Использование дробных единиц валюты и Коды валют. Пример: 100,00 EUR передается как | ||
| При необходимости добавьте в запрос необязательные параметры, указанные в спецификации Gate: API Reference. | |||
Вот пример тела запроса на оплату с использованием метода Open Banking:
{
"general": {
"project_id": 1234,
"payment_id": "payment_47",
"signature": "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y19vySO/RLUkDJrOcZzUCwX6R/ekpZhkIQg=="
},
"customer": {
"id": "customer_123",
"ip_address": "198.51.100.47",
"first_name": "John",
"last_name": "Doe",
"email": "johndoe@example.com",
"language": "EN"
},
"account": {
"bank_id": "593123456789"
},
"payment": {
"currency": "EUR",
"amount": 10000
}
}
Отображение платежной инструкции пользователю
Получив и обработав запрос на оплату, платежная платформа направит вам оповещение (callback) с платежной инструкцией для отображения пользователю.
Чтобы отобразить пользователю платежную инструкцию, используйте информацию из массива display_data.
| Элемент | Описание |
|---|---|
{
"type": "qr_img",
"title": "qr_code_img",
"data": "data:image/png;base64,iVBORU6ZMKV/syvW"
}
|
Данные, которые нужно отобразить в виде QR-кода. Пример: |
{
"type": "deep_link",
"title": "deep_link",
"data": "https://example.com/"
}
|
Ссылка на страницу для перенаправления пользователя в банковское приложение для оплаты. Пример: |
{
"type": "add_info",
"title": "pre_authorization_flow",
"data": "pre_authorization_flow"
}
|
Параметр, указывающий на необходимость повторного отображения платежной инструкции. При первом отображении пользователь дает согласие на получение доступа к счету, после чего возвращается к инструкции и подтверждает проведение платежа. Может отсутствовать в массиве display_data. Пример: |
{
"type": "add_info",
"title": "authorization_flow",
"data": "authorization_flow"
}
|
Параметр, необходимый для отображения платежной инструкции и получения подтверждения на проведение платежа от пользователя. Пример: |
{
"type": "add_info",
"title": "psu_consent_text",
"data": "test consent"
}
|
Текст, который необходимо отобразить пользователю для получения его согласия на проведение платежа. Пример: |
Далее представлен фрагмент оповещения с массивом display_data.
"display_data": [ { "type": "qr_img", "title": "qr_code_img", "data": "data:image/png;base64,iVBORU6ZMKV/syvW" }, { "type": "deep_link", "title": "deep_link", "data": "https://example.com/" }, { "type": "add_info", "title": "pre_authorization_flow", "data": "pre_authorization_flow" }, { "type": "add_info", "title": "authorization_flow", "data": "authorization_flow" }, { "type": "add_info", "title": "psu_consent_text", "data": "test consent" } ]
Промежуточные оповещения
Форматы промежуточных оповещений и запросов для получения дополнительных сведений
В случаях, когда необходимо получить дополнительные сведения о пользователе, от платежной платформы к вашей системе каждый раз направляется промежуточное оповещение с объектом clarification_fields, во вложенных объектах которого описываются объекты и параметры, необходимые для проведения платежа.
Запрос дополнительной информации о пользователе может выглядеть следующим образом.
{
"clarification_fields": {
"customer": {
"type": "object",
"description": "",
"properties": {
"last_name": {
"type": "string",
"description": "Customer's last name"
// Фамилия пользователя - один из возможных параметров при запросе дополнительных сведений
},
}
},
"account": {
"type": "object",
"description": "",
"properties": {
"number": {
"type": "string",
"description": "Customer's International Bank Account Number."
// Номер счета пользователя - один из возможных параметров при запросе дополнительных сведений
}
}
}
}
}
Отправка дополнительных сведений о пользователей в платежную платформу
Введенная пользователем информация должна быть отправлена в платежную платформу в новом запросе. Далее приведены основные характеристики и параметры такого запроса.
| HTTP-метод запроса | POST |
| Формат тела запроса | JSON |
| Конечная точка | /v2/payment/clarification |
|
||||
|---|---|---|---|---|
| Объект | Объект/Параметр | Описание | ||
|
general |
project_id |
Идентификатор проекта, полученный от Benker при интеграции. Пример: |
||
|
payment_id |
Идентификатор платежа, уникальный в рамках проекта. Пример: |
|||
|
signature |
Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Использование подписи к данным. | |||
| В некоторых случаях, пользователю потребуется указать на стороне вашей системы дополнительные сведения о себе. Эти данные стоит передавать в соответствующем параметре объекта additional_data. Например: фамилию пользователя в параметре customer.last_name, номер счета пользователя — IBAN в параметре account.number и т.п. Уточняйте у курирующего менеджера Benker список актуальных для вас параметров. | ||||
Вот пример данных из запроса для передачи в платежную платформу информации о пользователе:
{
"general": {
"project_id": 1234,
"payment_id": "payment_47",
"signature": "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y19vySO/RLUkDJrOcZzUCwX6R/ekpZhkIQg=="
},
"additional_data": {
"customer": {
"last_name":"Doe"
},
"account": {
"number":"1234567890123"
}
}
}
Оповещение (callback)
В методе Open Banking результат оплаты платежная платформа возвращает в оповещении. Подробнее о структуре оповещений см. Оповещения.
Вот пример тела оповещения с информацией об успешно выполненной оплате:
{
"project_id": 1234,
"payment": {
"id": "payment_47",
"type": "purchase",
"status": "success",
"date": "2024-12-07T19:08:45+0000",
"method": "open-banking",
"sum": {
"amount": 10000,
"currency": "EUR"
},
"description": ""
},
"customer": {
"id": "customer_123"
},
"operation": {
"id": 47,
"type": "sale",
"status": "success",
"date": "2024-12-07T19:08:45+0000",
"created_date": "2024-12-07T19:08:05+0000",
"request_id": "1a23456bc7890de",
"sum_initial": {
"amount": 10000,
"currency": "EUR"
},
"sum_converted": {
"amount": 10000,
"currency": "EUR"
},
"code": "0",
"message": "Success",
"provider": {
"id": 12345,
"payment_id": "123abc123-123",
"auth_code": ""
}
},
"signature": "U7HQO7ToISZhMPKdM4XrUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}
Вот пример тела оповещения с информацией об отклоненной оплате.
{
"project_id": 1234,
"payment": {
"id": "payment_47",
"type": "purchase",
"status": "decline",
"date": "2024-12-07T19:08:45+0000",
"method": "open-banking",
"sum": {
"amount": 10000,
"currency": "EUR"
},
"description": ""
},
"customer": {
"id": "customer_123"
},
"operation": {
"id": 47,
"type": "sale",
"status": "decline",
"date": "2024-12-07T19:08:45+0000",
"created_date": "2024-12-07T19:08:05+0000",
"request_id": "1a23456bc7890de",
"sum_initial": {
"amount": 10000,
"currency": "EUR"
},
"sum_converted": {
"amount": 10000,
"currency": "EUR"
},
"code": "20000",
"message": "General decline",
"provider": {
"id": 12345,
"payment_id": "123abc123-123",
"auth_code": ""
}
},
"signature": "U7HQO7ToISZhMPKdM4XrUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}
Банки для оплаты
Поддержка со стороны банков
В каждом запросе на информацию о доступных банках для проведения оплат одним из методов группы Open Banking должны указываться идентификатор проекта, идентификатор, валюта и сумма платежа и подпись к этим данным; при этом рекомендуется передавать реальные данные о платеже, но допускается и указание произвольных значений.
С вопросами о работе с банками, поддерживающими методы группы Open Banking, можно обращаться к курирующему менеджеру Benker.
Запрос списка банков
Далее представлена информация, необходимая для создания и отправки запроса на получение актуального списка банков, поддерживаемых в методе Open Banking.
| HTTP-метод запроса | POST |
| Формат тела запроса | JSON |
| Конечная точка |
/v2/info/banks/open-banking/sale/grouped_list
|
| Полная спецификация конечной точки | /v2/info/banks/open-banking/sale/grouped_list |
|
|||
|---|---|---|---|
| Объект | Параметр | Описание | |
|
general |
project_id |
Идентификатор проекта, полученный от Benker при интеграции. Пример: |
|
|
payment_id |
Идентификатор платежа, уникальный в рамках проекта. Если платеж еще не сформирован, в качестве идентификатора платежа в запросе следует указать произвольное уникальное значение. Пример: |
||
|
signature |
Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Использование подписи к данным. | ||
|
payment |
amount |
Сумма платежа в дробных единицах валюты без десятичного разделителя (точки или запятой) и пробелов за исключением случаев, когда у валюты нет дробной части. Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Коды валют. Пример: 100,00
EUR передается как |
|
|
currency |
Код валюты оплаты в формате ISO-4217 alpha-3. Пример: |
||
|
account |
country |
Страна пользователя в формате ISO 3166-1 alpha-2. Пример: |
|
| При необходимости добавьте в запрос необязательные параметры, указанные в спецификации Gate: API Reference. | |||
Вот пример данных из запроса списка банков, поддерживающих работу с методом Open Banking.
{
"general": {
"project_id": 200,
"payment_id": "ORDER_155860015",
"signature": "K6jll2ym+PtOb3ocZtr345st...=="
},
"payment": {
"amount": 10000,
"currency": "EUR"
},
"account": {
"country":"GB"
}
}
[
{
"minAmount": 100, // Минимальная сумма платежа (в дробных единицах валюты)
"maxAmount": 1000, // Максимальная сумма платежа (в дробных единицах валюты)
"limitCurrency": "EUR", // Код валюты в формате ISO-4217 alpha-3, в которой указаны лимиты (minAmount и maxAmount)
"id": 123, // Индентификатор банка
"abbr": "EXB", // Служебная аббревиатура банка (для внутреннего применения)
"name": "Example Bank", // Основное название банка
"nativeName": "Example Bank", // Локальное название банка
"currencies": [ // Массив с информацией о валютах, поддерживаемых банком
{
"id": 123, // Идентификатор валюты в платежной платформе
"alpha_3_4217": "EUR", // Буквенный код валюты платежа в формате ISO-4217 alpha-3
"number_3_4217": "123", // Цифровой код валюты платежа в формате ISO-4217 alpha-3
"currency_type": "fiat", // Тип валюты
"exponent": 2 // Число дробных разрядов валюты
}
]
}
]
Подтверждение зачисления средств
В некоторых случаях при проведении оплат с использованием методов группы Open Banking обработка платежей на стороне провайдеров и банков может занимать продолжительное время: вплоть до семи дней и даже больше. В связи с этим возможны ситуации, когда первичная информация о проведении или отклонении платежа не соответствует итоговому результату (например, при получении в платформе информации от провайдера об отклонении платежа позднее средства могут быть все же зачислены на счет получателя, и наоборот).
Чтобы обеспечивать в таких случаях корректное уведомление мерчантов о состоянии платежей, в платежной платформе Benker применяется процедура подтверждения зачисления средств получателю. При подключении методов группы Open Banking рекомендуется согласовывать с вашим курирующим менеджером применение этой процедуры, а также перевод платежей, по которым получено подтверждение о том, что средства не зачислены, в статус reversed или decline (это может быть удобным для контроля и анализа платежей).
Технически подтверждение зачисления средств может выполняться по-разному. В одной из схем работы это выглядит следующим образом:
- После выполнения пользователем всех необходимых действий платеж поступает в обработку на стороне сервиса провайдера или банка, в то время как пользователь возвращается к платежному интерфейсу (Payment Page или ваша системаа), где получает информацию о приеме платежа в обработку.
- На стороне платежной платформы выполняется ряд действий:
- Операции
saleприсваивается статусsuccess. - к вашей системе отправляется оповещение об изменении статуса операции.
- Формируется операция
payment confirmation. - Платежу присваивается статус
awaiting confirmation— до получения со стороны провайдера информации о зачислении средств. - к вашей системе отправляется оповещение об изменении статуса платежа.
- Операции
- На стороне провайдера определяется итоговый статус зачисления средств, после чего информация об этом статусе отправляется к платежной платформе.
- На стороне платежной платформы обеспечивается обработка полученной информации, в результате чего операции
payment confirmationи платежу присваиваются итоговые статусы и к вашей системе отправляются соответствующие оповещения.
Для операции payment confirmation предусмотрены следующие итоговые статусы:
success— при получении со стороны провайдера подтверждения того, что средства зачислены. В этом случае платежу присваивается статусsuccessи к вашей системе отправляется итоговое оповещение с информацией о результате оплаты.decline— при получении со стороны провайдера информации о том, что средства не зачислены, либо при отсутствии со стороны провайдера информации о зачислении средств по истечении установленного срока (который по умолчанию составляет 7 дней и может быть изменен через обращение к специалистам технической поддержки Benker).В таких случаях, с учетом свойств проекта на стороне платежной платформы, выполняется один из двух сценариев:
- Формируется операция
reversalи к вашей системе последовательно отправляются соответствующие оповещения: промежуточное, с информацией о том, что средства не были зачислены, и итоговое, с информацией о возврате средств и переводе платежа в статусreversed. - Платеж переводится в статус
declineи к вашей системе направляется итоговое оповещение с информацией об отклонении оплаты.
- Формируется операция
Если помимо получения информации, передаваемой в оповещениях, требуется дополнительно отслеживать изменение статусов платежей и операций, это можно делать с использованием Gate API (через ответы на запросы о состоянии платежа), а также через интерфейс Dashboard.
Описания процедуры подтверждения зачисления средств при работе через Payment Page и Gate представлены в соответствующих разделах этой статьи. С вопросами о работе с этой процедурой можно обращаться к специалистам технической поддержки Benker.