Вебхук (Webhook) - механизм оповещения системы о событиях, которые отправляются на указанный сторонний сервис.
Примеры запросов в Partner API
В UDS Бизнес Вы можете настроить вебхуки на следующие события:
Появление нового клиента в компании.
Проведение стандартной операции.
Получение о поступлении заказа.
UDS отправляет вебхук методом POST с JSON-объектом в теле запроса. Для безопасности вебхуки хешируются с помощью md5, что позволяет Вашему серверу убедиться, что данные отправляются именно от UDS.
Для настройки вебхука нужно зайти в Настройки UDS Бизнес в раздел Интеграция, включить настройку вебхуки и указать адрес Вашего сервера, который будет обрабатывать отправляемые данные.
Важно! Для отправки вебхуков необходимо сгенерировать API Key, если он отсутствует
Принимающий вебхук сервер при успешной обработке данных должен отвечать http-кодом 200 в течение 5 секунд. При получении любого другого кода UDS считает попытку отправки данных неудачной. Повторно вебхук отправляется через 5 минут, всего делается три попытки отправки.
Примеры отправляемых вебхуков
Присоединение нового клиента
{ "phone": +78007754524, "gender": "NOT_SPECIFIED", "uid": "18c354ec-278b-41cd-a003-0214f448f299", "birthDate": "1999-06-21", "avatar": null, "participant": { "cashbackRate": 11, "dateCreated": "2021-06-21T09:46:28.054Z", "discountRate": 0, "id": 1099123456789, "inviterId": 1090123456789, "lastTransactionTime": null, "membershipTier": { "conditions": { "effectiveInvitedCount": null, "totalCashSpent": null }, "name": "Базовый", "rate": 11, "uid": "base" }, "points": 100 }, "displayName": "Иван Иванов" }
Получение нового заказа
{ "cash": 270, "onlinePayment": null, "purchase": { "cash": 270, "discountAmount": 0, "certificatePoints": 0, "maxPoints": 10, "extras": {}, "netDiscount": 10, "points": 10, "netDiscountPercent": 3.57, "cashBack": 9.9, "total": 280, "cashTotal": 270, "skipLoyaltyTotal": 180, "pointsPercent": 3.57, "discountPercent": 0 }, "delivery": { "address": null, "branch": { "displayName": "ул. Мира, 1, Москва, Россия, 123456", "id": 2199023540548 }, "deliveryCase": null, "receiverName": "Иван Иванов", "receiverPhone": "+78007754524", "type": "PICKUP", "userComment": "Комментарий от клиента" }, "certificatePoints": 0, "customer": { "displayName": "Иван Иванов", "id": 1099123456789, "membershipTier": { "conditions": { "effectiveInvitedCount": null, "totalCashSpent": null }, "name": "Базовый", "rate": 11, "uid": "base" }, "uid": "18c123ec-278b-41cd-a003-0214f448f299" }, "comment": null, "dateCreated": "2021-06-21T09:47:29.372Z", "points": 10, "id": 876619, "total": 280, "items": [ { "externalId": "coffee_cappuccino1", "id": 1594565, "name": "Капучино", "price": 90, "qty": 2, "sku": "1, "type": "VARYING_ITEM", "variantName": "Маленький 100 мл" }, { "externalId": null, "id": 1463419, "name": "Шарф", "price": 100, "qty": 1, "sku": "", "type": "VARYING_ITEM", "variantName": "черный" } ], "paymentMethod": { "name": null, "type": "CASH" }, "state": "NEW" }
Проведение операции
{ "id": 296982952, "dateCreated": "2021-06-21T09:43:40.605Z", "action": "PURCHASE", "state": "NORMAL", "customer": { "id": 1099123456789, "uid": "aa11d203-d643-4cce-bb2b-e70efcab74a5", "displayName": "Иван Иванов", "membershipTier": { "uid": "f91234fc-3f24-45ea-8eb1-16d00a7370d2", "name": "PLATINUM", "conditions": { "totalCashSpent": { "target": 10000 } }, "rate": 21 } }, "cashier": { "id": 2712234337919, "displayName": "UDS Admin" }, "points": -10, "cash": 990, "total": 1000, "receiptNumber": null }