ЕРИП External
ЕРИП External это вариант интеграции с ЕРИП, разработанный для торговцев, имеющих собственный сайт и хранящих в своей системе все данные, необходимые для совершения платежа и выставления счетов в ЕРИП. Например, номера телефонов покупателей, идентификаторы платежей, номера договоров и т.п.
Описание процесса оплаты
- Покупатель инициирует платеж ЕРИП в интернет-банкинге.
- ЕРИП запрашивает у bePaid информацию о платеже.
- bePaid отправляет торговцу запрос Информация о платеже.
- Торговец присылает в ответе информацию о платеже и сумме задолженности. Если задолженность отсутствует, необходимо передать
"amount": 0
. Торговец должен прислать ответ в течение 14 секунд. В противном случае, соединение будет прервано по истечении времени ожидания. Если при обработке запроса возникли ошибки, торговец возвращает код ошибки, отличный от 0 в полеresult
. - bePaid отправляет ответ в ЕРИП.
- Покупателю отображается информация о платеже.
- Покупатель при необходимости редактирует сумму платежа (если есть такая опция) и подтверждает платеж.
- bePaid отправляет торговцу автоматическое уведомление c результатом платежа.
- Торговец возвращает bePaid статус обработки автоматического уведомления.
- Покупателю отображается статус платежа.
Описание процесса сторнирования (отмены) платежа
Info
Сторнирование через систему ЕРИП возможно только, если у торговца разрешена данная операция в ЕРИП.
- ЕРИП инициирует отмену платежа (сторнирование), отправив в bePaid запрос о начале сторнирования платежа.
- bePaid всегда высылает положительный ответ на запрос сторнирования.
- ЕРИП присылает в bePaid запрос с результатом сторнирования.
- bePaid отправляет торговцу автоматическое уведомление c результатом сторнирования платежа.
- Торговец возвращает bePaid статус обработки автоматического уведомления.
Информация о платеже
- Торговцу необходимо реализовать в своей системе метод Информация о платеже c конечной точкой
erip/account_verification
. - Ответ на запрос Информация о платеже торговец должен передавать в JSON формате.
-
Запрос будет содержать следующие заголовки:
Accept: application/json
Content-type: application/json
-
Приложение торговца должно поддерживать авторизацию по методу Basic Auth. К запросу добавляется HTTP-заголовок Authorization. В заголовке указывается строка Basic и пара логин:пароль, зашифрованная в формате BASE64, где
Shop ID
используется как логин, аSecret Key
используется как пароль. Например,Authorization: Basic bG9sOnNlY3VyZQ==
. Информацию о Shop ID и Secret key магазина можно найти здесь. - Приложение торговца должно обрабатывать запросы по методу HTTP POST.
- Скорость ответа не должна превышать 14 секунд, в противном случае bePaid разрывает соединение c ошибкой
Временная ошибка. Повторите запрос позже
. -
Приложение торговца должно принимать запросы по протоколу HTTPS с IP-адресов bePaid и на определенные TCP-порты.
Info
Для получения актуального списка IP-адресов и TCP-портов bePaid обратитесь к вашему менеджеру.
Запрос
Параметр | Тип данных | Описание |
---|---|---|
request | object | |
account * обязательный |
string | Уникальный идентификатор покупателя в системе торговца. |
id * обязательный |
string | Уникальный идентификатор транзакции в системе bePaid. |
currency * обязательный |
string | Валюта транзакции в формате ISO-4217 alpha-3 code. Например, BYN . |
method | object | |
type | string | erip_external |
Пример запроса
{
"request": {
"id": "785c8e-252a-4563-345-3452345",
"currency": "BYN",
"method": {
"type": "erip_external"
},
"account": "2222XXXXXXXXXX"
}
}
Ответ
Параметр | Тип данных | Описание |
---|---|---|
request | object | |
id * обязательный |
string | Уникальный идентификатор транзакции в системе bePaid, id из запроса. |
tracking_id * обязательный |
string | Уникальный идентификатор транзакции в системе торговца. |
amount * обязательный |
bigInteger | Сумма задолженности покупателя перед мерчантом в минимальных денежных единицах. Если задолженности нет, должен быть передан 0 . |
editable_amount | boolean | Если true , покупатель может редактировать сумму платежа. Если amount=0, параметр editable_amount не должен быть отправлен. |
currency * обязательный |
string | Валюта транзакции, отправленная в запросе. |
result * обязательный |
string | Код ошибки. |
description | string | Описание ошибки. |
customer * обязательный |
object | Секция с информацией о покупателе. |
first_name * обязательный |
string | Имя покупателя. |
last_name * обязательный |
string | Фамилия покупателя. |
middle_name * обязательный |
string | Отчество покупателя. |
hint | array (2000) | Массив строк с подсказками для покупателя, до 2000 знаков. Количество строк не ограничено. |
Пример ответа
{
"response": {
"amount": 100,
"id": "2342-23452345234-2344234-2345234",
"currency": "BYN",
"editable_amount": true,
"hint": [
"message_1",
"message_2",
"message_n"
],
"customer": {
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": "Ivanovich"
},
"result": "0",
"tracking_id": "your_unique_number"
}
}
Ошибки в ответе
Код | Описание |
---|---|
0 | OK |
1 | Временная ошибка. Повторите запрос позже. |
4 | Неверный формат идентификатора абонента. |
5 | Идентификатор абонента не найден. Ошибка номера. |
7 | Прием платежа запрещен торговцем. |
8 | Прием платежа запрещен по техническим причинам. |
243 | Невозможно проверить состояние счета. |
300 | Прочая ошибка. |