Jump to main content
  • Платёжные методы
    • Клаcсические карточные платежи
    • Open Banking
      • Open Banking - Оплата 1: с запросом согласия и перенаправлением пользователя
      • Open Banking - Оплата 2: с запросом согласия пользователя и отображением платежной инструкции
      • Анализ результатов проведения платежей
  1. Home
  2. Платёжные методы
  3. Open Banking
  4. Open Banking - Оплата 1: с запросом согласия и перенаправлением пользователя

Open Banking - Оплата 1: с запросом согласия и перенаправлением пользователя

При оплате пользователь инициирует платеж, выбирает метод, при необходимости, дает согласие на проведение платежа и перенаправляется для завершения оплаты.

Регионы использования Базово доступны: 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
Особенности
  • Информацию о покрытии поддерживаемых стран и валют для работы с методами Open Banking (с учетом активного развития этой группы методов и возможностей провайдеров) можно уточнять у курирующего менеджера Benker.
  • С учетом специфики задействуемых провайдеров и банков в некоторых случаях пользователи должны предоставлять дополнительное согласие на проведение платежей с использованием открытых банковских протоколов, что добавляет в платежные сценарии соответствующие шаги (подробнее далее).
  • При проведении оплат может использоваться процедура получения подтверждения о зачислении средств (подробнее далее).
  • Открытие страницы оплаты в режиме iframe недоступно.

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

Интерфейсы
Payment Page Gate Dashboard
Оплата

Уточнить минимальную и максимальную сумму платежа, доступную в вашем проекте, вы можете в Dashboard. Для этого в Dashboard перейдите в раздел Проекты и выберите вкладку Платежные методы.

Далее подробно рассказывается, что вам нужно делать для проведения платежа, а также о возможностях анализа уже проведенных платежей.

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

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

Чтобы выполнить оплату через Payment Page с использованием метода Open Banking:

  1. Отправьте запрос с нужными параметрами и подписью на рабочий URL-адрес платежной платформы Benker.
  2. Примите от платежной платформы Benker оповещение (callback) с результатом оплаты.

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



Рис. 1. Здесь описаны шаги оплаты через Payment Page
  1. Пользователь инициирует оплату в вашей системе.
  2. Ваша система передает запрос на оплату через Payment Page на URL-адрес платежной платформы Benker.
  3. Страница оплаты отображается пользователю.
  4. Пользователь выбирает на странице оплаты метод Open Banking. В платежной платформе выполняется обработка полученного запроса с выявлением необходимости в получении дополнительного согласия пользователя и дополнительных сведений о нем. Если необходимо получить такое согласие (и сведения), выполняются следующие шаги:
    1. Платежная платформа направляет к Payment Page информацию о необходимости получения дополнительного согласия пользователя на проведение оплаты и, если актуально, дополнительных сведений.
    2. В Payment Page пользователю отображается уведомление о необходимости подтвердить проведение оплаты и, если актуально, поля, которые необходимо заполнить для продолжения платежа.
    3. Пользователь предоставляет необходимые сведения (если они были запрошены), соглашается с указанной информацией и подтверждает проведение платежа.
    4. Payment Page отправляет к платежной платформе запрос на продолжение платежа с предоставленными пользователем сведениями.
  5. Пользователь перенаправляется в сервис провайдера.
  6. Пользователь выполняет оплату.
  7. Пользователь перенаправляется обратно на страницу оплаты.
  8. Сервис провайдера оповещает платежную платформу о результате оплаты.
  9. Платежная платформа отправляет вашей системе оповещение (callback) о результате оплаты.
  10. Результат оплаты отображается пользователю на странице оплаты.

Запрос

В запросе на открытие страницы оплаты с использованием метода Open Banking укажите необходимые параметры:

Табл. 1. Базовые параметры запроса в Payment Page

strictly required — параметр обязательно должен присутствовать в начальном запросе.

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

optional — параметр необязателен, но в общем случае его наличие в запросе способствует оптимизации проведения платежа, например упрощает процесс платежа для пользователя или повышает процент успешных платежей.

ПараметрОписание

project_id
integer
strictly required

Идентификатор проекта, полученный от Benker при интеграции.

Пример: 1234

payment_id
string
strictly required

Идентификатор платежа, уникальный в рамках проекта.

Пример: payment_47

customer_id
string
strictly required

Идентификатор пользователя, уникальный в рамках проекта.

Пример: customer_123

customer_first_name
string
required

Имя пользователя.

Пример: John

customer_last_name
string
required

Фамилия пользователя.

Пример: Doe

customer_email
string
optional

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

Пример: johndoe@example.com

customer_account_number
string
optional

В некоторых случаях, с учетом специфики используемого банка, пользователю может требоваться указывать в Payment Page номер счета (International Bank Account Number (IBAN)), в то время как в других случаях этот номер указывается пользователем уже на стороне провайдера или банка. Поскольку этот номер может указываться только пользователем, он не может быть учтен на стороне провайдера или банка даже при его указании в исходном запросе и должен указываться отдельно.

Пример: DE89370400440532013000

payment_currency
string
strictly required

Код валюты платежа в формате ISO-4217 alpha-3.

Пример: EUR

payment_amount
integer
strictly required

Сумма платежа в дробных единицах валюты без десятичного разделителя (точки или запятой) и пробелов за исключением случаев, когда у валюты нет дробной части.

Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Использование дробных единиц валюты и Коды валют.

Пример: 100,00 EUR передается как 10000

force_payment_method
string
optional

Параметр, позволяющий пропустить страницу выбора метода и принудительно выбрать Open Banking в качестве платежного метода.

Чтобы пропустить страницу выбора метода и принудительно выбрать Open Banking в качестве платежного метода, добавьте в запрос параметр force_payment_method со значением open-banking. (Подробнее о предварительном выборе метода см. Предварительный выбор платёжных методов.)

Пример: force_payment_method: 'open-banking'

merchant_return_url
string
optional

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

Пример: http://example.com/return

signature
string
strictly required

Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Работа с подписью к данным.
При необходимости добавьте в запрос необязательные параметры из числа доступных для работы с 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 результат оплаты платежная платформа возвращает в оповещении. Подробнее о структуре оповещений см. Оповещения.

Вот пример тела оповещения с информацией об успешно выполненной оплате:

Рис. 3. Пример тела оповещения об успешно выполненной оплате
{
    "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=="
}

Вот пример тела оповещения с информацией об отклоненной оплате.

Рис. 4. Пример тела оповещения об отклоненной оплате
{
    "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:

  1. Отправьте запрос с нужными параметрами и подписью на рабочий URL-адрес платежной платформы Benker.
  2. Получите от платежной платформы оповещение (callback) с информацией о том, какие данные вы должны передать платежной платформе.
  3. Отправьте запрос с этими данными платежной платформе Benker.
  4. Примите от платежной платформы Benker оповещение (callback) с результатом оплаты.

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



Рис. 5. Здесь описаны шаги оплаты через Gate
  1. Пользователь инициирует оплату в вашей системе.
  2. Ваша система передает запрос на оплату в платежную платформу.
  3. Платежная платформа отправляет вашей системе ответ с информацией о получении запроса и о результате проверки его корректности (подробнее о структуре ответа см. Формат ответа). В платежной платформе выполняются дальнейшая обработка полученного запроса (с проверкой корректности и согласованности параметров). При этом на стороне провайдера выявляется необходимость в получении дополнительного согласия пользователя и дополнительных сведений о нем. Если необходимо получить такое согласие (и сведения), выполняются следующие шаги:
    1. Платежная платформа направляет вашей системе оповещение о необходимости получения дополнительного согласия пользователя на проведение оплаты и, если актуально, дополнительных сведений.
    2. Ваша система запрашивает согласие пользователя на проведение платежа и, если требуется, дополнительные сведения.
    3. Пользователь предоставляет запрашиваемые сведения, соглашается с указанной информацией и подтверждает проведение платежа.
    4. Ваша система отправляет к платежной платформе запрос на продолжение платежа с предоставленными пользователем сведениями.
  4. Платежная платформа генерирует и отправляет вашей системе данные для перенаправления пользователя в сервис провайдера в объекте redirect_data.
  5. Ваша система перенаправляет пользователя в сервис провайдера.
  6. Пользователь выполняет оплату.
  7. Сервис провайдера перенаправляет пользователя в вашу систему.
  8. Сервис провайдера оповещает платежную платформу о результате оплаты.
  9. Платежная платформа отправляет в вашу систему оповещение (callback) с результатом оплаты.
  10. Ваша система направляет пользователю информацию о результате оплаты.

Запрос

Далее представлена информация, необходимая для создания и отправки запроса на оплату с использованием метода Open Banking.

HTTP-метод запроса POST
Формат тела запроса JSON
Конечная точка /v2/payment/open-banking/sale
Табл. 2. Базовые параметры запроса на оплату

strictly required — параметр обязательно должен присутствовать в начальном запросе.

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

optional — параметр необязателен, но в общем случае его наличие в запросе способствует оптимизации проведения платежа, например упрощает процесс платежа для пользователя или повышает процент успешных платежей.

ОбъектПараметрОписание

general
object
strictly required

project_id
integer
strictly required

Идентификатор проекта, полученный от Benker при интеграции.

Пример: 1234

payment_id
string
strictly required

Идентификатор платежа, уникальный в рамках проекта.

Пример: payment_47

signature
string
strictly required

Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Использование подписи к данным.

customer
object
strictly required

id
string
strictly required

Идентификатор пользователя, уникальный в рамках проекта.

Пример: customer_123

ip_address
string
strictly required

IP-адрес устройства пользователя.

Пример: 198.51.100.47

first_name
string
required

Имя пользователя.

Пример: John

last_name
string
required

Фамилия пользователя.

Пример: Doe

email
string
optional

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

Пример: johndoe@example.com

language
string
optional

Код языка платежной страницы.

Пример: EN

account
object
strictly required

number
string
optional

В некоторых случаях, с учетом специфики используемого банка, пользователю может требоваться указывать на стороне вашей системы номер счета (International Bank Account Number, IBAN), в то время как в других случаях этот номер указывается пользователем на стороне провайдера или банка. При этом, в силу специфики метода, даже если номер счета пользователя указывается в исходном запросе, он не учитывается при первичной обработке этого запроса и может быть запрошен отдельно.

Пример: DE89370400440532013000

bank_id
string
strictly required

Идентификатор банка пользователя.

Пример: 593123456789

bank_code
string
optional

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

Пример: 1234567890

payment
object
strictly required

currency
string
strictly required

Код валюты платежа в формате ISO-4217 alpha-3.

Пример: EUR

amount
integer
strictly required

Сумма платежа в дробных единицах валюты без десятичного разделителя (точки или запятой) и пробелов за исключением случаев, когда у валюты нет дробной части.

Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Использование дробных единиц валюты и Коды валют.

Пример: 100,00 EUR передается как 10000

description
string
optional

Описание.

Пример: Описание

return_url
object
optional

success
string
optional

URL-адрес, на который нужно перенаправить пользователя в случае успешного завершения оплаты.

Пример: https://example.com/success/

decline
string
optional

URL-адрес, на который нужно перенаправить пользователя в случае отклонения оплаты.

Пример: https://example.com/decline/

return
string
optional

URL-адрес, куда нужно перенаправить пользователя в случае прерывания оплаты пользователем до ее завершения. Этот же адрес используется, если не заданы параметры success и decline. Если не задан ни один из параметров объекта return_url, то Gate по умолчанию перенаправляет пользователя по URL-адресу, указанному в вашем проекте в Benker.

Пример: https://example.com/return/

При необходимости добавьте в запрос необязательные параметры, указанные в спецификации Gate: API Reference.

Вот пример тела запроса на оплату с использованием метода Open Banking:

Рис. 6. Пример тела запроса на оплату
{
    "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": {
        "number": "DE89370400440532013000",
        "bank_id": "593123456789",
        "bank_code": "1234567890"
    },
    "payment": {
        "currency": "EUR",
        "amount": 10000,
        "description": "Description"
    },
    "return_url": {
        "success": "https://example.com/success/",
        "decline": "https://example.com/decline/",
        "return": "https://example.com/return/"
    }
}

Промежуточные оповещения

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

В случаях, когда необходимо получить дополнительное согласие пользователя и, если актуально, дополнительные сведения о нем, от платежной платформы к вашей системе каждый раз направляется промежуточное оповещение с объектом clarification_fields, во вложенных объектах которого описываются объекты и параметры, необходимые для проведения платежа.

Технически информация о необходимости получения согласия пользователя может выглядеть следующим образом.

{
  "clarification_fields": {
	"customer": {
	  "type": "object",
	  "description": "",
	  "properties": {
		"psu_consent": {
		  "type": "string",
		  "description": "Need to request the customer's consent to make a payment"
		},
		"psu_consent_text": {
		  "type": "string",
		  "description": "The text to be displayed on the payment form", 
		  "default": "The consent text to be displayed to the customer" 
// Текст, который необходимо отобразить пользователю для получения его согласия на проведение платежа
		}
	  }
	}
  }
}

Отправка информации о согласии пользователя на проведение оплаты в платежную платформу

Введенная пользователем информация о согласии пользователя на проведение оплаты должна быть отправлена в платежную платформу в новом запросе. Далее приведены основные характеристики и параметры такого запроса.

HTTP-метод запроса POST
Формат тела запроса JSON
Конечная точка /v2/payment/clarification
Табл. 3. Базовые параметры запроса для передачи информации о согласии пользователя на проведение оплаты

strictly required — параметр обязательно должен присутствовать в начальном запросе.

Объект Объект/Параметр Описание

general
object
strictly required

project_id
integer
strictly required

Идентификатор проекта, полученный от Benker при интеграции.

Пример: 1234

payment_id
string
strictly required

Идентификатор платежа, уникальный в рамках проекта.

Пример: payment_47

signature
string
strictly required

Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Использование подписи к данным.

additional_data
object
strictly required

customer
object
strictly required

psu_consent
string
strictly required

Информация о согласии пользователя на проведение оплаты, со значением 1, если пользователь предоставил такое согласие. Если пользователь не предоставил согласие, то запрос на продолжение платежа можно не отправлять. В таких случаях по истечении 30 минут (или иного времени, если это было настроено для используемого проекта) платеж отклоняется. При отправке запросов со значением параметра psu_consent, отличным от 1, согласие на проведение платежа запрашивается повторно.

Пример: 1

psu_consent_text
string
strictly required

Текст, который был отображен пользователю для получения согласия. В значении этого параметра должен передаваться именно тот текст, который был получен в оповещении о необходимости получения согласия пользователя. Если текст, указанный в запросе, отличается от текста, отправленного в оповещении, согласие на проведение платежа запрашивается повторно.

Пример: The consent text displayed to the customer

В некоторых случаях, пользователю потребуется указать на стороне вашей системы дополнительные сведения о себе. Эти данные стоит передавать в соответствующем параметре объекта additional_data. Например: фамилию пользователя в параметре customer.last_name, номер счета пользователя — IBAN в параметре account.number и т.п. Уточняйте у курирующего менеджера Benker список актуальных для вас параметров.

Вот пример данных из запроса для передачи в платежную платформу информации о согласии пользователя на проведение оплаты:

Рис. 7. Пример данных из запроса для передачи информации о согласии пользователя на проведение оплаты
{
	"general": {
		"project_id": 1234,
		"payment_id": "payment_47",
		"signature": "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y19vySO/RLUkDJrOcZzUCwX6R/ekpZhkIQg=="
	},
	"additional_data": {
		"customer": {
			"psu_consent": "1",
			"psu_consent_text": "The consent text displayed to the customer"
		}
	}
}

Перенаправление пользователей

Получив и обработав запрос на оплату, платежная платформа направит вам оповещение (callback) с данными для перенаправления пользователя в сервис провайдера.

Чтобы перенаправить пользователя, используйте значения следующих параметров, находящихся в объекте redirect_data:

  • url — адрес для перенаправления пользователя;
  • body — данные для отправки в теле запроса;
  • method — метод запроса HTML-страницы сайта (например, POST или GET);
  • encrypted — это служебный параметр. Игнорируйте содержащиеся в нем данные.

Вот пример фрагмента оповещения, содержащего данные для перенаправления пользователя:

"redirect_data": {
    "method": "GET",
    "body": [],
    "encrypted": [],
    "url": "https://example.com/redirect"
}

Оповещение (callback)

В методе Open Banking результат оплаты платежная платформа возвращает в оповещении. Подробнее о структуре оповещений см. Оповещения.

Вот пример тела оповещения с информацией об успешно выполненной оплате:

Рис. 8. Пример тела оповещения об успешно выполненной оплате
{
    "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=="
}

Вот пример тела оповещения с информацией об отклоненной оплате.

Рис. 9. Пример тела оповещения об отклоненной оплате
{
    "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
Табл. 4. Базовые параметры запроса доступных банков

strictly required — параметр обязательно должен присутствовать в начальном запросе.

Объект Параметр Описание

general
object
strictly required

project_id
integer
strictly required

Идентификатор проекта, полученный от Benker при интеграции.

Пример: 123

payment_id
string
strictly required

Идентификатор платежа, уникальный в рамках проекта.

Если платеж еще не сформирован, в качестве идентификатора платежа в запросе следует указать произвольное уникальное значение.

Пример: payment_47

signature
string
strictly required

Подпись запроса, составленная после определения всех параметров запроса. Подробнее о составлении подписи см. Использование подписи к данным.

payment
object
strictly required

amount
integer
strictly required

Сумма платежа в дробных единицах валюты без десятичного разделителя (точки или запятой) и пробелов за исключением случаев, когда у валюты нет дробной части.

Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Коды валют.

Пример: 100,00 EUR передается как 10000

currency
string
strictly required

Код валюты оплаты в формате ISO-4217 alpha-3.

Пример: EUR

account
object
strictly required

country
string
strictly required

Страна пользователя в формате ISO 3166-1 alpha-2.

Пример: GB

При необходимости добавьте в запрос необязательные параметры, указанные в спецификации Gate: API Reference.

Вот пример данных из запроса списка банков, поддерживающих работу с методом Open Banking.

Рис. 10. Пример данных из запроса списка доступных банков
{
	"general": {
		"project_id": 200,
		"payment_id": "ORDER_155860015",
		"signature": "K6jll2ym+PtOb3ocZtr345st...=="
	},
	"payment": {
		"amount": 10000,
		"currency": "EUR"
	},
	"account": {
		"country":"GB"
	}
}
Рис. 11. Пример данных из ответа с информацией о доступных банках
[
	{
		"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 (это может быть удобным для контроля и анализа платежей).

Технически подтверждение зачисления средств может выполняться по-разному. В одной из схем работы это выглядит следующим образом:

  1. После выполнения пользователем всех необходимых действий платеж поступает в обработку на стороне сервиса провайдера или банка, в то время как пользователь возвращается к платежному интерфейсу (Payment Page или ваша системаа), где получает информацию о приеме платежа в обработку.
  2. На стороне платежной платформы выполняется ряд действий:
    1. Операции sale присваивается статус success.
    2. к вашей системе отправляется оповещение об изменении статуса операции.
    3. Формируется операция payment confirmation.
    4. Платежу присваивается статус awaiting confirmation — до получения со стороны провайдера информации о зачислении средств.
    5. к вашей системе отправляется оповещение об изменении статуса платежа.
  3. На стороне провайдера определяется итоговый статус зачисления средств, после чего информация об этом статусе отправляется к платежной платформе.
  4. На стороне платежной платформы обеспечивается обработка полученной информации, в результате чего операции payment confirmation и платежу присваиваются итоговые статусы и к вашей системе отправляются соответствующие оповещения.

Для операции payment confirmation предусмотрены следующие итоговые статусы:

  • success — при получении со стороны провайдера подтверждения того, что средства зачислены. В этом случае платежу присваивается статус success и к вашей системе отправляется итоговое оповещение с информацией о результате оплаты.
  • decline — при получении со стороны провайдера информации о том, что средства не зачислены, либо при отсутствии со стороны провайдера информации о зачислении средств по истечении установленного срока (который по умолчанию составляет 7 дней и может быть изменен через обращение к специалистам технической поддержки Benker).

    В таких случаях, с учетом свойств проекта на стороне платежной платформы, выполняется один из двух сценариев:

    • Формируется операция reversal и к вашей системе последовательно отправляются соответствующие оповещения: промежуточное, с информацией о том, что средства не были зачислены, и итоговое, с информацией о возврате средств и переводе платежа в статус reversed.
    • Платеж переводится в статус decline и к вашей системе направляется итоговое оповещение с информацией об отклонении оплаты.

Если помимо получения информации, передаваемой в оповещениях, требуется дополнительно отслеживать изменение статусов платежей и операций, это можно делать с использованием Gate API (через ответы на запросы о состоянии платежа), а также через интерфейс Dashboard.

Описания процедуры подтверждения зачисления средств при работе через Payment Page и Gate представлены в соответствующих разделах этой статьи. С вопросами о работе с этой процедурой можно обращаться к специалистам технической поддержки Benker.

На этой странице
  • Основные операции
  • Оплата через Payment Page
    • Общая информация
    • Запрос
    • Отображение иконок банков на странице оплаты
    • Оповещение (callback)
    • Дополнительные материалы
  • Оплата через Gate
    • Общая информация
    • Запрос
    • Промежуточные оповещения
    • Перенаправление пользователей
    • Оповещение (callback)
    • Дополнительные материалы
  • Банки для оплаты
    • Поддержка со стороны банков
    • Запрос списка банков
    • Подтверждение зачисления средств
© Benker, 2024
Это полезно?
Спасибо за обратную связь!
Оставить отзыв