# Оферты

{% hint style="info" %}
Полезное: [Оферты: редактирование, операции и статусы](/birzha-i-oferty-rynok-gruzov-i-transporta/oferty-redaktirovanie-operacii-i-statusy.md) и[Какие есть статусы оферты?](/birzha-i-oferty-rynok-gruzov-i-transporta/oferty-redaktirovanie-operacii-i-statusy/kakie-est-statusy-oferty.md)
{% endhint %}

## POST /exchange/offer

> Создание одиночной оферты

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"servers":[{"url":"https://api.test.roolz.tech/public-api/v1","description":"Тестовая среда для разработки"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в GET параметрах","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в header","name":"X-Api-Key","in":"header"}},"parameters":{"ContentTypeHeader":{"in":"header","name":"Content-Type","required":true,"description":"","schema":{"type":"string","default":"application/json","enum":["application/json"]}},"AcceptEncodingHeader":{"in":"header","name":"Accept-Encoding","required":true,"description":"","schema":{"type":"string","default":"gzip","enum":["gzip"]}}},"schemas":{"ExchangeOfferCreateRequest":{"required":["status","type","is_public","is_private","payment","route"],"properties":{"status":{"type":"string","description":"В каком статусе создается оферта. На данный момент допускается только создание оферт в статусе не опубликовано (not_published)","enum":["not_published"]},"type":{"type":"string","description":"Тип оферты (транспорт/груз). Также определяет требования для запроса","enum":["transport","cargo"]},"is_public":{"type":"boolean","description":"Оферта публикуется на публичной бирже"},"is_private":{"type":"boolean","description":"Оферта публикуется на приватной бирже"},"is_all_private_partners":{"type":"boolean","description":"Оферту в приватной бирже получат все партнеры компании-владельца. Поле отображается только в собственных офертах"},"private_partners":{"type":"array","minItems":0,"description":"Идентификаторы компаний-партнеров, которые получат приватную оферту. Поле отображается только в собственных офертах","items":{"type":"string","format":"UUID"}},"description":{"type":"string","description":"Дополнительное описание в оферте"},"payment":{"$ref":"#/components/schemas/PaymentDataCreateRequest"},"route":{"type":"array","items":{"$ref":"#/components/schemas/RoutepointCreateRequest"}},"cargo_units":{"description":"Описание груза (на текущий момент размер массива должен быть равен 1)","type":"array","items":{"$ref":"#/components/schemas/CargoUnitCreateRequest"}},"transportation_requirement":{"description":"Требования к транспортировке (только для грузовой оферты)","allOf":[{"$ref":"#/components/schemas/TransportRequirementsCreateRequest"}]},"transport":{"description":"Описание транспорта (только для транспортной оферты)","allOf":[{"$ref":"#/components/schemas/TransportSpecificationCreateRequest"}]},"publication_lifetime":{"$ref":"#/components/schemas/PublicationLifetimeCreateRequest"},"bid_privacy":{"$ref":"#/components/schemas/BidPrivacyCreateRequest"}}},"PaymentDataCreateRequest":{"type":"object","properties":{"quote_is_vat":{"type":"boolean","description":"Ставка с НДС"},"is_prepay":{"type":"boolean","description":"Есть ли предоплата"},"bid_is_vat":{"type":"boolean","description":"Принимать ставки с НДС"},"bid_is_no_vat":{"type":"boolean","description":"Принимать ставки без НДС"},"bid_is_not_unique":{"type":"boolean","description":"Уникальность ставки в рамках пространства. Запрещает/разрешает давать несколько ставок одновременно (например, при необходимости дать разные условия в \"реижиме торги\" )"},"currency":{"type":"string","description":"Валюта"},"payment_condition":{"type":"string","description":"Условия оплаты"},"payment_method":{"type":"string","description":"Метод оплаты"},"bid_mode":{"type":"string","description":"Режим торгов"},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Целевая ставка за перевозку в указанной валюте в грузовой оферте"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Дополнительная ставка. Если основная ставка указана как ставка с НДС, то дополнительная ставка отображается как \"без НДС\""},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Ставка в транспортной оферте; устанавливается за единицу пробега (километр, милю и т.д.)"},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Минимальный шаг аукциона"},"vat":{"type":"number","format":"decimal","nullable":true,"description":"Ставка НДС"},"mileage_format":{"type":"string","nullable":true,"description":"Единица пробега для ставки в транспортной оферте (км, мили и тд)"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Размер предоплаты в проценте от ставки. Только целые значения до 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Период оплаты в днях"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Срок для подтверждения ставок (в секундах)"}},"required":["quote_is_vat","is_prepay","bid_is_vat","bid_is_no_vat","bid_is_not_unique","currency","payment_condition","payment_method","bid_mode"]},"RoutepointCreateRequest":{"properties":{"order":{"type":"integer","description":"Порядковый номер точки маршрута"},"point_type":{"type":"string","description":"Тип точки маршрута в системе Roolz","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Часовой пояс точки маршрута в минутном смещении относительно UTC"},"location":{"$ref":"#/components/schemas/LocationDataCreateRequest","description":"Информация о локации"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата начала операций, относящихся к перевозке, в точке маршрута","nullable":true},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата окончания операций, относящихся к перевозке, в точке маршрута","nullable":true},"loading_type":{"description":"Способ загрузки/выгрузки транспортного средства","type":"array","nullable":true,"items":{"type":"string"}}}},"LocationDataCreateRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор объекта (из запроса поиска объектов)"},"is_radius":{"type":"boolean"},"type":{"type":"string","description":"Тип объекта (из запроса поиска объектов)"},"position_type":{"type":"string","description":"Тип точки"},"radius":{"type":"integer","format":"int32","nullable":true,"description":"Радиус"}},"required":["id","is_radius","type","position_type"]},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Дата"},"time":{"type":"string","format":"HH:mm:ss","description":"Время"}}},"CargoUnitCreateRequest":{"description":"Данные груза для грузового типа оферты","required":["weight","volume"],"properties":{"name":{"type":"string","description":"Название груза"},"type":{"type":"string","description":"Тип груза","enum":["liquid_bulk","break_bulk","dry_bulk","groupage","oversized","container","eur_pallet","fin_pallet","oth_pallet","bag","big_bag","icb","carton","barrel","roll","reel","coil","crate"]},"quantity":{"type":"integer","description":"Количество груза, шт.","nullable":true},"weight":{"type":"integer","format":"float","description":"Вес груза, тонны"},"volume":{"type":"integer","format":"float","description":"Объем груза, метры кубические"},"adr_class":{"type":"string","description":"ADR класс груза","nullable":true,"enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]},"length":{"type":"integer","format":"float","description":"Длина груза, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Ширина груза, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Высота груза, метры","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"price":{"$ref":"#/components/schemas/CargoPriceCreateRequest","description":"Цена груза","nullable":true}}},"CargoPriceCreateRequest":{"properties":{"currency":{"type":"string","description":"Валюта цены"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"}}},"TransportRequirementsCreateRequest":{"description":"Требования к транспортировке груза","required":["body"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Требуется перецепка"},"shipping_mode":{"type":"string","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"Тип транспортного средства, требуемый для перевозки груза. Например, LCV, одиночное Т/С и пр. ","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Типы кузова транспортного средства, требуемые для перевозки груза","items":{"type":"string","enum":["curtainside","box","insulated","ref","open_body","flat_bed","deeploader","tipper","cont_carrier","cont_open","cont_closed","tank_cont","tank_fuel","tank_bitumen","tank_gas","tank_chemical","tank_food","silo_food","silo_non_food","tank_other","car_carrier","log_carrier","cattle_carrier","grain_truck","meat_hooker","road_tractor","other","crane_truck","lift_truck","tow_truck","tractor","dozer","loader"]}},"equipment":{"type":"array","description":"Требуемое дополнительное оборудование","nullable":true,"items":{"type":"string"}},"quantity":{"type":"string","description":"Количество единиц груза","nullable":true}}},"TransportSpecificationCreateRequest":{"description":"Харакетристики транспорта для траспортного типа оферты","required":["type","body","available_weight","available_volume"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Возможна ли перецепка"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Доступный к загрузке вес, тонны"},"available_volume":{"type":"integer","format":"float","description":"Доступный к загрузке объем, метры кубические"},"length":{"type":"integer","format":"float","description":"Доступная к занрузке длина, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Доступная к загрузке ширина, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Доступная к загрузке высота, метры","nullable":true},"shipping_mode":{"type":"array","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR класс (класс опасности груза), допущеный для транспортировки","minItems":1,"items":{"type":"string","enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]}},"body":{"type":"array","minItems":0,"description":"Тип кузова"},"equipment":{"type":"string","description":"Дополнительное оборудование","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Возможные способы загрузки в транспортное средство.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}},"PublicationLifetimeCreateRequest":{"description":"Настройки длительности публикации","required":["lifetime"],"properties":{"lifetime":{"type":"integer","description":"Длительность публикации (в секундах)"},"is_first_bid":{"type":"boolean","description":"Начать отсчет публикации только после первой ставки"}}},"BidPrivacyCreateRequest":{"description":"Настройки приватности ставок в оферте","properties":{"allow_view_bidder":{"type":"boolean","description":"Показывать владельца ставки"},"allow_view_quote":{"type":"boolean","description":"Показывать ставку"},"allow_view_comment":{"type":"boolean","description":"Показывать комментарий к ставке"}}},"ExchangeOffer":{"required":["id","name","type","status","creation_method","is_public","is_private","company_id","description","assignee_users","is_autoclosed","is_publication_autocanceled","publication_autocancel_type","publication_autocancel_at","status_changed_at","published_at","closed_at","autoclose_at","is_all_private_partners","private_partners","payment","route","route_way","transportation_requirement","cargo_units","transport","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Идентификатор оферты в системе Roolz"},"name":{"type":"string","description":"Публичное название оферты"},"type":{"type":"string","description":"Тип оферты","enum":["cargo","transport"]},"status":{"type":"string","description":"Текущий статус оферты","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]},"creation_method":{"type":"string","description":"Метод создания оферты. Возможные варианты: ручная (manual), через API (api)","enum":["manual","api"]},"is_public":{"type":"boolean","description":"Оферта публикуется на публичной бирже"},"is_private":{"type":"boolean","description":"Оферта публикуется на приватной бирже"},"is_public_duplicate":{"type":"boolean","description":"Создан публичный дубликат на основе данной оферты"},"is_partners_selection":{"type":"boolean","description":"Активирована опция отбора партнеров (для публичного дубликата)"},"company_id":{"type":"string","format":"UUID","description":"Внутренний идентификатор компании-владельца оферты в системе Roolz"},"description":{"type":"string","description":"Дополнительное описание в оферте"},"assignee_users":{"type":"array","minItems":1,"description":"Ответственные, закрепленные за офертой. Поле отображается только для владельцев оферты и входящих оферт приватной биржи","items":{"$ref":"#/components/schemas/OfferAssigneeUser"}},"is_autoclosed":{"type":"boolean","description":"Оферта была закрыта (отправлена в архив) автоматически"},"is_publication_autocanceled":{"type":"boolean","description":"Оферта была снята с публикации автоматически"},"publication_autocancel_type":{"type":"string","description":"Тип (причина) автоснятия с публикации оферты","nullable":true},"publication_autocancel_at":{"type":"string","description":"Дата и время автоснятия с публикации оферты (в UTC)","nullable":true},"status_changed_at":{"type":"string","description":"Дата и время последнего изменения статуса оферты","nullable":true},"published_at":{"type":"string","description":"Дата и время публикации оферты","nullable":true},"closed_at":{"type":"string","description":"Дата и время закрытия (архивации) оферты","nullable":true},"autoclose_at":{"type":"string","description":"Дата и время автоматического закрытия (архивации) оферты","nullable":true},"is_all_private_partners":{"type":"boolean","description":"Оферту в приватной бирже получат все партнеры компании-владельца. Поле отображается только в собственных офертах"},"private_partners":{"type":"array","minItems":0,"description":"Идентификаторы компаний-партнеров, которые получат приватную оферту. Поле отображается только в собственных офертах","items":{"type":"string","format":"UUID"}},"payment":{"description":"Настройки и данные оплаты","$ref":"#/components/schemas/Payment"},"route":{"type":"array","description":"Точки маршрута в оферте","items":{"$ref":"#/components/schemas/OfferRoute"}},"route_way":{"description":"Рассчитанный маршрут движения","$ref":"#/components/schemas/OfferRouteWay"},"transportation_requirement":{"description":"Требования к транспортировке для грузовых оферт","$ref":"#/components/schemas/OfferTransportationRequirement"},"cargo_units":{"type":"array","description":"Характеристики груза для грузовых оферт","nullable":true,"items":{"$ref":"#/components/schemas/OfferCargoUnit"}},"transport":{"description":"Характеристики предлагаемого транспорта для транспортных оферт","nullable":true,"$ref":"#/components/schemas/OfferTransport"},"publication_lifetime":{"description":"Длительность публикации","nullable":true,"$ref":"#/components/schemas/PublicationLifetime"},"bid_privacy":{"description":"Приватность ставок","nullable":true,"$ref":"#/components/schemas/BidPrivacy"},"created_at":{"type":"string","description":"Дата и время создания оферты (в UTC)"},"updated_at":{"type":"string","description":"Дата и время последнего изменения оферты (в UTC)"}}},"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"Идентификатор пользователя в системе Roolz"},"contact_methods":{"type":"array","minItems":1,"description":"Способы связи с пользователем","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Способы связи с пользователем","enum":["phone","email"]},"value":{"type":"string","description":"Способ связи"}}},"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Есть ли предоплата"},"currency":{"type":"string","description":"Валюта ставок"},"quote_is_vat":{"type":"boolean","description":"Ставка с НДС","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Целевая ставка за перевозку в указанной валюте в грузовой оферте"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Дополнительная ставка. Если основная ставка указана как ставка с НДС, то дополнительная ставка отображается как \"без НДС\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"Ставка НДС"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Ставка в транспортной оферте; устанавливается за единицу пробега (километр, милю и т.д.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Размер предоплаты в валюте"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Размер предоплаты в проценте от ставки. Только целые значения до 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Период оплаты в днях"},"mileage_format":{"type":"string","nullable":true,"description":"Единица пробега для ставки в транспортной оферте (км, мили и тд)"},"payment_condition":{"type":"string","description":"Условия оплаты","nullable":true},"payment_method":{"type":"string","description":"Метод оплаты","nullable":true},"bid_mode":{"type":"string","description":"Режим торгов"},"bid_is_vat":{"type":"boolean","description":"Принимать ставки с НДС","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Принимать ставки без НДС","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Минимальный шаг аукциона"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Уникальность ставки в рамках пространства. Запрещает/разрешает давать несколько ставок одновременно (например, при необходимости дать разные условия в \"реижиме торги\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Срок для подтверждения ставок (в секундах)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}},"OfferRoute":{"description":"Точка маршрута движения","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Порядковый номер точки маршрута"},"point_type":{"type":"string","description":"Тип точки маршрута в системе Roolz","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Часовой пояс точки маршрута в минутном смещении относительно UTC"},"point_timezone":{"type":"string","description":"TZ идентификатор часового пояса точки маршрута"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Данные точки маршрута движения"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата начала операций, относящихся к перевозке, в точке маршрута"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата окончания операций, относящихся к перевозке, в точке маршрута","nullable":true},"loading_type":{"type":"array","description":"Способ загрузки/выгрузки транспортного средства","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Данные точки маршрута движения","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"ID точки маршрута в базе данных OSM"},"osm_type":{"type":"string","description":"Тип точки маршрута в базе данных OSM"},"full_osm_id":{"type":"string","description":"Полный идентификатор точки маршрута в базе данных OSM"},"position_type":{"type":"string","description":"Общий тип точки маршрута в базе данных OSM"},"is_radius":{"type":"boolean","description":"Определяет, задан ли радиус расширяющий точку маршрута"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Радиус (если задан) расширяющий точку маршрута, в метрах","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Адрес точки маршрута движения","required":["title","name","lang","country_code","country_name","state_name","state_code","city","district","sub_district","street","postal_code","house_number"],"properties":{"title":{"type":"string","description":"Полное наименование объекта точки маршрута"},"name":{"type":"string","description":"Собственное имя объекта точки маршрута"},"lang":{"type":"string","description":"ISO 639-1 код языка точки маршрута","nullable":true},"country_code":{"type":"string","description":"Alpha2 код страны точки маршрута"},"country_name":{"type":"string","description":"Наименование страны точки маршрута"},"state_name":{"type":"string","description":"Наименование внутренней административной единицы, к которой относится точка маршрута","nullable":true},"state_code":{"type":"string","description":"Код внутренней административаной единицы, к которой относится точка маршрута","nullable":true},"city":{"type":"string","description":"Город, к которому относится точка маршрута","nullable":true},"district":{"type":"string","description":"Район города, к которому относится точка маршрута","nullable":true},"sub_district":{"type":"string","description":"Микрорайон города, к которому относится точка маршрута","nullable":true},"street":{"type":"string","description":"Название улицы, к которой относится точка маршрута","nullable":true},"postal_code":{"type":"string","description":"Почтовый код, к которому относится точка маршрута","nullable":true},"house_number":{"type":"string","description":"Номер дома, к которому относится точка маршрута","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Гео json точки маршрута движения","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","format":"float"}}}},"OfferRouteWay":{"description":"Данные просчитанного грузового маршрута движения","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Протяженность расчитанного маршрута в метрах"},"total_dur":{"type":"integer","description":"Длительность рассчитанного маршрута в секундах"}}},"OfferTransportationRequirement":{"description":"Требования к транспортировке груза","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Требуется перецепка"},"shipping_mode":{"type":"string","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"Тип транспортного средства, требуемый для перевозки груза. Например, LCV, одиночное Т/С и пр.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Типы кузова транспортного средства, требуемые для перевозки груза","items":{"type":"string","enum":["curtainside","box","insulated","ref","open_body","flat_bed","deeploader","tipper","cont_carrier","cont_open","cont_closed","tank_cont","tank_fuel","tank_bitumen","tank_gas","tank_chemical","tank_food","silo_food","silo_non_food","tank_other","car_carrier","log_carrier","cattle_carrier","grain_truck","meat_hooker","road_tractor","other","crane_truck","lift_truck","tow_truck","tractor","dozer","loader"]}},"equipment":{"type":"string","description":"Требуемое дополнительное оборудование","nullable":true},"quantity":{"type":"string","description":"Количество единиц груза","nullable":true}}},"OfferCargoUnit":{"description":"Данные груза для грузового типа оферты","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Название груза"},"type":{"type":"string","description":"Тип груза","enum":["liquid_bulk","break_bulk","dry_bulk","groupage","oversized","container","eur_pallet","fin_pallet","oth_pallet","bag","big_bag","icb","carton","barrel","roll","reel","coil","crate"]},"quantity":{"type":"integer","description":"Количество груза, шт.","nullable":true},"weight":{"type":"integer","format":"float","description":"Вес груза, тонны","nullable":true},"volume":{"type":"integer","format":"float","description":"Объем груза, метры кубические","nullable":true},"adr_class":{"type":"string","description":"ADR класс груза","nullable":true,"enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]},"length":{"type":"integer","format":"float","description":"Длина груза, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Ширина груза, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Высота груза, метры","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Цена груза","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Валюта цены груза"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"},"value_mask":{"type":"string","description":"Маскированная цена груза в указанной валюте"}}},"OfferTransport":{"description":"Харакетристики транспорта для транспортной оферты","required":["is_trailer_interchange","type","temperature_min_c","temperature_max_c","available_weight","available_volume","length","width","height","shipping_mode","adr_class","curtainside","equipment","loading_type"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Возможна ли перецепка"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Доступный к загрузке вес, тонны","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Доступный к загрузке объем, метры кубические","nullable":true},"length":{"type":"integer","format":"float","description":"Доступная к загрузке длина, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Доступная к загрузке ширина, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Доступная к загрузке высота, метры","nullable":true},"shipping_mode":{"type":"array","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR класс (класс опасности груза), допущеный для транспортировки","minItems":1,"items":{"type":"string","enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]}},"body":{"type":"array","minItems":0,"description":"Тип кузова"},"equipment":{"type":"string","description":"Дополнительное оборудование","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Возможные способы загрузки в транспортное средство.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}},"PublicationLifetime":{"properties":{"is_first_bid":{"type":"boolean","nullable":true},"lifetime":{"type":"integer"},"formatted_lifetime":{"type":"string","nullable":true},"is_late_bid_prolong":{"type":"boolean","nullable":true},"prolong_step":{"type":"integer"},"formatted_prolong_step":{"type":"string","nullable":true},"prolong_times":{"type":"integer"}}},"BidPrivacy":{"properties":{"allow_view_bidder":{"type":"boolean","description":"Показывать владельца ставки"},"allow_view_quote":{"type":"boolean","description":"Показывать ставку"},"allow_view_comment":{"type":"boolean","description":"Показывать комментарий к ставке"}}},"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Статус выполнения запроса","enum":["error"]},"message":{"type":"string","description":"Дополнительная информация"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Внутренняя информация системы Roolz для анализа проблемы при выполнении запроса","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/offer":{"post":{"tags":["exchange"],"operationId":"createSingleExchangeOfferById","summary":"Создание одиночной оферты","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExchangeOfferCreateRequest"}}}},"responses":{"200":{"description":"Успешное выполнение запроса","content":{"application/json":{"schema":{"type":"object","required":["offer"],"properties":{"offer":{"$ref":"#/components/schemas/ExchangeOffer"}}}}}},"400":{"description":"Ошибка во входящих данных","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Запрос не авторизован. Возможно отсутствует API-ключ"},"403":{"description":"Данная операция не разрешена"}}}}}}
```

{% hint style="info" %}
Метод создания оферты разрешает создание оферты только в статусе `not_published`. Чтобы опубликовать оферту на бирже, используйте метод обновления статуса одиночной оферты по уникальному индентификатору.
{% endhint %}

## PATCH /exchange/offer/{id}/status

> Обновление статуса одиночной оферты по уникальному идентификатору

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"servers":[{"url":"https://api.test.roolz.tech/public-api/v1","description":"Тестовая среда для разработки"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в GET параметрах","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в header","name":"X-Api-Key","in":"header"}},"parameters":{"ContentTypeHeader":{"in":"header","name":"Content-Type","required":true,"description":"","schema":{"type":"string","default":"application/json","enum":["application/json"]}},"AcceptEncodingHeader":{"in":"header","name":"Accept-Encoding","required":true,"description":"","schema":{"type":"string","default":"gzip","enum":["gzip"]}}},"schemas":{"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Статус выполнения запроса","enum":["error"]},"message":{"type":"string","description":"Дополнительная информация"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Внутренняя информация системы Roolz для анализа проблемы при выполнении запроса","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/offer/{id}/status":{"patch":{"tags":["exchange"],"operationId":"updateSingleExchangeOfferStatusById","summary":"Обновление статуса одиночной оферты по уникальному идентификатору","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"},{"name":"id","in":"path","required":true,"description":"Уникальный идентификатор оферты","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}},"responses":{"200":{"description":"Успешное выполнение запроса","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Ошибка во входящих данных","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Запрос не авторизован. Возможно отсутствует API-ключ"},"403":{"description":"Данная операция не разрешена"}}}}}}
```

## DELETE /exchange/offer/{id}

> Удаление одиночной оферты по уникальному идентификатору

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"servers":[{"url":"https://api.test.roolz.tech/public-api/v1","description":"Тестовая среда для разработки"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в GET параметрах","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в header","name":"X-Api-Key","in":"header"}},"parameters":{"ContentTypeHeader":{"in":"header","name":"Content-Type","required":true,"description":"","schema":{"type":"string","default":"application/json","enum":["application/json"]}},"AcceptEncodingHeader":{"in":"header","name":"Accept-Encoding","required":true,"description":"","schema":{"type":"string","default":"gzip","enum":["gzip"]}}},"schemas":{"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Статус выполнения запроса","enum":["error"]},"message":{"type":"string","description":"Дополнительная информация"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Внутренняя информация системы Roolz для анализа проблемы при выполнении запроса","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/offer/{id}":{"delete":{"tags":["exchange"],"operationId":"deleteSingleExchangeOfferById","summary":"Удаление одиночной оферты по уникальному идентификатору","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"},{"name":"id","in":"path","required":true,"description":"Уникальный идентификатор оферты","schema":{"type":"string"}}],"responses":{"204":{"description":"Успешное выполнение запроса"},"400":{"description":"Ошибка во входящих данных","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Запрос не авторизован. Возможно отсутствует API-ключ"},"403":{"description":"Данная операция не разрешена"}}}}}}
```

## GET /exchange/company/offers/incoming

> Получение пагинированного списка входящих оферт в приватной бирже

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"servers":[{"url":"https://api.test.roolz.tech/public-api/v1","description":"Тестовая среда для разработки"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в GET параметрах","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в header","name":"X-Api-Key","in":"header"}},"parameters":{"ContentTypeHeader":{"in":"header","name":"Content-Type","required":true,"description":"","schema":{"type":"string","default":"application/json","enum":["application/json"]}},"AcceptEncodingHeader":{"in":"header","name":"Accept-Encoding","required":true,"description":"","schema":{"type":"string","default":"gzip","enum":["gzip"]}}},"schemas":{"ExchangeOffer":{"required":["id","name","type","status","creation_method","is_public","is_private","company_id","description","assignee_users","is_autoclosed","is_publication_autocanceled","publication_autocancel_type","publication_autocancel_at","status_changed_at","published_at","closed_at","autoclose_at","is_all_private_partners","private_partners","payment","route","route_way","transportation_requirement","cargo_units","transport","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Идентификатор оферты в системе Roolz"},"name":{"type":"string","description":"Публичное название оферты"},"type":{"type":"string","description":"Тип оферты","enum":["cargo","transport"]},"status":{"type":"string","description":"Текущий статус оферты","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]},"creation_method":{"type":"string","description":"Метод создания оферты. Возможные варианты: ручная (manual), через API (api)","enum":["manual","api"]},"is_public":{"type":"boolean","description":"Оферта публикуется на публичной бирже"},"is_private":{"type":"boolean","description":"Оферта публикуется на приватной бирже"},"is_public_duplicate":{"type":"boolean","description":"Создан публичный дубликат на основе данной оферты"},"is_partners_selection":{"type":"boolean","description":"Активирована опция отбора партнеров (для публичного дубликата)"},"company_id":{"type":"string","format":"UUID","description":"Внутренний идентификатор компании-владельца оферты в системе Roolz"},"description":{"type":"string","description":"Дополнительное описание в оферте"},"assignee_users":{"type":"array","minItems":1,"description":"Ответственные, закрепленные за офертой. Поле отображается только для владельцев оферты и входящих оферт приватной биржи","items":{"$ref":"#/components/schemas/OfferAssigneeUser"}},"is_autoclosed":{"type":"boolean","description":"Оферта была закрыта (отправлена в архив) автоматически"},"is_publication_autocanceled":{"type":"boolean","description":"Оферта была снята с публикации автоматически"},"publication_autocancel_type":{"type":"string","description":"Тип (причина) автоснятия с публикации оферты","nullable":true},"publication_autocancel_at":{"type":"string","description":"Дата и время автоснятия с публикации оферты (в UTC)","nullable":true},"status_changed_at":{"type":"string","description":"Дата и время последнего изменения статуса оферты","nullable":true},"published_at":{"type":"string","description":"Дата и время публикации оферты","nullable":true},"closed_at":{"type":"string","description":"Дата и время закрытия (архивации) оферты","nullable":true},"autoclose_at":{"type":"string","description":"Дата и время автоматического закрытия (архивации) оферты","nullable":true},"is_all_private_partners":{"type":"boolean","description":"Оферту в приватной бирже получат все партнеры компании-владельца. Поле отображается только в собственных офертах"},"private_partners":{"type":"array","minItems":0,"description":"Идентификаторы компаний-партнеров, которые получат приватную оферту. Поле отображается только в собственных офертах","items":{"type":"string","format":"UUID"}},"payment":{"description":"Настройки и данные оплаты","$ref":"#/components/schemas/Payment"},"route":{"type":"array","description":"Точки маршрута в оферте","items":{"$ref":"#/components/schemas/OfferRoute"}},"route_way":{"description":"Рассчитанный маршрут движения","$ref":"#/components/schemas/OfferRouteWay"},"transportation_requirement":{"description":"Требования к транспортировке для грузовых оферт","$ref":"#/components/schemas/OfferTransportationRequirement"},"cargo_units":{"type":"array","description":"Характеристики груза для грузовых оферт","nullable":true,"items":{"$ref":"#/components/schemas/OfferCargoUnit"}},"transport":{"description":"Характеристики предлагаемого транспорта для транспортных оферт","nullable":true,"$ref":"#/components/schemas/OfferTransport"},"publication_lifetime":{"description":"Длительность публикации","nullable":true,"$ref":"#/components/schemas/PublicationLifetime"},"bid_privacy":{"description":"Приватность ставок","nullable":true,"$ref":"#/components/schemas/BidPrivacy"},"created_at":{"type":"string","description":"Дата и время создания оферты (в UTC)"},"updated_at":{"type":"string","description":"Дата и время последнего изменения оферты (в UTC)"}}},"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"Идентификатор пользователя в системе Roolz"},"contact_methods":{"type":"array","minItems":1,"description":"Способы связи с пользователем","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Способы связи с пользователем","enum":["phone","email"]},"value":{"type":"string","description":"Способ связи"}}},"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Есть ли предоплата"},"currency":{"type":"string","description":"Валюта ставок"},"quote_is_vat":{"type":"boolean","description":"Ставка с НДС","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Целевая ставка за перевозку в указанной валюте в грузовой оферте"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Дополнительная ставка. Если основная ставка указана как ставка с НДС, то дополнительная ставка отображается как \"без НДС\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"Ставка НДС"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Ставка в транспортной оферте; устанавливается за единицу пробега (километр, милю и т.д.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Размер предоплаты в валюте"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Размер предоплаты в проценте от ставки. Только целые значения до 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Период оплаты в днях"},"mileage_format":{"type":"string","nullable":true,"description":"Единица пробега для ставки в транспортной оферте (км, мили и тд)"},"payment_condition":{"type":"string","description":"Условия оплаты","nullable":true},"payment_method":{"type":"string","description":"Метод оплаты","nullable":true},"bid_mode":{"type":"string","description":"Режим торгов"},"bid_is_vat":{"type":"boolean","description":"Принимать ставки с НДС","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Принимать ставки без НДС","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Минимальный шаг аукциона"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Уникальность ставки в рамках пространства. Запрещает/разрешает давать несколько ставок одновременно (например, при необходимости дать разные условия в \"реижиме торги\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Срок для подтверждения ставок (в секундах)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}},"OfferRoute":{"description":"Точка маршрута движения","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Порядковый номер точки маршрута"},"point_type":{"type":"string","description":"Тип точки маршрута в системе Roolz","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Часовой пояс точки маршрута в минутном смещении относительно UTC"},"point_timezone":{"type":"string","description":"TZ идентификатор часового пояса точки маршрута"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Данные точки маршрута движения"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата начала операций, относящихся к перевозке, в точке маршрута"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата окончания операций, относящихся к перевозке, в точке маршрута","nullable":true},"loading_type":{"type":"array","description":"Способ загрузки/выгрузки транспортного средства","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Данные точки маршрута движения","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"ID точки маршрута в базе данных OSM"},"osm_type":{"type":"string","description":"Тип точки маршрута в базе данных OSM"},"full_osm_id":{"type":"string","description":"Полный идентификатор точки маршрута в базе данных OSM"},"position_type":{"type":"string","description":"Общий тип точки маршрута в базе данных OSM"},"is_radius":{"type":"boolean","description":"Определяет, задан ли радиус расширяющий точку маршрута"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Радиус (если задан) расширяющий точку маршрута, в метрах","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Адрес точки маршрута движения","required":["title","name","lang","country_code","country_name","state_name","state_code","city","district","sub_district","street","postal_code","house_number"],"properties":{"title":{"type":"string","description":"Полное наименование объекта точки маршрута"},"name":{"type":"string","description":"Собственное имя объекта точки маршрута"},"lang":{"type":"string","description":"ISO 639-1 код языка точки маршрута","nullable":true},"country_code":{"type":"string","description":"Alpha2 код страны точки маршрута"},"country_name":{"type":"string","description":"Наименование страны точки маршрута"},"state_name":{"type":"string","description":"Наименование внутренней административной единицы, к которой относится точка маршрута","nullable":true},"state_code":{"type":"string","description":"Код внутренней административаной единицы, к которой относится точка маршрута","nullable":true},"city":{"type":"string","description":"Город, к которому относится точка маршрута","nullable":true},"district":{"type":"string","description":"Район города, к которому относится точка маршрута","nullable":true},"sub_district":{"type":"string","description":"Микрорайон города, к которому относится точка маршрута","nullable":true},"street":{"type":"string","description":"Название улицы, к которой относится точка маршрута","nullable":true},"postal_code":{"type":"string","description":"Почтовый код, к которому относится точка маршрута","nullable":true},"house_number":{"type":"string","description":"Номер дома, к которому относится точка маршрута","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Гео json точки маршрута движения","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","format":"float"}}}},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Дата"},"time":{"type":"string","format":"HH:mm:ss","description":"Время"}}},"OfferRouteWay":{"description":"Данные просчитанного грузового маршрута движения","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Протяженность расчитанного маршрута в метрах"},"total_dur":{"type":"integer","description":"Длительность рассчитанного маршрута в секундах"}}},"OfferTransportationRequirement":{"description":"Требования к транспортировке груза","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Требуется перецепка"},"shipping_mode":{"type":"string","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"Тип транспортного средства, требуемый для перевозки груза. Например, LCV, одиночное Т/С и пр.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Типы кузова транспортного средства, требуемые для перевозки груза","items":{"type":"string","enum":["curtainside","box","insulated","ref","open_body","flat_bed","deeploader","tipper","cont_carrier","cont_open","cont_closed","tank_cont","tank_fuel","tank_bitumen","tank_gas","tank_chemical","tank_food","silo_food","silo_non_food","tank_other","car_carrier","log_carrier","cattle_carrier","grain_truck","meat_hooker","road_tractor","other","crane_truck","lift_truck","tow_truck","tractor","dozer","loader"]}},"equipment":{"type":"string","description":"Требуемое дополнительное оборудование","nullable":true},"quantity":{"type":"string","description":"Количество единиц груза","nullable":true}}},"OfferCargoUnit":{"description":"Данные груза для грузового типа оферты","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Название груза"},"type":{"type":"string","description":"Тип груза","enum":["liquid_bulk","break_bulk","dry_bulk","groupage","oversized","container","eur_pallet","fin_pallet","oth_pallet","bag","big_bag","icb","carton","barrel","roll","reel","coil","crate"]},"quantity":{"type":"integer","description":"Количество груза, шт.","nullable":true},"weight":{"type":"integer","format":"float","description":"Вес груза, тонны","nullable":true},"volume":{"type":"integer","format":"float","description":"Объем груза, метры кубические","nullable":true},"adr_class":{"type":"string","description":"ADR класс груза","nullable":true,"enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]},"length":{"type":"integer","format":"float","description":"Длина груза, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Ширина груза, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Высота груза, метры","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Цена груза","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Валюта цены груза"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"},"value_mask":{"type":"string","description":"Маскированная цена груза в указанной валюте"}}},"OfferTransport":{"description":"Харакетристики транспорта для транспортной оферты","required":["is_trailer_interchange","type","temperature_min_c","temperature_max_c","available_weight","available_volume","length","width","height","shipping_mode","adr_class","curtainside","equipment","loading_type"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Возможна ли перецепка"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Доступный к загрузке вес, тонны","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Доступный к загрузке объем, метры кубические","nullable":true},"length":{"type":"integer","format":"float","description":"Доступная к загрузке длина, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Доступная к загрузке ширина, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Доступная к загрузке высота, метры","nullable":true},"shipping_mode":{"type":"array","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR класс (класс опасности груза), допущеный для транспортировки","minItems":1,"items":{"type":"string","enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]}},"body":{"type":"array","minItems":0,"description":"Тип кузова"},"equipment":{"type":"string","description":"Дополнительное оборудование","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Возможные способы загрузки в транспортное средство.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}},"PublicationLifetime":{"properties":{"is_first_bid":{"type":"boolean","nullable":true},"lifetime":{"type":"integer"},"formatted_lifetime":{"type":"string","nullable":true},"is_late_bid_prolong":{"type":"boolean","nullable":true},"prolong_step":{"type":"integer"},"formatted_prolong_step":{"type":"string","nullable":true},"prolong_times":{"type":"integer"}}},"BidPrivacy":{"properties":{"allow_view_bidder":{"type":"boolean","description":"Показывать владельца ставки"},"allow_view_quote":{"type":"boolean","description":"Показывать ставку"},"allow_view_comment":{"type":"boolean","description":"Показывать комментарий к ставке"}}},"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Статус выполнения запроса","enum":["error"]},"message":{"type":"string","description":"Дополнительная информация"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Внутренняя информация системы Roolz для анализа проблемы при выполнении запроса","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/company/offers/incoming":{"get":{"tags":["exchange","companies"],"operationId":"getPrivateIncomingEchangeOffers","summary":"Получение пагинированного списка входящих оферт в приватной бирже","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"},{"name":"limit","in":"query","required":false,"description":"Лимит количества оферт, выдаваемых за итерацию пагинации","schema":{"type":"integer","minimum":1,"maximum":50,"default":25}},{"name":"offset","in":"query","required":false,"description":"Смещение пагинированной выборки оферт относительно ранее полученных","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Успешное выполнение запроса","content":{"application/json":{"schema":{"type":"object","required":["total","count","offers"],"properties":{"total":{"type":"integer","description":"Общее количество оферт в выдаче"},"count":{"type":"integer","description":"Количество оферт в данной итерации пагинации"},"offers":{"type":"array","items":{"$ref":"#/components/schemas/ExchangeOffer"}}}}}}},"400":{"description":"Ошибка во входящих данных","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Запрос не авторизован. Возможно отсутствует API-ключ"},"403":{"description":"Данная операция не разрешена"}}}}}}
```

## GET /exchange/company/offers

> Получение пагинированного списка собственных оферт

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"servers":[{"url":"https://api.test.roolz.tech/public-api/v1","description":"Тестовая среда для разработки"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в GET параметрах","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в header","name":"X-Api-Key","in":"header"}},"parameters":{"ContentTypeHeader":{"in":"header","name":"Content-Type","required":true,"description":"","schema":{"type":"string","default":"application/json","enum":["application/json"]}},"AcceptEncodingHeader":{"in":"header","name":"Accept-Encoding","required":true,"description":"","schema":{"type":"string","default":"gzip","enum":["gzip"]}}},"schemas":{"ExchangeOffer":{"required":["id","name","type","status","creation_method","is_public","is_private","company_id","description","assignee_users","is_autoclosed","is_publication_autocanceled","publication_autocancel_type","publication_autocancel_at","status_changed_at","published_at","closed_at","autoclose_at","is_all_private_partners","private_partners","payment","route","route_way","transportation_requirement","cargo_units","transport","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Идентификатор оферты в системе Roolz"},"name":{"type":"string","description":"Публичное название оферты"},"type":{"type":"string","description":"Тип оферты","enum":["cargo","transport"]},"status":{"type":"string","description":"Текущий статус оферты","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]},"creation_method":{"type":"string","description":"Метод создания оферты. Возможные варианты: ручная (manual), через API (api)","enum":["manual","api"]},"is_public":{"type":"boolean","description":"Оферта публикуется на публичной бирже"},"is_private":{"type":"boolean","description":"Оферта публикуется на приватной бирже"},"is_public_duplicate":{"type":"boolean","description":"Создан публичный дубликат на основе данной оферты"},"is_partners_selection":{"type":"boolean","description":"Активирована опция отбора партнеров (для публичного дубликата)"},"company_id":{"type":"string","format":"UUID","description":"Внутренний идентификатор компании-владельца оферты в системе Roolz"},"description":{"type":"string","description":"Дополнительное описание в оферте"},"assignee_users":{"type":"array","minItems":1,"description":"Ответственные, закрепленные за офертой. Поле отображается только для владельцев оферты и входящих оферт приватной биржи","items":{"$ref":"#/components/schemas/OfferAssigneeUser"}},"is_autoclosed":{"type":"boolean","description":"Оферта была закрыта (отправлена в архив) автоматически"},"is_publication_autocanceled":{"type":"boolean","description":"Оферта была снята с публикации автоматически"},"publication_autocancel_type":{"type":"string","description":"Тип (причина) автоснятия с публикации оферты","nullable":true},"publication_autocancel_at":{"type":"string","description":"Дата и время автоснятия с публикации оферты (в UTC)","nullable":true},"status_changed_at":{"type":"string","description":"Дата и время последнего изменения статуса оферты","nullable":true},"published_at":{"type":"string","description":"Дата и время публикации оферты","nullable":true},"closed_at":{"type":"string","description":"Дата и время закрытия (архивации) оферты","nullable":true},"autoclose_at":{"type":"string","description":"Дата и время автоматического закрытия (архивации) оферты","nullable":true},"is_all_private_partners":{"type":"boolean","description":"Оферту в приватной бирже получат все партнеры компании-владельца. Поле отображается только в собственных офертах"},"private_partners":{"type":"array","minItems":0,"description":"Идентификаторы компаний-партнеров, которые получат приватную оферту. Поле отображается только в собственных офертах","items":{"type":"string","format":"UUID"}},"payment":{"description":"Настройки и данные оплаты","$ref":"#/components/schemas/Payment"},"route":{"type":"array","description":"Точки маршрута в оферте","items":{"$ref":"#/components/schemas/OfferRoute"}},"route_way":{"description":"Рассчитанный маршрут движения","$ref":"#/components/schemas/OfferRouteWay"},"transportation_requirement":{"description":"Требования к транспортировке для грузовых оферт","$ref":"#/components/schemas/OfferTransportationRequirement"},"cargo_units":{"type":"array","description":"Характеристики груза для грузовых оферт","nullable":true,"items":{"$ref":"#/components/schemas/OfferCargoUnit"}},"transport":{"description":"Характеристики предлагаемого транспорта для транспортных оферт","nullable":true,"$ref":"#/components/schemas/OfferTransport"},"publication_lifetime":{"description":"Длительность публикации","nullable":true,"$ref":"#/components/schemas/PublicationLifetime"},"bid_privacy":{"description":"Приватность ставок","nullable":true,"$ref":"#/components/schemas/BidPrivacy"},"created_at":{"type":"string","description":"Дата и время создания оферты (в UTC)"},"updated_at":{"type":"string","description":"Дата и время последнего изменения оферты (в UTC)"}}},"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"Идентификатор пользователя в системе Roolz"},"contact_methods":{"type":"array","minItems":1,"description":"Способы связи с пользователем","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Способы связи с пользователем","enum":["phone","email"]},"value":{"type":"string","description":"Способ связи"}}},"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Есть ли предоплата"},"currency":{"type":"string","description":"Валюта ставок"},"quote_is_vat":{"type":"boolean","description":"Ставка с НДС","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Целевая ставка за перевозку в указанной валюте в грузовой оферте"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Дополнительная ставка. Если основная ставка указана как ставка с НДС, то дополнительная ставка отображается как \"без НДС\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"Ставка НДС"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Ставка в транспортной оферте; устанавливается за единицу пробега (километр, милю и т.д.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Размер предоплаты в валюте"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Размер предоплаты в проценте от ставки. Только целые значения до 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Период оплаты в днях"},"mileage_format":{"type":"string","nullable":true,"description":"Единица пробега для ставки в транспортной оферте (км, мили и тд)"},"payment_condition":{"type":"string","description":"Условия оплаты","nullable":true},"payment_method":{"type":"string","description":"Метод оплаты","nullable":true},"bid_mode":{"type":"string","description":"Режим торгов"},"bid_is_vat":{"type":"boolean","description":"Принимать ставки с НДС","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Принимать ставки без НДС","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Минимальный шаг аукциона"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Уникальность ставки в рамках пространства. Запрещает/разрешает давать несколько ставок одновременно (например, при необходимости дать разные условия в \"реижиме торги\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Срок для подтверждения ставок (в секундах)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}},"OfferRoute":{"description":"Точка маршрута движения","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Порядковый номер точки маршрута"},"point_type":{"type":"string","description":"Тип точки маршрута в системе Roolz","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Часовой пояс точки маршрута в минутном смещении относительно UTC"},"point_timezone":{"type":"string","description":"TZ идентификатор часового пояса точки маршрута"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Данные точки маршрута движения"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата начала операций, относящихся к перевозке, в точке маршрута"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата окончания операций, относящихся к перевозке, в точке маршрута","nullable":true},"loading_type":{"type":"array","description":"Способ загрузки/выгрузки транспортного средства","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Данные точки маршрута движения","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"ID точки маршрута в базе данных OSM"},"osm_type":{"type":"string","description":"Тип точки маршрута в базе данных OSM"},"full_osm_id":{"type":"string","description":"Полный идентификатор точки маршрута в базе данных OSM"},"position_type":{"type":"string","description":"Общий тип точки маршрута в базе данных OSM"},"is_radius":{"type":"boolean","description":"Определяет, задан ли радиус расширяющий точку маршрута"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Радиус (если задан) расширяющий точку маршрута, в метрах","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Адрес точки маршрута движения","required":["title","name","lang","country_code","country_name","state_name","state_code","city","district","sub_district","street","postal_code","house_number"],"properties":{"title":{"type":"string","description":"Полное наименование объекта точки маршрута"},"name":{"type":"string","description":"Собственное имя объекта точки маршрута"},"lang":{"type":"string","description":"ISO 639-1 код языка точки маршрута","nullable":true},"country_code":{"type":"string","description":"Alpha2 код страны точки маршрута"},"country_name":{"type":"string","description":"Наименование страны точки маршрута"},"state_name":{"type":"string","description":"Наименование внутренней административной единицы, к которой относится точка маршрута","nullable":true},"state_code":{"type":"string","description":"Код внутренней административаной единицы, к которой относится точка маршрута","nullable":true},"city":{"type":"string","description":"Город, к которому относится точка маршрута","nullable":true},"district":{"type":"string","description":"Район города, к которому относится точка маршрута","nullable":true},"sub_district":{"type":"string","description":"Микрорайон города, к которому относится точка маршрута","nullable":true},"street":{"type":"string","description":"Название улицы, к которой относится точка маршрута","nullable":true},"postal_code":{"type":"string","description":"Почтовый код, к которому относится точка маршрута","nullable":true},"house_number":{"type":"string","description":"Номер дома, к которому относится точка маршрута","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Гео json точки маршрута движения","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","format":"float"}}}},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Дата"},"time":{"type":"string","format":"HH:mm:ss","description":"Время"}}},"OfferRouteWay":{"description":"Данные просчитанного грузового маршрута движения","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Протяженность расчитанного маршрута в метрах"},"total_dur":{"type":"integer","description":"Длительность рассчитанного маршрута в секундах"}}},"OfferTransportationRequirement":{"description":"Требования к транспортировке груза","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Требуется перецепка"},"shipping_mode":{"type":"string","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"Тип транспортного средства, требуемый для перевозки груза. Например, LCV, одиночное Т/С и пр.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Типы кузова транспортного средства, требуемые для перевозки груза","items":{"type":"string","enum":["curtainside","box","insulated","ref","open_body","flat_bed","deeploader","tipper","cont_carrier","cont_open","cont_closed","tank_cont","tank_fuel","tank_bitumen","tank_gas","tank_chemical","tank_food","silo_food","silo_non_food","tank_other","car_carrier","log_carrier","cattle_carrier","grain_truck","meat_hooker","road_tractor","other","crane_truck","lift_truck","tow_truck","tractor","dozer","loader"]}},"equipment":{"type":"string","description":"Требуемое дополнительное оборудование","nullable":true},"quantity":{"type":"string","description":"Количество единиц груза","nullable":true}}},"OfferCargoUnit":{"description":"Данные груза для грузового типа оферты","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Название груза"},"type":{"type":"string","description":"Тип груза","enum":["liquid_bulk","break_bulk","dry_bulk","groupage","oversized","container","eur_pallet","fin_pallet","oth_pallet","bag","big_bag","icb","carton","barrel","roll","reel","coil","crate"]},"quantity":{"type":"integer","description":"Количество груза, шт.","nullable":true},"weight":{"type":"integer","format":"float","description":"Вес груза, тонны","nullable":true},"volume":{"type":"integer","format":"float","description":"Объем груза, метры кубические","nullable":true},"adr_class":{"type":"string","description":"ADR класс груза","nullable":true,"enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]},"length":{"type":"integer","format":"float","description":"Длина груза, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Ширина груза, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Высота груза, метры","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Цена груза","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Валюта цены груза"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"},"value_mask":{"type":"string","description":"Маскированная цена груза в указанной валюте"}}},"OfferTransport":{"description":"Харакетристики транспорта для транспортной оферты","required":["is_trailer_interchange","type","temperature_min_c","temperature_max_c","available_weight","available_volume","length","width","height","shipping_mode","adr_class","curtainside","equipment","loading_type"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Возможна ли перецепка"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Доступный к загрузке вес, тонны","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Доступный к загрузке объем, метры кубические","nullable":true},"length":{"type":"integer","format":"float","description":"Доступная к загрузке длина, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Доступная к загрузке ширина, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Доступная к загрузке высота, метры","nullable":true},"shipping_mode":{"type":"array","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR класс (класс опасности груза), допущеный для транспортировки","minItems":1,"items":{"type":"string","enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]}},"body":{"type":"array","minItems":0,"description":"Тип кузова"},"equipment":{"type":"string","description":"Дополнительное оборудование","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Возможные способы загрузки в транспортное средство.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}},"PublicationLifetime":{"properties":{"is_first_bid":{"type":"boolean","nullable":true},"lifetime":{"type":"integer"},"formatted_lifetime":{"type":"string","nullable":true},"is_late_bid_prolong":{"type":"boolean","nullable":true},"prolong_step":{"type":"integer"},"formatted_prolong_step":{"type":"string","nullable":true},"prolong_times":{"type":"integer"}}},"BidPrivacy":{"properties":{"allow_view_bidder":{"type":"boolean","description":"Показывать владельца ставки"},"allow_view_quote":{"type":"boolean","description":"Показывать ставку"},"allow_view_comment":{"type":"boolean","description":"Показывать комментарий к ставке"}}},"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Статус выполнения запроса","enum":["error"]},"message":{"type":"string","description":"Дополнительная информация"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Внутренняя информация системы Roolz для анализа проблемы при выполнении запроса","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/company/offers":{"get":{"tags":["exchange","companies"],"operationId":"getMyExchangeOffers","summary":"Получение пагинированного списка собственных оферт","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"},{"name":"limit","in":"query","required":false,"description":"Лимит количества оферт, выдаваемых за итерацию пагинации","schema":{"type":"integer","minimum":1,"maximum":50,"default":25}},{"name":"offset","in":"query","required":false,"description":"Смещение пагинированной выборки оферт относительно ранее полученных","schema":{"type":"integer","minimum":0,"default":0}},{"name":"offers_status","in":"query","required":false,"description":"Выборка оферт определенного статуса (кроме удаленных)","schema":{"type":"string","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]}},{"name":"offers_type","in":"query","required":false,"description":"Выборка оферт определенного типа","schema":{"type":"string","enum":["cargo","transport"]}}],"responses":{"200":{"description":"Успешное выполнение запроса","content":{"application/json":{"schema":{"type":"object","required":["total","count","offers"],"properties":{"total":{"type":"integer","description":"Общее количество оферт в выдаче"},"count":{"type":"integer","description":"Количество оферт в данной итерации пагинации"},"offers":{"type":"array","items":{"$ref":"#/components/schemas/ExchangeOffer"}}}}}}},"400":{"description":"Ошибка во входящих данных","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Запрос не авторизован. Возможно отсутствует API-ключ"},"403":{"description":"Данная операция не разрешена"}}}}}}
```

## GET /exchange/offer/{id}

> Получение одиночной оферты по уникальному идентификатору

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"servers":[{"url":"https://api.test.roolz.tech/public-api/v1","description":"Тестовая среда для разработки"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в GET параметрах","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API-ключ для авторизации запросов в header","name":"X-Api-Key","in":"header"}},"parameters":{"ContentTypeHeader":{"in":"header","name":"Content-Type","required":true,"description":"","schema":{"type":"string","default":"application/json","enum":["application/json"]}},"AcceptEncodingHeader":{"in":"header","name":"Accept-Encoding","required":true,"description":"","schema":{"type":"string","default":"gzip","enum":["gzip"]}}},"schemas":{"ExchangeOffer":{"required":["id","name","type","status","creation_method","is_public","is_private","company_id","description","assignee_users","is_autoclosed","is_publication_autocanceled","publication_autocancel_type","publication_autocancel_at","status_changed_at","published_at","closed_at","autoclose_at","is_all_private_partners","private_partners","payment","route","route_way","transportation_requirement","cargo_units","transport","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Идентификатор оферты в системе Roolz"},"name":{"type":"string","description":"Публичное название оферты"},"type":{"type":"string","description":"Тип оферты","enum":["cargo","transport"]},"status":{"type":"string","description":"Текущий статус оферты","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]},"creation_method":{"type":"string","description":"Метод создания оферты. Возможные варианты: ручная (manual), через API (api)","enum":["manual","api"]},"is_public":{"type":"boolean","description":"Оферта публикуется на публичной бирже"},"is_private":{"type":"boolean","description":"Оферта публикуется на приватной бирже"},"is_public_duplicate":{"type":"boolean","description":"Создан публичный дубликат на основе данной оферты"},"is_partners_selection":{"type":"boolean","description":"Активирована опция отбора партнеров (для публичного дубликата)"},"company_id":{"type":"string","format":"UUID","description":"Внутренний идентификатор компании-владельца оферты в системе Roolz"},"description":{"type":"string","description":"Дополнительное описание в оферте"},"assignee_users":{"type":"array","minItems":1,"description":"Ответственные, закрепленные за офертой. Поле отображается только для владельцев оферты и входящих оферт приватной биржи","items":{"$ref":"#/components/schemas/OfferAssigneeUser"}},"is_autoclosed":{"type":"boolean","description":"Оферта была закрыта (отправлена в архив) автоматически"},"is_publication_autocanceled":{"type":"boolean","description":"Оферта была снята с публикации автоматически"},"publication_autocancel_type":{"type":"string","description":"Тип (причина) автоснятия с публикации оферты","nullable":true},"publication_autocancel_at":{"type":"string","description":"Дата и время автоснятия с публикации оферты (в UTC)","nullable":true},"status_changed_at":{"type":"string","description":"Дата и время последнего изменения статуса оферты","nullable":true},"published_at":{"type":"string","description":"Дата и время публикации оферты","nullable":true},"closed_at":{"type":"string","description":"Дата и время закрытия (архивации) оферты","nullable":true},"autoclose_at":{"type":"string","description":"Дата и время автоматического закрытия (архивации) оферты","nullable":true},"is_all_private_partners":{"type":"boolean","description":"Оферту в приватной бирже получат все партнеры компании-владельца. Поле отображается только в собственных офертах"},"private_partners":{"type":"array","minItems":0,"description":"Идентификаторы компаний-партнеров, которые получат приватную оферту. Поле отображается только в собственных офертах","items":{"type":"string","format":"UUID"}},"payment":{"description":"Настройки и данные оплаты","$ref":"#/components/schemas/Payment"},"route":{"type":"array","description":"Точки маршрута в оферте","items":{"$ref":"#/components/schemas/OfferRoute"}},"route_way":{"description":"Рассчитанный маршрут движения","$ref":"#/components/schemas/OfferRouteWay"},"transportation_requirement":{"description":"Требования к транспортировке для грузовых оферт","$ref":"#/components/schemas/OfferTransportationRequirement"},"cargo_units":{"type":"array","description":"Характеристики груза для грузовых оферт","nullable":true,"items":{"$ref":"#/components/schemas/OfferCargoUnit"}},"transport":{"description":"Характеристики предлагаемого транспорта для транспортных оферт","nullable":true,"$ref":"#/components/schemas/OfferTransport"},"publication_lifetime":{"description":"Длительность публикации","nullable":true,"$ref":"#/components/schemas/PublicationLifetime"},"bid_privacy":{"description":"Приватность ставок","nullable":true,"$ref":"#/components/schemas/BidPrivacy"},"created_at":{"type":"string","description":"Дата и время создания оферты (в UTC)"},"updated_at":{"type":"string","description":"Дата и время последнего изменения оферты (в UTC)"}}},"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"Идентификатор пользователя в системе Roolz"},"contact_methods":{"type":"array","minItems":1,"description":"Способы связи с пользователем","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Способы связи с пользователем","enum":["phone","email"]},"value":{"type":"string","description":"Способ связи"}}},"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Есть ли предоплата"},"currency":{"type":"string","description":"Валюта ставок"},"quote_is_vat":{"type":"boolean","description":"Ставка с НДС","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Целевая ставка за перевозку в указанной валюте в грузовой оферте"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Дополнительная ставка. Если основная ставка указана как ставка с НДС, то дополнительная ставка отображается как \"без НДС\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"Ставка НДС"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Ставка в транспортной оферте; устанавливается за единицу пробега (километр, милю и т.д.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Размер предоплаты в валюте"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Размер предоплаты в проценте от ставки. Только целые значения до 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Период оплаты в днях"},"mileage_format":{"type":"string","nullable":true,"description":"Единица пробега для ставки в транспортной оферте (км, мили и тд)"},"payment_condition":{"type":"string","description":"Условия оплаты","nullable":true},"payment_method":{"type":"string","description":"Метод оплаты","nullable":true},"bid_mode":{"type":"string","description":"Режим торгов"},"bid_is_vat":{"type":"boolean","description":"Принимать ставки с НДС","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Принимать ставки без НДС","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Минимальный шаг аукциона"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Уникальность ставки в рамках пространства. Запрещает/разрешает давать несколько ставок одновременно (например, при необходимости дать разные условия в \"реижиме торги\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Срок для подтверждения ставок (в секундах)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}},"OfferRoute":{"description":"Точка маршрута движения","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Порядковый номер точки маршрута"},"point_type":{"type":"string","description":"Тип точки маршрута в системе Roolz","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Часовой пояс точки маршрута в минутном смещении относительно UTC"},"point_timezone":{"type":"string","description":"TZ идентификатор часового пояса точки маршрута"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Данные точки маршрута движения"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата начала операций, относящихся к перевозке, в точке маршрута"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата окончания операций, относящихся к перевозке, в точке маршрута","nullable":true},"loading_type":{"type":"array","description":"Способ загрузки/выгрузки транспортного средства","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Данные точки маршрута движения","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"ID точки маршрута в базе данных OSM"},"osm_type":{"type":"string","description":"Тип точки маршрута в базе данных OSM"},"full_osm_id":{"type":"string","description":"Полный идентификатор точки маршрута в базе данных OSM"},"position_type":{"type":"string","description":"Общий тип точки маршрута в базе данных OSM"},"is_radius":{"type":"boolean","description":"Определяет, задан ли радиус расширяющий точку маршрута"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Радиус (если задан) расширяющий точку маршрута, в метрах","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Адрес точки маршрута движения","required":["title","name","lang","country_code","country_name","state_name","state_code","city","district","sub_district","street","postal_code","house_number"],"properties":{"title":{"type":"string","description":"Полное наименование объекта точки маршрута"},"name":{"type":"string","description":"Собственное имя объекта точки маршрута"},"lang":{"type":"string","description":"ISO 639-1 код языка точки маршрута","nullable":true},"country_code":{"type":"string","description":"Alpha2 код страны точки маршрута"},"country_name":{"type":"string","description":"Наименование страны точки маршрута"},"state_name":{"type":"string","description":"Наименование внутренней административной единицы, к которой относится точка маршрута","nullable":true},"state_code":{"type":"string","description":"Код внутренней административаной единицы, к которой относится точка маршрута","nullable":true},"city":{"type":"string","description":"Город, к которому относится точка маршрута","nullable":true},"district":{"type":"string","description":"Район города, к которому относится точка маршрута","nullable":true},"sub_district":{"type":"string","description":"Микрорайон города, к которому относится точка маршрута","nullable":true},"street":{"type":"string","description":"Название улицы, к которой относится точка маршрута","nullable":true},"postal_code":{"type":"string","description":"Почтовый код, к которому относится точка маршрута","nullable":true},"house_number":{"type":"string","description":"Номер дома, к которому относится точка маршрута","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Гео json точки маршрута движения","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","format":"float"}}}},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Дата"},"time":{"type":"string","format":"HH:mm:ss","description":"Время"}}},"OfferRouteWay":{"description":"Данные просчитанного грузового маршрута движения","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Протяженность расчитанного маршрута в метрах"},"total_dur":{"type":"integer","description":"Длительность рассчитанного маршрута в секундах"}}},"OfferTransportationRequirement":{"description":"Требования к транспортировке груза","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Требуется перецепка"},"shipping_mode":{"type":"string","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"Тип транспортного средства, требуемый для перевозки груза. Например, LCV, одиночное Т/С и пр.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Типы кузова транспортного средства, требуемые для перевозки груза","items":{"type":"string","enum":["curtainside","box","insulated","ref","open_body","flat_bed","deeploader","tipper","cont_carrier","cont_open","cont_closed","tank_cont","tank_fuel","tank_bitumen","tank_gas","tank_chemical","tank_food","silo_food","silo_non_food","tank_other","car_carrier","log_carrier","cattle_carrier","grain_truck","meat_hooker","road_tractor","other","crane_truck","lift_truck","tow_truck","tractor","dozer","loader"]}},"equipment":{"type":"string","description":"Требуемое дополнительное оборудование","nullable":true},"quantity":{"type":"string","description":"Количество единиц груза","nullable":true}}},"OfferCargoUnit":{"description":"Данные груза для грузового типа оферты","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Название груза"},"type":{"type":"string","description":"Тип груза","enum":["liquid_bulk","break_bulk","dry_bulk","groupage","oversized","container","eur_pallet","fin_pallet","oth_pallet","bag","big_bag","icb","carton","barrel","roll","reel","coil","crate"]},"quantity":{"type":"integer","description":"Количество груза, шт.","nullable":true},"weight":{"type":"integer","format":"float","description":"Вес груза, тонны","nullable":true},"volume":{"type":"integer","format":"float","description":"Объем груза, метры кубические","nullable":true},"adr_class":{"type":"string","description":"ADR класс груза","nullable":true,"enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]},"length":{"type":"integer","format":"float","description":"Длина груза, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Ширина груза, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Высота груза, метры","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Цена груза","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Валюта цены груза"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"},"value_mask":{"type":"string","description":"Маскированная цена груза в указанной валюте"}}},"OfferTransport":{"description":"Харакетристики транспорта для транспортной оферты","required":["is_trailer_interchange","type","temperature_min_c","temperature_max_c","available_weight","available_volume","length","width","height","shipping_mode","adr_class","curtainside","equipment","loading_type"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Возможна ли перецепка"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Доступный к загрузке вес, тонны","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Доступный к загрузке объем, метры кубические","nullable":true},"length":{"type":"integer","format":"float","description":"Доступная к загрузке длина, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Доступная к загрузке ширина, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Доступная к загрузке высота, метры","nullable":true},"shipping_mode":{"type":"array","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR класс (класс опасности груза), допущеный для транспортировки","minItems":1,"items":{"type":"string","enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]}},"body":{"type":"array","minItems":0,"description":"Тип кузова"},"equipment":{"type":"string","description":"Дополнительное оборудование","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Возможные способы загрузки в транспортное средство.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}},"PublicationLifetime":{"properties":{"is_first_bid":{"type":"boolean","nullable":true},"lifetime":{"type":"integer"},"formatted_lifetime":{"type":"string","nullable":true},"is_late_bid_prolong":{"type":"boolean","nullable":true},"prolong_step":{"type":"integer"},"formatted_prolong_step":{"type":"string","nullable":true},"prolong_times":{"type":"integer"}}},"BidPrivacy":{"properties":{"allow_view_bidder":{"type":"boolean","description":"Показывать владельца ставки"},"allow_view_quote":{"type":"boolean","description":"Показывать ставку"},"allow_view_comment":{"type":"boolean","description":"Показывать комментарий к ставке"}}},"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Статус выполнения запроса","enum":["error"]},"message":{"type":"string","description":"Дополнительная информация"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Внутренняя информация системы Roolz для анализа проблемы при выполнении запроса","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/offer/{id}":{"get":{"tags":["exchange"],"operationId":"getSimgleExchangeOfferById","summary":"Получение одиночной оферты по уникальному идентификатору","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"},{"name":"id","in":"path","required":true,"description":"Уникальный идентификатор оферты","schema":{"type":"string"}}],"responses":{"200":{"description":"Успешное выполнение запроса","content":{"application/json":{"schema":{"type":"object","required":["offer"],"properties":{"offer":{"$ref":"#/components/schemas/ExchangeOffer"}}}}}},"400":{"description":"Ошибка во входящих данных","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Запрос не авторизован. Возможно отсутствует API-ключ"},"403":{"description":"Данная операция не разрешена"}}}}}}
```

## The ErrorObject object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Статус выполнения запроса","enum":["error"]},"message":{"type":"string","description":"Дополнительная информация"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Внутренняя информация системы Roolz для анализа проблемы при выполнении запроса","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}}}
```

## The DateTimeObject object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Дата"},"time":{"type":"string","format":"HH:mm:ss","description":"Время"}}}}}}
```

## The OfferRouteLocationAddress object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferRouteLocationAddress":{"description":"Адрес точки маршрута движения","required":["title","name","lang","country_code","country_name","state_name","state_code","city","district","sub_district","street","postal_code","house_number"],"properties":{"title":{"type":"string","description":"Полное наименование объекта точки маршрута"},"name":{"type":"string","description":"Собственное имя объекта точки маршрута"},"lang":{"type":"string","description":"ISO 639-1 код языка точки маршрута","nullable":true},"country_code":{"type":"string","description":"Alpha2 код страны точки маршрута"},"country_name":{"type":"string","description":"Наименование страны точки маршрута"},"state_name":{"type":"string","description":"Наименование внутренней административной единицы, к которой относится точка маршрута","nullable":true},"state_code":{"type":"string","description":"Код внутренней административаной единицы, к которой относится точка маршрута","nullable":true},"city":{"type":"string","description":"Город, к которому относится точка маршрута","nullable":true},"district":{"type":"string","description":"Район города, к которому относится точка маршрута","nullable":true},"sub_district":{"type":"string","description":"Микрорайон города, к которому относится точка маршрута","nullable":true},"street":{"type":"string","description":"Название улицы, к которой относится точка маршрута","nullable":true},"postal_code":{"type":"string","description":"Почтовый код, к которому относится точка маршрута","nullable":true},"house_number":{"type":"string","description":"Номер дома, к которому относится точка маршрута","nullable":true}}}}}}
```

## The OfferRouteLocationAccessPoint object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferRouteLocationAccessPoint":{"description":"Гео json точки маршрута движения","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","format":"float"}}}}}}}
```

## The OfferRouteLocation object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferRouteLocation":{"description":"Данные точки маршрута движения","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"ID точки маршрута в базе данных OSM"},"osm_type":{"type":"string","description":"Тип точки маршрута в базе данных OSM"},"full_osm_id":{"type":"string","description":"Полный идентификатор точки маршрута в базе данных OSM"},"position_type":{"type":"string","description":"Общий тип точки маршрута в базе данных OSM"},"is_radius":{"type":"boolean","description":"Определяет, задан ли радиус расширяющий точку маршрута"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Радиус (если задан) расширяющий точку маршрута, в метрах","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Адрес точки маршрута движения","required":["title","name","lang","country_code","country_name","state_name","state_code","city","district","sub_district","street","postal_code","house_number"],"properties":{"title":{"type":"string","description":"Полное наименование объекта точки маршрута"},"name":{"type":"string","description":"Собственное имя объекта точки маршрута"},"lang":{"type":"string","description":"ISO 639-1 код языка точки маршрута","nullable":true},"country_code":{"type":"string","description":"Alpha2 код страны точки маршрута"},"country_name":{"type":"string","description":"Наименование страны точки маршрута"},"state_name":{"type":"string","description":"Наименование внутренней административной единицы, к которой относится точка маршрута","nullable":true},"state_code":{"type":"string","description":"Код внутренней административаной единицы, к которой относится точка маршрута","nullable":true},"city":{"type":"string","description":"Город, к которому относится точка маршрута","nullable":true},"district":{"type":"string","description":"Район города, к которому относится точка маршрута","nullable":true},"sub_district":{"type":"string","description":"Микрорайон города, к которому относится точка маршрута","nullable":true},"street":{"type":"string","description":"Название улицы, к которой относится точка маршрута","nullable":true},"postal_code":{"type":"string","description":"Почтовый код, к которому относится точка маршрута","nullable":true},"house_number":{"type":"string","description":"Номер дома, к которому относится точка маршрута","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Гео json точки маршрута движения","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","format":"float"}}}}}}}
```

## The OfferRoute object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferRoute":{"description":"Точка маршрута движения","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Порядковый номер точки маршрута"},"point_type":{"type":"string","description":"Тип точки маршрута в системе Roolz","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Часовой пояс точки маршрута в минутном смещении относительно UTC"},"point_timezone":{"type":"string","description":"TZ идентификатор часового пояса точки маршрута"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Данные точки маршрута движения"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата начала операций, относящихся к перевозке, в точке маршрута"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата окончания операций, относящихся к перевозке, в точке маршрута","nullable":true},"loading_type":{"type":"array","description":"Способ загрузки/выгрузки транспортного средства","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Данные точки маршрута движения","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"ID точки маршрута в базе данных OSM"},"osm_type":{"type":"string","description":"Тип точки маршрута в базе данных OSM"},"full_osm_id":{"type":"string","description":"Полный идентификатор точки маршрута в базе данных OSM"},"position_type":{"type":"string","description":"Общий тип точки маршрута в базе данных OSM"},"is_radius":{"type":"boolean","description":"Определяет, задан ли радиус расширяющий точку маршрута"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Радиус (если задан) расширяющий точку маршрута, в метрах","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Адрес точки маршрута движения","required":["title","name","lang","country_code","country_name","state_name","state_code","city","district","sub_district","street","postal_code","house_number"],"properties":{"title":{"type":"string","description":"Полное наименование объекта точки маршрута"},"name":{"type":"string","description":"Собственное имя объекта точки маршрута"},"lang":{"type":"string","description":"ISO 639-1 код языка точки маршрута","nullable":true},"country_code":{"type":"string","description":"Alpha2 код страны точки маршрута"},"country_name":{"type":"string","description":"Наименование страны точки маршрута"},"state_name":{"type":"string","description":"Наименование внутренней административной единицы, к которой относится точка маршрута","nullable":true},"state_code":{"type":"string","description":"Код внутренней административаной единицы, к которой относится точка маршрута","nullable":true},"city":{"type":"string","description":"Город, к которому относится точка маршрута","nullable":true},"district":{"type":"string","description":"Район города, к которому относится точка маршрута","nullable":true},"sub_district":{"type":"string","description":"Микрорайон города, к которому относится точка маршрута","nullable":true},"street":{"type":"string","description":"Название улицы, к которой относится точка маршрута","nullable":true},"postal_code":{"type":"string","description":"Почтовый код, к которому относится точка маршрута","nullable":true},"house_number":{"type":"string","description":"Номер дома, к которому относится точка маршрута","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Гео json точки маршрута движения","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","format":"float"}}}},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Дата"},"time":{"type":"string","format":"HH:mm:ss","description":"Время"}}}}}}
```

## The OfferRouteWay object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferRouteWay":{"description":"Данные просчитанного грузового маршрута движения","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Протяженность расчитанного маршрута в метрах"},"total_dur":{"type":"integer","description":"Длительность рассчитанного маршрута в секундах"}}}}}}
```

## The OfferTransportationRequirement object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferTransportationRequirement":{"description":"Требования к транспортировке груза","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Требуется перецепка"},"shipping_mode":{"type":"string","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"Тип транспортного средства, требуемый для перевозки груза. Например, LCV, одиночное Т/С и пр.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Типы кузова транспортного средства, требуемые для перевозки груза","items":{"type":"string","enum":["curtainside","box","insulated","ref","open_body","flat_bed","deeploader","tipper","cont_carrier","cont_open","cont_closed","tank_cont","tank_fuel","tank_bitumen","tank_gas","tank_chemical","tank_food","silo_food","silo_non_food","tank_other","car_carrier","log_carrier","cattle_carrier","grain_truck","meat_hooker","road_tractor","other","crane_truck","lift_truck","tow_truck","tractor","dozer","loader"]}},"equipment":{"type":"string","description":"Требуемое дополнительное оборудование","nullable":true},"quantity":{"type":"string","description":"Количество единиц груза","nullable":true}}}}}}
```

## The OfferCargoUnit object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferCargoUnit":{"description":"Данные груза для грузового типа оферты","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Название груза"},"type":{"type":"string","description":"Тип груза","enum":["liquid_bulk","break_bulk","dry_bulk","groupage","oversized","container","eur_pallet","fin_pallet","oth_pallet","bag","big_bag","icb","carton","barrel","roll","reel","coil","crate"]},"quantity":{"type":"integer","description":"Количество груза, шт.","nullable":true},"weight":{"type":"integer","format":"float","description":"Вес груза, тонны","nullable":true},"volume":{"type":"integer","format":"float","description":"Объем груза, метры кубические","nullable":true},"adr_class":{"type":"string","description":"ADR класс груза","nullable":true,"enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]},"length":{"type":"integer","format":"float","description":"Длина груза, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Ширина груза, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Высота груза, метры","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Цена груза","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Валюта цены груза"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"},"value_mask":{"type":"string","description":"Маскированная цена груза в указанной валюте"}}}}}}
```

## The OfferCargoPrice object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Валюта цены груза"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"},"value_mask":{"type":"string","description":"Маскированная цена груза в указанной валюте"}}}}}}
```

## The OfferTransport object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferTransport":{"description":"Харакетристики транспорта для транспортной оферты","required":["is_trailer_interchange","type","temperature_min_c","temperature_max_c","available_weight","available_volume","length","width","height","shipping_mode","adr_class","curtainside","equipment","loading_type"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Возможна ли перецепка"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Доступный к загрузке вес, тонны","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Доступный к загрузке объем, метры кубические","nullable":true},"length":{"type":"integer","format":"float","description":"Доступная к загрузке длина, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Доступная к загрузке ширина, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Доступная к загрузке высота, метры","nullable":true},"shipping_mode":{"type":"array","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR класс (класс опасности груза), допущеный для транспортировки","minItems":1,"items":{"type":"string","enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]}},"body":{"type":"array","minItems":0,"description":"Тип кузова"},"equipment":{"type":"string","description":"Дополнительное оборудование","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Возможные способы загрузки в транспортное средство.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}}}}}
```

## The UserContactMethod object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Способы связи с пользователем","enum":["phone","email"]},"value":{"type":"string","description":"Способ связи"}}}}}}
```

## The OfferAssigneeUser object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"Идентификатор пользователя в системе Roolz"},"contact_methods":{"type":"array","minItems":1,"description":"Способы связи с пользователем","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Способы связи с пользователем","enum":["phone","email"]},"value":{"type":"string","description":"Способ связи"}}}}}}
```

## The PublicationLifetime object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"PublicationLifetime":{"properties":{"is_first_bid":{"type":"boolean","nullable":true},"lifetime":{"type":"integer"},"formatted_lifetime":{"type":"string","nullable":true},"is_late_bid_prolong":{"type":"boolean","nullable":true},"prolong_step":{"type":"integer"},"formatted_prolong_step":{"type":"string","nullable":true},"prolong_times":{"type":"integer"}}}}}}
```

## The BidPrivacy object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"BidPrivacy":{"properties":{"allow_view_bidder":{"type":"boolean","description":"Показывать владельца ставки"},"allow_view_quote":{"type":"boolean","description":"Показывать ставку"},"allow_view_comment":{"type":"boolean","description":"Показывать комментарий к ставке"}}}}}}
```

## The Payment object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Есть ли предоплата"},"currency":{"type":"string","description":"Валюта ставок"},"quote_is_vat":{"type":"boolean","description":"Ставка с НДС","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Целевая ставка за перевозку в указанной валюте в грузовой оферте"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Дополнительная ставка. Если основная ставка указана как ставка с НДС, то дополнительная ставка отображается как \"без НДС\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"Ставка НДС"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Ставка в транспортной оферте; устанавливается за единицу пробега (километр, милю и т.д.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Размер предоплаты в валюте"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Размер предоплаты в проценте от ставки. Только целые значения до 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Период оплаты в днях"},"mileage_format":{"type":"string","nullable":true,"description":"Единица пробега для ставки в транспортной оферте (км, мили и тд)"},"payment_condition":{"type":"string","description":"Условия оплаты","nullable":true},"payment_method":{"type":"string","description":"Метод оплаты","nullable":true},"bid_mode":{"type":"string","description":"Режим торгов"},"bid_is_vat":{"type":"boolean","description":"Принимать ставки с НДС","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Принимать ставки без НДС","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Минимальный шаг аукциона"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Уникальность ставки в рамках пространства. Запрещает/разрешает давать несколько ставок одновременно (например, при необходимости дать разные условия в \"реижиме торги\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Срок для подтверждения ставок (в секундах)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}}}}}
```

## The ExchangeOffer object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"ExchangeOffer":{"required":["id","name","type","status","creation_method","is_public","is_private","company_id","description","assignee_users","is_autoclosed","is_publication_autocanceled","publication_autocancel_type","publication_autocancel_at","status_changed_at","published_at","closed_at","autoclose_at","is_all_private_partners","private_partners","payment","route","route_way","transportation_requirement","cargo_units","transport","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Идентификатор оферты в системе Roolz"},"name":{"type":"string","description":"Публичное название оферты"},"type":{"type":"string","description":"Тип оферты","enum":["cargo","transport"]},"status":{"type":"string","description":"Текущий статус оферты","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]},"creation_method":{"type":"string","description":"Метод создания оферты. Возможные варианты: ручная (manual), через API (api)","enum":["manual","api"]},"is_public":{"type":"boolean","description":"Оферта публикуется на публичной бирже"},"is_private":{"type":"boolean","description":"Оферта публикуется на приватной бирже"},"is_public_duplicate":{"type":"boolean","description":"Создан публичный дубликат на основе данной оферты"},"is_partners_selection":{"type":"boolean","description":"Активирована опция отбора партнеров (для публичного дубликата)"},"company_id":{"type":"string","format":"UUID","description":"Внутренний идентификатор компании-владельца оферты в системе Roolz"},"description":{"type":"string","description":"Дополнительное описание в оферте"},"assignee_users":{"type":"array","minItems":1,"description":"Ответственные, закрепленные за офертой. Поле отображается только для владельцев оферты и входящих оферт приватной биржи","items":{"$ref":"#/components/schemas/OfferAssigneeUser"}},"is_autoclosed":{"type":"boolean","description":"Оферта была закрыта (отправлена в архив) автоматически"},"is_publication_autocanceled":{"type":"boolean","description":"Оферта была снята с публикации автоматически"},"publication_autocancel_type":{"type":"string","description":"Тип (причина) автоснятия с публикации оферты","nullable":true},"publication_autocancel_at":{"type":"string","description":"Дата и время автоснятия с публикации оферты (в UTC)","nullable":true},"status_changed_at":{"type":"string","description":"Дата и время последнего изменения статуса оферты","nullable":true},"published_at":{"type":"string","description":"Дата и время публикации оферты","nullable":true},"closed_at":{"type":"string","description":"Дата и время закрытия (архивации) оферты","nullable":true},"autoclose_at":{"type":"string","description":"Дата и время автоматического закрытия (архивации) оферты","nullable":true},"is_all_private_partners":{"type":"boolean","description":"Оферту в приватной бирже получат все партнеры компании-владельца. Поле отображается только в собственных офертах"},"private_partners":{"type":"array","minItems":0,"description":"Идентификаторы компаний-партнеров, которые получат приватную оферту. Поле отображается только в собственных офертах","items":{"type":"string","format":"UUID"}},"payment":{"description":"Настройки и данные оплаты","$ref":"#/components/schemas/Payment"},"route":{"type":"array","description":"Точки маршрута в оферте","items":{"$ref":"#/components/schemas/OfferRoute"}},"route_way":{"description":"Рассчитанный маршрут движения","$ref":"#/components/schemas/OfferRouteWay"},"transportation_requirement":{"description":"Требования к транспортировке для грузовых оферт","$ref":"#/components/schemas/OfferTransportationRequirement"},"cargo_units":{"type":"array","description":"Характеристики груза для грузовых оферт","nullable":true,"items":{"$ref":"#/components/schemas/OfferCargoUnit"}},"transport":{"description":"Характеристики предлагаемого транспорта для транспортных оферт","nullable":true,"$ref":"#/components/schemas/OfferTransport"},"publication_lifetime":{"description":"Длительность публикации","nullable":true,"$ref":"#/components/schemas/PublicationLifetime"},"bid_privacy":{"description":"Приватность ставок","nullable":true,"$ref":"#/components/schemas/BidPrivacy"},"created_at":{"type":"string","description":"Дата и время создания оферты (в UTC)"},"updated_at":{"type":"string","description":"Дата и время последнего изменения оферты (в UTC)"}}},"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"Идентификатор пользователя в системе Roolz"},"contact_methods":{"type":"array","minItems":1,"description":"Способы связи с пользователем","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Способы связи с пользователем","enum":["phone","email"]},"value":{"type":"string","description":"Способ связи"}}},"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Есть ли предоплата"},"currency":{"type":"string","description":"Валюта ставок"},"quote_is_vat":{"type":"boolean","description":"Ставка с НДС","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Целевая ставка за перевозку в указанной валюте в грузовой оферте"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Дополнительная ставка. Если основная ставка указана как ставка с НДС, то дополнительная ставка отображается как \"без НДС\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"Ставка НДС"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Ставка в транспортной оферте; устанавливается за единицу пробега (километр, милю и т.д.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Размер предоплаты в валюте"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Размер предоплаты в проценте от ставки. Только целые значения до 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Период оплаты в днях"},"mileage_format":{"type":"string","nullable":true,"description":"Единица пробега для ставки в транспортной оферте (км, мили и тд)"},"payment_condition":{"type":"string","description":"Условия оплаты","nullable":true},"payment_method":{"type":"string","description":"Метод оплаты","nullable":true},"bid_mode":{"type":"string","description":"Режим торгов"},"bid_is_vat":{"type":"boolean","description":"Принимать ставки с НДС","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Принимать ставки без НДС","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Минимальный шаг аукциона"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Уникальность ставки в рамках пространства. Запрещает/разрешает давать несколько ставок одновременно (например, при необходимости дать разные условия в \"реижиме торги\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Срок для подтверждения ставок (в секундах)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}},"OfferRoute":{"description":"Точка маршрута движения","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Порядковый номер точки маршрута"},"point_type":{"type":"string","description":"Тип точки маршрута в системе Roolz","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Часовой пояс точки маршрута в минутном смещении относительно UTC"},"point_timezone":{"type":"string","description":"TZ идентификатор часового пояса точки маршрута"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Данные точки маршрута движения"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата начала операций, относящихся к перевозке, в точке маршрута"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата окончания операций, относящихся к перевозке, в точке маршрута","nullable":true},"loading_type":{"type":"array","description":"Способ загрузки/выгрузки транспортного средства","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Данные точки маршрута движения","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"ID точки маршрута в базе данных OSM"},"osm_type":{"type":"string","description":"Тип точки маршрута в базе данных OSM"},"full_osm_id":{"type":"string","description":"Полный идентификатор точки маршрута в базе данных OSM"},"position_type":{"type":"string","description":"Общий тип точки маршрута в базе данных OSM"},"is_radius":{"type":"boolean","description":"Определяет, задан ли радиус расширяющий точку маршрута"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Радиус (если задан) расширяющий точку маршрута, в метрах","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Адрес точки маршрута движения","required":["title","name","lang","country_code","country_name","state_name","state_code","city","district","sub_district","street","postal_code","house_number"],"properties":{"title":{"type":"string","description":"Полное наименование объекта точки маршрута"},"name":{"type":"string","description":"Собственное имя объекта точки маршрута"},"lang":{"type":"string","description":"ISO 639-1 код языка точки маршрута","nullable":true},"country_code":{"type":"string","description":"Alpha2 код страны точки маршрута"},"country_name":{"type":"string","description":"Наименование страны точки маршрута"},"state_name":{"type":"string","description":"Наименование внутренней административной единицы, к которой относится точка маршрута","nullable":true},"state_code":{"type":"string","description":"Код внутренней административаной единицы, к которой относится точка маршрута","nullable":true},"city":{"type":"string","description":"Город, к которому относится точка маршрута","nullable":true},"district":{"type":"string","description":"Район города, к которому относится точка маршрута","nullable":true},"sub_district":{"type":"string","description":"Микрорайон города, к которому относится точка маршрута","nullable":true},"street":{"type":"string","description":"Название улицы, к которой относится точка маршрута","nullable":true},"postal_code":{"type":"string","description":"Почтовый код, к которому относится точка маршрута","nullable":true},"house_number":{"type":"string","description":"Номер дома, к которому относится точка маршрута","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Гео json точки маршрута движения","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","format":"float"}}}},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Дата"},"time":{"type":"string","format":"HH:mm:ss","description":"Время"}}},"OfferRouteWay":{"description":"Данные просчитанного грузового маршрута движения","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Протяженность расчитанного маршрута в метрах"},"total_dur":{"type":"integer","description":"Длительность рассчитанного маршрута в секундах"}}},"OfferTransportationRequirement":{"description":"Требования к транспортировке груза","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Требуется перецепка"},"shipping_mode":{"type":"string","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"Тип транспортного средства, требуемый для перевозки груза. Например, LCV, одиночное Т/С и пр.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Типы кузова транспортного средства, требуемые для перевозки груза","items":{"type":"string","enum":["curtainside","box","insulated","ref","open_body","flat_bed","deeploader","tipper","cont_carrier","cont_open","cont_closed","tank_cont","tank_fuel","tank_bitumen","tank_gas","tank_chemical","tank_food","silo_food","silo_non_food","tank_other","car_carrier","log_carrier","cattle_carrier","grain_truck","meat_hooker","road_tractor","other","crane_truck","lift_truck","tow_truck","tractor","dozer","loader"]}},"equipment":{"type":"string","description":"Требуемое дополнительное оборудование","nullable":true},"quantity":{"type":"string","description":"Количество единиц груза","nullable":true}}},"OfferCargoUnit":{"description":"Данные груза для грузового типа оферты","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Название груза"},"type":{"type":"string","description":"Тип груза","enum":["liquid_bulk","break_bulk","dry_bulk","groupage","oversized","container","eur_pallet","fin_pallet","oth_pallet","bag","big_bag","icb","carton","barrel","roll","reel","coil","crate"]},"quantity":{"type":"integer","description":"Количество груза, шт.","nullable":true},"weight":{"type":"integer","format":"float","description":"Вес груза, тонны","nullable":true},"volume":{"type":"integer","format":"float","description":"Объем груза, метры кубические","nullable":true},"adr_class":{"type":"string","description":"ADR класс груза","nullable":true,"enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]},"length":{"type":"integer","format":"float","description":"Длина груза, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Ширина груза, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Высота груза, метры","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Цена груза","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Валюта цены груза"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"},"value_mask":{"type":"string","description":"Маскированная цена груза в указанной валюте"}}},"OfferTransport":{"description":"Харакетристики транспорта для транспортной оферты","required":["is_trailer_interchange","type","temperature_min_c","temperature_max_c","available_weight","available_volume","length","width","height","shipping_mode","adr_class","curtainside","equipment","loading_type"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Возможна ли перецепка"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Доступный к загрузке вес, тонны","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Доступный к загрузке объем, метры кубические","nullable":true},"length":{"type":"integer","format":"float","description":"Доступная к загрузке длина, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Доступная к загрузке ширина, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Доступная к загрузке высота, метры","nullable":true},"shipping_mode":{"type":"array","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR класс (класс опасности груза), допущеный для транспортировки","minItems":1,"items":{"type":"string","enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]}},"body":{"type":"array","minItems":0,"description":"Тип кузова"},"equipment":{"type":"string","description":"Дополнительное оборудование","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Возможные способы загрузки в транспортное средство.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}},"PublicationLifetime":{"properties":{"is_first_bid":{"type":"boolean","nullable":true},"lifetime":{"type":"integer"},"formatted_lifetime":{"type":"string","nullable":true},"is_late_bid_prolong":{"type":"boolean","nullable":true},"prolong_step":{"type":"integer"},"formatted_prolong_step":{"type":"string","nullable":true},"prolong_times":{"type":"integer"}}},"BidPrivacy":{"properties":{"allow_view_bidder":{"type":"boolean","description":"Показывать владельца ставки"},"allow_view_quote":{"type":"boolean","description":"Показывать ставку"},"allow_view_comment":{"type":"boolean","description":"Показывать комментарий к ставке"}}}}}}
```

## The ExchangeOfferCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"ExchangeOfferCreateRequest":{"required":["status","type","is_public","is_private","payment","route"],"properties":{"status":{"type":"string","description":"В каком статусе создается оферта. На данный момент допускается только создание оферт в статусе не опубликовано (not_published)","enum":["not_published"]},"type":{"type":"string","description":"Тип оферты (транспорт/груз). Также определяет требования для запроса","enum":["transport","cargo"]},"is_public":{"type":"boolean","description":"Оферта публикуется на публичной бирже"},"is_private":{"type":"boolean","description":"Оферта публикуется на приватной бирже"},"is_all_private_partners":{"type":"boolean","description":"Оферту в приватной бирже получат все партнеры компании-владельца. Поле отображается только в собственных офертах"},"private_partners":{"type":"array","minItems":0,"description":"Идентификаторы компаний-партнеров, которые получат приватную оферту. Поле отображается только в собственных офертах","items":{"type":"string","format":"UUID"}},"description":{"type":"string","description":"Дополнительное описание в оферте"},"payment":{"$ref":"#/components/schemas/PaymentDataCreateRequest"},"route":{"type":"array","items":{"$ref":"#/components/schemas/RoutepointCreateRequest"}},"cargo_units":{"description":"Описание груза (на текущий момент размер массива должен быть равен 1)","type":"array","items":{"$ref":"#/components/schemas/CargoUnitCreateRequest"}},"transportation_requirement":{"description":"Требования к транспортировке (только для грузовой оферты)","allOf":[{"$ref":"#/components/schemas/TransportRequirementsCreateRequest"}]},"transport":{"description":"Описание транспорта (только для транспортной оферты)","allOf":[{"$ref":"#/components/schemas/TransportSpecificationCreateRequest"}]},"publication_lifetime":{"$ref":"#/components/schemas/PublicationLifetimeCreateRequest"},"bid_privacy":{"$ref":"#/components/schemas/BidPrivacyCreateRequest"}}},"PaymentDataCreateRequest":{"type":"object","properties":{"quote_is_vat":{"type":"boolean","description":"Ставка с НДС"},"is_prepay":{"type":"boolean","description":"Есть ли предоплата"},"bid_is_vat":{"type":"boolean","description":"Принимать ставки с НДС"},"bid_is_no_vat":{"type":"boolean","description":"Принимать ставки без НДС"},"bid_is_not_unique":{"type":"boolean","description":"Уникальность ставки в рамках пространства. Запрещает/разрешает давать несколько ставок одновременно (например, при необходимости дать разные условия в \"реижиме торги\" )"},"currency":{"type":"string","description":"Валюта"},"payment_condition":{"type":"string","description":"Условия оплаты"},"payment_method":{"type":"string","description":"Метод оплаты"},"bid_mode":{"type":"string","description":"Режим торгов"},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Целевая ставка за перевозку в указанной валюте в грузовой оферте"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Дополнительная ставка. Если основная ставка указана как ставка с НДС, то дополнительная ставка отображается как \"без НДС\""},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Ставка в транспортной оферте; устанавливается за единицу пробега (километр, милю и т.д.)"},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Минимальный шаг аукциона"},"vat":{"type":"number","format":"decimal","nullable":true,"description":"Ставка НДС"},"mileage_format":{"type":"string","nullable":true,"description":"Единица пробега для ставки в транспортной оферте (км, мили и тд)"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Размер предоплаты в проценте от ставки. Только целые значения до 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Период оплаты в днях"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Срок для подтверждения ставок (в секундах)"}},"required":["quote_is_vat","is_prepay","bid_is_vat","bid_is_no_vat","bid_is_not_unique","currency","payment_condition","payment_method","bid_mode"]},"RoutepointCreateRequest":{"properties":{"order":{"type":"integer","description":"Порядковый номер точки маршрута"},"point_type":{"type":"string","description":"Тип точки маршрута в системе Roolz","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Часовой пояс точки маршрута в минутном смещении относительно UTC"},"location":{"$ref":"#/components/schemas/LocationDataCreateRequest","description":"Информация о локации"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата начала операций, относящихся к перевозке, в точке маршрута","nullable":true},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата окончания операций, относящихся к перевозке, в точке маршрута","nullable":true},"loading_type":{"description":"Способ загрузки/выгрузки транспортного средства","type":"array","nullable":true,"items":{"type":"string"}}}},"LocationDataCreateRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор объекта (из запроса поиска объектов)"},"is_radius":{"type":"boolean"},"type":{"type":"string","description":"Тип объекта (из запроса поиска объектов)"},"position_type":{"type":"string","description":"Тип точки"},"radius":{"type":"integer","format":"int32","nullable":true,"description":"Радиус"}},"required":["id","is_radius","type","position_type"]},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Дата"},"time":{"type":"string","format":"HH:mm:ss","description":"Время"}}},"CargoUnitCreateRequest":{"description":"Данные груза для грузового типа оферты","required":["weight","volume"],"properties":{"name":{"type":"string","description":"Название груза"},"type":{"type":"string","description":"Тип груза","enum":["liquid_bulk","break_bulk","dry_bulk","groupage","oversized","container","eur_pallet","fin_pallet","oth_pallet","bag","big_bag","icb","carton","barrel","roll","reel","coil","crate"]},"quantity":{"type":"integer","description":"Количество груза, шт.","nullable":true},"weight":{"type":"integer","format":"float","description":"Вес груза, тонны"},"volume":{"type":"integer","format":"float","description":"Объем груза, метры кубические"},"adr_class":{"type":"string","description":"ADR класс груза","nullable":true,"enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]},"length":{"type":"integer","format":"float","description":"Длина груза, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Ширина груза, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Высота груза, метры","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"price":{"$ref":"#/components/schemas/CargoPriceCreateRequest","description":"Цена груза","nullable":true}}},"CargoPriceCreateRequest":{"properties":{"currency":{"type":"string","description":"Валюта цены"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"}}},"TransportRequirementsCreateRequest":{"description":"Требования к транспортировке груза","required":["body"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Требуется перецепка"},"shipping_mode":{"type":"string","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"Тип транспортного средства, требуемый для перевозки груза. Например, LCV, одиночное Т/С и пр. ","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Типы кузова транспортного средства, требуемые для перевозки груза","items":{"type":"string","enum":["curtainside","box","insulated","ref","open_body","flat_bed","deeploader","tipper","cont_carrier","cont_open","cont_closed","tank_cont","tank_fuel","tank_bitumen","tank_gas","tank_chemical","tank_food","silo_food","silo_non_food","tank_other","car_carrier","log_carrier","cattle_carrier","grain_truck","meat_hooker","road_tractor","other","crane_truck","lift_truck","tow_truck","tractor","dozer","loader"]}},"equipment":{"type":"array","description":"Требуемое дополнительное оборудование","nullable":true,"items":{"type":"string"}},"quantity":{"type":"string","description":"Количество единиц груза","nullable":true}}},"TransportSpecificationCreateRequest":{"description":"Харакетристики транспорта для траспортного типа оферты","required":["type","body","available_weight","available_volume"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Возможна ли перецепка"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Доступный к загрузке вес, тонны"},"available_volume":{"type":"integer","format":"float","description":"Доступный к загрузке объем, метры кубические"},"length":{"type":"integer","format":"float","description":"Доступная к занрузке длина, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Доступная к загрузке ширина, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Доступная к загрузке высота, метры","nullable":true},"shipping_mode":{"type":"array","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR класс (класс опасности груза), допущеный для транспортировки","minItems":1,"items":{"type":"string","enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]}},"body":{"type":"array","minItems":0,"description":"Тип кузова"},"equipment":{"type":"string","description":"Дополнительное оборудование","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Возможные способы загрузки в транспортное средство.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}},"PublicationLifetimeCreateRequest":{"description":"Настройки длительности публикации","required":["lifetime"],"properties":{"lifetime":{"type":"integer","description":"Длительность публикации (в секундах)"},"is_first_bid":{"type":"boolean","description":"Начать отсчет публикации только после первой ставки"}}},"BidPrivacyCreateRequest":{"description":"Настройки приватности ставок в оферте","properties":{"allow_view_bidder":{"type":"boolean","description":"Показывать владельца ставки"},"allow_view_quote":{"type":"boolean","description":"Показывать ставку"},"allow_view_comment":{"type":"boolean","description":"Показывать комментарий к ставке"}}}}}}
```

## The BidPrivacyCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"BidPrivacyCreateRequest":{"description":"Настройки приватности ставок в оферте","properties":{"allow_view_bidder":{"type":"boolean","description":"Показывать владельца ставки"},"allow_view_quote":{"type":"boolean","description":"Показывать ставку"},"allow_view_comment":{"type":"boolean","description":"Показывать комментарий к ставке"}}}}}}
```

## The PublicationLifetimeCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"PublicationLifetimeCreateRequest":{"description":"Настройки длительности публикации","required":["lifetime"],"properties":{"lifetime":{"type":"integer","description":"Длительность публикации (в секундах)"},"is_first_bid":{"type":"boolean","description":"Начать отсчет публикации только после первой ставки"}}}}}}
```

## The TransportRequirementsCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"TransportRequirementsCreateRequest":{"description":"Требования к транспортировке груза","required":["body"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Требуется перецепка"},"shipping_mode":{"type":"string","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"Тип транспортного средства, требуемый для перевозки груза. Например, LCV, одиночное Т/С и пр. ","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Типы кузова транспортного средства, требуемые для перевозки груза","items":{"type":"string","enum":["curtainside","box","insulated","ref","open_body","flat_bed","deeploader","tipper","cont_carrier","cont_open","cont_closed","tank_cont","tank_fuel","tank_bitumen","tank_gas","tank_chemical","tank_food","silo_food","silo_non_food","tank_other","car_carrier","log_carrier","cattle_carrier","grain_truck","meat_hooker","road_tractor","other","crane_truck","lift_truck","tow_truck","tractor","dozer","loader"]}},"equipment":{"type":"array","description":"Требуемое дополнительное оборудование","nullable":true,"items":{"type":"string"}},"quantity":{"type":"string","description":"Количество единиц груза","nullable":true}}}}}}
```

## The TransportSpecificationCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"TransportSpecificationCreateRequest":{"description":"Харакетристики транспорта для траспортного типа оферты","required":["type","body","available_weight","available_volume"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Возможна ли перецепка"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная температура транспортировки, поддерживаемая транспортным средством, градусы Цельсия","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Доступный к загрузке вес, тонны"},"available_volume":{"type":"integer","format":"float","description":"Доступный к загрузке объем, метры кубические"},"length":{"type":"integer","format":"float","description":"Доступная к занрузке длина, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Доступная к загрузке ширина, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Доступная к загрузке высота, метры","nullable":true},"shipping_mode":{"type":"array","description":"Тип перевозки. Возможные варианты: FTL, LTL, Особый и Любой","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR класс (класс опасности груза), допущеный для транспортировки","minItems":1,"items":{"type":"string","enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]}},"body":{"type":"array","minItems":0,"description":"Тип кузова"},"equipment":{"type":"string","description":"Дополнительное оборудование","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Возможные способы загрузки в транспортное средство.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}}}}}
```

## The CargoUnitCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"CargoUnitCreateRequest":{"description":"Данные груза для грузового типа оферты","required":["weight","volume"],"properties":{"name":{"type":"string","description":"Название груза"},"type":{"type":"string","description":"Тип груза","enum":["liquid_bulk","break_bulk","dry_bulk","groupage","oversized","container","eur_pallet","fin_pallet","oth_pallet","bag","big_bag","icb","carton","barrel","roll","reel","coil","crate"]},"quantity":{"type":"integer","description":"Количество груза, шт.","nullable":true},"weight":{"type":"integer","format":"float","description":"Вес груза, тонны"},"volume":{"type":"integer","format":"float","description":"Объем груза, метры кубические"},"adr_class":{"type":"string","description":"ADR класс груза","nullable":true,"enum":["no","any_dangerous","adr_1","adr_2_1","adr_2_2","adr_2_3","adr_3","adr_4_1","adr_4_2","adr_4_3","adr_5_1","adr_5_2","adr_6_1","adr_6_2","adr_7","adr_8","adr_9"]},"length":{"type":"integer","format":"float","description":"Длина груза, метры","nullable":true},"width":{"type":"integer","format":"float","description":"Ширина груза, метры","nullable":true},"height":{"type":"integer","format":"float","description":"Высота груза, метры","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Минимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Максимальная требуемая температура транспортировки, градусы Цельсия","nullable":true},"price":{"$ref":"#/components/schemas/CargoPriceCreateRequest","description":"Цена груза","nullable":true}}},"CargoPriceCreateRequest":{"properties":{"currency":{"type":"string","description":"Валюта цены"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"}}}}}}
```

## The CargoPriceCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"CargoPriceCreateRequest":{"properties":{"currency":{"type":"string","description":"Валюта цены"},"value":{"type":"integer","format":"float","description":"Цена груза в указанной валюте"}}}}}}
```

## The RoutepointCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"RoutepointCreateRequest":{"properties":{"order":{"type":"integer","description":"Порядковый номер точки маршрута"},"point_type":{"type":"string","description":"Тип точки маршрута в системе Roolz","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Часовой пояс точки маршрута в минутном смещении относительно UTC"},"location":{"$ref":"#/components/schemas/LocationDataCreateRequest","description":"Информация о локации"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата начала операций, относящихся к перевозке, в точке маршрута","nullable":true},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Дата окончания операций, относящихся к перевозке, в точке маршрута","nullable":true},"loading_type":{"description":"Способ загрузки/выгрузки транспортного средства","type":"array","nullable":true,"items":{"type":"string"}}}},"LocationDataCreateRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор объекта (из запроса поиска объектов)"},"is_radius":{"type":"boolean"},"type":{"type":"string","description":"Тип объекта (из запроса поиска объектов)"},"position_type":{"type":"string","description":"Тип точки"},"radius":{"type":"integer","format":"int32","nullable":true,"description":"Радиус"}},"required":["id","is_radius","type","position_type"]},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Дата"},"time":{"type":"string","format":"HH:mm:ss","description":"Время"}}}}}}
```

## The LocationDataCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"LocationDataCreateRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор объекта (из запроса поиска объектов)"},"is_radius":{"type":"boolean"},"type":{"type":"string","description":"Тип объекта (из запроса поиска объектов)"},"position_type":{"type":"string","description":"Тип точки"},"radius":{"type":"integer","format":"int32","nullable":true,"description":"Радиус"}},"required":["id","is_radius","type","position_type"]}}}}
```

## The PaymentDataCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"PaymentDataCreateRequest":{"type":"object","properties":{"quote_is_vat":{"type":"boolean","description":"Ставка с НДС"},"is_prepay":{"type":"boolean","description":"Есть ли предоплата"},"bid_is_vat":{"type":"boolean","description":"Принимать ставки с НДС"},"bid_is_no_vat":{"type":"boolean","description":"Принимать ставки без НДС"},"bid_is_not_unique":{"type":"boolean","description":"Уникальность ставки в рамках пространства. Запрещает/разрешает давать несколько ставок одновременно (например, при необходимости дать разные условия в \"реижиме торги\" )"},"currency":{"type":"string","description":"Валюта"},"payment_condition":{"type":"string","description":"Условия оплаты"},"payment_method":{"type":"string","description":"Метод оплаты"},"bid_mode":{"type":"string","description":"Режим торгов"},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Целевая ставка за перевозку в указанной валюте в грузовой оферте"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Дополнительная ставка. Если основная ставка указана как ставка с НДС, то дополнительная ставка отображается как \"без НДС\""},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Ставка в транспортной оферте; устанавливается за единицу пробега (километр, милю и т.д.)"},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Минимальный шаг аукциона"},"vat":{"type":"number","format":"decimal","nullable":true,"description":"Ставка НДС"},"mileage_format":{"type":"string","nullable":true,"description":"Единица пробега для ставки в транспортной оферте (км, мили и тд)"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Размер предоплаты в проценте от ставки. Только целые значения до 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Период оплаты в днях"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Срок для подтверждения ставок (в секундах)"}},"required":["quote_is_vat","is_prepay","bid_is_vat","bid_is_no_vat","bid_is_not_unique","currency","payment_condition","payment_method","bid_mode"]}}}}
```

## The Company object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"Company":{"required":["id","owner_id","name","nickname","company_form","exchange_role","is_public","is_verified","offers_count","total_offers_count","employee_amount","order_amount","fleet_amount","foundation_year","registration_date","registration_number","legal_form","legal_form_short","legal_name","transport_license_number","forwarder_license_number","legal_address","mail_address","tax_number","momo","email","phone","website","description","registration_country_alpha2","is_transport_license","is_forwarder_license","is_transport_license_company","is_forwarder_license_company","goal","associations","international_direction","national_direction","transportation_type","cargo_type","logistics_service","customs_service","created_at","updated_at"],"properties":{"id":{"type":"string","format":"UUID","description":"Внутренний идентификатор компании в системе Roolz"},"owner_id":{"type":"string","format":"UUID","description":"Идентификатор пользователя-владельца компании в системе Roolz"},"name":{"type":"string","description":"Публичное наименование компании в системе Roolz"},"nickname":{"type":"string","description":"Уникальный псевдоним (никнейм) компании в системе Roolz"},"company_form":{"type":"string","description":"Юридическая форма организации","enum":["private_company","self_employed","partnership","public_company","government_agency","non_profit"]},"exchange_role":{"type":"string","description":"Роль компании на платформе Roolz","enum":["shipper","carrier","forwarder","forwarder_carrier","dispatcher","freight_broker","customs_agent","storage_provider","shipper_carrier","other"]},"is_public":{"type":"boolean","description":"Данная компания доступна для публичного просмотра и поиска."},"is_verified":{"type":"boolean","description":"Данная компания проверена и верифицирована в системе Roolz"},"offers_count":{"type":"integer","description":"Количество активных (опубликованных) оферт"},"total_offers_count":{"type":"integer","description":"Общее количество оферт созданных на платформе Roolz за все время с момента регистрации"},"employee_amount":{"type":"string","description":"Среднесписочная численность сотрудников в компании","enum":["1_15","16_50","51_150","151_500","501_1500","1501_5000","5000_more"]},"order_amount":{"type":"string","description":"Количество перевозок в месяц","enum":[0,"1_30","31_100","101_500","501_2000","2001_10000","10001_50000","50000_more"]},"fleet_amount":{"type":"string","description":"Размер автопарка компании (число единиц)","nullable":true,"enum":["1_5","6_15","16_50","51_100","101_500","501_1000","1000_more"]},"foundation_year":{"type":"integer","description":"Год основания компании"},"registration_date":{"type":"string","description":"Дата регистрации компании уполномоченным органом","nullable":true},"registration_number":{"type":"string","description":"Регистрационный номер компании, присовенный при регистрации в уполномоченном органе страны"},"legal_form":{"type":"string","description":"Полная организационно-правовая форма (тип компании)"},"legal_form_short":{"type":"string","description":"Сокращенная организационно-правовая форма (тип компании: ООО, ОАО и т.п.)"},"legal_name":{"type":"string","description":"Полное юридическое наименование компании с указанием регистрационной формы"},"transport_license_number":{"type":"string","description":"Номер транспортной лицензии","nullable":true},"forwarder_license_number":{"type":"string","description":"Номер лицензии экспедитора","nullable":true},"legal_address":{"type":"string","description":"Юридический адрес компании"},"mail_address":{"type":"string","description":"Почтовый адрес компании"},"tax_number":{"type":"string","description":"Налоговый номер или идентификатор компании"},"momo":{"type":"string","description":"Короткий слоган или девиз компании"},"email":{"type":"string","format":"email","description":"Адрес электронной почты компании"},"phone":{"type":"string","description":"Телефонный номер компании"},"website":{"type":"string","description":"Веб-сайт компании"},"description":{"type":"string","description":"Описание компании"},"registration_country_alpha2":{"type":"string","description":"Alpha2 код страны регистрации компании"},"is_transport_license":{"type":"boolean","description":"Наличие транспортной лицензии"},"is_forwarder_license":{"type":"boolean","description":"Наличие лицензии перевозчика"},"is_transport_license_company":{"type":"boolean","description":"Транспортная лицензия оформлена на данное юридическое лицо"},"is_forwarder_license_company":{"type":"boolean","description":"Лицензия перевозчика оформлена на данное юридическое лицо"},"goal":{"type":"array","minItems":0,"description":"","items":{"type":"string","enum":["find_cargo","find_transport","private_exchange","api_integration","visibility","communication","crm","tms","fms","offer_service","other"]}},"associations":{"type":"array","minItems":0,"description":"Список ассоциаций, в которые входит компания","items":{"type":"string","enum":["us_tia","us_ooida","us_ata","tw_iofflat","cn_crta","cn_cifa","tw_tafla","tw_tfla","jp_jiffa","jp_jafa","jp_jfff","mx_amacarga","id_ilfa","th_tiffa","br_actc","ru_asmap","ru_far","fr_aftri","fr_tlf","in_ficci","in_acaai","in_fffai","es_astic","es_feteia","it_uicciaa","it_fdespedi","tr_tobb","tr_und","tr_utikad","gb_logistics_uk","gb_bifa","gb_rha","kr_kiffa","au_afif","au_cbfca","pl_zmpd","pl_piffa","de_bgl","de_dslv","de_aist","ar_aaaci","za_saaff","sy_snc_icc","sy_siffa","co_fitac","sa_sata","sa_nlc","ua_asmap_ua","ua_aiffu","ua_ukrzovnihtrans","ir_iccima","ir_itca","eg_eiffa","cl_alog_chile","ec_aseaci","pt_antram","pt_apat","my_fmff","gt_agac","ca_ciffa","gr_ofae","gr_iffag_l","nl_fenex","ma_amtri","ma_affm","ro_untrr","ro_user","be_febetra","be_forward_belgium","do_adacam","lk_slffa","cz_cesmad_boemia","cz_ssl","nz_cbaff","se_sa","se_sifa","no_nlf","no_nho_lt","kz_kazato","kz_kffa","ke_kifwa","hu_mkfe","hu_ahf","pk_pnc_icc","pk_piffa","bg_aebtri","bg_nsbs","by_bamap","by_baif","ph_pmtlai","tn_ccit","at_zv","at_aiso","kg_airto_kr","dk_dsf","dk_dtl","ch_spedlogswiss","ch_asag","af_acci","ni_anac","il_irtb","il_iffcca","sk_cesmad_slovakia","sk_zlz_sr","ug_uffa","ie_irha","ie_iifa","gh_giff","qa_qcci","kw_kiac","py_atolpar","bd_baffa","cr_acacia","om_sinyar","rs_ccis_at","md_aem_trans","md_aita","sg_saaa__singapore","sg_sla","az_abada","vn_va","hr_cce","hr_hgk","sv_asac","ge_girca","ge_afg","pa_apac","ae_atcuae","tz_taffa","tz_zfb","ae_nafl","hk_haffa","jo_racj","jo_jla","hn_ahaci","uy_audaca","zm_zcfaa","lb_cciabml","lb_lfs","zw_sfaaz","lt_linava","lt_lineka","ee_eraa","ee_elfa","cy_tda","cy_ccfaa","si_giz_itt","s_ccis","fi_skal","fi_shll","lv_latvijas_auto","lv_laff","cm_synautratra","ba_airh","ba_vtk_stk_bih","al_analtir","et_effsaa","mt_atto","mt_malta_chamber","mu_apt","mk_amerit","bn_brufa","uz_aircuz","kh_camffa","am_airca","am_aaff","mn_nartam","dj_atd","tj_abbat","mm_miffa","tm_hada","uz_uifa","me_pkcg","mn_fmff"]}},"international_direction":{"type":"array","minItems":0,"description":"Alpha2 коды стран, в/из которых компания осуществляет международные перевозки","items":{"type":"string"}},"national_direction":{"type":"array","minItems":0,"description":"Alpha2 коды стран, в которых компания осуществляет внутренние перевозки","items":{"type":"string"}},"transportation_type":{"type":"array","minItems":0,"description":"Типы осуществляемых перевозок","items":{"type":"string","enum":["road","ocean","air","railway","multimodal"]}},"cargo_type":{"type":"array","minItems":0,"description":"Типы перевозимых грузов","items":{"type":"string","enum":["general","groupage","cep","last_mile","adr","oversize","project","temperature","perishable","bulk","liquid","container","passenger","animals","other_special"]}},"logistics_service":{"type":"array","minItems":0,"description":"Оказываемые логистические услуги","items":{"type":"string","enum":["transportation","forwarding","dispatching","freight_brokerage","inventory_mngmt","order_mngmt","responsible_storage","storage_rent","transport_rent","cargo_consolidation","cross_docking","loader_work","cargo_insurance","transport_insurance","return_mngmt"]}},"customs_service":{"type":"array","minItems":0,"description":"Дополнительные оказываемые услуги","items":{"type":"string","enum":["declaration","statistical_declaration","document_handling","representation","consulting","customs_guarantee","temporary_storage"]}},"created_at":{"type":"string","description":"Дата и время создания профиля компании (в UTC)"},"updated_at":{"type":"string","description":"Дата и время последнего изменения профиля компании (в UTC)"}}}}}}
```

## The GeoFeature object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"GeoFeature":{"properties":{"type":{"type":"string"},"center":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}}},"properties":{"type":"object","properties":{"location_id":{"type":"integer"},"location_type":{"type":"string"},"location_attribute_key":{"type":"string"},"location_attribute_value":{"type":"string"},"name":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"country_code":{"type":"string"},"county":{"type":"string","nullable":true},"postcode":{"type":"string","nullable":true}}}}}}}}
```

## The User object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"User":{"required":["id","phone","email","nickname","first_name","last_name","middle_name","work_email","work_phone","own_email","own_phone","site"],"properties":{"id":{"type":"string","format":"UUID","description":"Внутренний идентификатор пользователя в системе Roolz"},"phone":{"type":"string","description":"Номер телефона пользователя, указанный при регистрации и/или используемый для входа в аккаунт","nullable":true},"email":{"type":"string","description":"Email пользователя, указанный при регистрации и/или используемый для входа в аккаунт","nullable":true},"nickname":{"type":"string","description":"Уникальный псевдоним (никнейм) пользователя в системе Roolz"},"first_name":{"type":"string","description":"Имя пользователя"},"last_name":{"type":"string","description":"Фамилия пользователя"},"middle_name":{"type":"string","description":"Отчество пользователя","nullable":true},"work_email":{"type":"string","description":"Рабочий адрес электронной почты","nullable":true},"work_phone":{"type":"string","description":"Рабочий номер телефона","nullable":true},"own_email":{"type":"string","description":"Личный адрес электронной почты","nullable":true},"own_phone":{"type":"string","description":"Личный номер телефона","nullable":true},"site":{"type":"string","description":"Веб-сайт","nullable":true}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.roolz.net/oferty.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
