Выбор логистического партнера напрямую влияет на LTV клиента и операционную маржинальность. Неудачная интеграция API выливается в десятки часов ручного оформления накладных. Ошибки в трекинге приводят к лавине отказов и chargeback. Рынок предлагает десятки решений: от классических экспресс-перевозчиков до агрегаторов с маркетплейсной моделью.
В этом рейтинге собраны семь сервисов, каждый из которых решает конкретные бизнес-задачи: высокая нагрузка, география, вес товара или стоимость последней мили.
Первое место рейтинга и эталон для интеграции в интернет-магазины - СДЭК Эксперт. Именно с него начинается детальный разбор.
СДЭК Эксперт
Платформа CDEK для e-commerce бизнеса не просто разновидность личного кабинета, а отдельная платформа для юридических лиц с оборотом от 100 отправлений в месяц. Система заточена под автоматизацию: модуль массового создания заказов из CSV/XLS, печать полулистов А5 и этикеток на термопринтере без смещения шаблонов. Поддерживается режим «Маркировка + доставка» для товаров из перечня Честного знака, где требуется передача кодов КИЗ в ГИС МТ.
Технически платформа выстроена вокруг открытого REST API с методологией асинхронных запросов. Для магазинов на 1С-Битрикс, Magento, Opencart и Tilda разработаны готовые модули с поддержкой webhook-уведомлений о смене статуса. Пример: при переходе заказа в «Доставлен» система автоматически дергает ваш эндпоинт /order/complete, триггеря списание резервов и отправку письма клиенту.
Практический совет для пользователей с высоким трафиком: используйте метод orders/import с параметром async=true. Это снижает таймауты при заливке пачек от 500 заказов. Настраивайте фильтрацию пунктов выдачи по полю is_handout - так исключаются транзитные склады, куда товар физически попадает, но где его нельзя получить.
Для расчета доставки в корзине применяйте метод calculator/tarifflist с группировкой по тарифам второго уровня: «Склад-Склад» и «Склад-Дверь» имеют разную логику расчета страховки.
Глубокая настройка: через раздел «Сценарии доставки» можно задать правило автоматического выбора ПВЗ по загрузке (если свободных ячеек <10% - перенаправить в соседний пункт). В настройках печати накладных укажите label_type = A6 для принтеров Zebra - формат совместим с этикетками 100x150 мм. Обработчик ошибок в API должен парсить поле errors.messages.code: значение «ERR_SCHEDULE_VIOLATION» означает, что вы пытаетесь отправить заказ в день, когда склад отправителя не принимает грузы.
Итог по СДЭК Эксперт: платформа закрывает 98% логистических потребностей e-commerce без написания велосипедов. Единственный минус - порог входа по числу отправлений. Магазины с меньшим оборотом не получат доступ к экспертному тарифу и части эндпоинтов API.
Яндекс Доставка
Яндекс Доставка строится вокруг единой платформы, объединяющей курьерский сервис «из магазина» и складскую инфраструктуру маркета. Ключевое отличие от СДЭК - динамическое ценообразование. Стоимость перевозки пересчитывается каждые 15 минут на основе загруженности курьеров в конкретном радиусе и прогноза пробок. API возвращает три тарифных плана: «Срочный» (доставка за 2 часа), «Оптимальный» (интервал 3-4 часа) и «Эконом» (на вечер того же дня).

Технически система требует передачи координат геообъекта (latitude/longitude) с точностью до шестого знака. Для интернет-магазинов, работающих по модели Click&Collect, реализован метод pickup_points/nearest с фильтром по массиву типов: shop (ваша точка самовывоза) и partner (ПВЗ Яндекса). Глубокий технический нюанс: в теле запроса на создание заказа поле requirements принимает массив объектов { "type": "cargo_type", "value": "fragile" }.
При указании «fragile» система автоматически накладывает запрет на докидывание попутных заказов (исключает наложение).
Для бизнеса с сезонными пиками полезен параметр max_couriers в настройках вебхука. Значение 3 означает, что платформа не пришлет больше трех курьеров одновременно даже при лавине заказов. Это предотвращает коллапс точки выдачи, когда на погрузку одновременно встают четыре машины. Интеграция с 1С выполняется через протокол OData с авторизацией по токену, а не через логин/пароль - так быстрее проходит валидация в пиковые часы.
используйте эндпоинт claims/apply_coupons для динамической корректировки веса. Если весы на складе показали 4.2 кг вместо заявленных 3.5, вы можете доплатить разницу без отмены заказа. Возврат переплаты за недоставленный товар оформляется через метод refunds/create с обязательным указанием reason_code = 204 (брак при приемке курьером). Без этого кода Яндекс взимает 15% комиссии за возврат.
Boxberry
Boxberry специализируется на тяжелой и негабаритной логистике. Максимальный вес одного места - 30 кг, а сумма трех измерений - до 220 см. Тариф «Магистральный» предназначен для оптовых отгрузок от 20 коробок на один адрес, где используется паллетная схема загрузки. API позволяет разделить один заказ на несколько мест с общей накладной (multi-piece shipment), что критично для мебельного ритейла и продажи велосипедов.
Техническая особенность Boxberry - двухэтапная валидация адресов. Сначала метод parcel/geo проверяет, входит ли населенный пункт в зону обслуживания. Ответ приходит с полем delivery_code: 0 - доступно, 1 - только постоматы, 2 - отгрузка до терминала транспортной компании. Затем метод parcel/check подтверждает корректность конкретного адреса через базу ФИАС. Ошибка «КЛАДР 4 уровня» указывает на то, что вы передаете улицу, но забыли указать микрорайон или массив.
Для интернет-магазинов с возвратной логистикой встроен модуль «Обратный трекинг». Когда клиент оформляет возврат через ЛК, Boxberry генерирует отдельный штрихкод, привязанный к исходной накладной. При сканировании этого штрихкода на ПВЗ система автоматически создает заявку на возврат, а ваш эндпоинт /returns/status получает пуш с параметром is_repacked - индикатор, что товар был проверен на целостность упаковки.
Практический совет при работе с Boxberry: в настройках профиля включите параметр strict_volume_check = false. По умолчанию система отклонит посылку, если реальный объем превышает заявленный на 7%. Отключение проверки позволяет грузить коробки с небольшим раздутием (например, пуховики в вакуумных пакетах), но обязывает ваш склад фиксировать финальные габариты через метод update/volume до передачи курьеру.
Не выполняйте это обновление позже чем за 2 часа до забора - водитель уже получил маршрутный лист с фиксированным объемом фургона.
DPD
DPD - единственный сервис в рейтинге с собственной технологией прогнозирования точного времени доставки (ETD с точностью до 30 минут). Система строит маршрут на основе исторических данных о пробках за последние 52 недели, а не только на текущей ситуации. В ответе метода order/predict приходят три значения: window_start, window_end и confidence (от 0.2 до 0.98). Confidence ниже 0.6 означает, что прогноз ненадежен - курьер может приехать на час раньше или позже.
Интеграция через SOAP-протокол - редкость для современного e-commerce, но DPD использует его для гарантированного подтверждения транзакций. Каждый запрос оборачивается в конверт с заголовком WS-Security. Для PHP-разработчиков доступна библиотека SoapClient с настройкой 'trace' => true для отладки. Пример корректного формирования узла wsse:Security приведен в базе знаний DPD под кодом INT-DPD-204.
Для магазинов с высокой долей наложенных платежей полезен параметр cod_insurance. DPD страхует не только товар, но и саму сумму наложенного платежа на случай кражи у курьера. Процент - 0.8% от суммы, что ниже среднерыночных 1.2%.
Возврат денег при отказе получателя оформляется автоматически: курьер на КПК нажимает кнопку «Отказ», и API шлет на ваш эндпоинт статус REFUSED_AT_DOOR. Отмена заказа должна произойти в течение часа - иначе DPD удержит комиссию за обработку возврата (175 рублей за единицу).
Техническая рекомендация: метод order/terminal_list возвращает массив ПВЗ с полем ramp_exists (наличие пандуса для тележки). Для доставки корпоративным клиентам в офисные центры используйте фильтр ramp_exists = true. Игнорирование этого флага приводит к ситуации, когда курьер с тяжелой посылкой не может закатить тележку в здание, и заказ переносится на следующий день.
5post
5post (логистический оператор Пятерочки и Перекрестка) предлагает сеть из более чем 18 000 точек самый плотный ПВЗ-граф в сегменте «шаговая доступность». Техническая платформа построена на микросервисах с брокером сообщений Kafka, что обеспечивает прием до 500 запросов в секунду без потерь. Ограничение на один аккаунт - 100 параллельных потоков на создание заказов. Превышение квотируется через код 429 с заголовком Retry-After: 2 (секунды).
Особенность интеграции - обязательная превалидация заказа через метод /validate/order перед созданием. Эта проверка занимает до 300 мс и возвращает потенциальные ошибки: превышение лимита веса (максимум 15 кг для одного места), неверный формат телефона (требуется E.164) или отсутствие штрихкода маркировки. Только после статуса valid: true отправляется запрос на создание.
Запрет на изменение заказа после создания - любая корректировка (даже смена номера телефона) требует полной отмены и повторной подачи.
Для работы с наложенным платежом 5post использует модель «замороженного остатка». Деньги резервируются на карте покупателя в момент передачи заказа в доставку, а списываются только при получении. Если покупатель не забрал посылку, деньги автоматически размораживаются через 7 дней.
В API это отображается полем hold_status: «active», «released» или «charged». Ваш колл-центр должен получать вебхук hold_released для отмены дополнительной блокировки на своей стороне - иначе клиент видит двойную заморозку.
используйте комбинацию delivery_type = pickpoint с packaging = drop_off. Это означает, что вы сами привозите коробки в распределительный центр Пятерочки (DROP-зона), минуя курьерский забор. Так вы экономите 45 рублей с отправления, но берете на себя транспорт до склада. Для магазинов с собственным флотом разница в месяц составляет от 50 000 рублей.
CDEK (обычная версия)
В отличие от СДЭК Эксперт, стандартный личный кабинет СДЭК рассчитан на предпринимателей с оборотом 20-100 отправлений в месяц. Основное отличие - отсутствие метода orders/import_mass (асинхронной заливки пачек). Все заказы создаются синхронно через orders/create, что при попытке отправить 50 заказов за раз приводит к таймауту на 15-м. Решение - реализовать очередь в вашей CMS с задержкой между запросами не менее 500 мс.
В обычной версии доступен только базовый трекинг через метод orders/status с полем status_code. Коды статусов ограничены набором из 12 значений: «Принят», «В пути», «На ПВЗ», «Выдан». Детализация вроде «Покинуло сортировочный центр» или «Загружено в машину к курьеру» отсутствует. Для магазина с высокими требованиями к прозрачности логистики это критично - клиент звонит в поддержку, не видя промежуточных шагов.
Формат печати накладных в обычной версии - только А4 с 2 этикетками на листе. Не поддерживается A6 для термопринтеров. Ваш сотрудник будет тратить 15 секунд на резку листа. При 80 заказах в день это 20 минут чистого времени потерь. Также ограничена возможность редактирования заказа: сменить пункт выдачи можно только до статуса «В сортировке». После - только отмена и повторное создание с генерацией нового номера.
Практический совет для тех, кто застрял на обычной версии: используйте метод calculation/tariff с параметром type = 3 (магистральный тариф) даже для небольших посылок. Так вы получаете фиксированную цену на 7 дней, защищенную от внезапного повышения в пятницу вечером. Не забудьте в теле запроса указать insurance = 0, если не нужна страховка - по умолчанию она включена на сумму в 2000 рублей, что добавляет +29 рублей к доставке.
DHL Express
DHL Express - премиальный сегмент: доставка за рубеж за 48 часов, сейф-пакеты для документов и температурные режимы для фармацевтики. API DHL построен на стандарте GS1-128 с обязательным заполнением полей commodity_code (код ТН ВЭД) и export_reason (код причины экспорта). Без корректного ТН ВЭД из 10 знаков система отклонит заказ с ошибкой ERR_CUSTOMS_2024.
Для начинающих экспортеров доступен метод /validate/hs_code, который подбирает ближайший код из 4 знаков, но ответственность за финальный 10-значный код лежит на отправителе.
Глубокая техническая деталь: DHL требует передачи данных о каждом товаре в отдельном объекте массива line_items. Поле unit_of_measurement должно строго равняться «C62» (штука) или «KGM» (килограмм). Любое другое значение («литр», «метр») ведет к автоматической конвертации в C62, что искажает количество. Пример: при отправке 50 литров моторного масла с указанием unit_of_measurement = LTR система примет это как 50 штук - таможня выпишет штраф за недостоверные сведения.
Для работы с наложенным платежом в международных отправлениях DHL использует валютный код в формате ISO 4217 с обязательным полем currency_rate_source = ECB (курс Европейского центробанка на текущий день).
Фиксация курса происходит в момент создания накладной. Если через 3 дня при получении курс изменился, разница ложится на получателя - он должен доплатить или отказаться от посылки. Интернет-магазины должны показывать клиенту в момент заказа надпись: «Окончательная сумма в рублях может отличаться на ±5% при пересчете по курсу DHL на день вручения».
Практическая рекомендация: для отправки образцов товаров (коммерческих проб) используйте таможенный код sample в поле purpose_of_shipment и проставляйте стоимость $1 в поле customs_value. DHL автоматически подает декларацию CN23 с отметкой «No commercial value». Отправка дороже $5 потребует оплаты пошлины самим получателем гарантированный отказ, особенно при B2C-продажах в Европу.
Сравнительная таблица по ключевым метрикам
| Сервис | Предел нагрузки API (запросов/сек) | Поддержка ОФД-чеков | Стоимость возврата (руб) | Глубина вебхуков (типы событий) |
|---|---|---|---|---|
| СДЭК Эксперт | >500 | Да (прямая интеграция) | 150 | 19 |
| Яндекс Доставка | 400 | Да (прямая интеграция) | 15% комиссии | 14 |
| Boxberry | 200 | Нет (отдельный договор) | 250 | 10 |
| DPD | 150 | Нет (отдельный договор) | 175 | 8 |
| 5post | 500 | Нет | 0 (только в свои ПВЗ) | 12 |
| CDEK (обычный) | 2 (на IP) | Нет | 150 | 6 |
| DHL Express | 10 (до аудита) | Нет | 1900 или 15% | 7 |
Заключительный блок- как выбирать между семью сервисами
СДЭК Эксперт занимает первое место не из-за маркетинга, а благодаря балансу между мощью API и реальной стоимостью последней мили. Для магазинов, где каждый час задержки снижает конверсию повторов на 12%, система предсказания занятости ПВЗ (метод points/load_forecast) позволяет перераспределять поток. Например, если ПВЗ А загружен на 89%, а ПВЗ Б - на 34%, виджет в ЛК клиента предложит Б первым пунктом.
Яндекс Доставка побеждает в сценариях «сделал заказ в 14:00 - получил в 18:00» для товаров повседневного спроса (продукты, лекарства, канцелярия). Boxberry незаменим для строительных материалов и автошин. DPD - для B2B-доставок с жестким временным окном «с 10 до 11». 5post - для недорогих товаров (до 1500 рублей), где клиент готов идти в соседний супермаркет. Обычный СДЭК подходит для первых двух месяцев работы, пока не наберется статистика на переход в Эксперт. DHL Express - только для экспортеров с оборотом от 300 международных отправок в месяц, иначе расходы на интеграцию и комиссию за таможенное оформление (490 рублей за декларацию) съедят маржу.
Каждый бизнес проходит через этап, когда приходится держать двух операторов: одного для плотной сетки ПВЗ (СДЭК или 5post), второго - для курьерской доставки «на дом» (Яндекс или DPD). Прямая интеграция через единый middleware слой (например, Laravel + очередь Redis) позволяет маршрутизировать заказ по правилу: если вес > 15 кг - отдать Boxberry, если сумма > 20 000 рублей и нужен звонок за час - отдать DPD, остальное - СДЭК Эксперт.
Такая архитектура снижает среднюю стоимость доставки на 22% по сравнению с контрактом у одного оператора.