Magic Склад
Тарифы Услуги Оборудование Нейроблог Маркетплейсы Маркировка Производство Розница Облачная касса
Техническое руководство

Вебхуки МойСклад: синхронизация заказов и остатков в реальном времени

Вебхук сообщает вашей системе, что объект в МойСклад изменился. Это быстрее и экономнее постоянного опроса API, но событие нельзя обрабатывать как готовую копию документа. Надежный endpoint принимает уведомление, ставит задачу в очередь и затем получает актуальную сущность через JSON API.

Вебхуки МойСклад и синхронизация событий в реальном времени
Архитектурный принцип: вебхук — сигнал об изменении, а не гарантированное состояние объекта. Прием должен быть быстрым, повторяемым и отделенным от бизнес-обработки очередью.

Почему вебхуки лучше частого polling

Официальный workbook МойСклад рекомендует вебхуки для взаимодействия интернет-магазина или приложения с аккаунтом в реальном времени и снижения количества периодических запросов. Это особенно полезно для новых заказов, изменений статуса, отгрузок и обновления карточек.

Но polling полностью не исчезает. Периодическая сверка нужна как страховка от временной недоступности endpoint, ошибок обработки и изменений конфигурации.

Надежная схема обработки события

МойСкладHTTPS endpointОчередьJSON APIВнешняя система
  1. Endpoint принимает POST и проверяет структуру запроса.
  2. Сохраняет минимальные данные события и уникальный ключ.
  3. Быстро возвращает успешный HTTP-ответ.
  4. Worker получает актуальную сущность по API.
  5. Применяет бизнес-правила и обновляет внешнюю систему.
  6. Фиксирует результат и контрольную точку.

Требования к endpoint

POST /webhooks/moysklad
1. validate payload
2. save event key
3. enqueue entity refresh
4. return 200

worker:
5. GET current entity from JSON API
6. upsert external record
7. mark event processed

Дубли, порядок и гонки

Один объект может измениться несколько раз подряд. Событие о старом состоянии способно обрабатываться после нового, если задачи выполняются параллельно. Поэтому worker должен получать актуальный объект, сравнивать версию или момент обновления и не применять устаревшие данные поверх новых.

Для защиты от дублей используйте уникальность по идентификатору события, а для результата — upsert по ID сущности МойСклад. Название товара, номер телефона или номер документа не являются надежным техническим ключом.

Почему нужна периодическая сверка

Раз в заданный интервал интеграция должна запрашивать сущности, обновленные после последней подтвержденной контрольной точки, с небольшим перекрытием времени. Повторы безопасно отфильтрует идемпотентная обработка, зато потерянное событие будет восстановлено.

МеханизмРоль
ВебхукБыстро сообщает об изменении
JSON APIВозвращает актуальное состояние сущности
ОчередьСглаживает нагрузку и обеспечивает повтор
ReconciliationНаходит пропущенные изменения
Dead-letter queueСохраняет задачи, требующие ручного разбора

Что контролировать в production

Практический пример: интернет-магазин

После изменения заказа webhook ставит задачу на обновление. Worker получает заказ и позиции через API, сопоставляет товары по сохраненным ID, обновляет статус в магазине и фиксирует версию. Если магазин недоступен, задача повторяется. Если событие потерялось, заказ попадет в следующую сверку.

Такую схему мы используем при интеграции МойСклад с интернет-магазином: вебхуки обеспечивают скорость, а сверка и идемпотентность — надежность.

Вывод

Вебхуки сокращают задержку и нагрузку, но не отменяют инженерную дисциплину. Production-интеграция обязана переживать повтор события, нарушение порядка, временную ошибку API и недоступность внешней системы без потери заказов.

Частые вопросы

Нужно ли получать сущность через API после вебхука?

Да. Вебхук лучше использовать как сигнал, после которого worker запрашивает актуальное состояние объекта через JSON API.

Может ли вебхук прийти повторно?

Интеграция должна быть готова к повторной доставке и повторной обработке. Используйте уникальные ключи событий и upsert по ID сущности.

Можно ли полностью отказаться от периодической синхронизации?

Для критичных данных не стоит. Периодическая сверка с перекрытием закрывает пропуски из-за сетевых и операционных сбоев.

Источники и дата проверки

Фактическая часть проверена 09.08.2026 по официальным материалам МойСклад.

Нужно настроить этот сценарий в вашем МойСклад?

Разберем текущие процессы, найдем риск ошибок и предложим понятный план внедрения.

интеграция МойСклад по API · интеграция МойСклад с интернет-магазином