Документ описывает формат обмена данными Д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 | Подъезд |
| 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»: «Иванов Иван Иванович»
}
}]
Обсуждение