====== Документ описывает формат обмена данными Д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": "Иванов Иван Иванович" } }]