Перейти к содержанию

ЕРИП External

ЕРИП External это вариант интеграции с ЕРИП, разработанный для торговцев, имеющих собственный сайт и хранящих в своей системе все данные, необходимые для совершения платежа и выставления счетов в ЕРИП. Например, номера телефонов покупателей, идентификаторы платежей, номера договоров и т.п.

Описание процесса оплаты

  1. Покупатель инициирует платеж ЕРИП в интернет-банкинге.
  2. ЕРИП запрашивает у bePaid информацию о платеже.
  3. bePaid отправляет торговцу запрос Информация о платеже.
  4. Торговец присылает в ответе информацию о платеже и сумме задолженности. Если задолженность отсутствует, необходимо передать "amount": 0. Торговец должен прислать ответ в течение 14 секунд. В противном случае, соединение будет прервано по истечении времени ожидания. Если при обработке запроса возникли ошибки, торговец возвращает код ошибки, отличный от 0 в поле result.
  5. bePaid отправляет ответ в ЕРИП.
  6. Покупателю отображается информация о платеже.
  7. Покупатель при необходимости редактирует сумму платежа (если есть такая опция) и подтверждает платеж.
  8. bePaid отправляет торговцу автоматическое уведомление c результатом платежа.
  9. Торговец возвращает bePaid статус обработки автоматического уведомления.
  10. Покупателю отображается статус платежа.

Описание процесса сторнирования (отмены) платежа

Info

Сторнирование через систему ЕРИП возможно только, если у торговца разрешена данная операция в ЕРИП.

  1. ЕРИП инициирует отмену платежа (сторнирование), отправив в bePaid запрос о начале сторнирования платежа.
  2. bePaid всегда высылает положительный ответ на запрос сторнирования.
  3. ЕРИП присылает в bePaid запрос с результатом сторнирования.
  4. bePaid отправляет торговцу автоматическое уведомление c результатом сторнирования платежа.
  5. Торговец возвращает bePaid статус обработки автоматического уведомления.

Информация о платеже

  1. Торговцу необходимо реализовать в своей системе метод Информация о платеже c конечной точкой erip/account_verification.
  2. Ответ на запрос Информация о платеже торговец должен передавать в JSON формате.
  3. Запрос будет содержать следующие заголовки:

    Accept: application/json
    Content-type: application/json

  4. Приложение торговца должно поддерживать авторизацию по методу Basic Auth. К запросу добавляется HTTP-заголовок Authorization. В заголовке указывается строка Basic и пара логин:пароль, зашифрованная в формате BASE64, где Shop ID используется как логин, а Secret Key используется как пароль. Например, Authorization: Basic bG9sOnNlY3VyZQ==. Информацию о Shop ID и Secret key магазина можно найти здесь.

  5. Приложение торговца должно обрабатывать запросы по методу HTTP POST.
  6. Скорость ответа не должна превышать 14 секунд, в противном случае bePaid разрывает соединение c ошибкой Временная ошибка. Повторите запрос позже.
  7. Приложение торговца должно принимать запросы по протоколу 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 Прочая ошибка.