Создание полигонов доставки
POST /v1/polygon/create
POST
/v1/polygon/createПолигон создаётся в статусе DRAFT. Статус обработки полигона витриной можно получить методом /polygon/list. Если в одном запросе передано несколько записей с одинаковыми name и location_id, при обработке учитывается последняя запись, предыдущие игнорируются.
Тело запроса
polygons
array
Список полигонов для создания. Максимальное количество полигонов в одном запросе — 200.
PolygonCreateItem
Показать свойстваСкрыть свойства
PolygonCreateItem
name
string
Название полигона.
coordinates
array
Координаты полигона в формате GeoJSON (RFC 7946): массив линейных колец (number[][][]).
Линейное кольцо (LinearRing).
delivery_options
array
Список цен доставки по объёмному весу.
Опция доставки по диапазону объёмного веса.
Показать свойстваСкрыть свойства
volume_weight_from
number
Объёмный вес (кг) от: длина (см) × ширина (см) × высота (см) * масса брутто (кг) / 300.
volume_weight_to
number
Объёмный вес (кг) до: длина (см) × ширина (см) × высота (см) * масса брутто (кг) / 300.
price
number
Цена доставки, значение умноженное на 100.
currency
string
Валюта цены.
Допустимые значения
RUBBYNKZTEURUSDCNY
vat
string
НДС.
Допустимые значения
VAT_0VAT_5VAT_7VAT_10VAT_22NO_VAT
provider_id
string
Идентификатор провайдера доставки (опционально).
Допустимые значения
CDEKBOXBERRY5POSTRUSSIAN_POSTYANDEXSBLMVIDEO
delivery_time_minutes
integer
Время доставки в минутах.
delivery_types
array
Типы доставки.
Параметры типа доставки для опции.
Показать свойстваСкрыть свойства
delivery_type
string
required Тип доставки.
Допустимые значения
COURIERPICKUP_POINT
weight_from
number
Масса брутто (кг) от.
weight_to
number
Масса брутто (кг) до.
time_slots
array
Доступные интервалы доставки по времени (опционально).
Интервал времени доставки в течение дня (локальное время).
Показать свойстваСкрыть свойства
from
string
Начало интервала, формат «HH:MM» (например, «10:00»).
to
string
Конец интервала, формат «HH:MM» (например, «12:00»).
trunk_schedule
object
График магистральной перевозки по городу (опционально).
Показать свойстваСкрыть свойства
working_schedule
array
Расписание по дням недели; в каждом элементе — day и shipping_cutoff для магистрали.
PolygonWorkingSchedule
Показать свойстваСкрыть свойства
PolygonWorkingSchedule
day
string
День недели.
Допустимые значения
MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAY
shipping_cutoff
string
Время, после которого отсчёт слота доставки начнётся со следующего дня магистральной перевозки. Формат «16:30». Если пустое — не применяется.
individual_schedule
array
Индивидуальное расписание на даты; в каждом элементе — date, shipping_cutoff для магистрали, is_works.
PolygonIndividualSchedule
Показать свойстваСкрыть свойства
PolygonIndividualSchedule
date
string
Дата, формат «YYYY-MM-DD».
shipping_cutoff
string
Время, после которого отсчёт слота доставки начнётся со следующего дня магистральной перевозки. Формат «16:30». Если пустое — не применяется.
is_works
boolean
Признак работы в дату.
location_id
string
Идентификатор склада (опционально).
Успешный ответ
200A successful response. application/json
object
polygons
array
Список созданных полигонов.
PolygonCreateResult
Показать свойстваСкрыть свойства
PolygonCreateResult
polygon_id
string
Идентификатор созданного полигона.
name
string
Название полигона из запроса на создание.
status
string
Статус полигона.
Допустимые значения
DRAFTPENDINGACTIVEFAILEDDELETED
errors
array
Ошибки, из-за которых полигон не был создан или не прошёл модерацию. Коды только из PolygonCreateValidationErrorCode.
Ошибка валидации/бизнеса поля для scope «PolygonCreate». Допустимые field: polygons[].name, coordinates, delivery_options. Для бизнес-правил витрины: code=STOREFRONT_RULE_VIOLATION.
Показать свойстваСкрыть свойства
field
string
required Путь к полю. Ожидаемые: polygons[].name, coordinates, delivery_options.
code
string
required Коды ошибок ручки (scope PolygonCreate). Допустимые field: polygons[].name, coordinates, delivery_options.
- REQUIRED: Поле отсутствует или пустое, но обязательно
- INVALID_TYPE: Неверный JSON-тип
- INVALID_FORMAT: Общий сбой формата значения
- INVALID_ENUM: Значение не из допустимого enum
- CONDITIONALLY_REQUIRED: Поле обязательно при выполнении условия
- INVALID_TIME: Не формат HH:MM
- INVALID_TIME_RANGE: Некорректный диапазон времени (from >= to и т.п.)
- INVALID_DATE: Не формат YYYY-MM-DD
- INVALID_DATE_TIME: Не RFC3339 или отсутствует timezone
- MIN_VALUE: Значение ниже минимума
- MAX_VALUE: Значение выше максимума
- NEGATIVE_VALUE: Отрицательное значение недопустимо
- INVALID_RANGE: Некорректный диапазон (from > to)
- TOO_MANY_ITEMS: Превышен maxItems / лимит пакета
- INVALID_COORDINATES: Некорректная геометрия / GeoJSON
- RING_TOO_SHORT: LinearRing короче 4 позиций
- RING_NOT_CLOSED: Кольцо не замкнуто
- POSITION_SIZE: Позиция не 2–3 числа
- INVALID_LATITUDE: Широта вне диапазона
- INVALID_LONGITUDE: Долгота вне диапазона
- NOT_FOUND: Сущность не найдена (уточняется полем field)
- CONFLICT: Конфликт состояния ресурса
- STOREFRONT_RULE_VIOLATION: Запрос синтаксически валиден, но отклонён бизнес-правилом витрины (детали в message)
Допустимые значения
REQUIREDINVALID_TYPEINVALID_FORMATINVALID_ENUMCONDITIONALLY_REQUIREDINVALID_TIMEINVALID_TIME_RANGEINVALID_DATEINVALID_DATE_TIMEMIN_VALUEMAX_VALUENEGATIVE_VALUEINVALID_RANGETOO_MANY_ITEMSINVALID_COORDINATESRING_TOO_SHORTRING_NOT_CLOSEDPOSITION_SIZEINVALID_LATITUDEINVALID_LONGITUDENOT_FOUNDCONFLICTSTOREFRONT_RULE_VIOLATION
message
string
required Текст для клиента. Для STOREFRONT_RULE_VIOLATION — описание правила.
Ошибки
400Некорректный запрос application/json
object
error_type
string
ERROR_TYPE_BAD_REQUEST — HTTP 400 (request-level); ERROR_TYPE_UNAUTHORIZED — 401; ERROR_TYPE_RATE_LIMIT — 429; ERROR_TYPE_INTERNAL — 500. Поэлементные/бизнес-ошибки сущности — в HTTP 200 errors/failed, не здесь.
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string
код ошибки
message
string
сообщение
details
object
401Ошибка авторизации application/json
object
error_type
string
ERROR_TYPE_BAD_REQUEST — HTTP 400 (request-level); ERROR_TYPE_UNAUTHORIZED — 401; ERROR_TYPE_RATE_LIMIT — 429; ERROR_TYPE_INTERNAL — 500. Поэлементные/бизнес-ошибки сущности — в HTTP 200 errors/failed, не здесь.
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string
код ошибки
message
string
сообщение
details
object
429Превышен лимит запросов application/json
object
error_type
string
ERROR_TYPE_BAD_REQUEST — HTTP 400 (request-level); ERROR_TYPE_UNAUTHORIZED — 401; ERROR_TYPE_RATE_LIMIT — 429; ERROR_TYPE_INTERNAL — 500. Поэлементные/бизнес-ошибки сущности — в HTTP 200 errors/failed, не здесь.
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string
код ошибки
message
string
сообщение
details
object
500Внутренняя ошибка сервера application/json
object
error_type
string
ERROR_TYPE_BAD_REQUEST — HTTP 400 (request-level); ERROR_TYPE_UNAUTHORIZED — 401; ERROR_TYPE_RATE_LIMIT — 429; ERROR_TYPE_INTERNAL — 500. Поэлементные/бизнес-ошибки сущности — в HTTP 200 errors/failed, не здесь.
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string
код ошибки
message
string
сообщение
details
object
defaultОшибка (неожиданная или прочие) application/json
object
error_type
string
ERROR_TYPE_BAD_REQUEST — HTTP 400 (request-level); ERROR_TYPE_UNAUTHORIZED — 401; ERROR_TYPE_RATE_LIMIT — 429; ERROR_TYPE_INTERNAL — 500. Поэлементные/бизнес-ошибки сущности — в HTTP 200 errors/failed, не здесь.
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string
код ошибки
message
string
сообщение
details
object
POST/v1/polygon/create
1curl https://api.omninet.ru/v1/polygon/create \2 --request POST \3 --header 'Content-Type: application/json' \4 --data '{5 "polygons": [6 {7 "name": "string",8 "coordinates": [9 [10 [11 100,12 013 ],14 [15 101,16 017 ],18 [19 101,20 121 ],22 [23 100,24 125 ],26 [27 100,28 029 ]30 ]31 ],32 "delivery_options": [33 {34 "volume_weight_from": 0,35 "volume_weight_to": 0,36 "price": 0,37 "currency": "RUB",38 "vat": "string",39 "provider_id": "string",40 "delivery_time_minutes": 0,41 "delivery_types": [42 {43 "delivery_type": "COURIER"44 }45 ],46 "weight_from": 0,47 "weight_to": 0,48 "time_slots": [49 {50 "from": "string",51 "to": "string"52 }53 ],54 "trunk_schedule": {55 "working_schedule": [56 {57 "day": "MONDAY",58 "shipping_cutoff": "string"59 }60 ],61 "individual_schedule": [62 {63 "date": "string",64 "shipping_cutoff": "string",65 "is_works": true66 }67 ]68 }69 }70 ],71 "location_id": "string"72 }73 ]74}'{
"polygons": [
{
"polygon_id": "string",
"name": "string",
"status": "string",
"errors": [
{
"field": "coordinates",
"code": "INVALID_COORDINATES",
"message": "Некорректная геометрия полигона"
}
]
}
]
}A successful response.