Это старая версия документа!
Документ описывает формат обмена данными Д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": <N>, "info_id": <N>, "object": "<object_type>", "event": "<operation>" }
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 | Подъезд |
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": "Иванов Иван Иванович" }
}]
Обсуждение