ПЭК API личного кабинета API

Отрасль: Логистика и доставка. Актуально на 2026-10-24.

API личного кабинета транспортной компании ПЭК для сторонних сайтов и приложений: расчёт стоимости и сроков перевозки, справочник филиалов и складов, статусы и детали грузов, заявки на забор груза, предварительное оформление, бухгалтерские документы, подписки на уведомления. Все методы вызываются POST-запросом с JSON-телом.

Сценарии

Рассчитать стоимость и сроки перевозки груза

Показать клиенту цену и срок доставки ПЭК между городами — от склада до склада или с забором и доставкой до двери.

  1. Создай ключ API в личном кабинете («Регистрационные данные» → «Ключи API»). Авторизация — Basic: логин кабинета и ключ. Все методы — POST с JSON на https://kabinet.pecom.ru/api/v1/<группа>/<метод>/.
  2. Получи список продуктов и тарифов: POST /typesOfDelivery/all/ — их ID передаются в types.
  3. Найди склады: POST /branches/findzonebyaddress/ вернёт филиал, обслуживающий адрес, и mainWarehouseId — склад основного отделения. Полный справочник — POST /branches/all/ (ID склада в branches[].divisions[].warehouses[].id).
  4. Посчитай: POST /calculator/calculateprice/ с types, senderWarehouseId и receiverWarehouseId (или блоками pickup и delivery с адресом, если нужны забор и доставка), plannedDateTime и cargos. Все логические флаги из списка обязательны — передавай false явно.
  5. Вес — в килограммах, габариты — в метрах, не больше двух знаков после запятой; каждое грузоместо — отдельным элементом cargos. В ответе стоимость по видам перевозки в transfers (type 3 — авто, 1 — авиа).
  6. Логические ошибки приходят с HTTP 200 и объектом error в теле — проверяй его, а не только статус.
curl -X POST https://kabinet.pecom.ru/api/v1/calculator/calculateprice/ \
  --user '<логин>:<ключ API>' \
  -H 'Content-Type: application/json;charset=utf-8' -H 'Accept: application/json' \
  -d '{
        "types": [<ID продукта>],
        "senderWarehouseId": "<склад отправителя>",
        "receiverWarehouseId": "<склад получателя>",
        "plannedDateTime": "2026-10-28T10:00:00",
        "isInsurance": true,
        "isInsurancePrice": 50000,
        "isPickUp": false,
        "isDelivery": false,
        "isOpenCarSender": false,
        "isOpenCarReceiver": false,
        "isHyperMarket": false,
        "cargos": [
          {"weight": 35.5, "length": 0.6, "width": 0.4, "height": 0.4},
          {"weight": 12, "length": 0.4, "width": 0.3, "height": 0.3}
        ]
      }'

Отследить груз

Узнать текущий статус груза, историю перемещений и детали — для клиента или своей учётной системы.

  1. Запроси статусы: POST /cargos/status/ с cargoCodes — до 15 кодов грузов за запрос. Текущий статус — cargos[].info.cargoStatus: «Принят к перевозке», «В пути», «Прибыл», «Выдан получателю» и т. д.
  2. Для полной истории изменений вызови POST /cargos/statusfullhistory/.
  3. Детали и фотографии груза — POST /cargos/details/.
  4. Часть полей заполняется, только если у тебя оформлен доступ к информации участников перевозки. Лимит — 100 запросов в минуту на все методы: для многих грузов собирай коды пачками по 15.
curl -X POST https://kabinet.pecom.ru/api/v1/cargos/status/ \
  --user '<логин>:<ключ API>' \
  -H 'Content-Type: application/json;charset=utf-8' -H 'Accept: application/json' \
  --compressed -H 'Accept-Encoding: gzip' \
  -d '{"cargoCodes": ["780339690775", "999932277461"]}'

Базовые URL

Авторизация

Тип: Basic Auth

HTTP Basic-аутентификация: логин — имя пользователя личного кабинета ПЭК, пароль — любой активный ключ доступа API. Ключ создаётся на странице «Регистрационные данные» в разделе «Ключи API»; для разных приложений рекомендуются разные ключи. Анонимный доступ не поддерживается.

Обязательные заголовки: Content-Type: application/json;charset=utf-8, Accept: application/json. Для сжатия ответов — Accept-Encoding: gzip. HTTPS с обязательной проверкой сертификата сервера.

curl.exe ^
--verbose ^
--cacert cacert-kabinet_pecom_ru.pem ^
--basic ^
--user user:FA21831AB83DB72D3261FA80BA309DBF6B2D7ADC ^
--request POST -d @curl-input.txt ^
--header "Content-Type: application/json; charset=utf-8" ^
--compressed ^
--output curl-output.txt ^
https://kabinet.pecom.ru/api/v1/cargos/status/

Методы

POST /calculator/calculateprice/ — Расчёт стоимости и сроков перевозки

Если заказан забор или доставка, расчёт идёт по координатам или адресу из блоков pickup/delivery; иначе нужны ID складов senderWarehouseId/receiverWarehouseId. В ответе стоимость по видам перевозки в массиве transfers (type 3 — авто, 1 — авиа).

Параметр Где Тип Обяз. Описание
currencyCode body string нет Код валюты, по умолчанию 643 (рубль)
types body array да ID продуктов/тарифов ПЭК (список — /typesOfDelivery/all/)
senderWarehouseId body string нет Склад отправителя (если нет забора)
receiverWarehouseId body string нет Склад получателя (если нет доставки)
plannedDateTime body string да Плановая дата и время передачи груза
isInsurance body boolean да Страхование
isInsurancePrice body number да Стоимость груза для страхования, руб
isPickUp body boolean да Нужен забор
isDelivery body boolean да Нужна доставка
isOpenCarSender body boolean да Растентовка отправителя
isOpenCarReceiver body boolean да Растентовка получателя
isHyperMarket body boolean да Признак гипермаркета
needReturnDocuments body boolean нет Возврат документов с подписью получателя
needArrangeTransportationDocuments body boolean нет Передача сопроводительных документов с грузом
pickup.address body string нет Адрес забора: страна, регион, район, город, улица, дом через запятую
pickup.coordinates body object нет Координаты latitude, longitude
delivery.address body string нет Адрес доставки
pickupServices body object нет ПРР при заборе: isLoading, floor, carryingDistance, isElevator
deliveryServices body object нет ПРР при доставке
counterpart body object нет Контрагент для спецусловий: inn, kpp, whoMakesCalculation
cargos body array да Грузоместа
cargos[].weight body number да Вес, кг
cargos[].length body number нет Длина, м (не нужна при maxSize)
cargos[].width body number нет Ширина, м
cargos[].height body number нет Высота, м
cargos[].volume body number нет Объём, м³
cargos[].maxSize body number нет Максимальный габарит, м
cargos[].isHP body boolean нет Защитная транспортировочная упаковка

POST /cargos/status/ — Статусы грузов

До 15 кодов грузов за запрос.

Статусы cargos[].info.cargoStatus: «Заявка на забор зарегистрирована», «Принят к перевозке», «В пути», «Прибыл», «Выполняется адресная доставка», «Выдан получателю», «Доставлен получателю», «Возвращен отправителю» и др.

Параметр Где Тип Обяз. Описание
cargoCodes body array да Коды грузов

Пример запроса:

{
   "cargoCodes": [
       "780339690775",
       "999932277461",
       "772193116238"
   ]
}

POST /cargos/statusfullhistory/ — История статусов

История изменения статусов по заявке или грузу.

POST /cargos/details/ — Информация о грузе

Детальная информация о грузе и фотографии.

POST /branches/all/ — Филиалы и склады

Список филиалов, отделений и складов ПЭК; ID склада — branches[].divisions[].warehouses[].id.

POST /branches/nearestdepartments/ — Ближайшие отделения

Ближайшие к адресу отделения с отбором по разрешённым габаритам.

POST /branches/findzonebyaddress/ — Филиал по адресу

Филиал, обслуживающий адрес; в ответе mainWarehouseId — склад основного отделения.

POST /typesOfDelivery/all/ — Продукты и тарифы

Список продуктов/тарифов ПЭК для расчёта.

POST /cargopickup/submit/ — Заявка на забор груза

Регистрирует заявку на забор груза. Статус — /cargopickup/status/.

POST /preregistration/submit/ — Предварительное оформление

Предварительное оформление груза.

Нюансы

Ошибки

Код Описание
200 Логическая ошибка — описание в объекте error (title, message)
403 Нет прав на вызов метода
404 Неверный URL метода
500 Непредвиденная ошибка

Ограничения

Источники


Если этого недостаточно — официальная документация: https://kabinet.pecom.ru/api/v1 JSON: https://mcp-everything.ru/api/integrations/pek. MCP: https://mcp-everything.ru/mcp