Shipping cost calculator
Welcome to the documentation for the Transport Calculator API. This service computes logistics options for orders, providing data on available warehouses, eligible carriers, palletization details, and precise shipping costs.
General Information
-
Base URL:
https://logistics.solsol.cz -
Version:
1.0.0 -
Protocol:
HTTPS
Authentication
This API uses Bearer Token authentication. Include the token in your request header:
Endpoints
Method: POST
Request URL: /api/calculate
Computes the most efficient shipping methods, warehouse availability, and estimated delivery dates based on the provided items and destination.
Request Body
The request must be sent as application/json.
1. Required Objects
| Parameter | Type | Required | Description |
delivery |
object |
Yes | Address object containing country, city, street, and zip. |
Items |
array |
Yes | List of objects containing plu (Product ID) and amount. |
2. Configuration & Logistics Parameters
| Parameter | Type | Required | Description |
order_id |
string |
No | Your internal order reference. |
pricing_list |
string |
No | Pricing tier for margin calculation (e.g., VIP). |
off_stock_included |
boolean |
No | If true, includes items not currently in stock. |
best_price |
boolean |
No | If true, returns only the cheapest carrier per warehouse. |
multi_warehouse |
boolean |
No | If true, evaluates all warehouses rather than just the nearest. |
warehouse_code |
string |
No | Force calculation from a specific warehouse code. |
sort_by |
string |
No | Sort results by price or time. |
3. Scheduling & Sorting
| Parameter | Type | Required | Format | Description |
desired_delivery_date |
date |
No | YYYY-MM-DD |
Nullable. The date the customer prefers delivery. |
dispatch_datetime |
datetime |
No |
|
Nullable. Planned date and time of dispatch. |
sort_by |
string |
No | price |
Sort results by price or time. |
sort_order |
string |
No | ASC |
Sort direction: ASC (Ascending) or DESC (Descending). |
Example Request:
{
"delivery": {
"country": "CZ",
"city": "Liberec",
"street": "Košická 13",
"zip": "46001"
},
"Items": [
{ "plu": "104661", "amount": 2 },
{ "plu": "417021", "amount": 5 }
],
"order_id": "ORD-2026-X",
"pricing_list": "VIP",
"off_stock_included": true,
"best_price": true,
"desired_delivery_date": "2026-05-20",
"dispatch_datetime": "2026-05-18T08:00:00Z",
"warehouse_code": null,
"carrier_code": null,
"multi_warehouse": false,
"sort_by": "price",
"sort_order": "ASC"
}
Response Structure
Success (200 OK)
1. Root Object
| Field | Type | Description |
status |
String | Operation status (e.g., success, error). |
normal_weight |
Float | Total actual weight of all items in kg. |
volume |
Float | Total volume of the shipment in $m^3$. |
paletts_count |
Integer | Total number of pallets generated for the shipment. |
paletts |
Array | Detailed breakdown of each pallet's contents and dimensions. |
warehouses |
Array | List of warehouses capable of fulfilling the order. |
2. Pallet Object
| Field | Type | Description |
dimensions |
Object | Length, width and height, in meters. |
weight |
Float | Individual pallet weight including packaging. |
|
|
Array |
List of items placed on this specific pallet. |
3. Warehouse & Courier Object
| Field | Type | Description |
distance |
String | Distance from warehouse to destination in km. |
price |
Object | Base shipping cost in multiple currencies (CZK, EUR, etc.). |
price_solsol |
Object | Total price including standard markup/fees. |
surcharge |
Object | Fuel or handling surcharges included in the total. |
delivery_date_estimate |
String | Estimated delivery date (ISO 8601). |
Example response:
{
"status": "success",
"normal_weight": 501,
"volume": 0.29,
"paletts_count": 2,
"paletts": [
{
"dimensions": {
"length": 1.2,
"width": 0.8,
"height": 0.15
},
"weight": 342.5,
"volume": 0.144,
"items": [
{
"plu": "130471",
"quantity": 15
}
]
},
{
"dimensions": {
"length": 1.2,
"width": 0.8,
"height": 0.15
},
"weight": 158.5,
"volume": 0.144,
"items": [
{
"plu": "130465",
"quantity": 5
}
]
}
],
"warehouses": [
{
"warehouse_code": "USTI",
"warehouse_name": "Sklad Ústí nad Labem",
"address": "Vítězná 9715, Svádov, 40322, CZ",
"distance": "91.85",
"reservations": [
{
"plu": "130471",
"qty": 15,
"warehouse_code": "USTI"
}
],
"couriers": [
{
"carrier_code": "TOPTRANS",
"carrier_service": "1",
"volumetric_weight": 72.5,
"unloading": "carrier",
"price": {
"CZK": 1766.6,
"EUR": 70.93,
"PLN": 310.09,
"USD": 83.71
},
"price_solsol": {
"CZK": 2120,
"EUR": 85,
"PLN": 372,
"USD": 100
},
"surcharge": {
"CZK": 160.6,
"EUR": 6.45,
"PLN": 28.19,
"USD": 7.61
},
"delivery_date_estimate": "2026-04-15"
}
]
}
]
}
Error Codes
| Code | Description |
| 200 | Requested item not found. |
| 201 | Invalid delivery address. |
| 202 | Stock unavailable for requested items. |
| 203 | Failed to calculate shipment value. |
| 204 | Carrier constraints not met. |
| 207 | No pricing available for the route. |
Tip: Use the
multi_warehouse: trueflag if you want to compare shipping costs from different regions, as the nearest warehouse isn't always the cheapest depending on carrier contracts.
No comments to display
No comments to display