Получение вариантов доставки (для РФ)
- Метод возвращает доступные варианты доставки.
- Каждый вариант содержит цену, временной интервал забора посылки на точке А, временной интервал доставки на точку B.
- После получения вариантов доставки можно выбрать оптимальный и создать заказ с использованием выбранного варианта.
- Получить варианты доставки можно только в России.
Request
POST
b2b.taxi.yandex.net/b2b/cargo/integration/v2/offers/calculate
Адрес сервиса
Headers
|
Name |
Description |
|
Accept-Language |
Type: string Предпочитаемый язык ответа Например: Example: |
Body
application/json
{
"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А",
"country": "Россия",
"city": "Санкт-Петербург",
"street": "Большая Монетная улица",
"building": "23к1А",
"porch": "A",
"sfloor": "1",
"sflat": "1"
},
{
"id": 1,
"coordinates": [
0.1,
0.1
],
"fullname": "Санкт-Петербург, Большая Монетная улица, 1к1А",
"country": "Россия",
"city": "Санкт-Петербург",
"street": "Большая Монетная улица",
"building": "23к1А",
"porch": "A",
"sfloor": "1",
"sflat": "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",
"rental_duration": 0
}
}
|
Name |
Description |
|
items |
Type: Item[] Параметры товаров Min items: Example
|
|
route_points |
Type: RoutePointWithAddress[] Точки маршрута. Отсортированы в порядке посещения А-Б1....БN Min items: Example
|
|
requirements |
Type: OfferRequirements Требования к доставке Example
|
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 Высота в метрах Min value: Max value: |
|
length |
Type: number Длина в метрах Min value: Max value: |
|
width |
Type: number Ширина в метрах Min value: Max value: |
Example
{
"length": 0.1,
"width": 0.2,
"height": 0.3
}
Item
|
Name |
Description |
|
quantity |
Type: integer Количество единиц товара Min value: |
|
dropoff_point |
Type: integer Идентификатор точки (int64), куда нужно доставить товар. |
|
pickup_point |
Type: integer Идентификатор точки (int64), откуда нужно забрать товар. |
|
size |
Type: CargoItemSizes Габариты товара в метрах. В полях следует передавать актуальные значения. Если габариты не были переданы, заказ оформляется с учетом Если фактические характеристики товара превысят допустимые, Курьер (courier): до 0.80 м × 0.50 м × 0.50 м
Example
|
|
weight |
Type: number Вес товара в килограммах. |
Example
{
"size": {
"length": 0.1,
"width": 0.2,
"height": 0.3
},
"weight": 2.105,
"quantity": 1,
"pickup_point": 1,
"dropoff_point": 2
}
Point
Координаты точек в виде массива из двух вещественных чисел: долгота, широта — именно в таком порядке.
Type: number[]
Min items: 2
Max items: 2
Example
[
0.1,
0.1
]
AddressFullname
Полный адрес с указанием города, улицы и номера дома.
Номер квартиры, подъезда и этаж указывать не нужно.
Type: string
Example: Санкт-Петербург, Большая Монетная улица, 1к1А
RoutePointWithAddress
|
Name |
Description |
|
building |
Type: string Строение Example: |
|
city |
Type: string Город Example: |
|
coordinates |
Type: Point Координаты точек в виде массива из двух вещественных чисел: долгота, широта — именно в таком порядке. Min items: Max items: Example
|
|
country |
Type: string Страна Example: |
|
fullname |
Type: AddressFullname Полный адрес с указанием города, улицы и номера дома. Example: |
|
id |
Type: integer Числовой id точки(int64). Параметр обязательный, если в заказе несколько точек доставки |
|
porch |
Type: string Подъезд (может быть A) Example: |
|
sflat |
Type: string Квартира Example: |
|
sfloor |
Type: string Этаж Example: |
|
street |
Type: string Улица Example: |
Example
{
"id": 1,
"coordinates": [
0.1,
0.1
],
"fullname": "Санкт-Петербург, Большая Монетная улица, 1к1А",
"country": "Россия",
"city": "Санкт-Петербург",
"street": "Большая Монетная улица",
"building": "23к1А",
"porch": "A",
"sfloor": "1",
"sflat": "1"
}
CargoType
Тип (размер) кузова для грузового тарифа.
Возможные значения:
- van ("Маленький кузов")
- lcv_m ("Средний кузов")
- lcv_l ("Большой кузов")
- lcv_xl ("Кузов XL")
Точный список возможных значений для конкретной геоточки уточняйте с помощью метода получения тарифов tariffs
Type: string
Enum: van, lcv_m, lcv_l, lcv_xl
CargoOptions
Список дополнительных опций тарифа.
Возможные отдельные опции:
- auto_courier (курьер только на автомобиле)
- thermobag (курьер с термосумкой)
Пример списка опций: ["auto_courier"].
Точный список возможных значений для конкретной геоточки
уточните с помощью метода получения тарифов tariffs
Type: string[]
Example
[
"thermobag"
]
OfferRequirements
Требования к доставке
|
Name |
Description |
|
cargo_loaders |
Type: integer Число грузчиков для грузового тарифа. Точный список возможных значений для конкретной геоточки |
|
cargo_options |
Type: CargoOptions Список дополнительных опций тарифа. Возможные отдельные опции:
Пример списка опций: ["auto_courier"]. Точный список возможных значений для конкретной геоточки Example
|
|
cargo_type |
Type: CargoType Тип (размер) кузова для грузового тарифа.
Enum: |
|
due |
Type: string<date-time> Желаемое время прибытия исполнителя на точку А (source). Параметр не совместим с опциями замедления в тарифе Example: |
|
pro_courier |
Type: boolean Включить опцию "Профи" для тарифов "Экспресс" и "Курьер". |
|
rental_duration |
Type: integer Время аренды, которое планирует клиент. Указывается в минутах. |
|
skip_door_to_door |
Type: boolean Отключить доставку до двери (выключить опцию "От двери до двери"). Возможные значения:
Default: |
|
taxi_classes |
Type: string[] Класс автомобиля для доставки. Точный список возможных значений для конкретной геоточки Min items: Example
|
Example
{
"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",
"rental_duration": 0
}
Responses
200 OK
OK
Body
application/json
{
"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[] Массив предложений доставки Example
|
Currency
Трехзначный код валюты, в которой ведется расчет
Type: string
Min length: 3
Max length: 3
Example: RUB
CalculatedOfferPrice
Стоимость доставки
|
Name |
Description |
|
currency |
Type: Currency Трехзначный код валюты, в которой ведется расчет Min length: Max length: Example: |
|
surge_ratio |
Type: number Коэффициент роста стоимости заказа (в зависимости от нагрузки на систему) |
|
total_price |
Type: string Цена c учетом коэффициента роста стоимости заказа (без НДС) Pattern: Example: |
|
total_price_with_vat |
Type: string Цена с учетом коэффициента роста стоимости заказа (с НДС) Pattern: Example: |
|
base_price |
Type: string Базовая цена доставки Pattern: Example: |
Example
{
"total_price": "673.0",
"total_price_with_vat": "807.6",
"base_price": "611.8",
"surge_ratio": 1.1,
"currency": "RUB"
}
PickupTimeInterval
Временной интервал забора (по точке A)
|
Name |
Description |
|
from |
Type: string<date-time> Начало интервала (UTC) Example: |
|
to |
Type: string<date-time> Окончание интервала (дата и время) Example: |
Example
{
"from": "2023-07-17T08:02:26.607358+00:00",
"to": "2023-07-17T08:42:26.607358+00:00"
}
DeliveryTimeInterval
Временной интервал доставки (по точке B)
|
Name |
Description |
|
from |
Type: string<date-time> Начало интервала (UTC) Example: |
|
to |
Type: string<date-time> Окончание интервала (дата и время) Example: |
Example
{
"from": "2023-07-17T08:02:26.607358+00:00",
"to": "2023-07-17T09:15:43.607358+00:00"
}
CalculatedOffer
Варианты доставки
|
Name |
Description |
|
delivery_interval |
Type: DeliveryTimeInterval Временной интервал доставки (по точке B) Example
|
|
payload |
Type: string payload оффера доставки. Чтобы заказать доставку по выбранному офферу, нужно передать payload в методе claims/create. Example: |
|
pickup_interval |
Type: PickupTimeInterval Временной интервал забора (по точке A) Example
|
|
price |
Type: CalculatedOfferPrice Стоимость доставки Example
|
|
taxi_class |
Type: string Тарифный класс Example: |
|
description |
Type: string Описание варианта доставки. Пример: express_30min_longer (экспресс с замедлением на 30 минут) Example: |
|
offer_ttl |
Type: string<date-time> Время, до которого оффер можно использовать для создания заявки. Если Example: |
Example
{
"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"
}
400 Bad Request
Неверный запрос
Body
application/json
{
"code": "bad_request",
"message": "bad request"
}
|
Name |
Description |
|
code |
Type: string Код ошибки Enum: |
|
message |
Type: string Описание ошибки Example: |
409 Conflict
Не удалось рассчитать офферы
Body
application/json
{
"code": "estimating.requirement_unavailable",
"message": "requirement unavailable"
}
|
Name |
Description |
|
code |
Type: string Код ошибки Enum: |
|
message |
Type: string Описание ошибки Example: |
429 Too Many Requests
Слишком много запросов
Body
application/json
{
"code": "too_many_requests",
"message": "Слишком много запросов"
}
|
Name |
Description |
|
code |
Type: string Код ошибки Enum: |
|
message |
Type: string Описание ошибки Example: |
No longer supported, please use an alternative and newer version.