Расчёт вариантов Express-доставки (Dynamic Express)

POST /v1/polygon/delivery-options/calculate

POST/v1/polygon/delivery-options/calculate

Merchant-hosted метод (Marketplace → Merchant). Marketplace сначала по конфигурации location → polygon → delivery_options определяет поддержку Express (delivery_type = EXPRESS). Для delivery option с calculation_mode = DYNAMIC витрина вызывает этот метод при оформлении заказа и получает доступные варианты Express-доставки: стоимость (price) и временной интервал (delivery_date_begin, delivery_date_end) каждого варианта — в options[] ответа. Метод не заменяет polygon/delivery_options и не сообщает о поддержке Express в полигоне. Не выполняет reserve/confirm; calculation_id — только для трассировки.

Тело запроса

location_id
string
required

Идентификатор склада продавца.

delivery_type
string
required

Тип доставки. Для Dynamic Express — EXPRESS.

  • COURIER: доставка курьером — обязателен address_tail
  • PICKUP_POINT: доставка в пункт выдачи
  • CLICK_AND_COLLECT: самовывоз (Click & Collect)
Допустимые значения
COURIERPICKUP_POINTCLICK_AND_COLLECTEXPRESS
destination
object
required

Адрес доставки до покупателя.

Показать свойства
address_tail
string

Адрес в текстовом формате.

latitude
number

Широта.

longitude
number

Долгота.

items
array
required

Состав заказа (без quantity; один товар — один заказ).

Товар в запросе расчёта. Заполняется offer_id и/или product_id; при обоих используется только product_id.

Показать свойства
product_id
string

Идентификатор товара в системе маркетплейса.

offer_id
string

Артикул продавца.

Успешный ответ

200A successful response.
application/json
object
calculation_id
string
required

Идентификатор выполненного расчёта (трассировка/диагностика). Не reservation/quote ID; не передаётся в модель заказа.

expires_at
string
required

Момент, после которого результат расчёта не считается актуальным. Формат RFC3339 с обязательным timezone (пример: 2026-07-02T10:25:00+02:00). Несоблюдение формата может привести к непредсказуемому поведению системы и проблемам с заказами.

options
array
required

Доступные варианты Express-доставки с конкретной стоимостью и временным интервалом для заказа.

PolygonDeliveryOptionsCalculateOption

Показать свойства

PolygonDeliveryOptionsCalculateOption

delivery_date_begin
string
required

Начало интервала доставки (date-time, RFC3339). Формат RFC3339 с обязательным timezone (пример: 2026-07-02T10:25:00+02:00). Несоблюдение формата может привести к непредсказуемому поведению системы и проблемам с заказами.

delivery_date_end
string
required

Конец интервала доставки (date-time, RFC3339). Формат RFC3339 с обязательным timezone (пример: 2026-07-02T10:25:00+02:00). Несоблюдение формата может привести к непредсказуемому поведению системы и проблемам с заказами.

price
number
required

Стоимость доставки, значение умножено на 100.

currency
string
required

Валюта стоимости доставки.

  • RUB: Российский рубль
  • BYN: Белорусский рубль
  • KZT: Тенге
  • EUR: Евро
  • USD: Доллар США
  • CNY: Юань
Допустимые значения
RUBBYNKZTEURUSDCNY

Ошибки

400Некорректный запрос
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
401Ошибка авторизации
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
429Превышен лимит запросов
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
500Внутренняя ошибка сервера
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
POST/v1/polygon/delivery-options/calculate
1curl https://api.omninet.ru/v1/polygon/delivery-options/calculate \2  --request POST \3  --header 'Content-Type: application/json' \4  --data '{5  "location_id": "string",6  "delivery_type": "string",7  "destination": {8    "address_tail": "string",9    "latitude": 0,10    "longitude": 011  },12  "items": [13    {14      "product_id": "string",15      "offer_id": "string"16    }17  ]18}'
{
  "calculation_id": "string",
  "expires_at": "string",
  "options": [
    {
      "delivery_date_begin": "string",
      "delivery_date_end": "string",
      "price": 0,
      "currency": "RUB"
    }
  ]
}

A successful response.