Отрасль: Логистика и доставка. Актуально на 2026-10-24.
API логистической платформы Яндекс Доставки для доставки заказов в другой день по России: забор с вашего склада или самопривоз в точку отгрузки, доставка до двери или в ПВЗ и постаматы. Сценарий: рассчитать стоимость, получить варианты доставки (офферы), подтвердить оффер — заявка создана, затем отслеживать статус, печатать ярлыки и акты. Отдельный API есть для экспресс-доставки в течение дня — в этот файл он не вошёл.
Показать покупателю цену доставки Яндекса до двери или до пункта выдачи.
curl -X POST https://b2b-authproxy.taxi.yandex.net/api/b2b/platform/pricing-calculator \
-H "Authorization: Bearer $YD_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"source": {"platform_station_id": "<ID склада отгрузки>"},
"destination": {"address": "Санкт-Петербург, Большая Монетная улица, 1к1А"},
"tariff": "time_interval",
"total_weight": 1500,
"total_assessed_price": 1500,
"client_price": 0,
"payment_method": "already_paid",
"places": [{"physical_dims": {"weight_gross": 1500, "dx": 20, "dy": 15, "dz": 10}}]
}'
Список ПВЗ Яндекса для выбора при оформлении заказа.
curl -X POST https://b2b-authproxy.taxi.yandex.net/api/b2b/platform/location/detect \
-H "Authorization: Bearer $YD_TOKEN" -H 'Content-Type: application/json' \
-d '{"location": "Казань"}'
curl -X POST https://b2b-authproxy.taxi.yandex.net/api/b2b/platform/pickup-points/list \
-H "Authorization: Bearer $YD_TOKEN" -H 'Content-Type: application/json' \
-d '{"geo_id": <geo_id>, "type": "pickup_point"}'
Основной поток: получить варианты доставки (офферы) для заказа и забронировать подходящий.
curl -X POST https://b2b-authproxy.taxi.yandex.net/api/b2b/platform/offers/confirm \
-H "Authorization: Bearer $YD_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"offer_id": "c1b139dbd76b4ee3b39b19180b516119"}'
# → {"request_id": "77241d8009bb46d0bff5c65a73077bcd-udp"}
Показать покупателю статус доставки и отменить заявку, если заказ отменён.
curl -G https://b2b-authproxy.taxi.yandex.net/api/b2b/platform/request/info \
-H "Authorization: Bearer $YD_TOKEN" \
-d request_id=77241d8009bb46d0bff5c65a73077bcd-udp
curl -X POST https://b2b-authproxy.taxi.yandex.net/api/b2b/platform/request/cancel \
-H "Authorization: Bearer $YD_TOKEN" -H 'Content-Type: application/json' \
-d '{"request_id": "77241d8009bb46d0bff5c65a73077bcd-udp"}'
Подготовить отгрузку: ярлыки на каждое место и акт приёма-передачи для курьера.
curl -X POST https://b2b-authproxy.taxi.yandex.net/api/b2b/platform/request/generate-labels \
-H "Authorization: Bearer $YD_TOKEN" -H 'Content-Type: application/json' \
-o labels.pdf \
-d '{"request_ids": ["77241d8009bb46d0bff5c65a73077bcd-udp"], "generate_type": "one", "label_size_mm": "100x150"}'
https://b2b-authproxy.taxi.yandex.nethttps://b2b.taxi.tst.yandex.netТип: Bearer-токен
Bearer-токен в заголовке Authorization: Bearer <token>. Для продакшена токен берут в личном кабинете в разделе «Профиль»; ID склада отгрузки (platform_station_id) выдаёт коммерческий менеджер.
Для тестового контура в документации даны:
Для корректной работы нужен TLS 1.2 и выше с шифрами по стандарту PCI DSS v4.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
is_oversized |
query | boolean | нет | Флаг КГТ |
source |
body | object | нет | Точка отправления: platform_station_id |
destination |
body | object | нет | Точка получения: platform_station_id или address (одно из двух) |
tariff |
body | string | нет | time_interval (до двери в интервал) или self_pickup (до ПВЗ) |
total_weight |
body | integer | нет | Суммарный вес, граммы |
total_assessed_price |
body | integer | нет | Оценочная стоимость |
client_price |
body | integer | нет | Стоимость для клиента |
payment_method |
body | string | нет | Способ оплаты, например already_paid |
places |
body | array | нет | Места: physical_dims.weight_gross, dx, dy, dz |
Пример запроса:
{
"source": {
"platform_station_id": "fbed3aa1-2cc6-4370-ab4d-59c5cc9bb924"
},
"destination": {
"platform_station_id": "e1139f6d-e34f-47a9-a55f-31f032a861a6",
"address": "Санкт-Петербург, Большая Монетная улица, 1к1А"
},
"tariff": "time_interval",
"total_weight": 0,
"total_assessed_price": 0,
"client_price": 0,
"payment_method": "already_paid",
"places": [
{
"physical_dims": {
"weight_gross": 100,
"dx": 10,
"dy": 10,
"dz": 10
}
}
]
}
Возвращает идентификатор населённого пункта (geo_id) по адресу или его фрагменту.
С пустым телом возвращает все доступные точки самопривоза, ПВЗ и постаматы.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
geo_id |
body | integer | нет | Населённый пункт |
type |
body | string | нет | Тип точки, например pickup_point |
available_for_dropoff |
body | boolean | нет | Возможность отгрузки в точку; для warehouse обязательно true |
is_yandex_branded |
body | boolean | нет | Только брендированные точки |
is_not_branded_partner_station |
body | boolean | нет | Добавить партнёрские ПВЗ |
payment_method |
body | string | нет | Способ оплаты |
latitude |
body | object | нет | Диапазон широт from/to |
longitude |
body | object | нет | Диапазон долгот from/to |
pickup_services |
body | object | нет | Услуги: примерка, частичный выкуп и др. |
Возвращает варианты доставки (офферы) для заказа. Одинаковые товары передавайте одной позицией с count, иначе будет записано количество 1.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
send_unix |
query | boolean | нет | Формат интервалов: true — unix, false — UTC |
info.operator_request_id |
body | string | нет | ID заказа у отправителя, уникальный |
info.comment |
body | string | нет | Комментарий |
info.merchant_id |
body | string | нет | ID мерчанта (если есть зарегистрированные) |
source.platform_station.platform_id |
body | string | нет | Склад или точка отгрузки |
source.interval_utc |
body | object | нет | Интервал отгрузки from/to |
destination.type |
body | string | нет | platform_station (ПВЗ) или custom_location (до двери) |
destination.platform_station |
body | object | нет | ПВЗ получения |
destination.custom_location |
body | object | нет | Адрес: latitude, longitude, details (full_address, locality, street, house, room и др.) |
destination.interval_utc |
body | object | нет | Интервал доставки |
items |
body | array | да | Товары: count, name, article, billing_details, physical_dims, place_barcode |
items[].billing_details.unit_price |
body | integer | нет | Цена за единицу, копейки |
items[].billing_details.assessed_unit_price |
body | integer | нет | Оценочная цена за единицу, копейки |
items[].billing_details.nds |
body | integer | нет | НДС: 0, 5, 7, 10, 22; без НДС — -1 |
places |
body | array | да | Грузоместа: physical_dims (weight_gross, dx, dy, dz), barcode |
billing_info |
body | object | нет | Оплата: payment_method, delivery_cost |
recipient_info |
body | object | нет | Данные получателя |
last_mile_policy |
body | string | нет | time_interval или self_pickup |
forbid_unboxing |
body | boolean | нет | Запрет вскрытия упаковки |
particular_items_refuse |
body | boolean | нет | Разрешён частичный выкуп |
Пример ответа:
{
"offers": [
{
"offer_id": "c1b139dbd76b4ee3b39b19180b516119",
"expires_at": "2021-10-25T15:00:00.000000Z",
"offer_details": {
"delivery_interval": {
"min": "2021-10-25T15:00:00.000000Z",
"max": "2021-10-25T15:00:00.000000Z",
"policy": "time_interval"
},
"pickup_interval": {},
"pricing": "192.15 RUB",
"pricing_commission_on_delivery_payment": "2.2%",
"pricing_commission_on_delivery_payment_amount": "9.43 RUB",
"pricing_total": "1400.96 RUB"
}
}
]
}
Бронирует выбранный оффер и создаёт заявку.
В ответе — request_id созданной заявки, например 77241d8009bb46d0bff5c65a73077bcd-udp.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
offer_id |
body | string | да | ID оффера |
Пример запроса:
{
"offer_id": "c1b139dbd76b4ee3b39b19180b516119"
}
Создаёт заказ сразу на ближайшее доступное время, без шага выбора оффера.
История статусов — GET /api/b2b/platform/request/history, актуальная дата доставки — GET /api/b2b/platform/request/actual_info, заявки за период — POST /api/b2b/platform/requests/info.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
request_id |
query | string | нет | ID заявки в платформе |
request_code |
query | string | нет | Номер заказа в системе заказчика |
Курьерскую заявку можно отменить до статуса DELIVERY_TRANSPORTATION_RECIPIENT.
В ответе: status (CREATED, SUCCESS и др.), reason, description.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
request_id |
body | string | да | ID заявки в платформе |
Акты приёма-передачи — POST /api/b2b/platform/request/get-handover-act.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
request_ids |
body | array | да | ID заказов |
generate_type |
body | string | нет | one (по одному на лист, по умолчанию) или many |
label_size_mm |
body | string | нет | 210x297 (по умолчанию), 100x150, 75x120, 58x60, 58x40 |
language |
body | string | нет | Язык надписей, по умолчанию ru |
offers/create возвращает офферы с ограниченным сроком (expires_at), заявка создаётся только после offers/confirm.destination заполняется либо platform_station (ПВЗ), либо custom_location (доставка до двери) в соответствии с type.operator_request_id должен быть уникальным для каждого заказа.| Код | Описание |
|---|---|
400 |
Ошибка в данных пользователя, например bad_request с сообщением Missing required field 'offer_id' |
403 |
Доступ запрещён |
404 |
Не найдено |
500 |
Внутренняя ошибка сервера |
Если этого недостаточно — официальная документация: https://yandex.ru/support/delivery-profile/ru/api/other-day/ JSON: https://mcp-everything.ru/api/integrations/yandex-delivery. MCP: https://mcp-everything.ru/mcp