====== Документ описывает формат обмена данными Д24 с внешней системой. ======
Уведомления о создании / изменении заявки или оповещения отправляются объектом или (опционально) массивом POST методом с данными в формате JSON.
В ответ на уведомление должен быть возвращен HTTP код 200, при отличном от 200 коде ответа, уведомление будет отправляться повторно через "таймаут задержку".
"Таймаут задержка" рассчитывается по формуле log(fail_count)*backoff_interval, т.е. после первого неуспешного отправления следующие попытки будут продолжаться через 2, 12, 17, 22, 25 минут и т.д.
Кол-во отправок при ошибках = 300 (примерно 10 дней), после чего сработает автоматический выключатель интеграции и дальнейшие попытки отправки вебхуков будут прекращены.
RTT (таймаут соединения) = 1 секунда, если удаленный сервис не ответил за указанный RTT, система считает отправку неудачной.
**Авторизация**
* удаленный сервис принимает запрос без авторизации (например https://example.ru/webhooks/ds24)
* удаленный сервис принимает запрос с постоянным токеном в header любого вида (например https://example.ru/webhooks/ds24) + headers : { API-TOKEN : Bearer <любая последовательность>}
* удаленный сервис принимает запрос с постоянным токеном в path или query параметром (например https://example.ru/webhooks/ds24/verysecretpath?token=verysecrettoken)
Вариации с вебхуками
{
"request_id": ,
"info_id": ,
"object": "",
"event": ""
}
N - целое число
наличие request_id - событие по заявке
наличие info_id - событие по оповещению
object - принимает 3 вариации "feed" / "request" / "oi" (лента / заявка / оповещение)
event - принимает 3 вариации create / update / delete
Пример запрос на удаленный сервер при создании новой заявки с ID=12313123 и изменении заявки с ID=567567
// в виде массива
[
{
"request_id": 12313123,
"object": "request",
"event": "create"
},
{
"request_id": 567567,
"object": "request",
"event": "update"
}
]
// в виде объекта
{
"request_id": 12313123,
"object": "request",
"event": "create"
}
При каких изменениях в заявке произойдет вызов удаленного сервера?
* - Создание новой заявки
* - Изменили статус
* - Изменили исполнителя
* - Изменили ответственного
* - Изменили описание заявки
* - Изменили причину обращения из справочника
* - Создали дочернюю заявку в РСО
* - Изменили срок выполнения заявки
* - Добавили комментарий к заявке
* - Добавили файл к заявке
* .
* .
* .
* .
* .
* .
* .
* .
* .
* .
* .
* .
* .
* .
* .
* .
* .
* .
* .
=== Документация ниже устарела и более не поддерживается ===
Online уведомления
Вы можете получать моментальные уведомления о событиях в системе, таких как:
- Новая заявка от жителя
- Изменение заявки
- Изменение типа работ
- Изменение причины обращения
- Изменения статуса
- Изменения исполнителя и ответственного
- Изменение дома/квартиры/подъезда/этажа
- Изменения телефонов/email собственника в заявке
- Изменение описания заявки
- Изменения типа заявки
- Изменения стоимости и статуса оплаты
- Изменения срока выполнения
- Комментарии для жителя по заявке
Уведомления отправляется POST методом с данными в формате JSON.
В ответ на уведомление должен быть возвращен HTTP код 200, при отличном от 200 коде ответа, уведомление будет отправляться повторно.
Структура уведомления о создании заявки
^ Атрибут ^ Тип ^ Описание ^
| rid | int | Номер заявки |
| tid | int | Код типа работ |
| sid | int | Код статуса заявки |
| eid | int | Код сотрудника назначенного исполнителем на заявке |
| respid | int | Код сотрудника назначенного ответственным на заявке |
| essid | int | Код причины обращения |
| hid | int | Код дома |
| fnum | string | Помещение |
| ftype | string | Тип помещение |
| phc | string | Телефон контактный. мобильный без кода страны, городские с кодом города |
| pha | string | Авто определенный телефон. мобильный без кода страны, городские с кодом города |
| note | string | Текст заявки |
| flage | string | Заявка аварийная? варианты (Д)а/Н(ет) |
| flagp | string | Заявка платная? варианты (Д)а/Н(ет)|
| floor | int | Этаж |
| entrance | string | Подъезд |
| email | string | email заявителя |
| price | int | Стоимость |
| paid | int | Заявка оплачена? (Д)а/Н(ет)|
| edate | string | Плановый срок выполнения заявки |
Пример JSON
[{
"create": {
"rid": 1291461, -- id заявки
"tid": 325, -- id типа работ
"sid": 1, -- id статуса
"eid": null, -- id исполнителя
"respid": null, -- id ответственного
"essid": 4183, -- id причины обращения
"hid": 40783, -- id дома
"fnum": "1", -- помещение
"ftype": "1", -- тип помещение
"phc": "", -- телефон контактный. мобильный без кода страны, городские с кодом города.
"pha": "", -- АОН
"note": "Замена дверных замков", -- тест заявки
"flage": "Н", -- аварийная? варианты (Д)а/Н(ет)
"flagp": "Д", --платная варианты (Д)а/Н(ет)
"floor": null, -- этаж
"entrance": "", -- подъезд
"email": "", -- email
"price": null, -- стоимость
"paid": "Н" -- оплачено? (Д)а/Н(ет)
"edate": ""
}
}, {
"create": {
"rid": 1291463,
"tid": 23,
"sid": 1,
"eid": 29573,
"respid": 29573,
"essid": 1533,
"hid": 40783,
"fnum": "магазин ЭлитФрукт",
"ftype" : "4",
"phc": "9617489876",
"pha": "",
"note": "Топит канализационными стоками",
"flage": "Д",
"flagp": "Н",
"floor": 2,
"entrance": "2",
"email": "",
"price": null,
"paid": "Н",
"edate": "01.01.2019"
}]
Изменения заявок отслеживается по тем же полям, что используются при оповещении о создании заявки.
Могут доставляться одновременно с JSON о создании заявок.
Пример JSON
[{
"update": {
"edate": "",
"rid": 1292914
}
}, {
"update": {
"eid": 27414,
"rid": 1291667
}
}, {
"create": {
"rid": 1292914,
"tid": 21,
"sid": 1,
"eid": null,
"respid": null,
"essid": 3263,
"hid": 40783,
"fnum": "321",
"ftype" : "1",
"phc": "9617496539",
"pha": "",
"note": "Подаю заявку с личного кабинета с сайта ЮИТ",
"flage": "Н",
"flagp": "Н",
"floor": null,
"entrance": "",
"email": "",
"price": null,
"paid": "Н"
}
}, {
"create": {
"rid": 1293583,
"tid": 23,
"sid": 1,
"eid": null,
"respid": 29573,
"essid": 1554,
"hid": 40783,
"fnum": "1",
"ftype" : "3",
"phc": "",
"pha": "",
"note": "Ремонт полотенцесушителя",
"flage": "Н",
"flagp": "Д",
"floor": null,
"entrance": "",
"email": "",
"price": null,
"paid": "Н",
"edate": "12.11.2019"
}
}, {
"update": {
"sid": 3,
"rid": 1291464
}
}, {
"update": {
"edate": "",
"rid": 1292914
}
}]
Структура уведомления о создании нового комментария
^ Атрибут ^ Тип ^ Описание ^
| rid | int | Номер заявки |
| comment | string | Комментарий |
| empfio | string | ФИО сотрудника оставившего комментарий |
Пример JSON
[{
"comment": {
"rid": 1291463,
"comment": "Выполнено",
"empfio": "Иванов Иван Иванович"
}
}]