Saloodo! API for Carrier (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

Get a list of shipments

Get the list of the open shipment requests posted by Saloodo! shippers. According to the customer needs, filters can be applied to obtain only the suitable shipment requests.

Location predicate example:

/shipments?type=single&shipmentFilter[shipmentFilterPredicates][0][predicateType]=location&shipmentFilter[shipmentFilterPredicates][0][countryCode]=DE&shipmentFilter[shipmentFilterPredicates][0][locationKind]=pickup&&shipmentFilter[shipmentFilterPredicates][0][postalCodes][0][zipCode]=50&shipmentFilter[shipmentFilterPredicates][0][postalCodes][1][zipCode]=69
Content predicate example:
/shipments?type=single&shipmentFilter[shipmentFilterPredicates][0][predicateType]=content&shipmentFilter[shipmentFilterPredicates][0][minWeight]=0&shipmentFilter[shipmentFilterPredicates][0][maxWeight]=5000&shipmentFilter[shipmentFilterPredicates][0][isHazardous]=0
Combined example:
/shipments?type=single&shipmentFilter[shipmentFilterPredicates][0][predicateType]=location&shipmentFilter[shipmentFilterPredicates][0][countryCode]=DE&shipmentFilter[shipmentFilterPredicates][0][locationKind]=pickup&&shipmentFilter[shipmentFilterPredicates][0][postalCodes][0][zipCode]=10&shipmentFilter[shipmentFilterPredicates][1][predicateType]=location&shipmentFilter[shipmentFilterPredicates][1][locationKind]=dropoff&&shipmentFilter[shipmentFilterPredicates][1][countryCode]=CZ&shipmentFilter[shipmentFilterPredicates][1][postalCodes][0][zipCode]=20&shipmentFilter[shipmentFilterPredicates][2][predicateType]=content&shipmentFilter[shipmentFilterPredicates][2][minWeight]=0&shipmentFilter[shipmentFilterPredicates][2][maxWeight]=15000&shipmentFilter[shipmentFilterPredicates][2][minLoadingMeters]=5.4&shipmentFilter[shipmentFilterPredicates][2][maxLoadingMeters]=16

query Parameters
type
required
string
Enum: "single" "bundle"

Whether single or bundle shipments should be listed

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. Allowed columns: id, untilDate, elmId, updatedAt, totalWeight, loadingMeters, pickup.fromDate, pickup.postalCode, pickup.countryCode, dropoff.fromDate, dropoff.postalCode, dropoff.countryCode

order
string
Enum: "ASC" "DESC"

The sort order

object (Shipment Filter)

Shipment Filter

Responses

Response samples

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

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.

Make an Offer

Carriers can use this endpoint to make an offer on one of the shipment requests published by saloodo! shippers. Saloodo! carrier can provide one offer per shipment request with specific validity time. If you want to post two or more offers per shipment request please contact support@saloodo.com

Request Body schema: application/json

Make Offer

type
required
string
Enum: "single" "bundle"

Offer Type

shipmentElmId
required
string

Saloodo! shipment identifier

externalOfferId
string

External carrier offer identifier

price
required
number <integer>

Price in the smallest monetary unit in specified currency, e.g. for EUR currency in cents

currency
required
string

3 letter currency code as defined in ISO 4217. Default value is EUR

validUntil
required
string

Ending time for offer lifespan in localtime formatted according to RFC-3339 and expressed with timezone offset

truckTypes
required
Array of strings
Items Enum: "curtainsider" "standard_box_trailer" "mega_trailer" "tautliner" "combination_truck_curtain" "combination_truck_swap_body" "cooler_truck" "7,5_ton_truck" "12_ton_truck" "van_curtain" "se_trailer_truck" "link_truck" "se_trailer_link_truck" "trailer_link_truck"

Truck type

  • curtainsider: Full Curtainsider
  • standard_box_trailer: Standard Box Trailer
  • mega_trailer: Mega Trailer
  • tautliner: Tautliner
  • combination_truck_curtain: Combination Truck Curtain
  • combination_truck_swap_body: Combination Truck Swap Body
  • cooler_truck: Cooler Truck
  • 7,5_ton_truck: 7,5 ton Truck
  • 12_ton_truck: 12 ton Truck
  • van_curtain: Van Curtain
  • se_trailer_truck: SE Trailer
  • link_truck: Link Truck
  • se_trailer_link_truck: SE Trailer + Link Truck
  • trailer_link_truck: Trailer + Link Truck
truckBodyTypes
Array of strings
Items Enum: "tail_lift" "no_tail_lift"

Truck body type

  • tail_lift: Tail lift
  • no_tail_lift: No tail lift
pickupFrom
required
string

Starting time for pickup date

pickupUntil
required
string

Starting time for pickup until date

dropoffFrom
required
string

Starting time for dropoff date

dropoffUntil
required
string

Starting time for dropoff until date

additionalInformation
string

Additional Information regarding the offer

driverAdrAllowed
boolean

Capability of carrying hazardous cargo elements

additionalRequirementsFulfilled
Array of strings

Responses

Request samples

Content type
application/json
{
  • "type": "single",
  • "shipmentElmId": "YPR12YP",
  • "externalOfferId": "YPR12YP",
  • "price": 50000,
  • "currency": "EUR",
  • "validUntil": "2017-12-28T17:45:32+01:00",
  • "truckTypes":
    [
    ],
  • "truckBodyTypes":
    [
    ],
  • "pickupFrom": "2019-11-05 16:00:00",
  • "pickupUntil": "2019-11-05 16:00:00",
  • "dropoffFrom": "2019-11-05 16:00:00",
  • "dropoffUntil": "2019-11-05 16:00:00",
  • "additionalInformation": "string",
  • "driverAdrAllowed": true,
  • "additionalRequirementsFulfilled":
    [
    ]
}

Response samples

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

Cancel Offer

By using the generated offerElmId after the offer is submitted, carriers can use this endpoint to cancel one of his open offers. Saloodo! carriers cannot cancel the offer when this is in the process of being booked or it is already booked by the shipper.

path Parameters
offerElmId
required
any

Offer identifier

Responses

Response samples

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

Orders

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

Get a list of transport orders

It allows the carries to get the list of all their transport orders (deals) booked by the shipper. If needed, filters can be applied to get specific transport orders.

query Parameters
type
required
string
Enum: "single" "bundle"

Whether single or bundle transport orders should be listed

page
integer
Example: page=1

The page number

pageSize
integer
Example: pageSize=20

How many items per page

shipmentElmId
string
Example: shipmentElmId=Y4QXQPY

Filter orders by Shipment Elm Id

Responses

Response samples

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

Update Order Fulfillment status

After the shipment is booked by the shipper, Carrier can use this endpoint to update the milestones of this transportation.

path Parameters
orderElmId
required
string
Example: K4XBX5N

The "orderElmID" is the identification of a booked shipment. To fetch the orderElmId click here

Request Body schema: application/json
One of