# Offers

{% hint style="info" %}
Useful links: [offers-editing-activity-and-statuses](https://help.roolz.net/en/offers-editing-activity-and-statuses "mention") and [what-are-the-offer-statuses](https://help.roolz.net/en/offers-editing-activity-and-statuses/what-are-the-offer-statuses "mention")
{% 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}}}}}}
```
