Получение вариантов доставки (для РФ)
- Метод возвращает доступные варианты доставки.
- Каждый вариант содержит цену, временной интервал забора посылки на точке А, временной интервал доставки на точку B.
- После получения вариантов доставки можно выбрать оптимальный и создать заказ с использованием выбранного варианта.
- Получить варианты доставки можно только в России.
Request
POST
b2b.taxi.yandex.net/b2b/cargo/integration/v2/offers/calculate
Адрес сервиса
Headers
Name |
Description |
Accept-Language* |
Type: string Предпочитаемый язык ответа. Примеры:«ru» - русский, «en» - английский |
Body
{
"items": [
{
"size": {
"length": 0.1,
"width": 0.2,
"height": 0.3
},
"weight": 2.105,
"quantity": 1,
"pickup_point": 1,
"dropoff_point": 2
}
],
"route_points": [
{
"id": 1,
"coordinates": [
0.1,
0.1
],
"fullname": "Санкт-Петербург, Большая Монетная улица, 1к1А"
}
],
"requirements": {
"taxi_classes": [
"cargo"
],
"cargo_type": "lcv_m",
"cargo_loaders": 1,
"pro_courier": false,
"cargo_options": [
"thermobag"
],
"skip_door_to_door": false,
"due": "2020-01-01T00:00:00+00:00"
}
}
Name |
Description |
route_points* |
Type: RoutePointWithAddress[] Точки маршрута. Отсортированы в порядке посещения А-Б1....БN Min items: |
items |
Type: Item[] Параметры товаров Min items: |
requirements |
Type: OfferRequirements Требования к доставке |
RoutePointWithAddress
Name |
Description |
coordinates |
Type: number[] Координаты точек в виде массива из двух вещественных чисел: долгота, широта — именно в таком порядке. Example: Max items: Min items: |
fullname |
Type: string Полный адрес с указанием города, улицы и номера дома. Example: |
id |
Type: integer<int64> Числовой id точки(int64). Параметр обязательный, если в заказе несколько точек доставки Example: |
Item
Name |
Description |
quantity* |
Type: integer<int64> Количество единиц товара Example: Min value: |
dropoff_point |
Type: integer<int64> Идентификатор точки (int64), куда нужно доставить товар. Example: |
pickup_point |
Type: integer<int64> Идентификатор точки (int64), откуда нужно забрать товар. Example: |
size |
Type: CargoItemSizes Габариты товара в метрах. В полях следует передавать актуальные значения. Если габариты не были переданы, заказ оформляется с учетом Если фактические характеристики товара превысят допустимые, Курьер (courier): до 0.80 м × 0.50 м × 0.50 м
|
weight |
Type: number Вес товара в килограммах. Example: |
OfferRequirements
Требования к доставке
Name |
Description |
cargo_loaders |
Type: integer<int64> Число грузчиков для грузового тарифа. Точный список возможных значений для конкретной геоточки Example: |
cargo_options |
Type: string[] Список дополнительных опций тарифа. Возможные отдельные опции:
Пример списка опций: ["auto_courier"]. Точный список возможных значений для конкретной геоточки Example: |
cargo_type |
Type: CargoType Тип (размер) кузова для грузового тарифа. Точный список возможных значений для конкретной геоточки Example: Enum: |
due |
Type: string<date-time> Расчетное время прибытия курьера (отложить расчетное время подачи можно на 30-60 минут от текущего момента) — значение по умолчанию. Example: |
pro_courier |
Type: boolean Включить опцию "Профи" для тарифов "Экспресс" и "Курьер". |
skip_door_to_door |
Type: boolean Отключить доставку до двери (выключить опцию "От двери до двери"). Возможные значения:
|
taxi_classes |
Type: string[] Класс автомобиля для доставки. Точный список возможных значений для конкретной геоточки Точный список возможных значений для конкретной геоточки Example: Min items: |
CargoItemSizes
Габариты товара в метрах. В полях следует передавать актуальные значения.
Если габариты не были переданы, заказ оформляется с учетом
максимально допустимых габаритов для выбранного тарифа.
Если фактические характеристики товара превысят допустимые,
курьер вправе отказаться от выполнения такого заказа на месте.
В этом случае будет удержана стоимость подачи.
Курьер (courier): до 0.80 м × 0.50 м × 0.50 м
Экспресс (express): до 1.00 м × 0.60 м × 0.50 м
Грузовой (cargo):
- Маленький кузов: до 1.70 м × 0.96 м × 0.90 м
- Средний кузов: до 2.60 м × 1.30 м × 1.50 м
- Большой кузов: до 3.80 м × 1.80 м × 1.80 м
Name |
Description |
height* |
Type: number Высота в метрах Example: |
length* |
Type: number Длина в метрах Example: |
width* |
Type: number Ширина в метрах Example: |
CargoType
Тип (размер) кузова для грузового тарифа.
Возможные значения:
- van ("Маленький кузов")
- lcv_m ("Средний кузов")
- lcv_l ("Большой кузов").
Точный список возможных значений для конкретной геоточки
уточните с помощью метода получения тарифов tariffs
Type |
Description |
Example: Enum: |
Responses
200 OK
OK
Body
{
"offers": [
{
"price": {
"total_price": "673.0",
"total_price_with_vat": "807.6",
"base_price": "611.8",
"surge_ratio": 1.1,
"currency": "RUB"
},
"taxi_class": "express",
"pickup_interval": {
"from": "2023-07-17T08:02:26.607358+00:00",
"to": "2023-07-17T08:42:26.607358+00:00"
},
"delivery_interval": {
"from": "2023-07-17T08:02:26.607358+00:00",
"to": "2023-07-17T09:15:43.607358+00:00"
},
"description": "express_30min_longer",
"payload": "5e2TPP5f7Yqyv19yRZ+QVas4JK+lhwa17ncxA3VCGI8hvnFS+CIySbmfHQlR6vhC2S4XsW+M7TbEV0EQl1/1Z0PO3QQX8KbGb6rtKay",
"offer_ttl": "2020-01-02T00:00:00+00:00"
}
]
}
Name |
Description |
offers* |
Type: CalculatedOffer[] Массив предложений доставки |
CalculatedOffer
Варианты доставки
Name |
Description |
delivery_interval* |
Type: DeliveryTimeInterval Временной интервал доставки (по точке B) |
payload* |
Type: string payload оффера доставки. Чтобы заказать доставку по выбранному офферу, нужно передать payload в методе claims/create. Example: |
pickup_interval* |
Type: PickupTimeInterval Временной интервал забора (по точке A) |
price* |
Type: CalculatedOfferPrice Стоимость доставки |
taxi_class* |
Type: string Тарифный класс Example: |
description |
Type: string Описание варианта доставки. Пример: express_30min_longer (экспресс с замедлением на 30 минут) Example: |
offer_ttl |
Type: string<date-time> Время, до которого оффер можно использовать для создания заявки. Если Example: |
DeliveryTimeInterval
Временной интервал доставки (по точке B)
Name |
Description |
from* |
Type: string<date-time> Начало интервала (UTC) Example: |
to* |
Type: string<date-time> Окончание интервала (дата и время) Example: |
PickupTimeInterval
Временной интервал забора (по точке A)
Name |
Description |
from* |
Type: string<date-time> Начало интервала (UTC) Example: |
to* |
Type: string<date-time> Окончание интервала (дата и время) Example: |
CalculatedOfferPrice
Стоимость доставки
Name |
Description |
currency* |
Type: string Трехзначный код валюты, в которой ведется расчет Example: Min length: Max length: |
surge_ratio* |
Type: number Коэффициент роста стоимости заказа (в зависимости от нагрузки на систему) Example: |
total_price* |
Type: string Цена c учетом коэффициента роста стоимости заказа (без НДС) Example: Pattern: |
total_price_with_vat* |
Type: string Цена с учетом коэффициента роста стоимости заказа (с НДС) Example: Pattern: |
base_price |
Type: string Базовая цена доставки Example: Pattern: |
400 Bad Request
Неверный запрос
Body
{
"code": "bad_request",
"message": "bad request"
}
Name |
Description |
code* |
Type: string Код ошибки Example: Enum: |
message* |
Type: string Описание ошибки Example: |
409 Conflict
Не удалось рассчитать офферы
Body
{
"code": "estimating.requirement_unavailable",
"message": "requirement unavailable"
}
Name |
Description |
code* |
Type: string Код ошибки Example: Enum: |
message* |
Type: string Описание ошибки Example: |
429 Too Many Requests
Слишком много запросов
Body
{
"code": "too_many_requests",
"message": "Слишком много запросов"
}
Name |
Description |
code* |
Type: string Код ошибки Example: Enum: |
message* |
Type: string Описание ошибки Example: |