Перейти к содержанию

Восстановление синхронизации

Webhook обеспечивает малую задержку, но не гарантирует хранение всех изменений во время длительной недоступности партнёра. Для восстановления используйте ReadQuery или объединённый GetList.

Хранимое состояние

Партнёру рекомендуется хранить:

  • внутренний id заявки CARGO.RUN;
  • партнёрский externalId;
  • последний принятый updatedAt;
  • обработанные eventId webhook;
  • курсор последней успешной сверки;
  • статус собственной обработки события.

Алгоритм восстановления

  1. Взять время последней успешной сверки.
  2. Вычесть несколько секунд для перекрытия.
  3. Выполнить список с фильтром updatedAt gt ....
  4. Использовать $orderby=updatedAt,id.
  5. Обрабатывать страницы до пустого результата.
  6. Удалять дубли по id.
  7. Для изменившихся ID выполнить Read / Bid / Default.
  8. Отдельно запросить фактический маршрут, если он нужен.
  9. Обновить курсор только после успешной записи всех данных.

ReadQuery эквивалентен GetList без X-Organization-Id. Если восстановление нужно выполнить отдельно по организации, используйте синхронный GetList с этим заголовком.

Пример запроса

$filter=updatedAt gt 2026-10-07T07:59:55Z&$orderby=updatedAt,id&$top=100

Периодическая сверка

Даже при стабильной работе webhook выполняйте контрольную сверку по расписанию. Интервал выбирает партнёр с учётом допустимой задержки и нагрузки.

Повтор задач

Если ответ постановки задачи потерян, повторите тот же запрос с тем же Idempotency-Key. Сервер вернёт ранее созданные задачи в течение 24 часов.

Если потерян только webhook queued-task.finished, получите результат задачи через GET /api/integrations/Tasks/Queue, передав taskId в параметре id.