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

API для интеграции с деревом услуг EРИП

Содержание

Требования к API запросов

Все запросы должны:

  • Иметь авторизацию типа Basic c ID магазина и секретным ключем магазина как имя пользователя и пароль соответственно, иметь заголовки Content-Type: application/json и Accept: application/json
  • Использовать SSL соединение с 128-bit (или более сложным) шифрованием
  • Использовать кодировку UTF-8.

Получение дерева ЕРИП

Отправьте POST запрос на https://api.bepaid.by/beyag/gateways/komplat/get_pay_list.

В ответе будет получен набор узлов дерева ЕРИП. Для продвижения в глубь узла дерева, необходимо отправить новый запрос с pay_code узла, в который необходимо зайти. Запросы выполняются до тех пор, пока клиент не дойдет до конечного узла (до услуги, за которую клиент хочет заплатить).

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

Параметры запроса

Параметр Тип Описание
terminal_id * обязательный
string ID терминала. Уникальный для каждого мерчанта.
pay_code * обязательный
string Код узла ЕРИП. Код начального узла: 11000000000
di_type * обязательный
string Код типа узла ЕРИП. Код типа начального узла: 9191
test true или false. Запрос будет тестовым, если значение true
Пример запроса
{
    "terminal_id": "10000002",
    "pay_code": "11000000000",
    "di_type": "9191"
}

Параметры ответа, если узел в запросе не является конечным

Параметр Описание
code Код узла ЕРИП
name Имя узла
di_type Код типа узла ЕРИП
Пример ответа, если узел в запросе не является конечным
[
  {
      "code":"11000304194",
      "name":"Банковские, финансовые услуги",
      "di_type":"9120"
  },
  {
      "code":"11000300001",
      "name":"БЕЛТЕЛЕКОМ",
      "di_type":"9120"
  },
  {
      "code":"11000300002",
      "name":"Домофонные системы, Видеонаблюдение",
      "di_type":"9120"
  },
  {
      "code":"11000300088",
      "name":"Интернет, Телевидение, Телефония",
      "di_type":"9120"
  },
  {
      "code":"11000300004",
      "name":"Интернет-магазины/сервисы",
      "di_type":"9120"
  },
  {
      "code":"11000300005",
      "name":"Коммунальные платежи",
      "di_type":"9120"
  },
  {
      "code":"11000300006",
      "name":"Мобильная связь",
      "di_type":"9120"
  },
  {
      "code":"11000304212",
      "name":"Налоги",
      "di_type":"9120"
  },
  {
      "code":"11000304351",
      "name":"Стоянки, гаражи, парковки",
      "di_type":"9120"
  },
  {
      "code":"11000304168",
      "name":"Суды, Юстиция, Юридические услуги",
      "di_type":"9120"
  }
]

Параметры ответа, если узел в запросе является конечным

Параметр Тип Описание
code * обязательный
string Код конечного узла ЕРИП. Соответствует параметру pay_code из запроса.
name * обязательный
string Имя узла ЕРИП, по которому производится оплата.
di_type * обязательный
string Код типа узла ЕРИП.
information * обязательный
string Сообщение ЕРИП для показа клиенту.
customer_name object Секция с параметрами имени клиента, возвращаемая сервисом ЕРИП. Если ЕРИП не вернул ФИО покупателя - возвращается null.
first_name * обязательный
string Имя клиента.
middle_name * обязательный
string Отчество клиента.
last_name * обязательный
string Фамилия клиента.
required_attributes * обязательный
array Массив с параметрами ЕРИП, которые должны быть заполнены клиентом и переданы снова в ЕРИП для регистарции платежа.
information_attributes * обязательный
array Массив c параметрами ЕРИП для показа клиенту.
erip_session_id * обязательный
string Идентификатор сессии ЕРИП.
Пример ответа, если узел в запросе является конечным
{
  "code": "10002642301",
  "name": "оплата по номеру телефона",
  "di_type": "9191",
  "information": "Введите 9 цифр тестового номера телефона",
  "customer_name": {
    "first_name": null,
    "middle_name": null,
    "last_name": null
  },
  "required_attributes": [
    {
      "code": "1001",
      "name": "тестовый номер телефона",
      "min_length": "9",
      "max_length": "9"
    }
  ],
  "information_attributes": [],
  "erip_session_id": "00000000000121603908-01-FBBD95"
}

Отправка параметров required_attributes, полученных в ответе от конечного узла

Отправьте POST запрос на https://api.bepaid.by/beyag/gateways/komplat/get_pay_list со следующими параметрами:

Параметр Тип Описание
terminal_id * обязательный
string ID терминала. Уникальный для каждого мерчанта.
pay_code * обязательный
string Код узла ЕРИП. Код конечного узла.
di_type * обязательный
string Код типа узла ЕРИП. Код конечного узла.
erip_session_id * обязательный
string Идентификатор сессии ЕРИП.
attributes object В секции указываются заполняемые клиентом параметры из массива required_attributes, полученного в ответе от конечного узла.
test true или false. Запрос будет тестовым, если значение true.
Пример запроса
{
  "terminal_id": "10000002",
  "pay_code": "10004372291",
  "di_type": "9191",
  "erip_session_id": "00000000005698332392-01-A7512E",
  "attributes": {
    "1001": "0291234567"
  }
}

Параметры ответа

Параметр Тип Описание
code * обязательный
string Код конечного узла ЕРИП. Соответствует параметру pay_code из запроса.
name * обязательный
string Имя узла, по которому производится оплата.
di_type * обязательный
string Код типа узла ЕРИП.
billed_amount * обязательный
string Выставленная сумма. Если параметр fixed_amount=true, то изменить сумму нельзя. Если fixed_amount=false, то интерфейс должен позволять клиенту изменять сумму.
fixed_amount * обязательный
boolean true или false. Если true, сумму billed_amount нельзя изменить.
currency * обязательный
string Валюта в ISO-4217 формате, например BYN.
information * обязательный
string Информация о лицевом счете от ЕРИП для показа клиенту.
information_attributes * обязательный
array Массив c информационными параметрами от ЕРИП для показа клиенту.
customer_name object Секция с параметрами имени клиента. Если имя клиента не сохранено, возвращается null.
first_name * обязательный
string Имя клиента.
middle_name * обязательный
string Отчество клиента.
last_name * обязательный
string Фамилия клиента.
erip_fine * обязательный
string Сумма пени ЕРИП.
erip_commision * обязательный
string Сумма комиссии ЕРИП.
erip_session_id * обязательный
string Идентификатор сессии ЕРИП.
Пример ответа
{
  "code": "10004372291",
  "name": "Коммунальные платежи",
  "di_type": "9191",
  "billed_amount": "122.43",
  "fixed_amount": true,
  "currency": "BYN",
  "information": null,
  "information_attributes": [
    {
      "name": "Дата выставления",
      "value": "12.03.2021"
    },
    {
      "name": "Период",
      "value": "02.2021"
    },
    {
      "name": "Начислено",
      "value": null
    },
    {
      "name": "Начислено",
      "value": "122,11 BYN"
    },
    {
      "name": "Долг по пене",
      "value": "0,32 BYN"
    }
  ],
  "customer_name": {
    "first_name": null,
    "middle_name": null,
    "last_name": null
  },
  "erip_fine": "0.00",
  "erip_commision": "0.00",
  "erip_session_id": "00000000005698332392-00-0F0D24"
}

Регистрация платежа, если у мерчанта сохранены конечный узел и лицевой счет клиента

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

Параметры для запроса должны хранится в базе данных Мерчанта.

Отправьте POST запрос на https://api.bepaid.by/beyag/gateways/komplat/get_pay_list со следующими параметрами:

Параметр Тип Описание
terminal_id * обязательный
string ID терминала. Уникальный для каждого мерчанта.
pay_code * обязательный
string Код узла ЕРИП.
di_type * обязательный
string Код типа узла ЕРИП.
erip_session_id * обязательный
string Идентификатор сессии ЕРИП.
customer object Секция для передачи ID клиента.
personal_account string ID лицевого счета ЕРИП.
erip_account string Идентификатор в системе ЕРИП.
test boolean true или false. Запрос будет тестовым, если значение true.
Пример запроса
{
  "terminal_id": "10000002",
  "pay_code": "10004345361",
  "di_type": "9191",      
  "customer": {
    "personal_account": "28923485423"
  }
}

Параметры ответа

Параметры ответа аналогичны, указанным в разделе Отправка параметров required_attributes, полученных в ответе от конечного узла.

Пример ответа
{
  "code": "10004345361",
  "name": "Абонентская плата",
  "di_type": "9191",
  "billed_amount": "0.00",
  "fixed_amount": false,
  "currency": "BYN",
  "information": "Введите лицевой счет Иван Иванович Иванов г. Минск, ул. Селицкого, д. 1, кв. 11, 1 под., 1 эт.-",
  "information_attributes": [
    {
      "name": "Лицевой счет",
      "value": "112233"
    },
    {
      "name": "Период",
      "value": "0221"
    }
  ],
  "customer_name": {
    "first_name": null,
    "middle_name": null,
    "last_name": null
  },
  "erip_fine": "0.00",
  "erip_commision": "0.00",
  "erip_session_id": "00000000005656285468-00-664734"
}

Получение токена карты

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

Запрос на получение токена карты аналогичен описанному в разделе Авторизация.

Отмена блокировки средств

Запрос используется после успешной авторизации для отмены блокировки средств после авторизации.

Запрос на отмену блокировки средств аналогичен описанному в разделе Отмена авторизации.

Авторизация платежа и списание средств у клиента

Запрос аналогичен, описанному в разделе Авторизация.

После успешной авторизации, автоматически будет произведено списание средств у клиента.

Описание параметров ЕРИП опубликовано в request.additional_data.komplat в описании запроса на Авторизацию.

Пример запроса
{
  "request": {
    "amount": 100,
    "currency": "BYN",
    "description": "Test transaction",
    "tracking_id": "my_tracking_id",
    "credit_card": {
      "token": "144da09d-078e-4aca-8919-032c87763b55"
    },
    "additional_data": {
      "komplat": {
        "pay_code": "10000156731",
        "di_type": "9191",
        "erip_session_id": "00000000000117153888-00-46F3AE"
      }
    }
  }
}