API Support Benzuber – протокол для обеспечения взаимодействия между внешней системой партнера и сервисом технической поддержки Benzuber (ТП).
Протокол позволяет партнёру создавать обращения в техническую поддержку и получать информацию о состоянии своих обращений.
Для реализации взаимодействия партнера и сервиса техподдержки требуется реализовать запросы:
Для обеспечения безопасного доступа и идентификации партнера для работы предоставляется уникальная пара значений ключ apikey
и идентификатор интеграции id
, которые можно получить в личном кабинете технической поддержки партнёра.
Базовый URL_BZ
– адрес для обращения к серверу BZ.
Для начала работы необходимо получить временный_токен
, выполнив запрос авторизации. Далее, все запросы выполняются HTTP/HTTPS запросами (GET или POST) вида: URL_BZ + /api/ticket/команда?token=[временный_токен]
HTTP коды ответа:
200 – запрос выполнен успешно
400 - неверные параметры в запросе
401 – ошибка авторизации, доступ запрещен, требуется получить новыйвременный_токен
404 - не найдено обращение по идентификатору
Запрос для получения временного токена для возможности работы партнера. Временный токен используется во всех дальнейщих запросах.
Запрос
(POST) URL_BZ + /api/token/get
Параметр | Описание |
---|---|
Обязательный id |
Строка Идентификатор API-партнёра из ЛК техподдержки |
Обязательный ts |
Строка timestamp формирования запроса |
Обязательный crc |
Строка Контрольное значение (подпись) Рассчитывается как SHA1 от строки полученной объединением значений: "/api/token/get" + "id" + id + "key" + apikey + "ts" + ts |
Ответ
Content type: application/json
{
"response": "success",
"token":
{
"value" : "временный_токен",
"expiration" : 1598723948
}
}
Параметр | Описание |
---|---|
Обязательный response |
Строка success – Запрос успешно выполнен failed – ошибка при выполнении запроса |
Обязательный token |
Структура Информация о значении временного токена и срока окончания его действия |
Запрос для создания нового обращения в ТП
Запрос
(POST) URL_BZ + /api/ticket/create?token=[token]
Параметр | Описание |
---|---|
Обязательный message |
Строка Текст обращения в ТП. |
Ответ
Content type: application/json
{
"response": "success",
"id": 139823,
"description": "описание"
}
Параметр | Описание |
---|---|
Обязательный response |
Строка success – Запрос успешно выполнен failed – ошибка при выполнении запроса |
Обязательный id |
Строка Идентификатор созданного обращения |
description | Строка Описание ошибки в случае не успешного запроса |
Запрос для добавления текстового сообщения в существующее обращение партнёра
Запрос
(POST) URL_BZ + /api/ticket/post?token=[token]
Параметр | Описание |
---|---|
Обязательный id |
Строка Идентификатор обращения |
Обязательный message |
Строка Текст обращения в ТП. |
Ответ
Content type: application/json
{
"response": "success",
"messageid": 139823,
"description": "описание"
}
Параметр | Описание |
---|---|
Обязательный response |
Строка success – Запрос успешно выполнен failed – ошибка при выполнении запроса |
Обязательный messageid |
Строка Идентификатор добавленного сообщения в обращении |
description | Строка Описание ошибки в случае не успешного запроса |
Запрос для добавления произвольного файла в существующее обращение
Запрос
(POST) URL_BZ + /api/ticket/post?token=[token]
Параметр | Описание |
---|---|
Обязательный id |
Строка Идентификатор обращения |
Тело запроса | вложение в формате multipart/form-data (стандартный upload по HTTP) |
Ответ
Content type: application/json
{
"response": "success",
"messageid": 139823,
"description": "описание"
}
Параметр | Описание |
---|---|
Обязательный response |
Строка success – Запрос успешно выполнен failed – ошибка при выполнении запроса |
Обязательный messageid |
Строка Идентификатор добавленного сообщения в обращении |
description | Строка Описание ошибки в случае не успешного запроса |
Запрос для получения списка обращений партнёра
Запрос
(POST) URL_BZ + /api/ticket/list?token=[token]
Параметр | Описание |
---|---|
from |
Число Timestamp начала периода запроса |
till |
Число Timestamp начала периода запроса |
limit |
Число Максимальное количество записей в ответе |
page |
Число Номер "страницы" для списка |
Ответ
Content type: application/json
{
"response": "success",
"tickets":
[
{
"id": 234324,
"status": "process",
"create": 1235325,
"change": 1243565,
"unread_self": true,
"unread_support": false
},
{...}
],
"pagination" :
{
"page": 1,
"page_max": 5,
"limit": 10
}
}
Параметр | Описание |
---|---|
Обязательный response |
Строка success – Запрос успешно выполнен failed – ошибка при выполнении запроса |
Обязательный tickets |
Массив Список тикетов id - идентификатор тикета status - статус обработки: "new" - новый, "process" - в работе, "completed" - завершен, "rejected" - отклонен create - время создания обращения change - время обновления обращений unread_self - в обращение есть сообщения непрочитанные партнёром unread_support - в обращение есть сообщения непрочитанные ТП |
Обязательныйpagination | Структура Информация о количестве записей/страниц в ответе page - текущая страница в ответе page_max - общее количество страниц по выборке limit - количество записей на одной странице |
Запрос для получения спиcка сообщений в обращении
Запрос
(POST) URL_BZ + /api/ticket/get?token=[token]
Параметр | Описание |
---|---|
id |
Число Идентификатор тикета |
limit |
Число Максимальное количетсво записей в ответе |
page |
Число Номер "страницы" для списка |
Ответ
Content type: application/json
{
"response": "success",
"ticket":
{
"id": 234324,
"status": "process",
"create": 1235325,
"change": 1243565,
"unread_self": true,
"unread_support": false
},
"messages":
[
{
"messageid":234,
"date": 121434,
"attachment": false,
"value": "текст сообщения",
"support": true,
"unread": false
},
{...}
],
"pagination" :
{
"page": 1,
"page_max": 5,
"limit": 10
}
}
Параметр | Описание |
---|---|
Обязательный response |
Строка success – Запрос успешно выполнен failed – ошибка при выполнении запроса |
Обязательный ticket |
Структура id - идентификатор тикета status - статус обработки: "new" - новый, "process" - в работе, "completed" - завершен, "rejected" - отклонен create - время создания обращения change - время обновления обращений unread_self - в обращение есть сообщения непрочитанные партнёром unread_support - в обращение есть сообщения непрочитанные ТП |
Обязательный messages |
Структура messageid - идентификатор сообщения date - время добавления сообщения attachment - TRUE: сообщение является файлом-вложением, FASLE: текстовое сообщение value - текст сообщения support - TRUE: сообщение от ТП, FALSE: сообщение партнёра unread - признак прочтения сообщения |
Обязательный pagination |
Структура Информация о количестве записей/страниц в ответе page - текущая страница в ответе page_max - общее количество страниц по выборке limit - количество записей на одной странице |
Запрос для скачивания файла-вложения в обращении
Запрос
(POST) URL_BZ + /api/ticket/download?token=[token]
Параметр | Описание |
---|---|
Обязательный messageid |
Строка Идентификатор сообщения |
Ответ
В случае успешного ответа http-code = 200, в теле ответа содержимое файла.