Подключение к 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 | Не найден запрашиваемый тип данных. |
Примеры тела ошибки:
{
"status": "BAD_REQUEST", // статус HTTP ошибки
"errors": [ // массив ошибок
"msisdn: size must be between 0 and 10000", // описание ошибки
"subId: may not be null"
]
}
{
"status": "UNAUTHORIZED",
"errors": [
"Auth token is invalid"
]
}