# Offers

{% hint style="info" %}
Useful links: [Offers: editing, activity and statuses](/en/offers-editing-activity-and-statuses.md) and [What are the offer statuses?](/en/offers-editing-activity-and-statuses/what-are-the-offer-statuses.md)
{% endhint %}

## POST /exchange/offer

> Creating a single 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":"Test environment for development"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API key for authorizing requests in GET parameters","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API key for authorizing requests in 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":"The status of the created offer. At the moment, only offers in the not published status are allowed to be created","enum":["not_published"]},"type":{"type":"string","description":"Type of offer (transport/cargo). Also determines the requirements for the request","enum":["transport","cargo"]},"is_public":{"type":"boolean","description":"The offer is published on a public exchange"},"is_private":{"type":"boolean","description":"The offer is published on a private exchange"},"is_all_private_partners":{"type":"boolean","description":"The offer on the private exchange will be received by all partners of the owner company. The field is displayed only in personal offers"},"private_partners":{"type":"array","minItems":0,"description":"IDs of partner companies that will receive private offer. The field is displayed only in personal offers","items":{"type":"string","format":"UUID"}},"description":{"type":"string","description":"Additional description in the offer"},"payment":{"$ref":"#/components/schemas/PaymentDataCreateRequest"},"route":{"type":"array","items":{"$ref":"#/components/schemas/RoutepointCreateRequest"}},"cargo_units":{"description":"Description of cargo (currently the array size should be equal to 1)","type":"array","items":{"$ref":"#/components/schemas/CargoUnitCreateRequest"}},"transportation_requirement":{"description":"Transportation requirements (for freight offer only)","allOf":[{"$ref":"#/components/schemas/TransportRequirementsCreateRequest"}]},"transport":{"description":"Transport description (only for transport offer)","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":"Bid with VAT"},"is_prepay":{"type":"boolean","description":"Is there a prepayment"},"bid_is_vat":{"type":"boolean","description":"Accept bids with VAT"},"bid_is_no_vat":{"type":"boolean","description":"Accept bids without VAT"},"bid_is_not_unique":{"type":"boolean","description":"Uniqueness of the bid within the space. Forbids/allows to give several bids at the same time (for example, to give different conditions in \"bidding mode\")"},"currency":{"type":"string","description":"Currency"},"payment_condition":{"type":"string","description":"Payment terms"},"payment_method":{"type":"string","description":"Payment method"},"bid_mode":{"type":"string","description":"Bidding mode"},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Target transportation bid in the specified currency in the freight offer"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Additional bid. If the main bid is specified as a bid with VAT, then the additional bid is displayed as \"without VAT\""},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Bid in a transport offer; set per unit of mileage (kilometer, mile, etc.)"},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Minimum auction step size"},"vat":{"type":"number","format":"decimal","nullable":true,"description":"VAT bid"},"mileage_format":{"type":"string","nullable":true,"description":"Mileage unit for the bid in the transport offer (km, miles, etc.)"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Prepayment amount as a percentage of the bid. Only integer values ​​up to 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Payment period in days"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Time for bid confirmation (in seconds)"}},"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":"Waypoint ordinal number"},"point_type":{"type":"string","description":"Type of waypoint on Roolz exchange platform","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Time zone of the waypoint in minute offset from UTC"},"location":{"$ref":"#/components/schemas/LocationDataCreateRequest","description":"Information about the location"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Start date of the transportation operations at the waypoint","nullable":true},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"End date of the transportation operations at the waypoint","nullable":true},"loading_type":{"description":"Method of loading/unloading a vehicle","type":"array","nullable":true,"items":{"type":"string"}}}},"LocationDataCreateRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Object ID (from object search query)"},"is_radius":{"type":"boolean"},"type":{"type":"string","description":"Object type (from object search query)"},"position_type":{"type":"string","description":"Point type"},"radius":{"type":"integer","format":"int32","nullable":true,"description":"Radius"}},"required":["id","is_radius","type","position_type"]},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Date"},"time":{"type":"string","format":"HH:mm:ss","description":"Time"}}},"CargoUnitCreateRequest":{"description":"Cargo information for the cargo offer","required":["weight","volume"],"properties":{"name":{"type":"string","description":"Name of cargo"},"type":{"type":"string","description":"Type of cargo","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":"Quantity of cargo, pcs.","nullable":true},"weight":{"type":"integer","format":"float","description":"Cargo weight, tons"},"volume":{"type":"integer","format":"float","description":"Cargo volume, cubic meters"},"adr_class":{"type":"string","description":"ADR cargo class","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":"Cargo length, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Cargo width, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Cargo height, meters","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum required transportation temperature, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum required transportation temperature, degrees Celsius","nullable":true},"price":{"$ref":"#/components/schemas/CargoPriceCreateRequest","description":"Cargo price","nullable":true}}},"CargoPriceCreateRequest":{"properties":{"currency":{"type":"string","description":"Price currency"},"value":{"type":"integer","format":"float","description":"Price of cargo in the specified currency"}}},"TransportRequirementsCreateRequest":{"description":"Requirements for cargo transportation","required":["body"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Trailer interchange required"},"shipping_mode":{"type":"string","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"The type of vehicle required for cargo transportation. For example, LCV, special machinery, etc.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Vehicle body types required for cargo transportation","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":"Additional required equipment","nullable":true,"items":{"type":"string"}},"quantity":{"type":"string","description":"Number of cargo units","nullable":true}}},"TransportSpecificationCreateRequest":{"description":"Transport characteristics for the transport offer","required":["type","body","available_weight","available_volume"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Possibility of trailer interchange"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Weight available for loading, tons"},"available_volume":{"type":"integer","format":"float","description":"Volume available for loading, cubic meters"},"length":{"type":"integer","format":"float","description":"Length available for loading, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Width available for loading, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Height available for loading, meters","nullable":true},"shipping_mode":{"type":"array","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR class (cargo hazard class) approved for transportation","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":"Vehicle body type"},"equipment":{"type":"string","description":"Additional equipment","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Possible methods of loading into a vehicle.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}},"PublicationLifetimeCreateRequest":{"description":"Publication duration settings","required":["lifetime"],"properties":{"lifetime":{"type":"integer","description":"Publication duration (in seconds)"},"is_first_bid":{"type":"boolean","description":"Start publication countdown only after the first bid"}}},"BidPrivacyCreateRequest":{"description":"Bidding privacy settings in the offer","properties":{"allow_view_bidder":{"type":"boolean","description":"Show bid owner"},"allow_view_quote":{"type":"boolean","description":"Show bid"},"allow_view_comment":{"type":"boolean","description":"Show bid comments"}}},"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":"Offer ID on Roolz exchange platform"},"name":{"type":"string","description":"Public name of the offer"},"type":{"type":"string","description":"Offer type","enum":["cargo","transport"]},"status":{"type":"string","description":"Current offer status","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]},"creation_method":{"type":"string","description":"Method of creating an offer. Possible options: manual, via API (api)","enum":["manual","api"]},"is_public":{"type":"boolean","description":"The offer is published on a public exchange"},"is_private":{"type":"boolean","description":"The offer is published on a private exchange"},"is_public_duplicate":{"type":"boolean","description":"A public duplicate has been created based on this offer."},"is_partners_selection":{"type":"boolean","description":"Partner selection option activated (for public duplicate)"},"company_id":{"type":"string","format":"UUID","description":"Internal owner-company ID of the offer on Roolz exchange platform"},"description":{"type":"string","description":"Additional description of the offer"},"assignee_users":{"type":"array","minItems":1,"description":"Users assigned as responsible for the offer. The field is only displayed for the owner of the offer and the for the incoming offers of the private exchange","items":{"$ref":"#/components/schemas/OfferAssigneeUser"}},"is_autoclosed":{"type":"boolean","description":"The offer has been closed (sent to archive) automatically"},"is_publication_autocanceled":{"type":"boolean","description":"The offer has been removed from publication automatically"},"publication_autocancel_type":{"type":"string","description":"Type (reason) of automatic offer removal from publication","nullable":true},"publication_autocancel_at":{"type":"string","description":"Date and time of the automatic offer removal from publication (in UTC)","nullable":true},"status_changed_at":{"type":"string","description":"Date and time of the last change in the offer status","nullable":true},"published_at":{"type":"string","description":"Date and time of the offer publication","nullable":true},"closed_at":{"type":"string","description":"Date and time of the offer closing (archiving)","nullable":true},"autoclose_at":{"type":"string","description":"Date and time of the automatic offer closing (archiving)","nullable":true},"is_all_private_partners":{"type":"boolean","description":"The offer on the private exchange will be received by all partners of the owner company. The field is only displayed in personal offers"},"private_partners":{"type":"array","minItems":0,"description":"IDs of partner companies that will receive private offer. The field is only displayed in personal offers","items":{"type":"string","format":"UUID"}},"payment":{"description":"Payment settings and details","$ref":"#/components/schemas/Payment"},"route":{"type":"array","description":"Waypoints in the offer","items":{"$ref":"#/components/schemas/OfferRoute"}},"route_way":{"description":"Calculated route","$ref":"#/components/schemas/OfferRouteWay"},"transportation_requirement":{"description":"Transportation requirements for cargo offers","$ref":"#/components/schemas/OfferTransportationRequirement"},"cargo_units":{"type":"array","description":"Cargo characteristics for cargo offers","nullable":true,"items":{"$ref":"#/components/schemas/OfferCargoUnit"}},"transport":{"description":"Transport characteristics for transport offers","nullable":true,"$ref":"#/components/schemas/OfferTransport"},"publication_lifetime":{"description":"Publication duration","nullable":true,"$ref":"#/components/schemas/PublicationLifetime"},"bid_privacy":{"description":"Bidding privacy","nullable":true,"$ref":"#/components/schemas/BidPrivacy"},"created_at":{"type":"string","description":"Date and time of the offer creation (in UTC)"},"updated_at":{"type":"string","description":"Date and time of the last offer change (in UTC)"}}},"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"User ID on Roolz exchange platform"},"contact_methods":{"type":"array","minItems":1,"description":"Methods of communication with the user","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Methods of communication with the user","enum":["phone","email"]},"value":{"type":"string","description":"Communication method"}}},"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Is there a prepayment"},"currency":{"type":"string","description":"Bidding currency"},"quote_is_vat":{"type":"boolean","description":"Bid with VAT","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Target transportation bid in the specified currency in the freight offer"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Additional bid. If the main bid was specified as a bid with VAT, then the additional bid is displayed as \"without VAT\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"VAT bid"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Bid in a transport offer; set per unit of mileage (kilometer, mile, etc.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Amount of prepayment in currency"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Prepayment amount as a percentage of the bid. Only integer values ​​up to 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Payment period in days"},"mileage_format":{"type":"string","nullable":true,"description":"Mileage unit for the bid in the transport offer (km, miles, etc.)"},"payment_condition":{"type":"string","description":"Payment terms","nullable":true},"payment_method":{"type":"string","description":"Payment method","nullable":true},"bid_mode":{"type":"string","description":"Bidding mode"},"bid_is_vat":{"type":"boolean","description":"Accept bids with VAT","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Accept bids without VAT","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Minimum auction step size"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Uniqueness of the bid within the space. Forbids/allows to place several bids at the same time (for example, to give different conditions in \"bidding mode\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Time for bid confirmation (in seconds)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}},"OfferRoute":{"description":"Waypoint","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Waypoint ordinal number"},"point_type":{"type":"string","description":"Type of waypoint on Roolz exchange platform","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Time zone of the waypoint in minute offset from UTC"},"point_timezone":{"type":"string","description":"TZ time zone ID of the waypoint"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Waypoint data"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Start date of the transportation operations at the waypoint"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"End date of the transportation operations at the waypoint","nullable":true},"loading_type":{"type":"array","description":"Method of loading/unloading a vehicle","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Waypoint data","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"Waypoint ID in OSM database"},"osm_type":{"type":"string","description":"Waypoint type in OSM database"},"full_osm_id":{"type":"string","description":"Full ID of the waypoint in OSM database"},"position_type":{"type":"string","description":"General type of the waypoint in OSM database"},"is_radius":{"type":"boolean","description":"Determines whether a radius to extend the waypoint is set"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Radius (if specified) extending the waypoint, in meters","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Address of the waypoint","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":"Full name of the waypoint object"},"name":{"type":"string","description":"Given name of the waypoint object"},"lang":{"type":"string","description":"ISO 639-1 waypoint language code","nullable":true},"country_code":{"type":"string","description":"Alpha2 waypoint country code"},"country_name":{"type":"string","description":"Name of the waypoint country"},"state_name":{"type":"string","description":"The name of the internal administrative unit that the waypoint belongs to","nullable":true},"state_code":{"type":"string","description":"Code of the internal administrative unit that the waypoint belongs to","nullable":true},"city":{"type":"string","description":"The city that the waypoint belongs to","nullable":true},"district":{"type":"string","description":"The district of ​​the city that the waypoint belongs to","nullable":true},"sub_district":{"type":"string","description":"The microdistrict of the city that the waypoint belongs to","nullable":true},"street":{"type":"string","description":"The name of the street that the waypoint belongs to","nullable":true},"postal_code":{"type":"string","description":"The postal code that the waypoint belongs to","nullable":true},"house_number":{"type":"string","description":"The house number that the waypoint belongs to","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Geo json route points","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","format":"float"}}}},"OfferRouteWay":{"description":"Data of the calculated cargo transportation route","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Distance of the calculated route in meters"},"total_dur":{"type":"integer","description":"Duration of the calculated route in seconds"}}},"OfferTransportationRequirement":{"description":"Cargo transportation requirements","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Trailer interchange required"},"shipping_mode":{"type":"string","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"The type of vehicle required for cargo transportation. For example, LCV, special machinery, etc.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Vehicle body types required for cargo transportation","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":"Additional equipment required","nullable":true},"quantity":{"type":"string","description":"Number of cargo units","nullable":true}}},"OfferCargoUnit":{"description":"Cargo information for the cargo offer","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Name of cargo"},"type":{"type":"string","description":"Type of cargo","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":"Quantity of cargo, pcs.","nullable":true},"weight":{"type":"integer","format":"float","description":"Cargo weight, tons","nullable":true},"volume":{"type":"integer","format":"float","description":"Cargo volume, cubic meters","nullable":true},"adr_class":{"type":"string","description":"ADR cargo class","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":"Cargo length, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Cargo width, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Cargo height, meters","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum required transportation temperature, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum required transportation temperature, degrees Celsius","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Cargo price","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Cargo price currency"},"value":{"type":"integer","format":"float","description":"Cargo price in the specified currency"},"value_mask":{"type":"string","description":"Masked cargo price in the specified currency"}}},"OfferTransport":{"description":"Transport characteristics for transport offer","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":"Trailer interchange possibility"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Weight available for loading, tons","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Volume available for loading, cubic meters","nullable":true},"length":{"type":"integer","format":"float","description":"Length available for loading, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Width available for loading, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Height available for loading, meters","nullable":true},"shipping_mode":{"type":"array","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR class (cargo hazard class) approved for transportation","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":"Vehicle body type"},"equipment":{"type":"string","description":"Additional equipment","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Possible methods of loading into a vehicle.","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":"Show bid owner"},"allow_view_quote":{"type":"boolean","description":"Show bid"},"allow_view_comment":{"type":"boolean","description":"Show bid comments"}}},"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Request execution status","enum":["error"]},"message":{"type":"string","description":"Additional information"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Internal information from Roolz exchange platform to analyze the problem when executing a request","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/offer":{"post":{"tags":["exchange"],"operationId":"createSingleExchangeOfferById","summary":"Creating a single offer","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExchangeOfferCreateRequest"}}}},"responses":{"200":{"description":"Successful execution of the request","content":{"application/json":{"schema":{"type":"object","required":["offer"],"properties":{"offer":{"$ref":"#/components/schemas/ExchangeOffer"}}}}}},"400":{"description":"Error in input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Request not authorized. API key may be missing."},"403":{"description":"This operation is not permitted."}}}}}}
```

{% hint style="info" %}
This offer creation method allows creating an offer only in the `not_published` status. To publish an offer on the exchange, update the status of a single offer by unique ID (see below).
{% endhint %}

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

> Updating the status of a single offer by unique 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":"Test environment for development"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API key for authorizing requests in GET parameters","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API key for authorizing requests in 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":"Request execution status","enum":["error"]},"message":{"type":"string","description":"Additional information"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Internal information from Roolz exchange platform to analyze the problem when executing a request","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/offer/{id}/status":{"patch":{"tags":["exchange"],"operationId":"updateSingleExchangeOfferStatusById","summary":"Updating the status of a single offer by unique ID","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"},{"name":"id","in":"path","required":true,"description":"Unique offer ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}},"responses":{"200":{"description":"Successful execution of the request","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Error in input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Request not authorized. API key may be missing."},"403":{"description":"This operation is not permitted."}}}}}}
```

## DELETE /exchange/offer/{id}

> Deleting a single offer by unique 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":"Test environment for development"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API key for authorizing requests in GET parameters","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API key for authorizing requests in 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":"Request execution status","enum":["error"]},"message":{"type":"string","description":"Additional information"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Internal information from Roolz exchange platform to analyze the problem when executing a request","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/offer/{id}":{"delete":{"tags":["exchange"],"operationId":"deleteSingleExchangeOfferById","summary":"Deleting a single offer by unique ID","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"},{"name":"id","in":"path","required":true,"description":"Unique offer ID","schema":{"type":"string"}}],"responses":{"204":{"description":"Successful execution of the request"},"400":{"description":"Error in input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Request not authorized. API key may be missing."},"403":{"description":"This operation is not permitted."}}}}}}
```

## GET /exchange/company/offers/incoming

> Getting a paginated list of incoming offers on the private exchange

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"servers":[{"url":"https://api.test.roolz.tech/public-api/v1","description":"Test environment for development"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API key for authorizing requests in GET parameters","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API key for authorizing requests in 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":"Offer ID on Roolz exchange platform"},"name":{"type":"string","description":"Public name of the offer"},"type":{"type":"string","description":"Offer type","enum":["cargo","transport"]},"status":{"type":"string","description":"Current offer status","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]},"creation_method":{"type":"string","description":"Method of creating an offer. Possible options: manual, via API (api)","enum":["manual","api"]},"is_public":{"type":"boolean","description":"The offer is published on a public exchange"},"is_private":{"type":"boolean","description":"The offer is published on a private exchange"},"is_public_duplicate":{"type":"boolean","description":"A public duplicate has been created based on this offer."},"is_partners_selection":{"type":"boolean","description":"Partner selection option activated (for public duplicate)"},"company_id":{"type":"string","format":"UUID","description":"Internal owner-company ID of the offer on Roolz exchange platform"},"description":{"type":"string","description":"Additional description of the offer"},"assignee_users":{"type":"array","minItems":1,"description":"Users assigned as responsible for the offer. The field is only displayed for the owner of the offer and the for the incoming offers of the private exchange","items":{"$ref":"#/components/schemas/OfferAssigneeUser"}},"is_autoclosed":{"type":"boolean","description":"The offer has been closed (sent to archive) automatically"},"is_publication_autocanceled":{"type":"boolean","description":"The offer has been removed from publication automatically"},"publication_autocancel_type":{"type":"string","description":"Type (reason) of automatic offer removal from publication","nullable":true},"publication_autocancel_at":{"type":"string","description":"Date and time of the automatic offer removal from publication (in UTC)","nullable":true},"status_changed_at":{"type":"string","description":"Date and time of the last change in the offer status","nullable":true},"published_at":{"type":"string","description":"Date and time of the offer publication","nullable":true},"closed_at":{"type":"string","description":"Date and time of the offer closing (archiving)","nullable":true},"autoclose_at":{"type":"string","description":"Date and time of the automatic offer closing (archiving)","nullable":true},"is_all_private_partners":{"type":"boolean","description":"The offer on the private exchange will be received by all partners of the owner company. The field is only displayed in personal offers"},"private_partners":{"type":"array","minItems":0,"description":"IDs of partner companies that will receive private offer. The field is only displayed in personal offers","items":{"type":"string","format":"UUID"}},"payment":{"description":"Payment settings and details","$ref":"#/components/schemas/Payment"},"route":{"type":"array","description":"Waypoints in the offer","items":{"$ref":"#/components/schemas/OfferRoute"}},"route_way":{"description":"Calculated route","$ref":"#/components/schemas/OfferRouteWay"},"transportation_requirement":{"description":"Transportation requirements for cargo offers","$ref":"#/components/schemas/OfferTransportationRequirement"},"cargo_units":{"type":"array","description":"Cargo characteristics for cargo offers","nullable":true,"items":{"$ref":"#/components/schemas/OfferCargoUnit"}},"transport":{"description":"Transport characteristics for transport offers","nullable":true,"$ref":"#/components/schemas/OfferTransport"},"publication_lifetime":{"description":"Publication duration","nullable":true,"$ref":"#/components/schemas/PublicationLifetime"},"bid_privacy":{"description":"Bidding privacy","nullable":true,"$ref":"#/components/schemas/BidPrivacy"},"created_at":{"type":"string","description":"Date and time of the offer creation (in UTC)"},"updated_at":{"type":"string","description":"Date and time of the last offer change (in UTC)"}}},"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"User ID on Roolz exchange platform"},"contact_methods":{"type":"array","minItems":1,"description":"Methods of communication with the user","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Methods of communication with the user","enum":["phone","email"]},"value":{"type":"string","description":"Communication method"}}},"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Is there a prepayment"},"currency":{"type":"string","description":"Bidding currency"},"quote_is_vat":{"type":"boolean","description":"Bid with VAT","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Target transportation bid in the specified currency in the freight offer"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Additional bid. If the main bid was specified as a bid with VAT, then the additional bid is displayed as \"without VAT\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"VAT bid"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Bid in a transport offer; set per unit of mileage (kilometer, mile, etc.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Amount of prepayment in currency"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Prepayment amount as a percentage of the bid. Only integer values ​​up to 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Payment period in days"},"mileage_format":{"type":"string","nullable":true,"description":"Mileage unit for the bid in the transport offer (km, miles, etc.)"},"payment_condition":{"type":"string","description":"Payment terms","nullable":true},"payment_method":{"type":"string","description":"Payment method","nullable":true},"bid_mode":{"type":"string","description":"Bidding mode"},"bid_is_vat":{"type":"boolean","description":"Accept bids with VAT","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Accept bids without VAT","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Minimum auction step size"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Uniqueness of the bid within the space. Forbids/allows to place several bids at the same time (for example, to give different conditions in \"bidding mode\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Time for bid confirmation (in seconds)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}},"OfferRoute":{"description":"Waypoint","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Waypoint ordinal number"},"point_type":{"type":"string","description":"Type of waypoint on Roolz exchange platform","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Time zone of the waypoint in minute offset from UTC"},"point_timezone":{"type":"string","description":"TZ time zone ID of the waypoint"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Waypoint data"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Start date of the transportation operations at the waypoint"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"End date of the transportation operations at the waypoint","nullable":true},"loading_type":{"type":"array","description":"Method of loading/unloading a vehicle","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Waypoint data","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"Waypoint ID in OSM database"},"osm_type":{"type":"string","description":"Waypoint type in OSM database"},"full_osm_id":{"type":"string","description":"Full ID of the waypoint in OSM database"},"position_type":{"type":"string","description":"General type of the waypoint in OSM database"},"is_radius":{"type":"boolean","description":"Determines whether a radius to extend the waypoint is set"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Radius (if specified) extending the waypoint, in meters","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Address of the waypoint","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":"Full name of the waypoint object"},"name":{"type":"string","description":"Given name of the waypoint object"},"lang":{"type":"string","description":"ISO 639-1 waypoint language code","nullable":true},"country_code":{"type":"string","description":"Alpha2 waypoint country code"},"country_name":{"type":"string","description":"Name of the waypoint country"},"state_name":{"type":"string","description":"The name of the internal administrative unit that the waypoint belongs to","nullable":true},"state_code":{"type":"string","description":"Code of the internal administrative unit that the waypoint belongs to","nullable":true},"city":{"type":"string","description":"The city that the waypoint belongs to","nullable":true},"district":{"type":"string","description":"The district of ​​the city that the waypoint belongs to","nullable":true},"sub_district":{"type":"string","description":"The microdistrict of the city that the waypoint belongs to","nullable":true},"street":{"type":"string","description":"The name of the street that the waypoint belongs to","nullable":true},"postal_code":{"type":"string","description":"The postal code that the waypoint belongs to","nullable":true},"house_number":{"type":"string","description":"The house number that the waypoint belongs to","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Geo json route points","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":"Date"},"time":{"type":"string","format":"HH:mm:ss","description":"Time"}}},"OfferRouteWay":{"description":"Data of the calculated cargo transportation route","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Distance of the calculated route in meters"},"total_dur":{"type":"integer","description":"Duration of the calculated route in seconds"}}},"OfferTransportationRequirement":{"description":"Cargo transportation requirements","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Trailer interchange required"},"shipping_mode":{"type":"string","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"The type of vehicle required for cargo transportation. For example, LCV, special machinery, etc.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Vehicle body types required for cargo transportation","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":"Additional equipment required","nullable":true},"quantity":{"type":"string","description":"Number of cargo units","nullable":true}}},"OfferCargoUnit":{"description":"Cargo information for the cargo offer","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Name of cargo"},"type":{"type":"string","description":"Type of cargo","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":"Quantity of cargo, pcs.","nullable":true},"weight":{"type":"integer","format":"float","description":"Cargo weight, tons","nullable":true},"volume":{"type":"integer","format":"float","description":"Cargo volume, cubic meters","nullable":true},"adr_class":{"type":"string","description":"ADR cargo class","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":"Cargo length, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Cargo width, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Cargo height, meters","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum required transportation temperature, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum required transportation temperature, degrees Celsius","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Cargo price","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Cargo price currency"},"value":{"type":"integer","format":"float","description":"Cargo price in the specified currency"},"value_mask":{"type":"string","description":"Masked cargo price in the specified currency"}}},"OfferTransport":{"description":"Transport characteristics for transport offer","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":"Trailer interchange possibility"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Weight available for loading, tons","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Volume available for loading, cubic meters","nullable":true},"length":{"type":"integer","format":"float","description":"Length available for loading, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Width available for loading, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Height available for loading, meters","nullable":true},"shipping_mode":{"type":"array","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR class (cargo hazard class) approved for transportation","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":"Vehicle body type"},"equipment":{"type":"string","description":"Additional equipment","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Possible methods of loading into a vehicle.","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":"Show bid owner"},"allow_view_quote":{"type":"boolean","description":"Show bid"},"allow_view_comment":{"type":"boolean","description":"Show bid comments"}}},"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Request execution status","enum":["error"]},"message":{"type":"string","description":"Additional information"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Internal information from Roolz exchange platform to analyze the problem when executing a request","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/company/offers/incoming":{"get":{"tags":["exchange","companies"],"operationId":"getPrivateIncomingEchangeOffers","summary":"Getting a paginated list of incoming offers on the private exchange","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"},{"name":"limit","in":"query","required":false,"description":"Limit on the number of offers listed per pagination iteration","schema":{"type":"integer","minimum":1,"maximum":50,"default":25}},{"name":"offset","in":"query","required":false,"description":"Offset of the paginated selection of offers relative to the previous selection","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Successful execution of the request","content":{"application/json":{"schema":{"type":"object","required":["total","count","offers"],"properties":{"total":{"type":"integer","description":"Total number of offers listed"},"count":{"type":"integer","description":"Number of offers in this pagination iteration"},"offers":{"type":"array","items":{"$ref":"#/components/schemas/ExchangeOffer"}}}}}}},"400":{"description":"Error in input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Request not authorized. API key may be missing."},"403":{"description":"This operation is not permitted."}}}}}}
```

## GET /exchange/company/offers

> Receiving a paginated list of your 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":"Test environment for development"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API key for authorizing requests in GET parameters","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API key for authorizing requests in 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":"Offer ID on Roolz exchange platform"},"name":{"type":"string","description":"Public name of the offer"},"type":{"type":"string","description":"Offer type","enum":["cargo","transport"]},"status":{"type":"string","description":"Current offer status","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]},"creation_method":{"type":"string","description":"Method of creating an offer. Possible options: manual, via API (api)","enum":["manual","api"]},"is_public":{"type":"boolean","description":"The offer is published on a public exchange"},"is_private":{"type":"boolean","description":"The offer is published on a private exchange"},"is_public_duplicate":{"type":"boolean","description":"A public duplicate has been created based on this offer."},"is_partners_selection":{"type":"boolean","description":"Partner selection option activated (for public duplicate)"},"company_id":{"type":"string","format":"UUID","description":"Internal owner-company ID of the offer on Roolz exchange platform"},"description":{"type":"string","description":"Additional description of the offer"},"assignee_users":{"type":"array","minItems":1,"description":"Users assigned as responsible for the offer. The field is only displayed for the owner of the offer and the for the incoming offers of the private exchange","items":{"$ref":"#/components/schemas/OfferAssigneeUser"}},"is_autoclosed":{"type":"boolean","description":"The offer has been closed (sent to archive) automatically"},"is_publication_autocanceled":{"type":"boolean","description":"The offer has been removed from publication automatically"},"publication_autocancel_type":{"type":"string","description":"Type (reason) of automatic offer removal from publication","nullable":true},"publication_autocancel_at":{"type":"string","description":"Date and time of the automatic offer removal from publication (in UTC)","nullable":true},"status_changed_at":{"type":"string","description":"Date and time of the last change in the offer status","nullable":true},"published_at":{"type":"string","description":"Date and time of the offer publication","nullable":true},"closed_at":{"type":"string","description":"Date and time of the offer closing (archiving)","nullable":true},"autoclose_at":{"type":"string","description":"Date and time of the automatic offer closing (archiving)","nullable":true},"is_all_private_partners":{"type":"boolean","description":"The offer on the private exchange will be received by all partners of the owner company. The field is only displayed in personal offers"},"private_partners":{"type":"array","minItems":0,"description":"IDs of partner companies that will receive private offer. The field is only displayed in personal offers","items":{"type":"string","format":"UUID"}},"payment":{"description":"Payment settings and details","$ref":"#/components/schemas/Payment"},"route":{"type":"array","description":"Waypoints in the offer","items":{"$ref":"#/components/schemas/OfferRoute"}},"route_way":{"description":"Calculated route","$ref":"#/components/schemas/OfferRouteWay"},"transportation_requirement":{"description":"Transportation requirements for cargo offers","$ref":"#/components/schemas/OfferTransportationRequirement"},"cargo_units":{"type":"array","description":"Cargo characteristics for cargo offers","nullable":true,"items":{"$ref":"#/components/schemas/OfferCargoUnit"}},"transport":{"description":"Transport characteristics for transport offers","nullable":true,"$ref":"#/components/schemas/OfferTransport"},"publication_lifetime":{"description":"Publication duration","nullable":true,"$ref":"#/components/schemas/PublicationLifetime"},"bid_privacy":{"description":"Bidding privacy","nullable":true,"$ref":"#/components/schemas/BidPrivacy"},"created_at":{"type":"string","description":"Date and time of the offer creation (in UTC)"},"updated_at":{"type":"string","description":"Date and time of the last offer change (in UTC)"}}},"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"User ID on Roolz exchange platform"},"contact_methods":{"type":"array","minItems":1,"description":"Methods of communication with the user","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Methods of communication with the user","enum":["phone","email"]},"value":{"type":"string","description":"Communication method"}}},"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Is there a prepayment"},"currency":{"type":"string","description":"Bidding currency"},"quote_is_vat":{"type":"boolean","description":"Bid with VAT","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Target transportation bid in the specified currency in the freight offer"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Additional bid. If the main bid was specified as a bid with VAT, then the additional bid is displayed as \"without VAT\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"VAT bid"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Bid in a transport offer; set per unit of mileage (kilometer, mile, etc.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Amount of prepayment in currency"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Prepayment amount as a percentage of the bid. Only integer values ​​up to 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Payment period in days"},"mileage_format":{"type":"string","nullable":true,"description":"Mileage unit for the bid in the transport offer (km, miles, etc.)"},"payment_condition":{"type":"string","description":"Payment terms","nullable":true},"payment_method":{"type":"string","description":"Payment method","nullable":true},"bid_mode":{"type":"string","description":"Bidding mode"},"bid_is_vat":{"type":"boolean","description":"Accept bids with VAT","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Accept bids without VAT","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Minimum auction step size"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Uniqueness of the bid within the space. Forbids/allows to place several bids at the same time (for example, to give different conditions in \"bidding mode\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Time for bid confirmation (in seconds)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}},"OfferRoute":{"description":"Waypoint","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Waypoint ordinal number"},"point_type":{"type":"string","description":"Type of waypoint on Roolz exchange platform","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Time zone of the waypoint in minute offset from UTC"},"point_timezone":{"type":"string","description":"TZ time zone ID of the waypoint"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Waypoint data"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Start date of the transportation operations at the waypoint"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"End date of the transportation operations at the waypoint","nullable":true},"loading_type":{"type":"array","description":"Method of loading/unloading a vehicle","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Waypoint data","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"Waypoint ID in OSM database"},"osm_type":{"type":"string","description":"Waypoint type in OSM database"},"full_osm_id":{"type":"string","description":"Full ID of the waypoint in OSM database"},"position_type":{"type":"string","description":"General type of the waypoint in OSM database"},"is_radius":{"type":"boolean","description":"Determines whether a radius to extend the waypoint is set"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Radius (if specified) extending the waypoint, in meters","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Address of the waypoint","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":"Full name of the waypoint object"},"name":{"type":"string","description":"Given name of the waypoint object"},"lang":{"type":"string","description":"ISO 639-1 waypoint language code","nullable":true},"country_code":{"type":"string","description":"Alpha2 waypoint country code"},"country_name":{"type":"string","description":"Name of the waypoint country"},"state_name":{"type":"string","description":"The name of the internal administrative unit that the waypoint belongs to","nullable":true},"state_code":{"type":"string","description":"Code of the internal administrative unit that the waypoint belongs to","nullable":true},"city":{"type":"string","description":"The city that the waypoint belongs to","nullable":true},"district":{"type":"string","description":"The district of ​​the city that the waypoint belongs to","nullable":true},"sub_district":{"type":"string","description":"The microdistrict of the city that the waypoint belongs to","nullable":true},"street":{"type":"string","description":"The name of the street that the waypoint belongs to","nullable":true},"postal_code":{"type":"string","description":"The postal code that the waypoint belongs to","nullable":true},"house_number":{"type":"string","description":"The house number that the waypoint belongs to","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Geo json route points","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":"Date"},"time":{"type":"string","format":"HH:mm:ss","description":"Time"}}},"OfferRouteWay":{"description":"Data of the calculated cargo transportation route","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Distance of the calculated route in meters"},"total_dur":{"type":"integer","description":"Duration of the calculated route in seconds"}}},"OfferTransportationRequirement":{"description":"Cargo transportation requirements","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Trailer interchange required"},"shipping_mode":{"type":"string","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"The type of vehicle required for cargo transportation. For example, LCV, special machinery, etc.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Vehicle body types required for cargo transportation","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":"Additional equipment required","nullable":true},"quantity":{"type":"string","description":"Number of cargo units","nullable":true}}},"OfferCargoUnit":{"description":"Cargo information for the cargo offer","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Name of cargo"},"type":{"type":"string","description":"Type of cargo","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":"Quantity of cargo, pcs.","nullable":true},"weight":{"type":"integer","format":"float","description":"Cargo weight, tons","nullable":true},"volume":{"type":"integer","format":"float","description":"Cargo volume, cubic meters","nullable":true},"adr_class":{"type":"string","description":"ADR cargo class","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":"Cargo length, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Cargo width, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Cargo height, meters","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum required transportation temperature, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum required transportation temperature, degrees Celsius","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Cargo price","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Cargo price currency"},"value":{"type":"integer","format":"float","description":"Cargo price in the specified currency"},"value_mask":{"type":"string","description":"Masked cargo price in the specified currency"}}},"OfferTransport":{"description":"Transport characteristics for transport offer","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":"Trailer interchange possibility"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Weight available for loading, tons","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Volume available for loading, cubic meters","nullable":true},"length":{"type":"integer","format":"float","description":"Length available for loading, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Width available for loading, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Height available for loading, meters","nullable":true},"shipping_mode":{"type":"array","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR class (cargo hazard class) approved for transportation","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":"Vehicle body type"},"equipment":{"type":"string","description":"Additional equipment","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Possible methods of loading into a vehicle.","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":"Show bid owner"},"allow_view_quote":{"type":"boolean","description":"Show bid"},"allow_view_comment":{"type":"boolean","description":"Show bid comments"}}},"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Request execution status","enum":["error"]},"message":{"type":"string","description":"Additional information"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Internal information from Roolz exchange platform to analyze the problem when executing a request","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/company/offers":{"get":{"tags":["exchange","companies"],"operationId":"getMyExchangeOffers","summary":"Receiving a paginated list of your offers","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"},{"name":"limit","in":"query","required":false,"description":"Limit on the number of offers listed per pagination iteration","schema":{"type":"integer","minimum":1,"maximum":50,"default":25}},{"name":"offset","in":"query","required":false,"description":"Offset of the paginated selection of offers relative to the previous selection","schema":{"type":"integer","minimum":0,"default":0}},{"name":"offers_status","in":"query","required":false,"description":"Select offers of a certain status (except the deleted ones)","schema":{"type":"string","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]}},{"name":"offers_type","in":"query","required":false,"description":"Select offers of a certain type","schema":{"type":"string","enum":["cargo","transport"]}}],"responses":{"200":{"description":"Successful execution of the request","content":{"application/json":{"schema":{"type":"object","required":["total","count","offers"],"properties":{"total":{"type":"integer","description":"Total number of offers listed"},"count":{"type":"integer","description":"Number of offers in this pagination iteration"},"offers":{"type":"array","items":{"$ref":"#/components/schemas/ExchangeOffer"}}}}}}},"400":{"description":"Error in input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Request not authorized. API key may be missing."},"403":{"description":"This operation is not permitted."}}}}}}
```

## GET /exchange/offer/{id}

> Getting an offer by the unique 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":"Test environment for development"}],"security":[{"getKey":[]},{"headerKey":[]}],"components":{"securitySchemes":{"getKey":{"type":"apiKey","description":"API key for authorizing requests in GET parameters","name":"apikey","in":"query"},"headerKey":{"type":"apiKey","description":"API key for authorizing requests in 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":"Offer ID on Roolz exchange platform"},"name":{"type":"string","description":"Public name of the offer"},"type":{"type":"string","description":"Offer type","enum":["cargo","transport"]},"status":{"type":"string","description":"Current offer status","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]},"creation_method":{"type":"string","description":"Method of creating an offer. Possible options: manual, via API (api)","enum":["manual","api"]},"is_public":{"type":"boolean","description":"The offer is published on a public exchange"},"is_private":{"type":"boolean","description":"The offer is published on a private exchange"},"is_public_duplicate":{"type":"boolean","description":"A public duplicate has been created based on this offer."},"is_partners_selection":{"type":"boolean","description":"Partner selection option activated (for public duplicate)"},"company_id":{"type":"string","format":"UUID","description":"Internal owner-company ID of the offer on Roolz exchange platform"},"description":{"type":"string","description":"Additional description of the offer"},"assignee_users":{"type":"array","minItems":1,"description":"Users assigned as responsible for the offer. The field is only displayed for the owner of the offer and the for the incoming offers of the private exchange","items":{"$ref":"#/components/schemas/OfferAssigneeUser"}},"is_autoclosed":{"type":"boolean","description":"The offer has been closed (sent to archive) automatically"},"is_publication_autocanceled":{"type":"boolean","description":"The offer has been removed from publication automatically"},"publication_autocancel_type":{"type":"string","description":"Type (reason) of automatic offer removal from publication","nullable":true},"publication_autocancel_at":{"type":"string","description":"Date and time of the automatic offer removal from publication (in UTC)","nullable":true},"status_changed_at":{"type":"string","description":"Date and time of the last change in the offer status","nullable":true},"published_at":{"type":"string","description":"Date and time of the offer publication","nullable":true},"closed_at":{"type":"string","description":"Date and time of the offer closing (archiving)","nullable":true},"autoclose_at":{"type":"string","description":"Date and time of the automatic offer closing (archiving)","nullable":true},"is_all_private_partners":{"type":"boolean","description":"The offer on the private exchange will be received by all partners of the owner company. The field is only displayed in personal offers"},"private_partners":{"type":"array","minItems":0,"description":"IDs of partner companies that will receive private offer. The field is only displayed in personal offers","items":{"type":"string","format":"UUID"}},"payment":{"description":"Payment settings and details","$ref":"#/components/schemas/Payment"},"route":{"type":"array","description":"Waypoints in the offer","items":{"$ref":"#/components/schemas/OfferRoute"}},"route_way":{"description":"Calculated route","$ref":"#/components/schemas/OfferRouteWay"},"transportation_requirement":{"description":"Transportation requirements for cargo offers","$ref":"#/components/schemas/OfferTransportationRequirement"},"cargo_units":{"type":"array","description":"Cargo characteristics for cargo offers","nullable":true,"items":{"$ref":"#/components/schemas/OfferCargoUnit"}},"transport":{"description":"Transport characteristics for transport offers","nullable":true,"$ref":"#/components/schemas/OfferTransport"},"publication_lifetime":{"description":"Publication duration","nullable":true,"$ref":"#/components/schemas/PublicationLifetime"},"bid_privacy":{"description":"Bidding privacy","nullable":true,"$ref":"#/components/schemas/BidPrivacy"},"created_at":{"type":"string","description":"Date and time of the offer creation (in UTC)"},"updated_at":{"type":"string","description":"Date and time of the last offer change (in UTC)"}}},"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"User ID on Roolz exchange platform"},"contact_methods":{"type":"array","minItems":1,"description":"Methods of communication with the user","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Methods of communication with the user","enum":["phone","email"]},"value":{"type":"string","description":"Communication method"}}},"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Is there a prepayment"},"currency":{"type":"string","description":"Bidding currency"},"quote_is_vat":{"type":"boolean","description":"Bid with VAT","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Target transportation bid in the specified currency in the freight offer"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Additional bid. If the main bid was specified as a bid with VAT, then the additional bid is displayed as \"without VAT\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"VAT bid"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Bid in a transport offer; set per unit of mileage (kilometer, mile, etc.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Amount of prepayment in currency"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Prepayment amount as a percentage of the bid. Only integer values ​​up to 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Payment period in days"},"mileage_format":{"type":"string","nullable":true,"description":"Mileage unit for the bid in the transport offer (km, miles, etc.)"},"payment_condition":{"type":"string","description":"Payment terms","nullable":true},"payment_method":{"type":"string","description":"Payment method","nullable":true},"bid_mode":{"type":"string","description":"Bidding mode"},"bid_is_vat":{"type":"boolean","description":"Accept bids with VAT","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Accept bids without VAT","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Minimum auction step size"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Uniqueness of the bid within the space. Forbids/allows to place several bids at the same time (for example, to give different conditions in \"bidding mode\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Time for bid confirmation (in seconds)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}},"OfferRoute":{"description":"Waypoint","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Waypoint ordinal number"},"point_type":{"type":"string","description":"Type of waypoint on Roolz exchange platform","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Time zone of the waypoint in minute offset from UTC"},"point_timezone":{"type":"string","description":"TZ time zone ID of the waypoint"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Waypoint data"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Start date of the transportation operations at the waypoint"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"End date of the transportation operations at the waypoint","nullable":true},"loading_type":{"type":"array","description":"Method of loading/unloading a vehicle","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Waypoint data","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"Waypoint ID in OSM database"},"osm_type":{"type":"string","description":"Waypoint type in OSM database"},"full_osm_id":{"type":"string","description":"Full ID of the waypoint in OSM database"},"position_type":{"type":"string","description":"General type of the waypoint in OSM database"},"is_radius":{"type":"boolean","description":"Determines whether a radius to extend the waypoint is set"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Radius (if specified) extending the waypoint, in meters","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Address of the waypoint","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":"Full name of the waypoint object"},"name":{"type":"string","description":"Given name of the waypoint object"},"lang":{"type":"string","description":"ISO 639-1 waypoint language code","nullable":true},"country_code":{"type":"string","description":"Alpha2 waypoint country code"},"country_name":{"type":"string","description":"Name of the waypoint country"},"state_name":{"type":"string","description":"The name of the internal administrative unit that the waypoint belongs to","nullable":true},"state_code":{"type":"string","description":"Code of the internal administrative unit that the waypoint belongs to","nullable":true},"city":{"type":"string","description":"The city that the waypoint belongs to","nullable":true},"district":{"type":"string","description":"The district of ​​the city that the waypoint belongs to","nullable":true},"sub_district":{"type":"string","description":"The microdistrict of the city that the waypoint belongs to","nullable":true},"street":{"type":"string","description":"The name of the street that the waypoint belongs to","nullable":true},"postal_code":{"type":"string","description":"The postal code that the waypoint belongs to","nullable":true},"house_number":{"type":"string","description":"The house number that the waypoint belongs to","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Geo json route points","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":"Date"},"time":{"type":"string","format":"HH:mm:ss","description":"Time"}}},"OfferRouteWay":{"description":"Data of the calculated cargo transportation route","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Distance of the calculated route in meters"},"total_dur":{"type":"integer","description":"Duration of the calculated route in seconds"}}},"OfferTransportationRequirement":{"description":"Cargo transportation requirements","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Trailer interchange required"},"shipping_mode":{"type":"string","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"The type of vehicle required for cargo transportation. For example, LCV, special machinery, etc.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Vehicle body types required for cargo transportation","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":"Additional equipment required","nullable":true},"quantity":{"type":"string","description":"Number of cargo units","nullable":true}}},"OfferCargoUnit":{"description":"Cargo information for the cargo offer","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Name of cargo"},"type":{"type":"string","description":"Type of cargo","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":"Quantity of cargo, pcs.","nullable":true},"weight":{"type":"integer","format":"float","description":"Cargo weight, tons","nullable":true},"volume":{"type":"integer","format":"float","description":"Cargo volume, cubic meters","nullable":true},"adr_class":{"type":"string","description":"ADR cargo class","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":"Cargo length, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Cargo width, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Cargo height, meters","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum required transportation temperature, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum required transportation temperature, degrees Celsius","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Cargo price","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Cargo price currency"},"value":{"type":"integer","format":"float","description":"Cargo price in the specified currency"},"value_mask":{"type":"string","description":"Masked cargo price in the specified currency"}}},"OfferTransport":{"description":"Transport characteristics for transport offer","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":"Trailer interchange possibility"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Weight available for loading, tons","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Volume available for loading, cubic meters","nullable":true},"length":{"type":"integer","format":"float","description":"Length available for loading, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Width available for loading, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Height available for loading, meters","nullable":true},"shipping_mode":{"type":"array","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR class (cargo hazard class) approved for transportation","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":"Vehicle body type"},"equipment":{"type":"string","description":"Additional equipment","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Possible methods of loading into a vehicle.","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":"Show bid owner"},"allow_view_quote":{"type":"boolean","description":"Show bid"},"allow_view_comment":{"type":"boolean","description":"Show bid comments"}}},"ErrorObject":{"required":["state","message","internal"],"properties":{"state":{"type":"string","description":"Request execution status","enum":["error"]},"message":{"type":"string","description":"Additional information"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Internal information from Roolz exchange platform to analyze the problem when executing a request","required":["roolz_debug_id"],"properties":{"roolz_debug_id":{"type":"string"}}}}}}},"paths":{"/exchange/offer/{id}":{"get":{"tags":["exchange"],"operationId":"getSimgleExchangeOfferById","summary":"Getting an offer by the unique ID","parameters":[{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/AcceptEncodingHeader"},{"name":"id","in":"path","required":true,"description":"Unique offer ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful execution of the request","content":{"application/json":{"schema":{"type":"object","required":["offer"],"properties":{"offer":{"$ref":"#/components/schemas/ExchangeOffer"}}}}}},"400":{"description":"Error in input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorObject"}}}},"401":{"description":"Request not authorized. API key may be missing."},"403":{"description":"This operation is not permitted."}}}}}}
```

## 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":"Request execution status","enum":["error"]},"message":{"type":"string","description":"Additional information"},"validations":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"path":{"type":"string"},"reason":{"type":"string"}}}},"internal":{"type":"object","description":"Internal information from Roolz exchange platform to analyze the problem when executing a request","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":"Date"},"time":{"type":"string","format":"HH:mm:ss","description":"Time"}}}}}}
```

## The OfferRouteLocationAccessPoint object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferRouteLocationAccessPoint":{"description":"Geo json route points","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","format":"float"}}}}}}}
```

## The OfferRouteLocationAddress object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferRouteLocationAddress":{"description":"Address of the waypoint","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":"Full name of the waypoint object"},"name":{"type":"string","description":"Given name of the waypoint object"},"lang":{"type":"string","description":"ISO 639-1 waypoint language code","nullable":true},"country_code":{"type":"string","description":"Alpha2 waypoint country code"},"country_name":{"type":"string","description":"Name of the waypoint country"},"state_name":{"type":"string","description":"The name of the internal administrative unit that the waypoint belongs to","nullable":true},"state_code":{"type":"string","description":"Code of the internal administrative unit that the waypoint belongs to","nullable":true},"city":{"type":"string","description":"The city that the waypoint belongs to","nullable":true},"district":{"type":"string","description":"The district of ​​the city that the waypoint belongs to","nullable":true},"sub_district":{"type":"string","description":"The microdistrict of the city that the waypoint belongs to","nullable":true},"street":{"type":"string","description":"The name of the street that the waypoint belongs to","nullable":true},"postal_code":{"type":"string","description":"The postal code that the waypoint belongs to","nullable":true},"house_number":{"type":"string","description":"The house number that the waypoint belongs to","nullable":true}}}}}}
```

## The OfferRouteLocation object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferRouteLocation":{"description":"Waypoint data","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"Waypoint ID in OSM database"},"osm_type":{"type":"string","description":"Waypoint type in OSM database"},"full_osm_id":{"type":"string","description":"Full ID of the waypoint in OSM database"},"position_type":{"type":"string","description":"General type of the waypoint in OSM database"},"is_radius":{"type":"boolean","description":"Determines whether a radius to extend the waypoint is set"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Radius (if specified) extending the waypoint, in meters","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Address of the waypoint","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":"Full name of the waypoint object"},"name":{"type":"string","description":"Given name of the waypoint object"},"lang":{"type":"string","description":"ISO 639-1 waypoint language code","nullable":true},"country_code":{"type":"string","description":"Alpha2 waypoint country code"},"country_name":{"type":"string","description":"Name of the waypoint country"},"state_name":{"type":"string","description":"The name of the internal administrative unit that the waypoint belongs to","nullable":true},"state_code":{"type":"string","description":"Code of the internal administrative unit that the waypoint belongs to","nullable":true},"city":{"type":"string","description":"The city that the waypoint belongs to","nullable":true},"district":{"type":"string","description":"The district of ​​the city that the waypoint belongs to","nullable":true},"sub_district":{"type":"string","description":"The microdistrict of the city that the waypoint belongs to","nullable":true},"street":{"type":"string","description":"The name of the street that the waypoint belongs to","nullable":true},"postal_code":{"type":"string","description":"The postal code that the waypoint belongs to","nullable":true},"house_number":{"type":"string","description":"The house number that the waypoint belongs to","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Geo json route points","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":"Waypoint","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Waypoint ordinal number"},"point_type":{"type":"string","description":"Type of waypoint on Roolz exchange platform","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Time zone of the waypoint in minute offset from UTC"},"point_timezone":{"type":"string","description":"TZ time zone ID of the waypoint"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Waypoint data"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Start date of the transportation operations at the waypoint"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"End date of the transportation operations at the waypoint","nullable":true},"loading_type":{"type":"array","description":"Method of loading/unloading a vehicle","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Waypoint data","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"Waypoint ID in OSM database"},"osm_type":{"type":"string","description":"Waypoint type in OSM database"},"full_osm_id":{"type":"string","description":"Full ID of the waypoint in OSM database"},"position_type":{"type":"string","description":"General type of the waypoint in OSM database"},"is_radius":{"type":"boolean","description":"Determines whether a radius to extend the waypoint is set"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Radius (if specified) extending the waypoint, in meters","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Address of the waypoint","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":"Full name of the waypoint object"},"name":{"type":"string","description":"Given name of the waypoint object"},"lang":{"type":"string","description":"ISO 639-1 waypoint language code","nullable":true},"country_code":{"type":"string","description":"Alpha2 waypoint country code"},"country_name":{"type":"string","description":"Name of the waypoint country"},"state_name":{"type":"string","description":"The name of the internal administrative unit that the waypoint belongs to","nullable":true},"state_code":{"type":"string","description":"Code of the internal administrative unit that the waypoint belongs to","nullable":true},"city":{"type":"string","description":"The city that the waypoint belongs to","nullable":true},"district":{"type":"string","description":"The district of ​​the city that the waypoint belongs to","nullable":true},"sub_district":{"type":"string","description":"The microdistrict of the city that the waypoint belongs to","nullable":true},"street":{"type":"string","description":"The name of the street that the waypoint belongs to","nullable":true},"postal_code":{"type":"string","description":"The postal code that the waypoint belongs to","nullable":true},"house_number":{"type":"string","description":"The house number that the waypoint belongs to","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Geo json route points","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":"Date"},"time":{"type":"string","format":"HH:mm:ss","description":"Time"}}}}}}
```

## The OfferRouteWay object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferRouteWay":{"description":"Data of the calculated cargo transportation route","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Distance of the calculated route in meters"},"total_dur":{"type":"integer","description":"Duration of the calculated route in seconds"}}}}}}
```

## The OfferTransportationRequirement object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferTransportationRequirement":{"description":"Cargo transportation requirements","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Trailer interchange required"},"shipping_mode":{"type":"string","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"The type of vehicle required for cargo transportation. For example, LCV, special machinery, etc.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Vehicle body types required for cargo transportation","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":"Additional equipment required","nullable":true},"quantity":{"type":"string","description":"Number of cargo units","nullable":true}}}}}}
```

## The OfferCargoUnit object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferCargoUnit":{"description":"Cargo information for the cargo offer","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Name of cargo"},"type":{"type":"string","description":"Type of cargo","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":"Quantity of cargo, pcs.","nullable":true},"weight":{"type":"integer","format":"float","description":"Cargo weight, tons","nullable":true},"volume":{"type":"integer","format":"float","description":"Cargo volume, cubic meters","nullable":true},"adr_class":{"type":"string","description":"ADR cargo class","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":"Cargo length, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Cargo width, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Cargo height, meters","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum required transportation temperature, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum required transportation temperature, degrees Celsius","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Cargo price","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Cargo price currency"},"value":{"type":"integer","format":"float","description":"Cargo price in the specified currency"},"value_mask":{"type":"string","description":"Masked cargo price in the specified currency"}}}}}}
```

## The OfferCargoPrice object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Cargo price currency"},"value":{"type":"integer","format":"float","description":"Cargo price in the specified currency"},"value_mask":{"type":"string","description":"Masked cargo price in the specified currency"}}}}}}
```

## The OfferTransport object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"OfferTransport":{"description":"Transport characteristics for transport offer","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":"Trailer interchange possibility"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Weight available for loading, tons","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Volume available for loading, cubic meters","nullable":true},"length":{"type":"integer","format":"float","description":"Length available for loading, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Width available for loading, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Height available for loading, meters","nullable":true},"shipping_mode":{"type":"array","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR class (cargo hazard class) approved for transportation","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":"Vehicle body type"},"equipment":{"type":"string","description":"Additional equipment","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Possible methods of loading into a vehicle.","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":"Methods of communication with the user","enum":["phone","email"]},"value":{"type":"string","description":"Communication method"}}}}}}
```

## 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":"User ID on Roolz exchange platform"},"contact_methods":{"type":"array","minItems":1,"description":"Methods of communication with the user","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Methods of communication with the user","enum":["phone","email"]},"value":{"type":"string","description":"Communication method"}}}}}}
```

## 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":"Show bid owner"},"allow_view_quote":{"type":"boolean","description":"Show bid"},"allow_view_comment":{"type":"boolean","description":"Show bid comments"}}}}}}
```

## 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":"Is there a prepayment"},"currency":{"type":"string","description":"Bidding currency"},"quote_is_vat":{"type":"boolean","description":"Bid with VAT","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Target transportation bid in the specified currency in the freight offer"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Additional bid. If the main bid was specified as a bid with VAT, then the additional bid is displayed as \"without VAT\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"VAT bid"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Bid in a transport offer; set per unit of mileage (kilometer, mile, etc.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Amount of prepayment in currency"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Prepayment amount as a percentage of the bid. Only integer values ​​up to 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Payment period in days"},"mileage_format":{"type":"string","nullable":true,"description":"Mileage unit for the bid in the transport offer (km, miles, etc.)"},"payment_condition":{"type":"string","description":"Payment terms","nullable":true},"payment_method":{"type":"string","description":"Payment method","nullable":true},"bid_mode":{"type":"string","description":"Bidding mode"},"bid_is_vat":{"type":"boolean","description":"Accept bids with VAT","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Accept bids without VAT","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Minimum auction step size"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Uniqueness of the bid within the space. Forbids/allows to place several bids at the same time (for example, to give different conditions in \"bidding mode\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Time for bid confirmation (in seconds)"},"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":"Offer ID on Roolz exchange platform"},"name":{"type":"string","description":"Public name of the offer"},"type":{"type":"string","description":"Offer type","enum":["cargo","transport"]},"status":{"type":"string","description":"Current offer status","enum":["not_published","published","await_confirm","confirmation","deal_made","closed"]},"creation_method":{"type":"string","description":"Method of creating an offer. Possible options: manual, via API (api)","enum":["manual","api"]},"is_public":{"type":"boolean","description":"The offer is published on a public exchange"},"is_private":{"type":"boolean","description":"The offer is published on a private exchange"},"is_public_duplicate":{"type":"boolean","description":"A public duplicate has been created based on this offer."},"is_partners_selection":{"type":"boolean","description":"Partner selection option activated (for public duplicate)"},"company_id":{"type":"string","format":"UUID","description":"Internal owner-company ID of the offer on Roolz exchange platform"},"description":{"type":"string","description":"Additional description of the offer"},"assignee_users":{"type":"array","minItems":1,"description":"Users assigned as responsible for the offer. The field is only displayed for the owner of the offer and the for the incoming offers of the private exchange","items":{"$ref":"#/components/schemas/OfferAssigneeUser"}},"is_autoclosed":{"type":"boolean","description":"The offer has been closed (sent to archive) automatically"},"is_publication_autocanceled":{"type":"boolean","description":"The offer has been removed from publication automatically"},"publication_autocancel_type":{"type":"string","description":"Type (reason) of automatic offer removal from publication","nullable":true},"publication_autocancel_at":{"type":"string","description":"Date and time of the automatic offer removal from publication (in UTC)","nullable":true},"status_changed_at":{"type":"string","description":"Date and time of the last change in the offer status","nullable":true},"published_at":{"type":"string","description":"Date and time of the offer publication","nullable":true},"closed_at":{"type":"string","description":"Date and time of the offer closing (archiving)","nullable":true},"autoclose_at":{"type":"string","description":"Date and time of the automatic offer closing (archiving)","nullable":true},"is_all_private_partners":{"type":"boolean","description":"The offer on the private exchange will be received by all partners of the owner company. The field is only displayed in personal offers"},"private_partners":{"type":"array","minItems":0,"description":"IDs of partner companies that will receive private offer. The field is only displayed in personal offers","items":{"type":"string","format":"UUID"}},"payment":{"description":"Payment settings and details","$ref":"#/components/schemas/Payment"},"route":{"type":"array","description":"Waypoints in the offer","items":{"$ref":"#/components/schemas/OfferRoute"}},"route_way":{"description":"Calculated route","$ref":"#/components/schemas/OfferRouteWay"},"transportation_requirement":{"description":"Transportation requirements for cargo offers","$ref":"#/components/schemas/OfferTransportationRequirement"},"cargo_units":{"type":"array","description":"Cargo characteristics for cargo offers","nullable":true,"items":{"$ref":"#/components/schemas/OfferCargoUnit"}},"transport":{"description":"Transport characteristics for transport offers","nullable":true,"$ref":"#/components/schemas/OfferTransport"},"publication_lifetime":{"description":"Publication duration","nullable":true,"$ref":"#/components/schemas/PublicationLifetime"},"bid_privacy":{"description":"Bidding privacy","nullable":true,"$ref":"#/components/schemas/BidPrivacy"},"created_at":{"type":"string","description":"Date and time of the offer creation (in UTC)"},"updated_at":{"type":"string","description":"Date and time of the last offer change (in UTC)"}}},"OfferAssigneeUser":{"required":["id","contact_methods"],"properties":{"id":{"type":"string","format":"UUID","description":"User ID on Roolz exchange platform"},"contact_methods":{"type":"array","minItems":1,"description":"Methods of communication with the user","items":{"$ref":"#/components/schemas/UserContactMethod"}}}},"UserContactMethod":{"required":["method","value"],"properties":{"method":{"type":"string","description":"Methods of communication with the user","enum":["phone","email"]},"value":{"type":"string","description":"Communication method"}}},"Payment":{"properties":{"is_prepay":{"type":"boolean","description":"Is there a prepayment"},"currency":{"type":"string","description":"Bidding currency"},"quote_is_vat":{"type":"boolean","description":"Bid with VAT","nullable":true},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Target transportation bid in the specified currency in the freight offer"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Additional bid. If the main bid was specified as a bid with VAT, then the additional bid is displayed as \"without VAT\""},"vat":{"type":"number","format":"decimal","nullable":true,"description":"VAT bid"},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Bid in a transport offer; set per unit of mileage (kilometer, mile, etc.)"},"prepay_amount":{"type":"number","format":"decimal","nullable":true,"description":"Amount of prepayment in currency"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Prepayment amount as a percentage of the bid. Only integer values ​​up to 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Payment period in days"},"mileage_format":{"type":"string","nullable":true,"description":"Mileage unit for the bid in the transport offer (km, miles, etc.)"},"payment_condition":{"type":"string","description":"Payment terms","nullable":true},"payment_method":{"type":"string","description":"Payment method","nullable":true},"bid_mode":{"type":"string","description":"Bidding mode"},"bid_is_vat":{"type":"boolean","description":"Accept bids with VAT","nullable":true},"bid_is_no_vat":{"type":"boolean","description":"Accept bids without VAT","nullable":true},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Minimum auction step size"},"bid_is_auto_accept":{"type":"boolean","nullable":true},"bid_is_not_unique":{"type":"boolean","description":"Uniqueness of the bid within the space. Forbids/allows to place several bids at the same time (for example, to give different conditions in \"bidding mode\")"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Time for bid confirmation (in seconds)"},"allow_first_bid_no_step":{"type":"boolean","nullable":true}}},"OfferRoute":{"description":"Waypoint","required":["order","point_type","time_zone","point_timezone","location","start_datetime","end_datetime","loading_type"],"properties":{"order":{"type":"integer","description":"Waypoint ordinal number"},"point_type":{"type":"string","description":"Type of waypoint on Roolz exchange platform","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Time zone of the waypoint in minute offset from UTC"},"point_timezone":{"type":"string","description":"TZ time zone ID of the waypoint"},"location":{"$ref":"#/components/schemas/OfferRouteLocation","description":"Waypoint data"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Start date of the transportation operations at the waypoint"},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"End date of the transportation operations at the waypoint","nullable":true},"loading_type":{"type":"array","description":"Method of loading/unloading a vehicle","nullable":true,"items":{"type":"string"}}}},"OfferRouteLocation":{"description":"Waypoint data","required":["osm_id","osm_type","full_osm_id","position_type","is_radius","address","radius","access_point"],"properties":{"osm_id":{"type":"integer","description":"Waypoint ID in OSM database"},"osm_type":{"type":"string","description":"Waypoint type in OSM database"},"full_osm_id":{"type":"string","description":"Full ID of the waypoint in OSM database"},"position_type":{"type":"string","description":"General type of the waypoint in OSM database"},"is_radius":{"type":"boolean","description":"Determines whether a radius to extend the waypoint is set"},"address":{"$ref":"#/components/schemas/OfferRouteLocationAddress"},"radius":{"type":"integer","description":"Radius (if specified) extending the waypoint, in meters","nullable":true},"access_point":{"$ref":"#/components/schemas/OfferRouteLocationAccessPoint"}}},"OfferRouteLocationAddress":{"description":"Address of the waypoint","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":"Full name of the waypoint object"},"name":{"type":"string","description":"Given name of the waypoint object"},"lang":{"type":"string","description":"ISO 639-1 waypoint language code","nullable":true},"country_code":{"type":"string","description":"Alpha2 waypoint country code"},"country_name":{"type":"string","description":"Name of the waypoint country"},"state_name":{"type":"string","description":"The name of the internal administrative unit that the waypoint belongs to","nullable":true},"state_code":{"type":"string","description":"Code of the internal administrative unit that the waypoint belongs to","nullable":true},"city":{"type":"string","description":"The city that the waypoint belongs to","nullable":true},"district":{"type":"string","description":"The district of ​​the city that the waypoint belongs to","nullable":true},"sub_district":{"type":"string","description":"The microdistrict of the city that the waypoint belongs to","nullable":true},"street":{"type":"string","description":"The name of the street that the waypoint belongs to","nullable":true},"postal_code":{"type":"string","description":"The postal code that the waypoint belongs to","nullable":true},"house_number":{"type":"string","description":"The house number that the waypoint belongs to","nullable":true}}},"OfferRouteLocationAccessPoint":{"description":"Geo json route points","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":"Date"},"time":{"type":"string","format":"HH:mm:ss","description":"Time"}}},"OfferRouteWay":{"description":"Data of the calculated cargo transportation route","required":["total_length","total_dur"],"properties":{"total_length":{"type":"integer","description":"Distance of the calculated route in meters"},"total_dur":{"type":"integer","description":"Duration of the calculated route in seconds"}}},"OfferTransportationRequirement":{"description":"Cargo transportation requirements","required":["is_trailer_interchange","shipping_mode","type","body","equipment","quantity"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Trailer interchange required"},"shipping_mode":{"type":"string","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"The type of vehicle required for cargo transportation. For example, LCV, special machinery, etc.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Vehicle body types required for cargo transportation","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":"Additional equipment required","nullable":true},"quantity":{"type":"string","description":"Number of cargo units","nullable":true}}},"OfferCargoUnit":{"description":"Cargo information for the cargo offer","required":["name","type","quantity","weight","volume","adr_class","length","width","height","temperature_min_c","temperature_max_c","price"],"properties":{"name":{"type":"string","description":"Name of cargo"},"type":{"type":"string","description":"Type of cargo","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":"Quantity of cargo, pcs.","nullable":true},"weight":{"type":"integer","format":"float","description":"Cargo weight, tons","nullable":true},"volume":{"type":"integer","format":"float","description":"Cargo volume, cubic meters","nullable":true},"adr_class":{"type":"string","description":"ADR cargo class","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":"Cargo length, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Cargo width, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Cargo height, meters","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum required transportation temperature, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum required transportation temperature, degrees Celsius","nullable":true},"price":{"$ref":"#/components/schemas/OfferCargoPrice","description":"Cargo price","nullable":true}}},"OfferCargoPrice":{"properties":{"currency":{"type":"string","description":"Cargo price currency"},"value":{"type":"integer","format":"float","description":"Cargo price in the specified currency"},"value_mask":{"type":"string","description":"Masked cargo price in the specified currency"}}},"OfferTransport":{"description":"Transport characteristics for transport offer","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":"Trailer interchange possibility"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Weight available for loading, tons","nullable":true},"available_volume":{"type":"integer","format":"float","description":"Volume available for loading, cubic meters","nullable":true},"length":{"type":"integer","format":"float","description":"Length available for loading, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Width available for loading, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Height available for loading, meters","nullable":true},"shipping_mode":{"type":"array","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR class (cargo hazard class) approved for transportation","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":"Vehicle body type"},"equipment":{"type":"string","description":"Additional equipment","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Possible methods of loading into a vehicle.","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":"Show bid owner"},"allow_view_quote":{"type":"boolean","description":"Show bid"},"allow_view_comment":{"type":"boolean","description":"Show bid comments"}}}}}}
```

## 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":"The status of the created offer. At the moment, only offers in the not published status are allowed to be created","enum":["not_published"]},"type":{"type":"string","description":"Type of offer (transport/cargo). Also determines the requirements for the request","enum":["transport","cargo"]},"is_public":{"type":"boolean","description":"The offer is published on a public exchange"},"is_private":{"type":"boolean","description":"The offer is published on a private exchange"},"is_all_private_partners":{"type":"boolean","description":"The offer on the private exchange will be received by all partners of the owner company. The field is displayed only in personal offers"},"private_partners":{"type":"array","minItems":0,"description":"IDs of partner companies that will receive private offer. The field is displayed only in personal offers","items":{"type":"string","format":"UUID"}},"description":{"type":"string","description":"Additional description in the offer"},"payment":{"$ref":"#/components/schemas/PaymentDataCreateRequest"},"route":{"type":"array","items":{"$ref":"#/components/schemas/RoutepointCreateRequest"}},"cargo_units":{"description":"Description of cargo (currently the array size should be equal to 1)","type":"array","items":{"$ref":"#/components/schemas/CargoUnitCreateRequest"}},"transportation_requirement":{"description":"Transportation requirements (for freight offer only)","allOf":[{"$ref":"#/components/schemas/TransportRequirementsCreateRequest"}]},"transport":{"description":"Transport description (only for transport offer)","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":"Bid with VAT"},"is_prepay":{"type":"boolean","description":"Is there a prepayment"},"bid_is_vat":{"type":"boolean","description":"Accept bids with VAT"},"bid_is_no_vat":{"type":"boolean","description":"Accept bids without VAT"},"bid_is_not_unique":{"type":"boolean","description":"Uniqueness of the bid within the space. Forbids/allows to give several bids at the same time (for example, to give different conditions in \"bidding mode\")"},"currency":{"type":"string","description":"Currency"},"payment_condition":{"type":"string","description":"Payment terms"},"payment_method":{"type":"string","description":"Payment method"},"bid_mode":{"type":"string","description":"Bidding mode"},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Target transportation bid in the specified currency in the freight offer"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Additional bid. If the main bid is specified as a bid with VAT, then the additional bid is displayed as \"without VAT\""},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Bid in a transport offer; set per unit of mileage (kilometer, mile, etc.)"},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Minimum auction step size"},"vat":{"type":"number","format":"decimal","nullable":true,"description":"VAT bid"},"mileage_format":{"type":"string","nullable":true,"description":"Mileage unit for the bid in the transport offer (km, miles, etc.)"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Prepayment amount as a percentage of the bid. Only integer values ​​up to 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Payment period in days"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Time for bid confirmation (in seconds)"}},"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":"Waypoint ordinal number"},"point_type":{"type":"string","description":"Type of waypoint on Roolz exchange platform","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Time zone of the waypoint in minute offset from UTC"},"location":{"$ref":"#/components/schemas/LocationDataCreateRequest","description":"Information about the location"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Start date of the transportation operations at the waypoint","nullable":true},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"End date of the transportation operations at the waypoint","nullable":true},"loading_type":{"description":"Method of loading/unloading a vehicle","type":"array","nullable":true,"items":{"type":"string"}}}},"LocationDataCreateRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Object ID (from object search query)"},"is_radius":{"type":"boolean"},"type":{"type":"string","description":"Object type (from object search query)"},"position_type":{"type":"string","description":"Point type"},"radius":{"type":"integer","format":"int32","nullable":true,"description":"Radius"}},"required":["id","is_radius","type","position_type"]},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Date"},"time":{"type":"string","format":"HH:mm:ss","description":"Time"}}},"CargoUnitCreateRequest":{"description":"Cargo information for the cargo offer","required":["weight","volume"],"properties":{"name":{"type":"string","description":"Name of cargo"},"type":{"type":"string","description":"Type of cargo","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":"Quantity of cargo, pcs.","nullable":true},"weight":{"type":"integer","format":"float","description":"Cargo weight, tons"},"volume":{"type":"integer","format":"float","description":"Cargo volume, cubic meters"},"adr_class":{"type":"string","description":"ADR cargo class","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":"Cargo length, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Cargo width, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Cargo height, meters","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum required transportation temperature, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum required transportation temperature, degrees Celsius","nullable":true},"price":{"$ref":"#/components/schemas/CargoPriceCreateRequest","description":"Cargo price","nullable":true}}},"CargoPriceCreateRequest":{"properties":{"currency":{"type":"string","description":"Price currency"},"value":{"type":"integer","format":"float","description":"Price of cargo in the specified currency"}}},"TransportRequirementsCreateRequest":{"description":"Requirements for cargo transportation","required":["body"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Trailer interchange required"},"shipping_mode":{"type":"string","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"The type of vehicle required for cargo transportation. For example, LCV, special machinery, etc.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Vehicle body types required for cargo transportation","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":"Additional required equipment","nullable":true,"items":{"type":"string"}},"quantity":{"type":"string","description":"Number of cargo units","nullable":true}}},"TransportSpecificationCreateRequest":{"description":"Transport characteristics for the transport offer","required":["type","body","available_weight","available_volume"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Possibility of trailer interchange"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Weight available for loading, tons"},"available_volume":{"type":"integer","format":"float","description":"Volume available for loading, cubic meters"},"length":{"type":"integer","format":"float","description":"Length available for loading, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Width available for loading, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Height available for loading, meters","nullable":true},"shipping_mode":{"type":"array","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR class (cargo hazard class) approved for transportation","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":"Vehicle body type"},"equipment":{"type":"string","description":"Additional equipment","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Possible methods of loading into a vehicle.","items":{"type":"string","enum":["rear","side","side_by_side","rack_off","top","tent_off"]}}}},"PublicationLifetimeCreateRequest":{"description":"Publication duration settings","required":["lifetime"],"properties":{"lifetime":{"type":"integer","description":"Publication duration (in seconds)"},"is_first_bid":{"type":"boolean","description":"Start publication countdown only after the first bid"}}},"BidPrivacyCreateRequest":{"description":"Bidding privacy settings in the offer","properties":{"allow_view_bidder":{"type":"boolean","description":"Show bid owner"},"allow_view_quote":{"type":"boolean","description":"Show bid"},"allow_view_comment":{"type":"boolean","description":"Show bid comments"}}}}}}
```

## The BidPrivacyCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"BidPrivacyCreateRequest":{"description":"Bidding privacy settings in the offer","properties":{"allow_view_bidder":{"type":"boolean","description":"Show bid owner"},"allow_view_quote":{"type":"boolean","description":"Show bid"},"allow_view_comment":{"type":"boolean","description":"Show bid comments"}}}}}}
```

## The PublicationLifetimeCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"PublicationLifetimeCreateRequest":{"description":"Publication duration settings","required":["lifetime"],"properties":{"lifetime":{"type":"integer","description":"Publication duration (in seconds)"},"is_first_bid":{"type":"boolean","description":"Start publication countdown only after the first bid"}}}}}}
```

## The TransportRequirementsCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"TransportRequirementsCreateRequest":{"description":"Requirements for cargo transportation","required":["body"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Trailer interchange required"},"shipping_mode":{"type":"string","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","enum":["any","ftl","ltl","special"]},"type":{"type":"string","description":"The type of vehicle required for cargo transportation. For example, LCV, special machinery, etc.","enum":["any","lcv","solo","special_machinery","lorry"]},"body":{"type":"array","description":"Vehicle body types required for cargo transportation","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":"Additional required equipment","nullable":true,"items":{"type":"string"}},"quantity":{"type":"string","description":"Number of cargo units","nullable":true}}}}}}
```

## The TransportSpecificationCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"TransportSpecificationCreateRequest":{"description":"Transport characteristics for the transport offer","required":["type","body","available_weight","available_volume"],"properties":{"is_trailer_interchange":{"type":"boolean","description":"Possibility of trailer interchange"},"type":{"type":"string","enum":["any","lcv","solo","special_machinery","lorry"]},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum transportation temperature maintained by the vehicle, degrees Celsius","nullable":true},"available_weight":{"type":"integer","format":"float","description":"Weight available for loading, tons"},"available_volume":{"type":"integer","format":"float","description":"Volume available for loading, cubic meters"},"length":{"type":"integer","format":"float","description":"Length available for loading, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Width available for loading, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Height available for loading, meters","nullable":true},"shipping_mode":{"type":"array","description":"Type of transportation. Possible options: FTL, LTL, Special and Any","minItems":0,"items":{"type":"string","enum":["any","ftl","ltl","special"]}},"adr_class":{"type":"array","description":"ADR class (cargo hazard class) approved for transportation","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":"Vehicle body type"},"equipment":{"type":"string","description":"Additional equipment","nullable":true},"loading_type":{"type":"array","minItems":0,"description":"Possible methods of loading into a vehicle.","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":"Cargo information for the cargo offer","required":["weight","volume"],"properties":{"name":{"type":"string","description":"Name of cargo"},"type":{"type":"string","description":"Type of cargo","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":"Quantity of cargo, pcs.","nullable":true},"weight":{"type":"integer","format":"float","description":"Cargo weight, tons"},"volume":{"type":"integer","format":"float","description":"Cargo volume, cubic meters"},"adr_class":{"type":"string","description":"ADR cargo class","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":"Cargo length, meters","nullable":true},"width":{"type":"integer","format":"float","description":"Cargo width, meters","nullable":true},"height":{"type":"integer","format":"float","description":"Cargo height, meters","nullable":true},"temperature_min_c":{"type":"integer","format":"float","description":"Minimum required transportation temperature, degrees Celsius","nullable":true},"temperature_max_c":{"type":"integer","format":"float","description":"Maximum required transportation temperature, degrees Celsius","nullable":true},"price":{"$ref":"#/components/schemas/CargoPriceCreateRequest","description":"Cargo price","nullable":true}}},"CargoPriceCreateRequest":{"properties":{"currency":{"type":"string","description":"Price currency"},"value":{"type":"integer","format":"float","description":"Price of cargo in the specified currency"}}}}}}
```

## The CargoPriceCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"CargoPriceCreateRequest":{"properties":{"currency":{"type":"string","description":"Price currency"},"value":{"type":"integer","format":"float","description":"Price of cargo in the specified currency"}}}}}}
```

## The RoutepointCreateRequest object

```json
{"openapi":"3.0.1","info":{"title":"Roolz Public API","version":"1.1"},"components":{"schemas":{"RoutepointCreateRequest":{"properties":{"order":{"type":"integer","description":"Waypoint ordinal number"},"point_type":{"type":"string","description":"Type of waypoint on Roolz exchange platform","enum":["loading","unloading","border","customs","waypoint"]},"time_zone":{"type":"string","description":"Time zone of the waypoint in minute offset from UTC"},"location":{"$ref":"#/components/schemas/LocationDataCreateRequest","description":"Information about the location"},"start_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"Start date of the transportation operations at the waypoint","nullable":true},"end_datetime":{"$ref":"#/components/schemas/DateTimeObject","description":"End date of the transportation operations at the waypoint","nullable":true},"loading_type":{"description":"Method of loading/unloading a vehicle","type":"array","nullable":true,"items":{"type":"string"}}}},"LocationDataCreateRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Object ID (from object search query)"},"is_radius":{"type":"boolean"},"type":{"type":"string","description":"Object type (from object search query)"},"position_type":{"type":"string","description":"Point type"},"radius":{"type":"integer","format":"int32","nullable":true,"description":"Radius"}},"required":["id","is_radius","type","position_type"]},"DateTimeObject":{"required":["date","time"],"properties":{"date":{"type":"string","format":"Y-m-d","description":"Date"},"time":{"type":"string","format":"HH:mm:ss","description":"Time"}}}}}}
```

## 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":"Object ID (from object search query)"},"is_radius":{"type":"boolean"},"type":{"type":"string","description":"Object type (from object search query)"},"position_type":{"type":"string","description":"Point type"},"radius":{"type":"integer","format":"int32","nullable":true,"description":"Radius"}},"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":"Bid with VAT"},"is_prepay":{"type":"boolean","description":"Is there a prepayment"},"bid_is_vat":{"type":"boolean","description":"Accept bids with VAT"},"bid_is_no_vat":{"type":"boolean","description":"Accept bids without VAT"},"bid_is_not_unique":{"type":"boolean","description":"Uniqueness of the bid within the space. Forbids/allows to give several bids at the same time (for example, to give different conditions in \"bidding mode\")"},"currency":{"type":"string","description":"Currency"},"payment_condition":{"type":"string","description":"Payment terms"},"payment_method":{"type":"string","description":"Payment method"},"bid_mode":{"type":"string","description":"Bidding mode"},"quote":{"type":"number","format":"decimal","nullable":true,"description":"Target transportation bid in the specified currency in the freight offer"},"extra_quote":{"type":"number","format":"decimal","nullable":true,"description":"Additional bid. If the main bid is specified as a bid with VAT, then the additional bid is displayed as \"without VAT\""},"quote_mileage":{"type":"number","format":"decimal","nullable":true,"description":"Bid in a transport offer; set per unit of mileage (kilometer, mile, etc.)"},"bid_auction_step":{"type":"number","format":"decimal","nullable":true,"description":"Minimum auction step size"},"vat":{"type":"number","format":"decimal","nullable":true,"description":"VAT bid"},"mileage_format":{"type":"string","nullable":true,"description":"Mileage unit for the bid in the transport offer (km, miles, etc.)"},"prepay_percent":{"type":"integer","format":"int64","nullable":true,"description":"Prepayment amount as a percentage of the bid. Only integer values ​​up to 100"},"payment_period":{"type":"integer","format":"int64","nullable":true,"description":"Payment period in days"},"bid_confirm_timeframe":{"type":"integer","format":"int64","nullable":true,"description":"Time for bid confirmation (in seconds)"}},"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":"Internal company ID on Roolz exchange"},"owner_id":{"type":"string","format":"UUID","description":"User ID of the company owner on Roolz exchange"},"name":{"type":"string","description":"Public name of the company on Roolz exchange"},"nickname":{"type":"string","description":"Unique nickname of the company on Roolz exchange"},"company_form":{"type":"string","description":"Legal form of organization","enum":["private_company","self_employed","partnership","public_company","government_agency","non_profit"]},"exchange_role":{"type":"string","description":"Company role on Roolz exchange","enum":["shipper","carrier","forwarder","forwarder_carrier","dispatcher","freight_broker","customs_agent","storage_provider","shipper_carrier","other"]},"is_public":{"type":"boolean","description":"This company is available for public viewing and search"},"is_verified":{"type":"boolean","description":"This company has been checked and verified on Roolz exchange"},"offers_count":{"type":"integer","description":"Number of active (published) offers"},"total_offers_count":{"type":"integer","description":"Total number of offers created on Roolz exchange since the registration"},"employee_amount":{"type":"string","description":"Average number of employees in the company","enum":["1_15","16_50","51_150","151_500","501_1500","1501_5000","5000_more"]},"order_amount":{"type":"string","description":"Number of shipments per month","enum":[0,"1_30","31_100","101_500","501_2000","2001_10000","10001_50000","50000_more"]},"fleet_amount":{"type":"string","description":"Size of the company's fleet (number of units)","nullable":true,"enum":["1_5","6_15","16_50","51_100","101_500","501_1000","1000_more"]},"foundation_year":{"type":"integer","description":"Year when the company was founded"},"registration_date":{"type":"string","description":"Date of registration of the company by the authorized body","nullable":true},"registration_number":{"type":"string","description":"Company registration number, assigned upon registration with the authorized body of the country"},"legal_form":{"type":"string","description":"Full legal form (company type)"},"legal_form_short":{"type":"string","description":"Abbreviated organizational and legal form (company type: LLC, Inc., etc.)"},"legal_name":{"type":"string","description":"Full legal name of the company with the registration form"},"transport_license_number":{"type":"string","description":"Transport license number","nullable":true},"forwarder_license_number":{"type":"string","description":"Freight forwarder license number","nullable":true},"legal_address":{"type":"string","description":"Legal address of the company"},"mail_address":{"type":"string","description":"Company mailing address"},"tax_number":{"type":"string","description":"Tax number or company ID"},"momo":{"type":"string","description":"A short slogan or motto for the company"},"email":{"type":"string","format":"email","description":"Company email address"},"phone":{"type":"string","description":"Company phone number"},"website":{"type":"string","description":"Company website"},"description":{"type":"string","description":"Company description"},"registration_country_alpha2":{"type":"string","description":"Alpha2 country code of company registration"},"is_transport_license":{"type":"boolean","description":"Availability of a transport license"},"is_forwarder_license":{"type":"boolean","description":"Availability of a carrier license"},"is_transport_license_company":{"type":"boolean","description":"Transport license is issued to this legal entity"},"is_forwarder_license_company":{"type":"boolean","description":"Carrier's license is issued to this legal entity"},"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":"List of associations the company is a member of","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 codes of countries to/from which the company carries out international transportation","items":{"type":"string"}},"national_direction":{"type":"array","minItems":0,"description":"Alpha2 codes of countries to/from which the company carries out domestic transportation","items":{"type":"string"}},"transportation_type":{"type":"array","minItems":0,"description":"Types of transportation available","items":{"type":"string","enum":["road","ocean","air","railway","multimodal"]}},"cargo_type":{"type":"array","minItems":0,"description":"Types of cargo transported","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":"Provided logistics services","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":"Additional provided services","items":{"type":"string","enum":["declaration","statistical_declaration","document_handling","representation","consulting","customs_guarantee","temporary_storage"]}},"created_at":{"type":"string","description":"Date and time of the company profile creation (in UTC)"},"updated_at":{"type":"string","description":"Date and time of the last modification of the company profile (in 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":"Internal user ID on Roolz exchange"},"phone":{"type":"string","description":"User's phone number specified during registration and/or used to log into the account","nullable":true},"email":{"type":"string","description":"User's email specified during registration and/or used to log into the account","nullable":true},"nickname":{"type":"string","description":"Unique username of the user on Roolz exchange"},"first_name":{"type":"string","description":"First name of the user"},"last_name":{"type":"string","description":"Last name of the user"},"middle_name":{"type":"string","description":"Middle name of the user","nullable":true},"work_email":{"type":"string","description":"Work email address","nullable":true},"work_phone":{"type":"string","description":"Work phone number","nullable":true},"own_email":{"type":"string","description":"Personal email address","nullable":true},"own_phone":{"type":"string","description":"Personal phone number","nullable":true},"site":{"type":"string","description":"Website","nullable":true}}}}}}
```


---

# Agent Instructions: Querying This Documentation

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

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

```
GET https://help.roolz.net/en/open-api/offers.md?ask=<question>
```

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

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