ПЭК API личного кабинета: Рассчитать стоимость и сроки перевозки груза

Сценарий из mcp-everything. Актуально на 2026-10-24.

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

  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}
        ]
      }'

Базовые 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 /branches/all/ — Филиалы и склады

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

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

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

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

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

Нюансы

Другие сценарии


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