{"name":"ПЭК API личного кабинета","vendor":"ПЭК","industry":"logistics","summary":"API личного кабинета транспортной компании ПЭК для сторонних сайтов и приложений: расчёт стоимости и сроков перевозки, справочник филиалов и складов, статусы и детали грузов, заявки на забор груза, предварительное оформление, бухгалтерские документы, подписки на уведомления. Все методы вызываются POST-запросом с JSON-телом.","docsUrl":"https://kabinet.pecom.ru/api/v1","coverage":{"included":[],"excluded":[]},"scenarios":[{"id":"rasschitat-stoimost-i-sroki-perevozki","title":"Рассчитать стоимость и сроки перевозки груза","summary":"Показать клиенту цену и срок доставки ПЭК между городами — от склада до склада или с забором и доставкой до двери.","steps":["Создай ключ API в личном кабинете («Регистрационные данные» → «Ключи API»). Авторизация — Basic: логин кабинета и ключ. Все методы — POST с JSON на https://kabinet.pecom.ru/api/v1/<группа>/<метод>/.","Получи список продуктов и тарифов: POST /typesOfDelivery/all/ — их ID передаются в types.","Найди склады: POST /branches/findzonebyaddress/ вернёт филиал, обслуживающий адрес, и mainWarehouseId — склад основного отделения. Полный справочник — POST /branches/all/ (ID склада в branches[].divisions[].warehouses[].id).","Посчитай: POST /calculator/calculateprice/ с types, senderWarehouseId и receiverWarehouseId (или блоками pickup и delivery с адресом, если нужны забор и доставка), plannedDateTime и cargos. Все логические флаги из списка обязательны — передавай false явно.","Вес — в килограммах, габариты — в метрах, не больше двух знаков после запятой; каждое грузоместо — отдельным элементом cargos. В ответе стоимость по видам перевозки в transfers (type 3 — авто, 1 — авиа).","Логические ошибки приходят с HTTP 200 и объектом error в теле — проверяй его, а не только статус."],"code":"curl -X POST https://kabinet.pecom.ru/api/v1/calculator/calculateprice/ \\\n  --user '<логин>:<ключ API>' \\\n  -H 'Content-Type: application/json;charset=utf-8' -H 'Accept: application/json' \\\n  -d '{\n        \"types\": [<ID продукта>],\n        \"senderWarehouseId\": \"<склад отправителя>\",\n        \"receiverWarehouseId\": \"<склад получателя>\",\n        \"plannedDateTime\": \"2026-10-28T10:00:00\",\n        \"isInsurance\": true,\n        \"isInsurancePrice\": 50000,\n        \"isPickUp\": false,\n        \"isDelivery\": false,\n        \"isOpenCarSender\": false,\n        \"isOpenCarReceiver\": false,\n        \"isHyperMarket\": false,\n        \"cargos\": [\n          {\"weight\": 35.5, \"length\": 0.6, \"width\": 0.4, \"height\": 0.4},\n          {\"weight\": 12, \"length\": 0.4, \"width\": 0.3, \"height\": 0.3}\n        ]\n      }'","language":"bash","methods":["POST /calculator/calculateprice/","POST /branches/all/","POST /branches/findzonebyaddress/","POST /typesOfDelivery/all/"]},{"id":"otsledit-gruz","title":"Отследить груз","summary":"Узнать текущий статус груза, историю перемещений и детали — для клиента или своей учётной системы.","steps":["Запроси статусы: POST /cargos/status/ с cargoCodes — до 15 кодов грузов за запрос. Текущий статус — cargos[].info.cargoStatus: «Принят к перевозке», «В пути», «Прибыл», «Выдан получателю» и т. д.","Для полной истории изменений вызови POST /cargos/statusfullhistory/.","Детали и фотографии груза — POST /cargos/details/.","Часть полей заполняется, только если у тебя оформлен доступ к информации участников перевозки. Лимит — 100 запросов в минуту на все методы: для многих грузов собирай коды пачками по 15."],"code":"curl -X POST https://kabinet.pecom.ru/api/v1/cargos/status/ \\\n  --user '<логин>:<ключ API>' \\\n  -H 'Content-Type: application/json;charset=utf-8' -H 'Accept: application/json' \\\n  --compressed -H 'Accept-Encoding: gzip' \\\n  -d '{\"cargoCodes\": [\"780339690775\", \"999932277461\"]}'","language":"bash","methods":["POST /cargos/status/","POST /cargos/statusfullhistory/","POST /cargos/details/"]}],"baseUrls":[{"label":"Боевой","url":"https://kabinet.pecom.ru/api/v1/"},{"label":"URL метода","url":"https://kabinet.pecom.ru/api/v1/<группа>/<метод>/"}],"auth":{"type":"basic","description":"HTTP Basic-аутентификация: логин — имя пользователя личного кабинета ПЭК, пароль — любой активный ключ доступа API. Ключ создаётся на странице «Регистрационные данные» в разделе «Ключи API»; для разных приложений рекомендуются разные ключи. Анонимный доступ не поддерживается.\n\nОбязательные заголовки: `Content-Type: application/json;charset=utf-8`, `Accept: application/json`. Для сжатия ответов — `Accept-Encoding: gzip`. HTTPS с обязательной проверкой сертификата сервера.","example":"curl.exe ^\n--verbose ^\n--cacert cacert-kabinet_pecom_ru.pem ^\n--basic ^\n--user user:FA21831AB83DB72D3261FA80BA309DBF6B2D7ADC ^\n--request POST -d @curl-input.txt ^\n--header \"Content-Type: application/json; charset=utf-8\" ^\n--compressed ^\n--output curl-output.txt ^\nhttps://kabinet.pecom.ru/api/v1/cargos/status/"},"methods":[{"id":"POST /calculator/calculateprice/","title":"Расчёт стоимости и сроков перевозки","httpMethod":"POST","path":"/calculator/calculateprice/","description":"Если заказан забор или доставка, расчёт идёт по координатам или адресу из блоков `pickup`/`delivery`; иначе нужны ID складов `senderWarehouseId`/`receiverWarehouseId`. В ответе стоимость по видам перевозки в массиве `transfers` (`type` 3 — авто, 1 — авиа).","params":[{"name":"currencyCode","in":"body","type":"string","required":false,"description":"Код валюты, по умолчанию 643 (рубль)"},{"name":"types","in":"body","type":"array","required":true,"description":"ID продуктов/тарифов ПЭК (список — /typesOfDelivery/all/)"},{"name":"senderWarehouseId","in":"body","type":"string","required":false,"description":"Склад отправителя (если нет забора)"},{"name":"receiverWarehouseId","in":"body","type":"string","required":false,"description":"Склад получателя (если нет доставки)"},{"name":"plannedDateTime","in":"body","type":"string","required":true,"description":"Плановая дата и время передачи груза"},{"name":"isInsurance","in":"body","type":"boolean","required":true,"description":"Страхование"},{"name":"isInsurancePrice","in":"body","type":"number","required":true,"description":"Стоимость груза для страхования, руб"},{"name":"isPickUp","in":"body","type":"boolean","required":true,"description":"Нужен забор"},{"name":"isDelivery","in":"body","type":"boolean","required":true,"description":"Нужна доставка"},{"name":"isOpenCarSender","in":"body","type":"boolean","required":true,"description":"Растентовка отправителя"},{"name":"isOpenCarReceiver","in":"body","type":"boolean","required":true,"description":"Растентовка получателя"},{"name":"isHyperMarket","in":"body","type":"boolean","required":true,"description":"Признак гипермаркета"},{"name":"needReturnDocuments","in":"body","type":"boolean","required":false,"description":"Возврат документов с подписью получателя"},{"name":"needArrangeTransportationDocuments","in":"body","type":"boolean","required":false,"description":"Передача сопроводительных документов с грузом"},{"name":"pickup.address","in":"body","type":"string","required":false,"description":"Адрес забора: страна, регион, район, город, улица, дом через запятую"},{"name":"pickup.coordinates","in":"body","type":"object","required":false,"description":"Координаты latitude, longitude"},{"name":"delivery.address","in":"body","type":"string","required":false,"description":"Адрес доставки"},{"name":"pickupServices","in":"body","type":"object","required":false,"description":"ПРР при заборе: isLoading, floor, carryingDistance, isElevator"},{"name":"deliveryServices","in":"body","type":"object","required":false,"description":"ПРР при доставке"},{"name":"counterpart","in":"body","type":"object","required":false,"description":"Контрагент для спецусловий: inn, kpp, whoMakesCalculation"},{"name":"cargos","in":"body","type":"array","required":true,"description":"Грузоместа"},{"name":"cargos[].weight","in":"body","type":"number","required":true,"description":"Вес, кг"},{"name":"cargos[].length","in":"body","type":"number","required":false,"description":"Длина, м (не нужна при maxSize)"},{"name":"cargos[].width","in":"body","type":"number","required":false,"description":"Ширина, м"},{"name":"cargos[].height","in":"body","type":"number","required":false,"description":"Высота, м"},{"name":"cargos[].volume","in":"body","type":"number","required":false,"description":"Объём, м³"},{"name":"cargos[].maxSize","in":"body","type":"number","required":false,"description":"Максимальный габарит, м"},{"name":"cargos[].isHP","in":"body","type":"boolean","required":false,"description":"Защитная транспортировочная упаковка"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /cargos/status/","title":"Статусы грузов","httpMethod":"POST","path":"/cargos/status/","description":"До 15 кодов грузов за запрос.\n\nСтатусы `cargos[].info.cargoStatus`: «Заявка на забор зарегистрирована», «Принят к перевозке», «В пути», «Прибыл», «Выполняется адресная доставка», «Выдан получателю», «Доставлен получателю», «Возвращен отправителю» и др.","params":[{"name":"cargoCodes","in":"body","type":"array","required":true,"description":"Коды грузов"}],"requestExample":"{\n   \"cargoCodes\": [\n       \"780339690775\",\n       \"999932277461\",\n       \"772193116238\"\n   ]\n}","responseExample":"","docsUrl":""},{"id":"POST /cargos/statusfullhistory/","title":"История статусов","httpMethod":"POST","path":"/cargos/statusfullhistory/","description":"История изменения статусов по заявке или грузу.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /cargos/details/","title":"Информация о грузе","httpMethod":"POST","path":"/cargos/details/","description":"Детальная информация о грузе и фотографии.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /branches/all/","title":"Филиалы и склады","httpMethod":"POST","path":"/branches/all/","description":"Список филиалов, отделений и складов ПЭК; ID склада — `branches[].divisions[].warehouses[].id`.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /branches/nearestdepartments/","title":"Ближайшие отделения","httpMethod":"POST","path":"/branches/nearestdepartments/","description":"Ближайшие к адресу отделения с отбором по разрешённым габаритам.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /branches/findzonebyaddress/","title":"Филиал по адресу","httpMethod":"POST","path":"/branches/findzonebyaddress/","description":"Филиал, обслуживающий адрес; в ответе `mainWarehouseId` — склад основного отделения.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /typesOfDelivery/all/","title":"Продукты и тарифы","httpMethod":"POST","path":"/typesOfDelivery/all/","description":"Список продуктов/тарифов ПЭК для расчёта.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /cargopickup/submit/","title":"Заявка на забор груза","httpMethod":"POST","path":"/cargopickup/submit/","description":"Регистрирует заявку на забор груза. Статус — `/cargopickup/status/`.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /preregistration/submit/","title":"Предварительное оформление","httpMethod":"POST","path":"/preregistration/submit/","description":"Предварительное оформление груза.","params":[],"requestExample":"","responseExample":"","docsUrl":""}],"codeExamples":[],"errors":[{"code":"200","description":"Логическая ошибка — описание в объекте error (title, message)"},{"code":"403","description":"Нет прав на вызов метода"},{"code":"404","description":"Неверный URL метода"},{"code":"500","description":"Непредвиденная ошибка"}],"limits":"- Не больше 100 запросов в минуту на любые методы API.\n- `/cargos/status/` — до 15 кодов грузов в запросе.","gotchas":["Все поля JSON-объекта в запросе обязательны, если не указано обратное.","Логические ошибки (нет параметров, неверный формат) приходят с HTTP 200 и объектом `error` в теле — проверяйте его наличие, а не только статус.","В `cargos` передавайте каждое грузоместо отдельным элементом; если известны только общие параметры — столько элементов, сколько мест, со средними весом и объёмом.","Числа в габаритах округляются до сотых в большую сторону — передавайте не больше двух знаков после запятой.","Вес — в килограммах, габариты — в метрах.","Признак `isHP` применяется ко всему грузу, если стоит хотя бы у одного места.","Часть полей `/cargos/status/` заполняется только при оформленном доступе к информации участников перевозки."],"slug":"pek","version":2,"updatedAt":"2026-10-24T17:05:35.027Z","sources":[{"title":"Описание API","url":"https://kabinet.pecom.ru/api/v1","kind":"research","addedAt":"2026-10-12T19:27:24.805Z"},{"title":"Калькулятор","url":"https://kabinet.pecom.ru/api/v1/help/calculator","kind":"research","addedAt":"2026-10-12T19:27:24.805Z"},{"title":"Грузы","url":"https://kabinet.pecom.ru/api/v1/help/cargos","kind":"research","addedAt":"2026-10-12T19:27:24.805Z"},{"title":"Филиалы","url":"https://kabinet.pecom.ru/api/v1/help/branches","kind":"research","addedAt":"2026-10-12T19:27:24.805Z"},{"title":"Заявки на забор","url":"https://kabinet.pecom.ru/api/v1/help/cargopickup","kind":"research","addedAt":"2026-10-12T19:27:24.805Z"},{"title":"Вставленный текст","url":"","kind":"import","addedAt":"2026-10-12T19:27:24.805Z"},{"title":"scenarios-pek.md","url":"","kind":"import","addedAt":"2026-10-24T17:05:25.971Z"}],"logoUrl":null}