Webhook - Заказы
Обзор
Все события отправляются в формате JSON с единой структурой:
{
"event": "order_created",
"userId": "550e8400-e29b-41d4-a716-446655440001",
"timestamp": "2024-01-01T10:00:00Z",
"data": {
*// Данные события (зависят от типа события)*
}
}
Подробную информацию о настройке и способах использования смотрите в статье "Вебхуки"
Создан новый заказ
event: order_created
data:
{
"creationTime": "2024-12-17T10:00:00Z",
"closedAt": null,
"dueDate": "2024-12-24T10:00:00Z",
"num": "А40",
"title": "Apple iPad A1454",
"sn": "SN123456",
"malfunction": "Белый экран",
"condition": "Отходит экран от корпуса",
"status": "Новый",
"statusId": "3a118871-f8e8-ea71-c068-51dae78ad941",
"urgent": false,
"isWarranty": false,
"customerId": "550e8400-e29b-41d4-a716-446655440011",
"customerName": "Иванов Иван Иванович",
"managerName": "Петрова Анна Сергеевна",
"engineerFullName": "Сидоров Алексей Михайлович",
"total": 15000.00,
"location": "3a118871-fa11-eb35-fd10-91905199afba",
"orderTypeId": 1,
"orderTypeTitle": "Платный",
"previousOrderId": null,
"previousOrderNum": null
}
TypeScript интерфейс:
interface OrderCreatedData {
*/** Время создания в формате ISO 8601 */*
creationTime: string;
*/** Время закрытия заказа */*
closedAt: string | null;
*/** Срок выполнения в формате ISO 8601 */*
dueDate: string;
*/** Номер заказа */*
num: string;
*/** Название заказа */*
title: string;
*/** Серийный номер устройства */*
sn: string;
*/** Описание неисправности */*
malfunction: string;
*/** Состояние устройства */*
condition: string;
*/** Статус заказа */*
status: string;
*/** Идентификатор статуса */*
statusId: string;
*/** Признак срочности */*
urgent: boolean;
*/** Признак гарантийного ремонта */*
isWarranty: boolean;
*/** Идентификатор клиента */*
customerId: string;
*/** Имя клиента */*
customerName: string;
*/** Имя менеджера */*
managerName: string;
*/** Полное имя инженера */*
engineerFullName: string;
*/** Общая сумма */*
total: number;
*/** Идентификатор локации */*
location: string;
*/** Идентификатор типа заказа */*
orderTypeId: number;
*/** Название типа заказа */*
orderTypeTitle: string;
*/** Идентификатор предыдущего заказа */*
previousOrderId: string | null;
*/** Номер предыдущего заказа */*
previousOrderNum: string | null;
}
Изменен статус
event: order_status_changed
data:
{
"orderId": "550e8400-e29b-41d4-a716-446655440000",
"userId": "550e8400-e29b-41d4-a716-446655440001",
"creationTime": "2024-12-17T10:00:00Z",
"status": "В работе",
"statusId": "550e8400-e29b-41d4-a716-446655440010"
}
TypeScript интерфейс:
interface OrderStatusChangedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор пользователя, изменившего статус */*
userId: string;
*/** Время изменения статуса */*
creationTime: string;
*/** Новый статус заказа */*
status: string;
*/** Идентификатор статуса */*
statusId: string;
}
Заказ удален
event: order_deleted
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000"
}
TypeScript интерфейс:
interface OrderDeletedData {
*/** Идентификатор удаленного заказа */*
orderId: string;
}
Добавлен комментарий
event: order_comment_added
data:
{
"orderId": "550e8400-e29b-41d4-a716-446655440000",
"commentId": 1001,
"text": "Клиент просит ускорить выполнение заказа",
"isPrivate": false
}
TypeScript интерфейс:
interface OrderCommentAddedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор комментария */*
commentId: number;
*/** Текст комментария */*
text: string;
*/** Признак приватности комментария */*
isPrivate: boolean;
}
Добавлен материал
event: order_material_added
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"MaterialId": 9116,
"Name": "Ламинат Дуб Темный 33 класс",
"Quantity": 1,
"Price": 850.00,
"Total": 850.00,
"PurchasePrice": 650.00,
"RelatedWorkId": 2001,
"WarrantyUnit": 0,
"WarrantyValue": 7
}
TypeScript интерфейс:
interface OrderMaterialAddedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор материала */*
materialId: number;
*/** Название материала */*
name: string;
*/** Количество */*
quantity: number;
*/** Цена продажи */*
price: number;
*/** Общая сумма (Quantity × Price) */*
total: number;
*/** Закупочная цена */*
purchasePrice: number;
*/** Идентификатор связанной работы */*
relatedWorkId: number;
*/** Единица измерения гарантии */*
warrantyUnit: number;
*/** Значение гарантии */*
warrantyValue: number;
}
Обновлена информация о материале
event: order_material_updated
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"MaterialId": 9116,
"Name": "Ламинат Дуб Темный 33 класс",
"Quantity": 30,
"Price": 850.00,
"Total": 25500.00,
"PurchasePrice": 650.00,
"RelatedWorkId": 2001,
"WarrantyUnit": 0,
"WarrantyValue": 7
}
TypeScript интерфейс:
interface OrderMaterialUpdatedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор материала */*
materialId: number;
*/** Название материала */*
name: string;
*/** Количество */*
quantity: number;
*/** Цена продажи */*
price: number;
*/** Общая сумма (Quantity × Price) */*
total: number;
*/** Закупочная цена */*
purchasePrice: number;
*/** Идентификатор связанной работы */*
relatedWorkId: number;
*/** Единица измерения гарантии */*
warrantyUnit: number;
*/** Значение гарантии */*
warrantyValue: number;
}
Материал удален
event: order_material_deleted
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"MaterialId": 9116,
"Name": "Ламинат Дуб Темный 33 класс"
}
TypeScript интерфейс:
interface OrderMaterialDeletedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор материала */*
materialId: number;
*/** Название материала */*
name: string;
}
Добавлена работа
event: order_work_added
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"WorkId": 2001,
"Name": "Укладка ламината",
"Quantity": 25,
"Price": 150.00,
"Total": 3750.00,
"CostPrice": 100.00,
"UserId": "550e8400-e29b-41d4-a716-446655440001",
"UserName": "Алексей Сидоров",
"PriceWorkId": 101,
"WarrantyUnit": 0,
"WarrantyValue": 7
}
TypeScript интерфейс:
interface OrderWorkAddedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор работы */*
workId: number;
*/** Название работы */*
name: string;
*/** Количество */*
quantity: number;
*/** Цена продажи */*
price: number;
*/** Общая сумма (Quantity × Price) */*
total: number;
*/** Себестоимость */*
costPrice: number;
*/** Идентификатор исполнителя */*
userId: string;
*/** Имя исполнителя */*
userName: string;
*/** Идентификатор прайс-листа работ */*
priceWorkId: number;
*/** Единица измерения гарантии */*
warrantyUnit: number;
*/** Значение гарантии */*
warrantyValue: number;
}
Обновлена информация о работе
event: order_work_updated
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"WorkId": 2001,
"Name": "Укладка ламината",
"Quantity": 30,
"Price": 150.00,
"Total": 4500.00,
"CostPrice": 100.00,
"UserId": "550e8400-e29b-41d4-a716-446655440001",
"UserName": "Алексей Сидоров",
"PriceWorkId": 101,
"WarrantyUnit": 0,
"WarrantyValue": 7
}
TypeScript интерфейс:
interface OrderWorkUpdatedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор работы */*
workId: number;
*/** Название работы */*
name: string;
*/** Количество */*
quantity: number;
*/** Цена продажи */*
price: number;
*/** Общая сумма (Quantity × Price) */*
total: number;
*/** Себестоимость */*
costPrice: number;
*/** Идентификатор исполнителя */*
userId: string;
*/** Имя исполнителя */*
userName: string;
*/** Идентификатор прайс-листа работ */*
priceWorkId: number;
*/** Единица измерения гарантии */*
warrantyUnit: number;
*/** Значение гарантии */*
warrantyValue: number;
}
Работа удалена
event: order_work_deleted
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"WorkId": 2001,
"Name": "Укладка ламината"
}
TypeScript интерфейс:
interface OrderWorkDeletedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор работы */*
workId: number;
*/** Название работы */*
name: string;
}
Назначен инженер
event: order_engineer_assigned
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"EngineerId": "550e8400-e29b-41d4-a716-446655440012",
"EngineerName": "Сидоров Алексей Михайлович",
"UserId": "550e8400-e29b-41d4-a716-446655440001",
"CreationTime": "2024-12-17T10:00:00Z"
}
TypeScript интерфейс:
interface OrderEngineerAssignedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор инженера */*
engineerId: string;
*/** Имя инженера */*
engineerName: string;
*/** Идентификатор пользователя, выполнившего назначение */*
userId: string;
*/** Время назначения */*
creationTime: string;
}
Назначен менеджер
event: order_manager_assigned
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"ManagerId": "550e8400-e29b-41d4-a716-446655440013",
"ManagerName": "Петрова Анна Сергеевна",
"UserId": "550e8400-e29b-41d4-a716-446655440001",
"CreationTime": "2024-12-17T10:00:00Z"
}
TypeScript интерфейс:
interface OrderManagerAssignedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор менеджера */*
managerId: string;
*/** Имя менеджера */*
managerName: string;
*/** Идентификатор пользователя, выполнившего назначение */*
userId: string;
*/** Время назначения */*
creationTime: string;
}
Обновлена локация
event: order_location_updated
data:
{
"OrderIds": ["550e8400-e29b-41d4-a716-446655440000"],
"LocationId": "550e8400-e29b-41d4-a716-446655440014",
"UserId": "550e8400-e29b-41d4-a716-446655440001",
"CreationTime": "2024-12-17T10:00:00Z"
}
TypeScript интерфейс:
interface OrderLocationUpdatedData {
*/** Массив идентификаторов заказов */*
orderIds: string[];
*/** Идентификатор локации */*
locationId: string;
*/** Идентификатор пользователя, выполнившего обновление */*
userId: string;
*/** Время обновления */*
creationTime: string;
}
Создан платеж
event: order_payment_created
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"PaymentId": "550e8400-e29b-41d4-a716-446655440015",
"Amount": 5000.00,
"UserId": "550e8400-e29b-41d4-a716-446655440001",
"CreationTime": "2024-12-17T10:00:00Z"
}
TypeScript интерфейс:
interface OrderPaymentCreatedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор платежа */*
paymentId: string;
*/** Сумма платежа */*
amount: number;
*/** Идентификатор пользователя, создавшего платеж */*
userId: string;
*/** Время создания платежа */*
creationTime: string;
}
Платеж удален
event: order_payment_deleted
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"PaymentId": "550e8400-e29b-41d4-a716-446655440016",
"UserId": "550e8400-e29b-41d4-a716-446655440001",
"CreationTime": "2024-12-17T10:00:00Z"
}
TypeScript интерфейс:
interface OrderPaymentDeletedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Идентификатор платежа */*
paymentId: string;
*/** Идентификатор пользователя, удалившего платеж */*
userId: string;
*/** Время удаления платежа */*
creationTime: string;
}
Обновлен срок выполнения
event: order_due_date_updated
data:
{
"OrderId": "550e8400-e29b-41d4-a716-446655440000",
"DueDate": "2024-12-31T10:00:00Z",
"UserId": "550e8400-e29b-41d4-a716-446655440001",
"CreationTime": "2024-12-17T10:00:00Z"
}
TypeScript интерфейс:
interface OrderDueDateUpdatedData {
*/** Идентификатор заказа */*
orderId: string;
*/** Новый срок выполнения в формате ISO 8601 */*
dueDate: string;
*/** Идентификатор пользователя, обновившего срок */*
userId: string;
*/** Время обновления срока */*
creationTime: string