Создать заказ на перевозку

Статья обновлена November 12, 2026

Стенд по умолчанию — test. Сценарий изменяет данные. Порядок работы для агента.

Выберите организацию заказчика, подготовьте данные груза, требования к транспорту и способ распределения заказа. Перед записью на рабочем стенде получите подтверждение пользователя.

Подготовить организацию и справочники

  1. Вызовите GET /api/orders/v0/transferOrder/forwarder/allow. Выберите организацию из data.items, от имени которой можно создать заказ.
  2. Получите допустимые значения из справочников.

Для других справочников и поиска адреса откройте Подготовить справочники, адреса и узловые точки для заказа. Передавайте коды в том виде, в каком они пришли из справочников.

Создать заказ

Вызовите POST /api/orders/v0/transferOrder/create. Передайте id выбранной организации из data.items в data.forwarder.forwarderId. Заполните данные владельца груза в data.customer и валюту в data.currency. Нужны непустые массивы data.bodyType и data.shipments. У каждой задачи должны быть погрузка (npShipment), выгрузка (npUnshipment) и хотя бы одно грузовое место в packages. Проверьте даты и часовые пояса, в том числе что выгрузка запланирована после погрузки.

Чтобы сохранить черновик, оставьте data.distribution без значения. Если пользователь хочет отправить заказ в торги или исполнение, согласуйте это действие до вызова.

Пример тела запроса для черновика

Пример использует синтетические значения. Для вызова подставьте выбранную организацию, сведения о грузе, актуальные даты и адреса.

{
  "data": {
    "forwarder": {"forwarderId": "example-forwarder"},
    "customer": {
      "customerName": "Учебный заказчик",
      "customerTin": "1234567890",
      "customerCountry": "RU",
      "customerLegalForm": "OOO",
      "customerPhone": "",
      "customerForwarderId": "",
      "customerComment": "",
      "customerAddress": ""
    },
    "transferOrderType": "FTL",
    "cargoCategory": {"category": ""},
    "transferOrderAdditionalConfiguration": {},
    "isVolumeAuction": false,
    "meta": {},
    "currency": "RUB",
    "switchOffDatesValidation": false,
    "trustCoordinates": false,
    "bodyType": ["tent"],
    "shipments": [{
      "packageType": "items",
      "packages": [{"count": 1, "stackability": "", "hazardClass": ""}],
      "npShipment": {
        "name": "Учебная погрузка",
        "country": "RU",
        "npLegalType": "warehouse",
        "position": 0,
        "period": {"from": {"time": "2030-01-15T09:00:00+03:00", "displayTZ": "Europe/Moscow"}},
        "npGeoAddress": {"address": "Учебный адрес погрузки", "lat": 55.75, "long": 37.62}
      },
      "npUnshipment": {
        "name": "Учебная выгрузка",
        "country": "RU",
        "npLegalType": "warehouse",
        "position": 1,
        "period": {"from": {"time": "2030-01-16T09:00:00+03:00", "displayTZ": "Europe/Moscow"}},
        "npGeoAddress": {"address": "Учебный адрес выгрузки", "lat": 59.93, "long": 30.36}
      }
    }]
  }
}

Сохраните data.id из ответа. Чтобы проверить статус созданного заказа, передайте этот идентификатор в data.exactOrderIds метода POST /api/orders/v0/transferOrder/getFlatForCustomer.

При ошибке валидации сверьте обязательные поля и коды справочников. При 403 Forbidden проверьте право на создание заказов в выбранной организации.