Быстрый старт¶
Во всех примерах <baseUrl> — адрес API CARGO.RUN, выданный при подключении.
1. Получить токен¶
{
"grantType": "client_credentials",
"clientId": "partner-client-id",
"clientSecret": "partner-client-secret"
}
Сохраните accessToken.token из ответа и используйте его во всех последующих запросах:
2. Выбрать сценарий¶
- Проверить организацию по ИНН через
Organizations/Check. - При необходимости вызвать
Organizations/Apply. - Создать заявку синхронным
Bids/Applyили асинхроннымWrite. - Сохранить ID заявки CARGO.RUN.
- Получить объединённый список собственных и транслируемых заявок через
Bids/GetListили асинхронныйReadQuery. - Сохранить ID заявок CARGO.RUN.
- Получать полные данные синхронными методами или асинхронным
Read.
3. Получить заявки¶
Синхронно:
GET <baseUrl>/api/integrations/Bids/GetList?$orderby=updatedAt,id&$top=100
Authorization: Bearer <accessToken.token>
Без X-Organization-Id метод возвращает заявки всех доступных организаций. Поле
isCreatedByPlatform отличает созданные партнёром заявки от транслируемых
перевозчиками.
Асинхронно:
POST <baseUrl>/api/integrations/Tasks/Queue
Authorization: Bearer <accessToken.token>
Content-Type: application/json
Idempotency-Key: initial-sync-2026-10-07
{
"commands": [
{
"action": "ReadQuery",
"objects": [
{
"type": "Bid",
"modelType": "Default",
"query": "$filter=updatedAt gt 2026-10-06T08:00:00Z&$orderby=updatedAt,id&$top=100"
}
]
}
]
}
После постановки задачи получите её результат по возвращённому taskId либо дождитесь webhook queued-task.finished.
4. Получить полные данные заявки¶
Синхронно карточка, события, маршруты и сообщения запрашиваются отдельными методами Bids/Get*.
Через очередь используйте Read / Bid / Default: результат содержит карточку, плановый маршрут, события и сообщения. Фактический маршрут всегда запрашивается синхронным Bids/GetActualRoute.
5. Подключить оперативные уведомления¶
CARGO.RUN настраивает для интеграционного клиента callback и подписку Bid/Summary. После этого партнёр получает webhook entity.changed, проверяет подпись, исключает повтор по eventId и запрашивает полные данные заявки по её ID.
Даже при использовании webhook периодически выполняйте ReadQuery по updatedAt: это позволяет восстановить изменения после длительной недоступности callback.