Получение заявок¶
GET /api/integrations/Bids/GetList возвращает единый список:
- заявок, созданных текущим партнёром;
- заявок перевозчиков, транслируемых платформе партнёра.
Для транслируемой заявки перевозчик указывает в CARGO.RUN платформу
ExternalPlatform и идентификатор заказа ExternalPlatformOrderId. Оба значения
должны быть заполнены.
Область выборки
Транслируемые заявки выбираются по платформе, а не непосредственно по clientId.
Несколько активных интеграционных клиентов одной платформы могут получить
одинаковые заявки.
Синхронный список¶
Все доступные организации:
GET <baseUrl>/api/integrations/Bids/GetList?$filter=updatedAt%20gt%202026-10-06T08:00:00Z&$orderby=updatedAt,id&$top=100
Authorization: Bearer <accessToken.token>
Только одна организация:
GET <baseUrl>/api/integrations/Bids/GetList?$filter=updatedAt%20gt%202026-10-06T08:00:00Z&$orderby=updatedAt,id&$top=100
Authorization: Bearer <accessToken.token>
X-Organization-Id: 12345
X-Organization-Id необязателен только как ограничитель области этого метода. Если
заголовок передан, организация должна быть доступна интеграционному клиенту.
Миграция
GET /api/integrations/Bids/GetCurrentList удалён. Не заменяйте его вызовом
GetList вслепую: новый метод также возвращает заявки, созданные партнёром, а без
X-Organization-Id охватывает все доступные организации.
Источник и внешний идентификатор¶
isCreatedByPlatform |
Источник | Значение externalId |
|---|---|---|
true |
Заявку создал текущий партнёр | bid.externalId, переданный в Apply или Write |
false |
Перевозчик транслирует заявку платформе | ExternalPlatformOrderId, указанный перевозчиком |
Всегда сохраняйте внутренний id CARGO.RUN. externalId имеет разную семантику в
зависимости от источника и не заменяет внутренний ID.
Пример ответа¶
[
{
"id": 12345,
"externalId": "ORDER-2471970",
"isCreatedByPlatform": false,
"status": "Started",
"isDeleted": false,
"createdAt": "2026-10-06T10:00:00+03:00",
"updatedAt": "2026-10-07T11:00:00+03:00",
"points": [
{
"id": 501,
"order": 0,
"externalId": "POINT-LOAD-1",
"type": "LoadPoint",
"planEnterDate": "2026-10-07T12:00:00+03:00",
"estimatedEnterDate": "2026-10-07T12:25:00+03:00",
"loadUnloadStatus": "AtLoading",
"enteredAt": "2026-10-07T12:18:00+03:00",
"loadUnloadedAt": null,
"documentsReceivedAt": null
}
],
"events": [
{
"type": "EnteredPointByDriver",
"fixedAt": "2026-10-07T12:18:00+03:00",
"bidPointId": 501,
"bidPointOrder": 0,
"bidPointExternalId": "POINT-LOAD-1"
}
]
}
]
Точки, события и часовые пояса¶
pointsсодержит несервисные точки в порядке следования;- все даты в
pointsвозвращаются в часовом поясе соответствующей точки; - события самой заявки возвращаются в часовом поясе организации;
- события точки возвращаются в часовом поясе точки;
eventsвнутриGetListсодержит события несервисных точек;- отдельный
Bids/GetEventsдополнительно возвращает события сервисных точек, если у них есть фактические даты; eventsвычисляется после основной выборки и не участвует в$filterи$orderby.
estimatedEnterDate пересчитывается без изменения заявки и не сдвигает updatedAt.
Поэтому курсорная выборка по updatedAt не гарантирует получение каждого изменения
ETA. Если актуальная ETA нужна в интерфейсе, периодически перечитывайте интересующие
заявки по ID или запрашивайте подходящее текущее окно.
Асинхронный список¶
Используйте ReadQuery / Bid / Default:
{
"commands": [
{
"action": "ReadQuery",
"objects": [
{
"type": "Bid",
"modelType": "Default",
"query": "$filter=updatedAt gt 2026-10-06T08:00:00Z&$orderby=updatedAt,id&$top=100"
}
]
}
]
}
После завершения задачи objects[0].body содержит IntegrationBidListModel[].
ReadQuery эквивалентен GetList без X-Organization-Id и охватывает все доступные
организации. Поля id, version и key в объекте команды должны отсутствовать, а
query должен быть непустым.
Первичная загрузка и пагинация¶
Без непустого $filter сервер возвращает заявки, изменённые за последние 30 дней.
Любой непустой $filter, даже не связанный с updatedAt, отменяет это окно.
- Выберите начальное значение
updatedAt. - Запрашивайте данные с
$orderby=updatedAt,id. - Используйте
$topи$skipлибо собственный курсор. - Сохраняйте последний успешно обработанный
(updatedAt,id). - Следующий интервал начинайте на несколько секунд раньше.
- Удаляйте дубли по
id. - Разделяйте источники по
isCreatedByPlatform, если для них нужны разные процессы.