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

Быстрый старт

Во всех примерах <baseUrl> — адрес API CARGO.RUN, выданный при подключении.

1. Получить токен

POST <baseUrl>/api/Account/Token
Content-Type: application/json
{
  "grantType": "client_credentials",
  "clientId": "partner-client-id",
  "clientSecret": "partner-client-secret"
}

Сохраните accessToken.token из ответа и используйте его во всех последующих запросах:

Authorization: Bearer <accessToken.token>

2. Выбрать сценарий

  1. Проверить организацию по ИНН через Organizations/Check.
  2. При необходимости вызвать Organizations/Apply.
  3. Создать заявку синхронным Bids/Apply или асинхронным Write.
  4. Сохранить ID заявки CARGO.RUN.
  1. Получить объединённый список собственных и транслируемых заявок через Bids/GetList или асинхронный ReadQuery.
  2. Сохранить ID заявок CARGO.RUN.
  3. Получать полные данные синхронными методами или асинхронным 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.