FlashСall API
Формат взаимодействия
Запросы к API выполняются по протоколу HTTP. Входные и выходные структуры данных передаются в теле запроса и ответа в формате JSON.
Авторизация
Большинство вызовов HTTP API требуют процедур аутентификации и авторизации, которые связывают вызовы API с необходимыми приложениями в Вашей учетной записи.
Для этого каждый запрос должен содержать заголовок, либо аргумент X-Authorization с токеном соединения в формате AccessKey token,
Например заголовком:
POST /apps/activate HTTP/1.1
Host: api.unibell.ru
X-Authorization: AccessKey d8ac9959r12b43545da9034
или
Authorization: Basic d8ac9959r12b43545da9034
либо параметром:
POST api.unibell.ru/apps/activate?X-Authorization=AccessKey d8ac9959r12b43545da9034
Формат ответов
JSON схема любого ответа содержит параметр status типа string со следующими значениями:
Значение status | Описание |
---|---|
ok | Без ошибок |
invalidAccessKeyError | Неверный AccessKey |
requiredJsonError | В теле запроса требуется JSON |
invalidSchemeError | Неверная схема JSON |
invalidDataError | Ошибочные входные данные |
prohibitedForAppError | Запрещено для данного приложения |
prohibitedForServiceError | Запрещено для данной услуги |
rpcError | Коммуникационная ошибка |
Например:
{
…
“status”: “ok”
....
}
FlashCall запросы
POST https://api.unibell.ru/apps/flash/calls/flash
HTTP Basic
Authorization: token
Параметры в теле, json
{
"number": "791791367878",
"code": 1234,
"timeout": 60000,
}
Параметр | Описание |
---|---|
number | Номер телефона в формате e.164 |
code | Код, 4е знака |
timeout | Максимальное время вызова в мс |
Ответ:
В случае успешной отправки возвращается requestId — идентификатор сообщения на стороне партнера, который потом возвращается в callback.
Пример успешного ответа:
{
"requestId": XXXXXX
"from": "79179136787"
}
Пример неуспешного ответа:
{
"errorCode" : 1,
"errorReason" : "Authentication required"
}
Описание кодов ошибок
errorCode | errorReason | Описание |
---|---|---|
1 НТТP 401 | Authentication required | Неверный токен аутентификации |
2 HTTP 400 | Inactive account | Неактивный аккаунт. Свяжитесь с поддержкой |
4 HTTP 429 | Too many requests | Слишком много запросов за короткий период времени |
5 HTTP 401 | Inactive token | Неактивный токен |
6 HTTP 403 | Insufficient funds | Низкий баланс, невозможно выполнить запрос |
10 HTTP 400 | Invalid request | Неправильно сформированный запрос |
11 HTTP 400 | Invalid number | Неверный формат номера. Номер должен быть в формате (E.164). |
16 HTTP 400 | Sender not allowed | Для данного типа запроса недопустим sender id |
Получение статусов
Получение статусов должно быть настроено через Callback.
Параметры в callback
Параметр | Описание |
---|---|
requestId | Уникальный идентификатор запроса на стороне партнера |
number | Номер абонента |
status | Статус (приведены в таблице ниже) |
timestamp | Время изменения статуса в формате unixtime |
appKey | API ключ приложения |
Сопоставление статусов
Статусы, которые может вернуть Партнер | Описание статуса Партнера | Соответствующий статус Message_state |
---|---|---|
ANSWERED | Вызов пришел, абонент взял трубку | DELIVERED |
TERMINATED | Вызов пришел, абонент не взял трубку (звонок прерван по истечении ttl или по команде) | |
BUSY_HERE | Вызов пришел, абонент сбросил вызов | |
REJECTED | Звонок не может быть совершен, например если номер еще занят другим звонком или другая SIP-ошибка | UNDELIVERED |
UNAVAILABLE | Абонент не доступен, телефон выключен | |
FORBIDDEN | Возвращается при срабатывании антифрода |