Ваш Браузер устарел или не поддерживается нашим сайтом, пожалуйста установите обновленный Internet Explorer или скачайте Google Chrome, FireFox что бы продолжить просмотр сайта.

Разработчикам

API используется для совершения платежей по продуктам каталога Beeline. REST API работает по протоколу HTTP и представляет собой набор методов выполнения операций. Запросы и ответы имеют формат и структуру JSON. *** Для работы с API, необходимо получить `API-name` и `API-password` у администратора *** **Примечание: ** В настоящее время API находится в стадии разработки, методы и параметры могут быть изменены. *** Используемые протоколы: * HTTPS *** ## Алгоритм работы 

1. Мерчант выполняет запрос для получения каталога продуктов - метод `get-products`. Метод не обязательный для использования; Мерчант может вручную проставить идентификаторы продуктов, соответствующие каталогу.
2. Абонент выбирает продукт на портале Мерчанта и указывает способ оплаты с помощью мобильного баланса.
3. Мерчант выполняет запрос на создание платежа - метод `create-payment`.
4. Платформа выполняет необходимые действия (проверка лимитов, расчет комиссий и т. д.) и отвечает Мерчанту.
5. Мерчант отображает абоненту необходимую информацию, полученную в п.3 (комиссии, итоговая сумма).
5.1. Если необходимо подтвердить платеж с помощью OTP (метод `create-payment` вернет параметр ` otpConfirm = true`) - Мерчант отображает поле для ввода OTP (6 цифр) абоненту.
5.2. Абонент может запросить переотправку OTP. Для этого Мерчант отображает кнопку "Отправить OTP еще раз" - вызов метода `resend-otp`.
5.2.1. Если метод `resend-otp` вернлу параметр ` canResend = false` - абонент превысил количество попыток отправки SMS, переотправка OTP должна быть недоступна (например, кнопка становится неактивной).
6. Пользователь вводит OTP (если необходимо) и соглашается с оплатой (например, нажатием кнопки "Подтвердить") - вызов метода `confirm-payment`
6.1. Если пользователь не согласен с оплатой (например нажимает кнопу "Отменить"), необходимо вызвать метод `cancel-payment`. В данном случае операция будет отменена.
7. Платформа выполняет необходимые проверки, создает транзакции и отвечает Мерчанту, передавая чеки по операции.
7.1. Если по какой-то причине ответ не получен или возникла ошибка - пожалуйста проверьте статус операции используя метод `check-operation-status`.
8. Мерчант может отобразить чеки операции для пользователя.

** Если необходимо выполнить возврат платежа - необходимо использовать метод `refund-payment`. Если операция успешна - средства будут возвращены на баланс абонента.

*** Для получения истории операций необходимо использовать метод `get-payment-history`. Например, для отображения истории операций в личном кабинете пользователя.

**** Для получения чеков по операции необходимо использовать метод `get-receipts`. *** ## Формирование запросов: Для каждого запроса должна быть сформирована цифровая подпись. Чтобы создать подпись, необходимо использовать алгоритм шифрования HMAC-SHA256. 1. Создать JSON запрос 2. Зашифровать его с помощью алгоритма HMAC-SHA256 используя предоставленный пароль 3. Установить полученную подпись в параметр `Signature` заголовка запроса

``` # Пример формирования подписи на языке PHP: $password = '328378273892'; $data = '{"example":222,"desc":"some text"}'; $sign = hash_hmac('sha256', $data, $password); ``` *** Возможные коды ошибок (errorCode, errorMessage). Коды могут быть добавлены в процессе разработки.

Авторизация
11001 Параметры авторизации не заданы
11002 API с данным именем не найдено
11003 Некорректная подпись запроса
11004 Системная ошибка авторизации
11005 Превышен лимит вызовов API в минуту
11006 API неактивно
11007 Некорректный параметр заголовка. Должен быть application/json 

Платежи
12001 В запросе отсутствуют обязательные параметры
12002 Некорректный тип параметры в запросе
12003 Произошла системная ошибка из-за неверных данных запроса.
12004 Параметр timestampEnd должен быть больше или равен параметру timestampStart
12005 В параметре `amount` допускается не более 2х знаков после разделителя
12006 Параметр `amount` должен быть больше нуля.
12007 Номер телефона должен начинаться с 7
13001 Агент неактивен
13002 Оператор неактивен
13003 Абонент неактивен
14001 Кошелек оператора неактивен
14002 Кошелек агента неактивен
14003 Кошелек абонента неактивен
15001 Категория сервисного каталога неактивна
15002 Продукт не найден
15003 Продукт не доступен
16001 Продукт не доступен для данного Account Type
16002 Продукт не доступен для данного тарифного плана.
17001 Недостаточно средств на кошельке агента
17002 Недостаточно средств на кошельке оператора
18001 Сумма комиссий превышает сумму операции. Шаблоны комиссий настроены некорректно.
18002 Невозможно выполнить платеж. Настройки комиссий были изменены
19001 Ошибка отправки СМС для запроса подтверждения
19002 Ошибка отправки СМС с OTP
20001 Ошибка проверки доступности продукта
21001 Платеж с данным ID не найден
21002 Платеж с данным ID не найден
21003 Платеж с данным ID не найден
21004 Платеж с данным ID не найден
22001 Некорректный OTP
23001 CDB не доступна
23002 Системная ошибка CDB
23003 Номер телефона не найден
23004 CDB. Абонент неактивен
24001 Ошибка совершения транзакции MFS
25001 Невозможно подтвердить оплату поставщику продукта
26001 Системная ошибка при подтверждении платежа
27001 Ошибка подтверждения платежа
28001 Статус операции не позволяет отменить платеж
29001 Невозможно получить чеки. Операция находится не в статусе "Выполнена" или "Сторнирована"
30001 Ошибка данных абонента
AML
Формат кода ошибки 2XYZ
X - где сработал лимит
- 0 лимит на кошельке
- 1 лимит на пользователе
- 2 лимит на категории каталога
- 3 лимит на продукте
Y - вид операции
- 0 лимит на вывод
- 1 лимит на ввод
Z - Тип лимита
- 0 лимит на минимальную сумму транзакции
- 1 лимит на максимальную сумму транзакции
- 2 лимит на оборот в день
- 3 лимит на оборот в неделю
- 4 лимит на оборот в месяц
- 5 лимит на оборот в год
- 6 лимит на количество транзакций в день
- 7 лимит на количество транзакций в неделю
- 8 лимит на количество транзакций в месяц
- 9 лимит на количество транзакций в год