Download details of selected contract.
The contract-id identification number in request can be taken by downloading the contract list.
GET
/ext/contracts-api/v2/contracts/{contractd-id}
Request Authorization
Every request MUST include a valid access token obtained during the user authorization process, provided using the Bearer token scheme in the Authorization header.
Request
Successful Response
Error Response
Request Header
GET /ext/contracts-api/v2/contracts/{contract-id} HTTP/1.1
Host: api.platform.trans.eu
Content-Type: application/json
Accept: application/json
Authorization: Bearer {access_token)
Api-key: {unique_app_api-key}Response Fields
| Attribute | Type | Example | Description |
| base_contract_id | String | “23ba734b-5b1f-4be1-9b82-a91e4dff6551” | Base contract id. If does not exists, contract id. |
| carrier | Object | Carrier assigned to the contract | |
| carrier.company | Object | Carrier company details | |
| carrier.company.id | Int | 567321 | Carrier company Id |
| carrier.company.name | String | “EkoTransporter” | Carrier company name |
| carrier.contact_persons | Array of Objects | Carrier contact persons | |
| carrier.contact_persons.channels | Array of Strings | Channels to contact | |
| carrier.contact_persons.employee | Object | Contact person details | |
| carrier.contact_persons.employee.account_id | Int | 771476 | Contact person internal Id |
| carrier.contact_persons.employee.email | String | “mmiller@ekotranporter.com | Contact person email |
| carrier.contact_persons.employee.family_name | String | Miller | Contact person family name |
| carrier.contact_persons.employee.given_name | String | Michael | Contact person given name |
| carrier.contact_persons.employee.id | Int | 999446 | Contact person Id |
| carrier.contact_persons.employee.telephone | String | “(0049) 456453234” | Contact person telephone |
| carrier.contact_persons.employee.trans_id | String | “1012334–1” | Contact person TransId |
| carrier.contact_persons.id | String | “11e9a0dc-1782–4ce1-8baa-1cf353a2073e” | Contact person UUID |
| carrier.contact_persons.reported_by | Object | ||
| carrier.contact_persons.reported_by.company | Object | ||
| carrier.contact_persons.reported_by.company.id | Int | ||
| carrier.cooperation_status | String | ||
| deactivations | Array | ||
| id | String | “23ba734b-5b1f-4be1-9b82-a91e4dff6551” | Contract id |
| last_modification_date | String | “2026–04-07T13:10:55+00:00” | Contract modification date |
| order_terms | Object | Order terms | |
| order_terms.additional_terms | String | “additional terms text” | Additional terms for contract |
| order_terms.automatic_order_sending | Boolean | True | Automatic creation of a confirmed order when the carrier accepts the freight |
| order_terms.autoresponder | Object | ||
| order_terms.autoresponder.enabled | Boolean | ||
| order_terms.autoresponder.time | Object | ||
| order_terms.autoresponder.time.unit_code | String | ||
| order_terms.autoresponder.time.user_unit_code | String | ||
| order_terms.autoresponder.time.value | Int | ||
| order_terms.insurance | Object | Insurance requirements | |
| order_terms.insurance.load | Object | Value of loads | |
| order_terms.insurance.load.currency | String | “eur” | Loads value currency |
| order_terms.insurance.load.value | Int | 12000 | Value of loads |
| order_terms.insurance.third_party | Object | Required insurance value | |
| order_terms.insurance.third_party.currency | String | “eur” | Insurance value currency |
| order_terms.insurance.third_party.value | Int | 6000 | Insurance value |
| order_terms.monitoring | Object | GPS monitoring | |
| order_terms.monitoring.required | Boolean | True | If True, required GPS monitoring if technically possible |
| order_terms.payment_period | Object | Payment period | |
| order_terms.payment_period.value | Int | 12 | Number of days |
| order_terms.silent_confirmation | Object | ||
| order_terms.silent_confirmation.enabled | Boolean | ||
| order_terms.silent_confirmation.time | Object | ||
| order_terms.silent_confirmation.time.unit_code | String | ||
| order_terms.silent_confirmation.time.user_unit_code | String | ||
| order_terms.silent_confirmation.time.value | Int | ||
| percentage_share | Int | ||
| period | Object | Cooperation period | |
| period.from | String | “2026–04-07T15:30:00+02:00” | Start of cooperation |
| period.to | String | null | End of cooperation. Possible value null for indefinitely. |
| planned_shipments | Object | Planned shipments in the contract | |
| planned_shipments.periods | Array of Objects | Periods list | |
| planned_shipments.periods.from | String | “2027–01-01T00:00:00.000Z” | Start of period |
| planned_shipments.periods.to | String | “2027–12-31T23:59:59.000Z” | End of period |
| planned_shipments.periods.value | Int | 50 | Number of shipments in period |
| planned_shipments.type | String | “expected” | Type of shipments. Available values: required, expected, no_more_than. |
| planned_shipments.unit | String | “km” | Unit of shipments. Available values: shipment, ton, km. |
| planned_shipments.value | Int | 500 | Total number of shipments in the contract |
| position | Int | 1 | Contract position in the route |
| pricing | Object | Pricing for contract | |
| pricing.fuel_base_price | Object | Fuel base price. Object occurs in all pricing types except pallets. | |
| pricing.fuel_base_price.currency | String | “eur” | Fuel base price currency |
| pricing.fuel_base_price.value | Float | null | Fuel base price value |
| pricing.negotiable | Boolean | True | Enabling price negotiation with carrier |
| pricing.price | Object | Price. Object occurs in all pricing types except pallets. | |
| pricing.price.currency | String | “eur” | Price currency for negotation |
| pricing.price.value | Float | 2344 | Price value. |
| pricing.price_list | Array of Objects | Price list. Object occurs only for pricing type pallets | |
| pricing.price_list.fuel_base_price | Object | Fuel base price. | |
| pricing.price_list.fuel_base_price.currency | String | “eur” | Fuel base price currency |
| pricing.price_list.fuel_base_price.value | Float | null | Fuel base price value |
| pricing.price_list.range | Object | Range of pallets for negotiation | |
| pricing.price_list.range.from | Int | 1 | Min value of pallets |
| pricing.price_list.range.to | Int | 6 | Max value of pallets |
| pricing.price_list.price | Object | Price | |
| pricing.price_list.price.currency | String | “eur” | Price currency |
| pricing.price_list.price.value | Float | 2300 | Price value |
| pricing.settlement_basis | String | “distance_declared_in_order_terms” | Surcharge basis. Required in pricing types: “km”, “ton”. Available values for “km”: distance_declared_in_order_terms, distance_declared_by_carrier, distance_from_gpsAvailable values for “ton”: loading, unloading |
| pricing.type | String | “no_rate” | Type of pricing. Available values: route, km, ton, pallets, linear, no_rate.The no_rate value appears in flexible contracts, the remaining values appear in fixed contracts. |
| reference_number | String | “Kontrakt 23/2” | External reference number |
| route | Object | Definition of the route to which the contract is assigned. Definition of route object is described in Get route details | |
| shipper | Object | Shipper assigned to the contract | |
| shipper.company | Object | Shipper company details | |
| shipper.company.id | Int | 9345454 | Shipper company Id |
| shipper.company.name | String | “Manufacture SA” | Shipper company name |
| shipper.contact_persons | Array of Objects | Shipper contact persons | |
| shipper.contact_persons.channels | Array of Strings | Contact channels | |
| shipper.contact_persons.employee | Object | Contact person details | |
| shipper.contact_persons.employee.account_id | Int | Contact person internal Id | |
| shipper.contact_persons.employee.email | String | Contact person email | |
| shipper.contact_persons.employee.family_name | String | Contact person family name | |
| shipper.contact_persons.employee.given_name | String | Contact person given name | |
| shipper.contact_persons.employee.id | Int | Contact person Id | |
| shipper.contact_persons.employee.telephone | String | Contact person telephone | |
| shipper.contact_persons.employee.trans_id | String | Contact person TransId | |
| shipper.contact_persons.reported_by | Object | Contact person UUID | |
| shipper.contact_persons.reported_by.company | Object | ||
| shipper.contact_persons.reported_by.company.id | Int | ||
| status | String | “accepted” | Contract status. Available values: accepted, waiting_for_acceptance, registered |
| surcharges | Array of Objects | Surcharges | |
| surcharges.currency | String | “eur” | Surcharges currency |
| surcharges.data | |||
| surcharges.description | String | “additional text” | Surcharge description |
| surcharges.id | String | “a1ebb289-e665-4b30-a580-d263552ef88c” | Surcharge Id |
| surcharges.is_active | Boolean | True | Surcharge activation status |
| surcharges.is_global | Boolean | False | If True, surcharge is from template |
| surcharges.kind | String | “grid” | Kind of surcharge. Available values: grid, linear, value |
| surcharges.schedules | Array of Objects | Surcharge schedules | |
| surcharges.schedules.data | Object | Surcharge data | |
| surcharges.schedules.data.matrix | Array of Objects | Data object for additional_stop, baf, pallets_exchange surcharge types. | |
| surcharges.schedules.data.matrix.unit | String | “percentage” | Unit of data. Available values: percentage, value. |
| surcharges.schedules.data.matrix.value | Int | 5 | Data value |
| surcharges.schedules.data.currency | String | “eur” | Currency for data |
| surcharges.schedules.data.unit | String | “percentage” | Unit of data for week_days surcharge type. Available values: percentage, value. |
| surcharges.schedules.data.week_days | Array of Objects | Data object for week_days surcharge types. | |
| surcharges.schedules.data.week_days.id | String | “1_monday” | Week day Id |
| surcharges.schedules.data.week_days.operations | Array of Objects | List of operations | |
| surcharges.schedules.data.week_days.operations.type | String | “loading” | Operation type. Available values: loading, unloading |
| surcharges.schedules.data.week_days.operations.value | Int | 5 | Data Value |
| surcharges.schedules.timespan | Object | Surcharge schedule period | |
| surcharges.schedules.timespan.from | String | “2026–04-30T15:30:00+02:00” | Start of schedule |
| surcharges.schedules.timespan.to | String | “2026–05-28T02:00:00+02:00” | End of schedule |
| surcharges.type | String | “baf” | Surcharge type. Available values: additional_stop, baf, pallets_exchange, week_day |
| type | String | “fixed” | Contract type. Available values: fixed, flexible. |
| updated_at | String | “2026–04-07T13:10:55+00:00” | Contract modification date |
| _meta | Object | ||
| _meta.has_been_sent_to_carrier | Boolean | False | |
| _meta.is_copy | Boolean | True | |
| _meta.is_parent | Boolean | False | |
| _stats | Object | ||
| _stats.base_contract | Object | ||
| _stats.base_contract.accepted | Int | ||
| _stats.base_contract.active | Int | ||
| _stats.base_contract.finished | Int | ||
| _stats.base_contract.refused | Int | ||
| _stats.base_contract.registered | Int | ||
| _stats.base_contract.waiting_for_acceptance | int | ||
| _stats.base_contract.waiting_for_carrier_offer | Int | ||
| _stats.base_contract.waiting_for_initial_carrier_offer | Int | ||
| _stats.base_contract.waiting_for_shipper_offer | Int | ||
| _stats.offers | Object | ||
| _stats.offers.acceptance_rate | |||
| _stats.offers.accepted | |||
| _stats.offers.total | |||
| _stats.transports | Object | ||
| _stats.transports.average_per_month | |||
| _stats.transports.awaiting | |||
| _stats.transports.realized |
Response Body
{
"id": "967dac7c-8812-41d9-8082-60ef1736d06c",
"base_contract_id": "967dac7c-8812-41d9-8082-60ef1736d06c",
"type": "fixed",
"position": null,
"carrier": {
"company": {
"id": 568099,
"name": "Cruise TEST"
},
"contact_persons": [
{
"id": "3cf5c7f3-2cf8-4731-a358-9969c9acd218",
"employee": {
"id": 950380,
"account_id": 719545,
"given_name": "Mateusz",
"family_name": "Tambur",
"trans_id": "568099-1",
"email": "mtambur@mail.com",
"telephone": null
},
"channels": [
"email",
"push",
"web-push",
"messenger"
],
"reported_by": {
"company": {
"id": 1007374
}
}
}
],
"cooperation_status": "active"
},
"deactivations": [],
"order_terms": {
"monitoring": {
"required": false
},
"additional_terms": null,
"insurance": {
"load": null,
"third_party": null
},
"automatic_order_sending": false,
"payment_period": {
"value": 13
},
"silent_confirmation": {
"enabled": false,
"time": null
},
"autoresponder": {
"enabled": false,
"time": null
}
},
"period": {
"from": "2021-07-22T00:00:00+00:00",
"to": "2021-07-31T23:59:59+00:00"
},
"percentage_share": 0,
"planned_shipments": {
"periods": [],
"type": null,
"unit": null,
"value": null
},
"pricing": {
"negotiable": false,
"type": "pallets",
"price_list": [
{
"range": {
"from": 1,
"to": 5
},
"price": {
"value": 13,
"currency": "pln"
},
"fuel_base_price": {
"value": null,
"currency": "pln"
}
},
{
"range": {
"from": 6,
"to": 6
},
"price": {
"value": 14,
"currency": "pln"
},
"fuel_base_price": {
"value": null,
"currency": "pln"
}
}
]
},
"reference_number": "cennik palet",
"refusal_reason": "",
"route": {
"id": "3b695c9e-2431-446a-8643-406d668afc06",
"unique_key": null,
"name": "cennik-paletowy",
"publication_scenario": null,
"spots": [
{
"id": "0ac060b1-e651-40c2-a6d9-3990bcab2583",
"name": null,
"type": "loading",
"place": {
"address": {
"locality": "Warszawa",
"postal_code": "00-002",
"country": "pl",
"street": null,
"number": null,
"location_id": 1958900,
"detailed_location_id": null,
"foreign_id": null,
"radius": 200
},
"coordinates": {
"latitude": 52.235735239,
"longitude": 21.010148013
}
}
},
{
"id": "d46311a2-53c8-4dbd-823a-f9ffdf813193",
"name": null,
"type": "unloading",
"place": {
"address": {
"locality": "Warszawa",
"postal_code": "00-005",
"country": "pl",
"street": null,
"number": null,
"location_id": 1958904,
"detailed_location_id": null,
"foreign_id": null,
"radius": 200
},
"coordinates": {
"latitude": 52.236256414,
"longitude": 21.008277704
}
}
}
],
"distance": {
"declared": null,
"calculated": {
"value": 0,
"unit_code": "km"
}
},
"suggested_calculated_route_id": null,
"distance_match": {
"min": null,
"max": null
},
"is_roundtrip": false,
"requirements": {
"required_truck_bodies": [],
"required_adr_classes": [],
"required_ways_of_loading": [],
"additional_requirements": [],
"shipping_remarks": null,
"freight_type": null,
"vehicle_size": "any_size",
"width": null,
"height": null,
"length": null,
"volume": null,
"capacity": {
"min": null,
"max": {
"value": 24,
"unit_code": "t"
}
},
"exemption_from_adr": false
},
"loads": [
{
"name": null,
"type_of_load": "palette",
"amount": null,
"width": null,
"height": null,
"length": null,
"volume": null,
"weight": {
"min": null,
"max": null
},
"pallets": {
"is_stackable": false,
"is_exchangeable": false
}
}
],
"balancing": {
"type": "manual",
"allowed_types": [
"manual",
"contract_condition",
"freight_limit",
"percentage_share",
"price_ascending"
],
"data": {
"freight_limit": {
"min": null,
"max": null
}
}
},
"status": "active",
"shipments_summary": {
"amount": 0,
"weight": {
"value": 0,
"unit_code": "t"
},
"distance": {
"value": 0,
"unit_code": "km"
},
"price": [
{
"amount": null,
"currency": null
}
]
},
"position": 180,
"_stats": {
"contracts": {
"fixed": 0,
"flexible": 0
},
"transports": {
"realized": {
"average_price": null,
"count": 0
},
"awaiting": {
"median_price": null,
"count": null
},
"cheapest_carrier_offer": null
}
}
},
"shipper": {
"company": {
"id": 1007374,
"name": "Spedycja IIT"
},
"contact_persons": [
{
"id": "a5f87239-e405-46ef-8521-a8517d708521",
"employee": {
"id": 993850,
"account_id": 765363,
"given_name": "Jan",
"family_name": "Nowak",
"trans_id": "1007374-6",
"email": "jnowak@mail.com",
"telephone": null
},
"channels": [
"email",
"push",
"web-push",
"messenger"
],
"reported_by": {
"company": {
"id": 1007374
}
}
}
]
},
"status": "finished",
"_stats": {
"transports": {
"realized": null,
"average_per_month": null,
"awaiting": null
},
"offers": {
"accepted": null,
"total": null,
"acceptance_rate": null
},
"base_contract": {
"registered": 0,
"waiting_for_acceptance": 0,
"waiting_for_initial_carrier_offer": 0,
"waiting_for_shipper_offer": 0,
"waiting_for_carrier_offer": 0,
"refused": 0,
"accepted": 0,
"active": 0,
"finished": 1
}
},
"_meta": {
"is_copy": false,
"is_parent": false,
"has_been_sent_to_carrier": true
},
"updated_at": "2026-03-23T15:45:16+00:00",
"last_modification_date": "2026-03-23T15:45:16+00:00",
"surcharges": []
}Client errors (code 400)
HTTP 4xx status codes indicate client errors, meaning that the request could not be processed due to an issue on the client side. Below is a list of request-specific errors.
Example error 1
Route does not exists or no access
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title": "Not Found",
"status": 404,
"detail": "Contract with ID: a67dac7c-8812-41d9-8082-60ef1736d06c not found!"
}