# Оферты

{% hint style="info" %}
Полезное: [oferty-redaktirovanie-operacii-i-statusy](https://help.roolz.net/birzha-i-oferty-rynok-gruzov-i-transporta/oferty-redaktirovanie-operacii-i-statusy "mention") и[kakie-est-statusy-oferty](https://help.roolz.net/birzha-i-oferty-rynok-gruzov-i-transporta/oferty-redaktirovanie-operacii-i-statusy/kakie-est-statusy-oferty "mention")
{% 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}}}}}}
```
