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

Подключение к API

Требования к организации подключения


Модель взаимодействия

API использует модель RESTful (данные передаются в виде объектов JSON). Особенностью является использование партнёром и Кошельком двух интерфейсов:

  • Push API — используется партнёром для отправки пуш-сообщений;
  • Callback API — используется Кошельком для передачи информации о доставке и прочтении сообщений.

Взаимодействие партнёра и Кошелька

Взаимодействие партнёра и Кошелька

Параметры подключения

Провайдером Push API выступает узел Кошелька.

Партнёру передаются следующие параметры для подключения к API:

Параметры Описание
host:port Адрес узла платформы «Кошелёк», предоставляющего API.
login:password Имя пользователя и пароль для авторизации API-запросов.

Количество учетных записей не ограничено, при этом каждая учетная запись определяет:

  • партнёра, клиентам которого отправляются сообщения;
  • адрес Callback API для информировании о доставке и прочтении сообщений.

Провайдером Callback API выступает узел партнёра.

Партнёру необходимо предоставить «обратный» URL-адрес, который будет использоваться хостом Кошелька для информирования о доставке и прочтении отправляемых сообщений.

Авторизация запросов

Взаимодействие осуществляется по протоколу HTTPS. Для авторизации запросов к Push API необходимо использовать HTTP Basic Authentication (RFC 7617). Данные для авторизации запросов передаются в HTTP-заголовке Authorization.

Требования к кодировкам

Как в запросах, так и в ответах используется кодировка UTF-8.

Коды HTTP

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

Код Назначение
200 Возвращается в случае успешного выполнения запроса API.

В случае ошибки обработки запроса будет возвращен один из HTTP-кодов с описанием ошибки в теле ответа в формате JSON:

Код Назначение
304 Новый запрос поступил ранее ожидаемого времени.
400 Неверный формат запроса.
401 Ошибка авторизации.
404 Не найден запрашиваемый тип данных.

Примеры тела ошибки:

HTTP
{
    "status": "BAD_REQUEST",        // статус HTTP ошибки
    "errors": [                     // массив ошибок
        "msisdn: size must be between 0 and 10000", // описание ошибки
        "subId: may not be null"
    ]
}
HTTP
{
    "status": "UNAUTHORIZED",
    "errors": [
        "Auth token is invalid"
    ]
}