Saloodo! API for Shipper (1.0.0)

Download OpenAPI specification:Download

Introduction

Saloodo! offers to companies instant access to trusted road freight providers for on-demand shipments, with the freedom of choice of a marketplace and the security and convenience of a digital freight forwarder. We simplify your daily business by providing a single and convenient interface for tracking, documentation, and payment – giving you end-to-end control to your shipment processes within a single platform.

With saloodo! API documentation, customers are able to retrieve and push data to saloodo! platform. Any application can request data from saloodo!, if you require assistance or more information about how to connect please write an email to support@saloodo.com

I am a Carrier

I am a Shipper

Authentication

This is a short-lived (JWT Bearer-Token) authentication token which should be provided in request headers and should be refreshed.

Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

Elm-Api-Key

This is a long-lived api key that should be provided in request headers.

Security Scheme Type API Key
Header parameter name: Elm-Api-Key

Shipments

A shipment request, which is done by the shipper, is the non-binding collection of information, in particular, for the purpose of submitting an offer, which is done by the carrier. The shipment request includes all necessary information about the cargo and its conditions such as:

  • number and type of cargo items
  • dimensions and weight
  • special conditions like hazardous or stackable
  • pick-up and drop-off locations
  • pick-up and drop-off dates and times

Create a shipment

Shippers can use this endpoint to create a shipment request on Saloodo! platform. A shipment request, contains valid data related to the cargo to be transported, the pickup, dropoff location, as well as the desired dates of loading and unloading. After a shipment request is published, one or more carriers can submit offers on this transport request.

Request Body schema: application/json

Create shipment Request

One of
type
required
string
Value: "single"

The shipment type

externalShipmentId
string

External Shipment identifier

loadingMeters
number <double>

Total Loading meters for the shipment (For Sweden tradelane the maximum ldm value is 21 and for others it is 15.2)

cubicMeters
number <double>

Total Cubic meters for the shipment

distance
number <integer>

Distance between pickup and drop off locations in meters. If not passed, distance will be calculated using Google Maps API

required
Array of objects (CargoRequest)

Cargo list (For Sweden Tradelane with cargo item "Other" (from other group) the maximum weight is upto 36000 kg per unit.)

required
object (LocationRequest)

Pickup/DropOff location request

required
object (LocationRequest)

Pickup/DropOff location request

object

Additional fields related to shipment

desiredPrice
number <integer>

The desired price for the shipment

additionalRequirements
Array of strings
Items Enum: "anti_slash_curtain" "anti_slip_mats" "code_xl" "customs_cable" "tail_lift" "tie_down_straps" "truck_which_can_be_sealed" "tail_lift_loading" "tail_lift_unloading" "pre_advise" "extra_driver" "driver_pre_notification" "only_pulling_unit"
message
string

Additional message about shipment

Responses

Request samples

Content type
application/json
{
  • "type": "single",
  • "externalShipmentId": "51139051",
  • "loadingMeters": 13.6,
  • "cubicMeters": 15.6,
  • "distance": 1000040,
  • "cargos":
    [
    ],
  • "pickup":
    {
    },
  • "dropOff":
    {
    },
  • "payload":
    {
    },
  • "desiredPrice": 250,
  • "additionalRequirements":
    [
    ],
  • "message": "Important message!"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "shipmentElmId": "YPR12K"
}

Get a list of shipments

Get the list of shipments posted by the shipper that uses this service. According to the customer needs, filters can be applied to obtain a specific list of the shipments

query Parameters
page
integer
Example: page=1

The page number

pageSize
integer
Example: pageSize=20

How many items per page

orderBy
string
Example: orderBy=untilDate

The sort column

order
string
Enum: "ASC" "DESC"

The sort order

type
required
string
Value: "all"

The only available type currently is all

filter
required
string
Enum: "open" "expired-not-booked" "booked"
  • open - Shipments that have not being booked or auction has ended with active offers
  • booked - Shipments that were accepted by shipper (deal is created)
  • expired-not-booked - Shipments that does not have a deal, active offers and auction has ended

Responses

Response samples

Content type
application/json
{
  • "list":
    [
    ],
  • "currentPage": 1,
  • "nextPage": 2,
  • "pageSize": 3,
  • "totalResults": 10
}

Cancel a shipment request

By using the generated shipmentElmID after the shipment request is created, shippers can use this endpoint to cancel his request. Saloodo! shippers cannot cancel the shipment request when this is in the process of being booked or it is already booked.

query Parameters
shipmentElmId
required
string
Example: shipmentElmId=YPR12K

The shipment Elm id

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "shipmentElmId": "YPR12K"
}

Offers

An offer, which is submitted by the carrier, is the submission of a binding price and a description of the associated conditions relating to a particular shipment request, which is done by the shipper.

Get a list of offers

Shippers can get the list of offers associated to one shipment request by using this service.

query Parameters
shipmentElmId
string
Example: shipmentElmId=ABCDEF

The Shipment Elm Id

filter
string
Example: filter=active

Filter the offers

Responses

Response samples

Content type
application/json
{
  • "list":
    [
    ],
  • "currentPage": 1,
  • "nextPage": 1,
  • "pageSize": 10,
  • "totalResults": 1
}

Orders

An order is concluded when the Shipper accepts the Carrier's offer together with its conditions, which is related to the former shipment request. The order is binding.

Create order

Saloodo! shippers create a transport order with this service. A transport order is created when the shipper selects and book one of the active offers posted by one of saloodo! carriers on one specific shipment request.

Request Body schema: application/json

Create order request object

offerElmId
required
string <string>

Offer Identifier

object (Booking Contact)

Consignor/Consignee information

object (Booking Contact)

Consignor/Consignee information

Responses

Request samples

Content type
application/json
{
  • "offerElmId": "YPR12K",
  • "consignor":
    {
    },
  • "consignee":
    {
    }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "orderElmId": "Y4QXQPY"
}

Show an order

Saloodo! shippers can see the details of a transport order by using this service.

path Parameters
orderElmId
required
string
Example: BGX7XK8

Order identifier

Responses

Response samples

Content type
application/json
{
  • "orderElmId": "BGX7XK8",
  • "offerElmId": "48X7XK8",
  • "inClarification": false,
  • "clarificationStatus": null,
  • "consignor":
    {
    },
  • "consignee":
    {
    },
  • "fulfillmentStatus": "DRIVER_ASSIGNED",
  • "fulfillmentSubStatus": [ ],
  • "elmId": "BGX7XK8",
  • "tenantId": 1
}

Download transportation document

Documents specific to the transport order can be downloaded (Proof of delivery, Pallet exchange statements and counter statements, Shipment photos).

path Parameters
orderElmId
required
string
Example: K4XBX5N

The order Elm id

fileType
required
sting
Enum: "pallet-exchange" "pallet-exchange-counterstatement" "pod" "photo"

the document type to download

Responses

Response samples

Content type
application/json
{
  • "status": 403,
  • "message": "Access Denied"
}

Approve or Reject Order Pod

The POD uploaded by saloodo! carrier can be approved or rejected after the transportation is completed. In order to close the transport order, the POD should be approved. If the POD is not approved/rejected within 24 hours, then the POD will be approved automatically.

path Parameters
orderElmId
required
string

Order identifier

action
required
string
Enum: "approve" "reject"

Pod action

Request Body schema: application/json

Approve or Reject Order Pod request body

message
string

The message is required if the pod is being rejected. It should contain the reason for rejection.

Responses

Request samples

Content type
application/json
{
  • "message": "reason for rejection"
}

Response samples

Content type
application/json
{
  • "success": true
}

Shipper Webhooks

If shipper wants to get notified directly on their application, saloodo! webhooks delivers data to other applications in real time. Those notifications include being notify regarding milestones/status of shipments and cancellation of shipments in case they occur.

Notify shipper if deal is updated

Note: The specified events are submitted in a different format to PEV.

Request Body schema: application/json

Update deal Request

One of
Array of objects (Fulfillment Deal Requests)

Responses

Request samples

Content type
application/json
Example
{
  • "fulfillmentDealRequests":
    [
    ]
}

Response samples

Content type
application/json
{
  • "status": 400,
  • "type": "validation_error",
  • "title": "There was a validation error",
  • "errors": { }
}