Skip to main content

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

ISO-8601

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.

items

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: true flag if you want to compare shipping costs from different regions, as the nearest warehouse isn't always the cheapest depending on carrier contracts.