Яндекс Доставка API (Доставка по России): Создать заказ: выбрать вариант доставки и подтвердить

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

Основной поток: получить варианты доставки (офферы) для заказа и забронировать подходящий.

  1. Запроси офферы: POST /api/b2b/platform/offers/create с info.operator_request_id (уникальный номер заказа у тебя), source.platform_station.platform_id, destination (type = platform_station и ID пункта — или custom_location с адресом для доставки до двери), items, places, billing_info, recipient_info и last_mile_policy.
  2. Цены товаров передавай в копейках, вес — в граммах, габариты — в сантиметрах. Одинаковые товары — одной позицией с count, иначе запишется количество 1.
  3. В ответе — офферы с интервалом доставки, ценой и expires_at. Выбери подходящий и успей подтвердить до истечения срока.
  4. Подтверди: POST /api/b2b/platform/offers/confirm с offer_id. В ответе request_id созданной заявки — сохрани его в заказе.
  5. Если выбирать не нужно, заявку на ближайшее время можно создать одним вызовом: POST /api/b2b/platform/request/create.
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"}

Базовые URL

Авторизация

Тип: Bearer-токен

Bearer-токен в заголовке Authorization: Bearer <token>. Для продакшена токен берут в личном кабинете в разделе «Профиль»; ID склада отгрузки (platform_station_id) выдаёт коммерческий менеджер.

Для тестового контура в документации даны:

Для корректной работы нужен TLS 1.2 и выше с шифрами по стандарту PCI DSS v4.

Методы сценария

POST /api/b2b/platform/offers/create — Создание заявки (получение офферов)

Возвращает варианты доставки (офферы) для заказа. Одинаковые товары передавайте одной позицией с 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"
      }
    }
  ]
}

POST /api/b2b/platform/offers/confirm — Подтверждение заявки

Бронирует выбранный оффер и создаёт заявку.

В ответе — request_id созданной заявки, например 77241d8009bb46d0bff5c65a73077bcd-udp.

Параметр Где Тип Обяз. Описание
offer_id body string да ID оффера

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

{
  "offer_id": "c1b139dbd76b4ee3b39b19180b516119"
}

POST /api/b2b/platform/request/create — Создание заказа на ближайшее время

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

Нюансы

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


Если этого недостаточно — официальная документация: https://yandex.ru/support/delivery-profile/ru/api/other-day/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/yandex-delivery.md