Отслеживание исполнения¶
После получения id заявки CARGO.RUN партнёр может читать её текущие данные синхронно или через очередь.
Синхронные методы¶
| Данные | Метод |
|---|---|
| Карточка и ETA | GET /api/integrations/Bids/Get |
| События | GET /api/integrations/Bids/GetEvents |
| Плановый маршрут | GET /api/integrations/Bids/GetPlannedRoute |
| Фактический маршрут | GET /api/integrations/Bids/GetActualRoute |
| Сообщения и файлы | GET /api/integrations/Bids/GetDriverMessages |
Статус и события — разные данные¶
Поле status в карточке или краткой модели заявки содержит её текущее состояние: New, Planned, Started, Canceled или Done. Именно это поле используйте для синхронизации статуса заказа во внешней системе.
Bids/GetEvents возвращает этапы исполнения, вычисленные по фактическим датам. Отмена и удаление представлены событиями BidCanceled и BidDeleted. Текущее состояние заявки всё равно определяйте по BidStatus, а события используйте как хронологию изменений.
Полное чтение через очередь¶
{
"commands": [
{
"action": "Read",
"objects": [
{
"type": "Bid",
"modelType": "Default",
"id": 12345
}
]
}
]
}
objects[].body содержит IntegrationBidDetailsModel:
externalId;bid— карточка заявки и ETA;plannedRoute;events;driverMessages.
Фактическая геометрия маршрута не включается из-за объёма.
ETA¶
ETA находится в bid.estimation:
estimatedDate возвращается в часовом поясе последней точки заявки.
Объединённый GetList также возвращает points[].estimatedEnterDate в часовом поясе
соответствующей точки. ETA пересчитывается без изменения заявки и не сдвигает
updatedAt, поэтому инкрементальный курсор не гарантирует получение каждого её
изменения. Для оперативного экрана периодически перечитывайте интересующие заявки.
Фрагмент ответа Bids/Get:
{
"id": 12345,
"status": "Started",
"updatedAt": "2026-10-08T12:05:00+03:00",
"externalId": "ORDER-2471970",
"estimation": {
"estimatedDate": "2026-10-08T15:00:00+03:00",
"manualEstimatedLeaveDate": null
}
}
События¶
[
{
"type": "EnteredPointByDriver",
"fixedAt": "2026-10-08T12:00:00+03:00",
"bidPointId": 456,
"bidPointOrder": 1,
"bidPointExternalId": "POINT-UNLOAD-1"
}
]
Для события точки fixedAt использует часовой пояс этой точки, для остальных событий — часовой пояс организации.
GetList.events содержит события несервисных точек. Отдельный Bids/GetEvents
дополнительно возвращает события сервисных точек, если у них есть фактические даты.
Плановый маршрут¶
Содержит расстояния в метрах и продолжительность в секундах. Синхронный GetPlannedRoute возвращает расчётные показатели; асинхронный IntegrationBidDetailsModel.plannedRoute использует ту же модель.
{
"id": 70001,
"distance": 815000,
"duration": 39600,
"distanceWithoutEmptyMileage": 800000,
"emptyMileageDistance": 15000,
"durationWithoutEmptyMileage": 37800
}
Фактический маршрут¶
GET <baseUrl>/api/integrations/Bids/GetActualRoute?id=12345&coordinateIntervalSeconds=60
Authorization: Bearer <accessToken.token>
coordinateIntervalSeconds задаёт минимальный интервал между координатами; значение по умолчанию — 60, значение 0 отключает прореживание.
isMobile=true означает мобильные координаты, false — другой источник, например телематика.
[
{
"emptyMileageRoute": [],
"mainRoute": [
{
"coordinate": [37.6176, 55.7558],
"fixedAt": "2026-10-08T12:00:00+03:00"
}
],
"carId": 501,
"carNumber": "А123АА777",
"hasActiveMileage": true,
"isMobile": true
}
]
Сообщения и файлы¶
Синхронный метод поддерживает OData и X-MetaCount. Он возвращает расширенную ChatMessageGetModel, включая type и flags. В полном асинхронном ответе driverMessages содержит сокращённую модель без этих двух полей.
accessUrlLink — временная ссылка на файл. Скачайте файл сразу либо повторно прочитайте заявку для получения новой ссылки.