WebHook API
получение событий от системы
Приложение может отправлять события на ваш сервер, такие как изменение статуса заказа или информацию о том, что в системе изменилось меню.
Настройка
Для включения необходимо создать интеграцию на странице "Настройки - Интеграции" с типом "Интеграция по API". В настройках интеграции указать ключ авторизации (он будет отправлен вам в header Authorization, чтобы вы понимали что запрос пришел от нас) и указать URL-адреса, на которые нужно отправлять те или иные события. Если для события указан адрес, на него будет отправляться событие, если адрес не указан, то соответственно ничего отправляться не будет.
Например, если вы указали адрес https://example.ytimes.ru/notification/menu/update для событий изменений меню, на него будут поступать запросы всякий раз, когда кто-то в личном кабинете YTimes будет менять настройки меню.
В теле запроса будет передаваться JSON, соответствующий событию. В поле eventId будет передаваться UUID события - это ключ идемпотентности, чтобы повторные запросы не приводили к дублированию на вашей стороне.
При успешной обработке события ваш сервер должен ответить кодом 200 и в теле ответа отправить "OK". Мы будем отправлять событие каждые 5 минут до тех пор пока ваш сервер не примет событие. Если в течение 48 часов успешного ответа не получено, отправка события отменяется.
Статус заказа, созданного по API
POST
{your url}/remote-order/status
Передает информацию и принятии или отмене заказа (созданного через API) кассиром. event guid - идентификатор заказа. status - может принимать значения CANCELLED или ACCEPTED.
Headers
Name | Type | Description |
---|---|---|
Authorization | string | Bearer {your key} |
Request Body
Name | Type | Description |
---|---|---|
body* | string | { "eventId": "ключ идемпотентности", "guid" : "885188cd-d0ee-4444-919e-4f063359dff7", "status" : "CANCELLED", "statusMessage" : "Отсутствуют позиции в наличие" } |
Событие изменения меню
POST
{your base url}/menu/changed
Информация о том, что в системе изменились настройки меню. После этого необходимо запросить с сервера актуальную версию меню. В событии отправляется тип меню, который был изменен. Возможные варианты: MENU_GROUP, MENU_ITEM, SUPPLEMENT_GROUP, SUPPLEMENT, COMBO
Headers
Name | Type | Description |
---|---|---|
Authorization | string | Bearer {your key} |
Request Body
Name | Type | Description |
---|---|---|
body* | string | { "eventId": ключ идемпотентности "type": тип меню, которое изменилось } |
Изменение анкеты карты гостя
POST
{your base url}/client/update
Если анкету базы клиентов изменили (включая изменение бонусного баланса), то срабатывает данное событие.
Headers
Name | Type | Description |
---|---|---|
Authorization | string | Bearer {your key} |
Request Body
Name | Type | Description |
---|---|---|
body* | string | { eventId: ключ идемпотентности dateTimeUTC: дата/время события по UTC phoneCode: телефонный код страны, например 7 для РФ phone: телефон number: номер карты гостя (целое число) name: имя гостя surname: фамилия гостя email: электронная почта birthday: день рождения sex: пол comment: комментарий к карте isAgreeToNotification: наличие согласия на получение рассылки (true/false) excludeAddPoints: если true, данному гостю нельзя начислять бонусы (true/false) pointsValue: текущий баланс гостя на момент события (double) pointsChange: изменение баланса гостя в результате события (double) pointsChangeComment: комментарий к изменению баланса гостя statVisitCount: общее кол-во посещений (int) statPayValue: общая оплаченная сумма (double) statLastMonthVisitCount: количество посещений в прошлый месяц (int) statLastMonthPayValue: сумма оплаты в прошлый месяц (double) statCurrentMonthVisitCount: количество посещений в текущий месяц (int) statCurrentMonthPayValue: сумма оплаты в текуший месяц (double) } |
Пример контроллера для приема событий
Last updated