CargoSoft API (2024.2)

About the CargoSoft API

General

Attention: Since our API is still under development, endpoints may well change, or object structures may change. Of course, we try to avoid this as much as possible, but we cannot guarantee it. So that you have the possibility to react in time, we will soon offer you a possibility to subscribe to a newsletter. We would then inform all subscribers when something will change in the API. We are currently still looking for an integrable solution for newsletters, which can be used to subscribe and unsubscribe at this place. Until then, we would like to ask you to send us an email to support@cargosoft.de with the request that we inform you when there are planned changes to the API.

Authorization

The following chapter will explain the authorization prozess to access the CargoSoft API endpoints. The use case figure below shows a common example how to retrieve the JWT and how to use it.

Authorization

Retrieve a token

First of all each client has to request a bearer Java Web Toke (JWT) from the CargoSoft API. To receive a JWT, username and password are required. Username and password can only be created by CargoSoft. For more details see.

Please note: The JWT is valid for 24 hours. After that you have to request a new one.

Access API endpoints

To access the CargoSoft API endpoint, a JWT is required. The JWT has to be sent in the HTTP authorization header.

Example: This example shows a minimal curl with a bearer authorization header. The token is not valid because we only want to illustrate the structure.

curl --location --request POST 'https://api-demo.cargosoft.de/cargosoft/shipment/lookup' \
--header 'Authorization: Bearer eyJ0eXAiOiJqd3QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ1cGRhdGUiLCJjYXJnb3NvZnQtand0LNjc2NDQ1NTAzfQ.mK82rjSu0ltd0bf3mvXUqwpME05ck5OEuqnzsAQ8WPFPo' \
--data-raw '[]'"

Attention: Your user may be restricted. The CargoSoft API uses a permission system to grant access to the CargoSoft API endpoint. If your user is restricted or it's not allowed to use an endpoint you need please contact our support.

Access webhook

The webhook uses basic auth as its authorization type.

Example: This example shows a minimal curl request, to access the webhook. The basic auth is not valid.

curl --location --request POST 'https://api-demo.cargosoft.de/external/webhook' \
--header 'Authorization: Basic cG9ydg53xcvgawawb3J0YmFzZWNj' \
--data-raw '{}'"

Please note: Your user needs a special role to access the webhook endpoint via basic auth.

CRUD

The CargoSoft API uses CRUD operations. We attempt to implement each CRUD operation for each functional group of endpoints if it makes sense. The delete operation is one of the most sensitive function and will not available to each function group.

Lookup

The CargoSoft API extends the CRUD retrieve operations with lookup operations. Each functional group of endpoints should have a lookup method implemented. Lookups should be used to search functional objects with given criteria named identifiers. The identifiers may be different to each functional group. To find out which functional identifier are possible, please take a look at the corresponding functional group.

The identifier will be sent in the request body to the API lookup endpoint. An identifier contains the following three information:

  1. match_mode: The match mode can alter the behaviour, how the criteria is compared against the object in the database are [EQUALS, CONTAINS, IN, OR, GT, LT, GE, LE].
  2. key: The key of the criteria for the functional object to lookup. To find out which keys are possible, please check the corresponding implementation.
  3. value: The value of the criteria.

Example: Lookup request body to search a shipment

[
  {
    "match_mode": "EQUALS",
    "key": "MBL",
    "value": "MASTER_12345"
  },
  {
    "match_mode": "EQUALS",
    "key": "MODE_OF_TRANSPORT",
    "value": "SEA"
  }
]

Please note: When using one of any lookup methods, please define search criteria as precisely as possible to limit the result of objects.

The lookup may contain ordering by one or more criteria. The ordering will passed as a query parameter.

The result set of a lookup includes zero up to n functional objects depending on the search criteria. Each functional object contains an ID. The ID can be used to retrieve additional information by passing the id as a path parameter of the retrieve endpoint.

Example: Lookup a shipment and retrieve all shipment events

  1. Looking up a shipment with given criteria, for instance with the BL number. For more details please see.
  2. Extract the ID of the shipment result object.
  3. Call the Events endpoint with the shipment ID as path parameter.

Pagination

Most endpoints of the CargoSoft API use pagination mechanics.

The pagination information will be sent as a request query parameter to the API endpoint. The pagination contains the following two query parameter:

  1. page_no: The current number of the page
  2. page_size: The size of the page

Example: Lookup a shipment with pagination query parameter

curl --location --request POST 'https://api-demo.cargosoft.de/cargosoft/shipment/lookup?page_no=1&page_size=5' \
--header 'Authorization: Bearer eyJ0eXAiOiJqd3QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ1cGRhdGUiLCJjYXJnb3NvZnQtand0LNjc2NDQ1NTAzfQ.mK82rjSu0ltd0bf3mvXUqwpME05ck5OEuqnzsAQ8WPFPo' \
--header 'Content-Type: application/json' \
--data '[
    {
        "match_mode": "EQUALS",
        "key": "MBL",   
        "value": "MASTER_12345"
    },
   {
        "match_mode": "EQUALS",
        "key": "MODE_OF_TRANSPORT",
        "value": "SEA"
    }
]'

The response contains two additional headers:

  1. X-Page-Count: The total number of pages.
  2. X-Row-Count: The total number of found objects.

With these both headers it is possible to scroll through a result set.

Testing

For testing purposes CargoSoft hosted a server with the last released CargoSoft API.

URL: https://api-demo.cargosoft.de

To use the test environment, please use the "Try it" console in this documentation. Login credentials are needed to use the test API. The credentials have to be requested from the CargoSoft support. The received information grants access to a test account which should be able to use all endpoints. If any endpoint is restricted, please contact CargoSoft. Please have in mind that the test environment will be reset every night!

Use cases

Retrieve a shipment

To retrieve a shipment, the lookup endpoint of the shipment functional group is one of the common possibilities that should be used. The following figure shows the use case to look up a shipment. To keep the figure simple, the authorization process is referred.

RetrieveShipment

  1. To access the lookup endpoint a JWT is needed. For more details how to retrieve a JWT see.
  2. When a JWT is present, the shipment lookup endpoint can be called. Shipment identifier have to be sent in the request body to reduce the response result. For a complete list of shipment identifier see here.

Retrieve shipment status

CargoSoft has different pools in which status information are stored. These are described in detail in the next subsections. However, in order to understand the differences exactly, the following graphic tries to clarify how the status message flow works.

ShipmentStatus

Shipment provider status

These status messages come from external status providers and service providers who supply CargoSoft with status information. They cannot be entered or changed by CargoSoft employees by hand. A shipment provider status always represents exactly one state - planned / estimated or the actual date and time (depending on the name of the status). The codes of the statuses are defined by the providers and are variable depending on the provider.

Please note: There is no endpoint to retrieve provider status from the CargoSoft API yet. This endpoint will be implemented in a later release.

Shipment status

CargoSoft customers can define this status code themselves. In addition, the shipment provider statuses can be mapped into a shipment status if the CargoSoft customer configured his basic data accordingly. Here, for example, it can be defined that the status ABC of provider XYZ has to be processed as shipment status ETA. In this case ETA would be a freely defined code for the status. Therefore, there is no list of valid codes.

With this status, there are also two forms of date information per data record. Once a planned and an actual one. This means that a status ETA, although obviously planned, can contain an actual date. However, this is due to the recording of the customer's data.

The CargoSoft customer can add this status information manually, but an existing record can no longer be changed.

Please note: There is no endpoint to retrieve CargoSoft status from the CargoSoft API yet. This endpoint will be implemented in a later release.

Shipment events

Shipment events are status events that are defined by CargoSoft. These events are fixed and can always be called up - unless there is no data available for the shipment. For a complete list of shipment event codes see here. A shipment event can be created automatically from a shipment or provider status if this is set in the CargoSoft master data. A status always represents exactly one instance - planned or actual and the information can be changed at any time by hand, but also by background processes.

RetrieveShipmentEvents

Download OpenAPI description
Languages
Servers
Mock server

https://api-cargosoft.redocly.app/_mock/2024.2/openapi/

Test CargoSoft API server.

https://api-demo.cargosoft.de/

Shipment

The following chapter will give you an overview about the shipment endpoints and their function.

Operations

Lookup for shipments

Request

This endpoint looks up shipments. The result should be limit by using search criterias in the request body. For a complete list of search criteria see the ShipmentIdentifier enumeration below. Depending on the search criteria you will receive zero up to n shipments.

Query
page_nointeger(int32)

The page number for pagination.

Default 0
page_sizeinteger(int32)

The page size for pagination.

Default 50
order_byArray of strings(ShipmentIdentifier)

The order by for ordering API results sending back as response.

Items Enum ValueDescription
SHIPMENT_ID

A foreign shipment ID of a third party system. This ID should be unique.

LAST_MODIFIED_TIME

The time, when the shipment was last modified.

DIRECTION

Direction of the shipment. Possible values are [I, E]. I = import shipments, E = export shipments.

CREATION_DATE

System date when the shipment was created.

LAST_MODIFIED_DATE

The date, when the shipment was last modified.

CUSTOMER_ADDRESS_NUMBER

CargoSoft address number of the customer address.

FILENUMBER

CargoSoft shipment number. The shipment number is unique in combination with the client.

CLIENT

The CargoSoft client.

HBL

House bl number of the Shipment.

MBL

Master bL number of the Shipment.

order_modeArray of strings

The order mode for ordering API results sending back as response.

Items Enum ValueDescription
ASC

ascending

DESC

descending

x-parsed-md-ASC

ascending

x-parsed-md-DESC

descending

Bodyapplication/jsonArray [
Any of:

Description of the Identifier DTO schema. This DTO contains the match mode and identifiers of a functional object for instance the shipment identifier.

keystring(ShipmentIdentifier)

Identifier key. For instance a ShipmentIdentifier

Enum ValueDescription
SHIPMENT_ID

A foreign shipment ID of a third party system. This ID should be unique.

LAST_MODIFIED_TIME

The time, when the shipment was last modified.

DIRECTION

Direction of the shipment. Possible values are [I, E]. I = import shipments, E = export shipments.

CREATION_DATE

System date when the shipment was created.

LAST_MODIFIED_DATE

The date, when the shipment was last modified.

CUSTOMER_ADDRESS_NUMBER

CargoSoft address number of the customer address.

FILENUMBER

CargoSoft shipment number. The shipment number is unique in combination with the client.

CLIENT

The CargoSoft client.

HBL

House bl number of the Shipment.

MBL

Master bL number of the Shipment.

match_modestring

The match mode.

Default "EQUALS"
Enum ValueDescription
OR

Or.

EQUALS

Equals.

IN

In.

LT

Lower than.

LE

Lower equals

CONTAINS

Contains

GT

Greater than.

GE

Greater equals

x-parsed-md-OR

Or.

x-parsed-md-EQUALS

Equals.

valuestring

The value of the identifier.

]
curl -i -X POST \
  'https://api-cargosoft.redocly.app/_mock/2024.2/openapi/cargosoft/shipment/lookup?order_by=ID&order_mode=ASC&page_no=0&page_size=50' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "match_mode": "EQUALS",
      "key": "CLIENT",
      "value": "001"
    },
    {
      "match_mode": "EQUALS",
      "key": "MBL",
      "value": "MASTER_12345"
    },
    {
      "match_mode": "EQUALS",
      "key": "DIRECTION",
      "value": "E"
    },
    {
      "match_mode": "EQUALS",
      "key": "MODE_OF_TRANSPORT",
      "value": "SEA"
    }
  ]'

Responses

Records found

Headers
X-Page-Countanyrequired

The total number of pages for pagination.

X-Row-Countanyrequired

The total number of found objects for pagination.

Bodyapplication/jsonArray [
idinteger(int32)

Unique identifier of this shipment.

clientstring

The CargoSoft client.

directionstring

The shipment direction. Possible values are [I, E]. I = import shipments, E = export shipments.

officestring

The shipment office.

employeesobject(ShipmentEmployees)

Employee login names, who are working on this shipment.

memosArray of objects(ShipmentMemo)

Memos associated with this shipment.

aesArray of objects(AES)

Automated Export System (AES) proposals.

shipment_numberstring

The CargoSoft shipment number of this shipment.

master_referencestring

The shipment master bl number.

house_referencestring

The shipment house bl number.

bl_typestring

Bl type of the shipment.

mode_of_transportstring

Transport mode of the shipment. Possible values are [SEA, AIR, RD, RL]

month_of_servicestring

The month in which freight services are provided, used for billing and reporting.

total_packagesinteger(int32)

The total number of packages of the shipment.

total_gross_weightnumber

The gross weight of the shipment.

self_pickupstring

Indicates whether the recipient will pick up the goods directly from the warehouse or terminal.

self_deliverystring

Indicates whether the sender will deliver the goods to the carrier or warehouse by themselves.

goodsArray of objects(Good)

The description of the transported goods.

addressesArray of objects(ShipmentAddress)

The contact details of involved parties.

pre_carriageobject(Transport)

The transport of goods from the origin to the main carrier, preceding the main shipment.

main_carriageobject(Transport)

The primary transportation stage of the shipment

post_carriageobject(Transport)

The transportation of goods from the main carrier to the final destination after the main shipment.

eventsArray of objects(ShipmentEvent)

Shipment events with location, date and time.

terms_of_delivery_matchcodestring

The agreed conditions under which goods are delivered (matchcode).

terms_of_delivery_namestring

The agreed conditions under which goods are delivered (full condition).

total_volumenumber

The combined physical space occupied by the goods, measured in cubic meters.

chargeableWeightnumber

The weight used to calculate shipping costs, based on either the actual weight or the volumetric weight, whichever is higher.

original_shipment_numberstring
foreign_idstring

Shipment number used by a foreign system.

movement_matchcodestring
insuranceobject(Insurance)

Informations related to the shipment insurance

credit_dataobject(CreditData)

Information related to payment terms

customs_dataobject(CustomsData)

Informations related to customs processing

containersArray of objects(Container)

Containers on this shipment.

custom_fieldsArray of objects(CustomField)

Various customer specific values.

last_modified_date_timestring(date-time)

Timestamp of the last modification of the shipment.

created_date_timestring(date-time)

Timestamp of the creation of the shipment.

order_date_timestring(date-time)

The order date.

project_matchcodestring

Customizable field used to classify or categorize the order based on business-specific criteria.

]
Response
application/json

TBD

{ "id": 6843241, "client": "001", "direction": "E", "department": "BRE", "numberOfGoods": 5, "shipment_number": "BRE-001-12012023-876", "master_reference": "MASTER_12345", "house_reference": "HOUSE_0988976", "bl_type": "HBL", "mode_of_transport": "SEA", "month_of_service": "202301" }

Retrieve airfreight shipment main carriage

Request

Retrieve the airfreight main carriage of the shipment with additional details. The CargoSoft Shipment ID is needed to retrieve the main carriage.

Path
idinteger(int32)required
curl -i -X GET \
  'https://api-cargosoft.redocly.app/_mock/2024.2/openapi/cargosoft/shipment/{id}/airmaincarriage' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Record retrieved

Bodyapplication/jsonArray [
originobject(LocationDateTime)

The origin of this leg. This object contains several information about the location and its dates and times.

destinationobject(LocationDateTime)

The destination of this leg. This object contains several information about the location and its dates and times.

leg_nointeger(int32)

The number for the correct order of the transport legs. Important if more than one leg is entered for the shipment.

motstringrequired
Discriminator
flight_nostring

The flight number of this airfreight carriage.

airline_awb_codestring

The awb number of this airfreight carriage.

airline_namestring

The airline name of this airfreight carriage.

]
Response
application/json

This example contains 2 legs for an export airfright shipment.

[ { "origin": {}, "destination": {}, "leg_no": 1, "flight_no": "985472", "airline_awb_code": "438577456345", "airline_name": "AC" }, { "origin": {}, "destination": {}, "leg_no": 2, "flight_no": "837265437", "airline_awb_code": "438577456345", "airline_name": "AC" } ]

Retrieve shipment

Request

Retrieve a specific shipment with the CargoSoft database id.

Path
idinteger(int32)required

Database id of the record you want to retrieve

curl -i -X GET \
  'https://api-cargosoft.redocly.app/_mock/2024.2/openapi/cargosoft/shipment/{id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Record retrieved

Bodyapplication/json
idinteger(int32)

Unique identifier of this shipment.

clientstring

The CargoSoft client.

directionstring

The shipment direction. Possible values are [I, E]. I = import shipments, E = export shipments.

officestring

The shipment office.

employeesobject(ShipmentEmployees)

Employee login names, who are working on this shipment.

memosArray of objects(ShipmentMemo)

Memos associated with this shipment.

aesArray of objects(AES)

Automated Export System (AES) proposals.

shipment_numberstring

The CargoSoft shipment number of this shipment.

master_referencestring

The shipment master bl number.

house_referencestring

The shipment house bl number.

bl_typestring

Bl type of the shipment.

mode_of_transportstring

Transport mode of the shipment. Possible values are [SEA, AIR, RD, RL]

month_of_servicestring

The month in which freight services are provided, used for billing and reporting.

total_packagesinteger(int32)

The total number of packages of the shipment.

total_gross_weightnumber

The gross weight of the shipment.

self_pickupstring

Indicates whether the recipient will pick up the goods directly from the warehouse or terminal.

self_deliverystring

Indicates whether the sender will deliver the goods to the carrier or warehouse by themselves.

goodsArray of objects(Good)

The description of the transported goods.

addressesArray of objects(ShipmentAddress)

The contact details of involved parties.

pre_carriageobject(Transport)

The transport of goods from the origin to the main carrier, preceding the main shipment.

main_carriageobject(Transport)

The primary transportation stage of the shipment

post_carriageobject(Transport)

The transportation of goods from the main carrier to the final destination after the main shipment.

eventsArray of objects(ShipmentEvent)

Shipment events with location, date and time.

terms_of_delivery_matchcodestring

The agreed conditions under which goods are delivered (matchcode).

terms_of_delivery_namestring

The agreed conditions under which goods are delivered (full condition).

total_volumenumber

The combined physical space occupied by the goods, measured in cubic meters.

chargeableWeightnumber

The weight used to calculate shipping costs, based on either the actual weight or the volumetric weight, whichever is higher.

original_shipment_numberstring
foreign_idstring

Shipment number used by a foreign system.

movement_matchcodestring
insuranceobject(Insurance)

Informations related to the shipment insurance

credit_dataobject(CreditData)

Information related to payment terms

customs_dataobject(CustomsData)

Informations related to customs processing

containersArray of objects(Container)

Containers on this shipment.

custom_fieldsArray of objects(CustomField)

Various customer specific values.

last_modified_date_timestring(date-time)

Timestamp of the last modification of the shipment.

created_date_timestring(date-time)

Timestamp of the creation of the shipment.

order_date_timestring(date-time)

The order date.

project_matchcodestring

Customizable field used to classify or categorize the order based on business-specific criteria.

Response
application/json
{ "id": 0, "client": "string", "direction": "string", "office": "string", "employees": { "closed_employee_matchcode": "string", "last_modified_employee_matchcode": "string", "created_employee_matchcode": "string", "responsible_employee_matchcode": "string" }, "memos": [ {} ], "aes": [ {} ], "shipment_number": "string", "master_reference": "string", "house_reference": "string", "bl_type": "string", "mode_of_transport": "string", "month_of_service": "string", "total_packages": 0, "total_gross_weight": 0, "self_pickup": "string", "self_delivery": "string", "goods": [ {} ], "addresses": [ {} ], "pre_carriage": { "carriage_legs": [] }, "main_carriage": { "carriage_legs": [] }, "post_carriage": { "carriage_legs": [] }, "events": [ {} ], "terms_of_delivery_matchcode": "string", "terms_of_delivery_name": "string", "total_volume": 0, "chargeableWeight": 0, "original_shipment_number": "string", "foreign_id": "string", "movement_matchcode": "string", "insurance": { "waiver_customer": true, "insurable_value": 0, "insurable_value_currency_matchcode": "string", "value_of_goods": 0, "value_of_goods_currency_matchcode": "string", "insurance_text": "string", "transport_insurance": true, "insurance_type": "string", "insurer": {} }, "credit_data": { "lc_number": "string", "latest_shipment_date": "2019-08-24", "lc_expiry": "2019-08-24" }, "customs_data": { "custom_clearance_date": "2019-08-24", "clearance": "string", "book": "string" }, "containers": [ {} ], "custom_fields": [ {} ], "last_modified_date_time": "2019-08-24T14:15:22Z", "created_date_time": "2019-08-24T14:15:22Z", "order_date_time": "2019-08-24T14:15:22Z", "project_matchcode": "string" }

Retrieve shipment events

Request

This endpoint retrieves all events of the shipment. To retrieve the events, the shipment id is needed. It is possible that not all events are included in the response because they are not entered or know in the shipment unitil now. To retrive the shipment id, use the lookup endpoint of this chapter.

Path
idinteger(int32)required

The shipment id.

curl -i -X GET \
  'https://api-cargosoft.redocly.app/_mock/2024.2/openapi/cargosoft/shipment/{id}/events' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Records found

Bodyapplication/jsonArray [
eventstring(ShipmentEventQualifier)

The event code of this shipment event. The code describes the functional meaning of the event date and time.

Enum ValueDescription
GATE_OUT

TBD.

TRANSSHIPMENT

The goods are at the transshipment port (seafreight only).

LOADING_START

The goods will be loaded into the vessel / airplane.

LOADING_END

The goods are loaded into the vessel airplane.

POL_ARRIVAL

The goods arrived the port of loading.

CUSTOMS_CLEARANCE

The goods are cleared by customs.

POD_DEPARTURE

TBD.

POL_DEPARTURE

The goods are departured (ETD and ATD).

POL_DEPARTURE_REVISED

The goods are departured (revised Date).

POD_ARRIVAL_REVISED

The goods arrived at the port of discharge (revised Date).

typestring(EventType)

The event type of this shipment event. The event type describes if the event date and time is estimated or actual.

Enum ValueDescription
ESTIMATED

Estimated date and time

ACTUAL

Actual date and time.

x-parsed-md-ESTIMATED

Estimated date and time

x-parsed-md-ACTUAL

Actual date and time.

shipment_idinteger(int32)

The id of the Shipment.

date_timeobject(EventDateAndTime)

The date and time of this event.

locationobject(Location)

The location of this event.

]
Response
application/json

TBD

[ { "event": "PICKUP", "type": "ACTUAL", "shipment_id": 318283, "date_time": {}, "location": {} }, { "event": "PICKUP", "type": "ESTIMATED", "shipment_id": 318283, "date_time": {}, "location": {} }, { "event": "POL_ARRIVAL", "type": "ACTUAL", "shipment_id": 318283, "date_time": {}, "location": {} }, { "event": "POL_ARRIVAL", "type": "ESTIMATED", "shipment_id": 318283, "date_time": {}, "location": {} } ]

Retrieve seafreight shipment main carriage

Request

Retrieve the main carriage of the shipment with additional details.

Path
idinteger(int32)required
curl -i -X GET \
  'https://api-cargosoft.redocly.app/_mock/2024.2/openapi/cargosoft/shipment/{id}/seamaincarriage' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Record retrieved

Bodyapplication/jsonArray [
originobject(LocationDateTime)

The origin of this leg. This object contains several information about the location and its dates and times.

destinationobject(LocationDateTime)

The destination of this leg. This object contains several information about the location and its dates and times.

leg_nointeger(int32)

The number for the correct order of the transport legs. Important if more than one leg is entered for the shipment.

motstringrequired
Discriminator
flight_nostring

The flight number of this airfreight carriage.

airline_awb_codestring

The awb number of this airfreight carriage.

airline_namestring

The airline name of this airfreight carriage.

]
Response
application/json
[ { "origin": {}, "destination": {}, "leg_no": 0, "mot": "string", "voyage_no": "string", "imo_code": "string", "vessel_name": "string", "vessel_flag": "string", "call_sign": "string" } ]

Create a shipment event

Request

Create a shipment event of the given event type.

Path
shipmentIdinteger(int32)required
Query
typestring(EventType)

The following list will give an overview about the event types and a short description.

Enum ValueDescription
ESTIMATED

Estimated date and time

ACTUAL

Actual date and time.

x-parsed-md-ESTIMATED

Estimated date and time

x-parsed-md-ACTUAL

Actual date and time.

Bodyapplication/json
eventstring(ShipmentEventQualifier)

The event code of this shipment event. The code describes the functional meaning of the event date and time.

Enum ValueDescription
GATE_OUT

TBD.

TRANSSHIPMENT

The goods are at the transshipment port (seafreight only).

LOADING_START

The goods will be loaded into the vessel / airplane.

LOADING_END

The goods are loaded into the vessel airplane.

POL_ARRIVAL

The goods arrived the port of loading.

CUSTOMS_CLEARANCE

The goods are cleared by customs.

POD_DEPARTURE

TBD.

POL_DEPARTURE

The goods are departured (ETD and ATD).

POL_DEPARTURE_REVISED

The goods are departured (revised Date).

POD_ARRIVAL_REVISED

The goods arrived at the port of discharge (revised Date).

typestring(EventType)

The event type of this shipment event. The event type describes if the event date and time is estimated or actual.

Enum ValueDescription
ESTIMATED

Estimated date and time

ACTUAL

Actual date and time.

x-parsed-md-ESTIMATED

Estimated date and time

x-parsed-md-ACTUAL

Actual date and time.

shipment_idinteger(int32)

The id of the Shipment.

date_timeobject(EventDateAndTime)

The date and time of this event.

locationobject(Location)

The location of this event.

curl -i -X POST \
  'https://api-cargosoft.redocly.app/_mock/2024.2/openapi/cargosoft/shipment/{shipmentId}/event?type=ACTUAL' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "event": "PICKUP",
    "type": "ACTUAL",
    "shipment_id": 327410,
    "date_time": {
      "date": "2025-10-01",
      "time": "12:00:00",
      "zone_offset": "+02:00"
    },
    "location": {
      "codes": [
        {
          "type": "UNLOC",
          "code": "DEBRE"
        }
      ],
      "name": "BREMEN",
      "latitude": null,
      "longitude": null
    }
  }'

Responses

The event has been created successfully.

Bodyapplication/json
eventstring(ShipmentEventQualifier)

The event code of this shipment event. The code describes the functional meaning of the event date and time.

Enum ValueDescription
GATE_OUT

TBD.

TRANSSHIPMENT

The goods are at the transshipment port (seafreight only).

LOADING_START

The goods will be loaded into the vessel / airplane.

LOADING_END

The goods are loaded into the vessel airplane.

POL_ARRIVAL

The goods arrived the port of loading.

CUSTOMS_CLEARANCE

The goods are cleared by customs.

POD_DEPARTURE

TBD.

POL_DEPARTURE

The goods are departured (ETD and ATD).

POL_DEPARTURE_REVISED

The goods are departured (revised Date).

POD_ARRIVAL_REVISED

The goods arrived at the port of discharge (revised Date).

typestring(EventType)

The event type of this shipment event. The event type describes if the event date and time is estimated or actual.

Enum ValueDescription
ESTIMATED

Estimated date and time

ACTUAL

Actual date and time.

x-parsed-md-ESTIMATED

Estimated date and time

x-parsed-md-ACTUAL

Actual date and time.

shipment_idinteger(int32)

The id of the Shipment.

date_timeobject(EventDateAndTime)

The date and time of this event.

locationobject(Location)

The location of this event.

Response
application/json

TBD

{ "event": "PICKUP", "type": "ACTUAL", "shipment_id": 327410, "date_time": { "date": "2025-10-01", "time": "12:00:00", "zone_offset": "+02:00" }, "location": { "codes": [], "name": "BREMEN", "latitude": null, "longitude": null } }

Update a shipment event

Request

Update the event of the given event type.

Path
shipmentIdinteger(int32)required
idstring(ShipmentEventQualifier)required

Database id of the record you want to update.

Enum ValueDescription
GATE_OUT

TBD.

TRANSSHIPMENT

The goods are at the transshipment port (seafreight only).

LOADING_START

The goods will be loaded into the vessel / airplane.

LOADING_END

The goods are loaded into the vessel airplane.

POL_ARRIVAL

The goods arrived the port of loading.

CUSTOMS_CLEARANCE

The goods are cleared by customs.

POD_DEPARTURE

TBD.

POL_DEPARTURE

The goods are departured (ETD and ATD).

POL_DEPARTURE_REVISED

The goods are departured (revised Date).

POD_ARRIVAL_REVISED

The goods arrived at the port of discharge (revised Date).

Query
typestring(EventType)

The following list will give an overview about the event types and a short description.

Enum ValueDescription
ESTIMATED

Estimated date and time

ACTUAL

Actual date and time.

x-parsed-md-ESTIMATED

Estimated date and time

x-parsed-md-ACTUAL

Actual date and time.

Bodyapplication/json
eventstring(ShipmentEventQualifier)

The event code of this shipment event. The code describes the functional meaning of the event date and time.

Enum ValueDescription
GATE_OUT

TBD.

TRANSSHIPMENT

The goods are at the transshipment port (seafreight only).

LOADING_START

The goods will be loaded into the vessel / airplane.

LOADING_END

The goods are loaded into the vessel airplane.

POL_ARRIVAL

The goods arrived the port of loading.

CUSTOMS_CLEARANCE

The goods are cleared by customs.

POD_DEPARTURE

TBD.

POL_DEPARTURE

The goods are departured (ETD and ATD).

POL_DEPARTURE_REVISED

The goods are departured (revised Date).

POD_ARRIVAL_REVISED

The goods arrived at the port of discharge (revised Date).

typestring(EventType)

The event type of this shipment event. The event type describes if the event date and time is estimated or actual.

Enum ValueDescription
ESTIMATED

Estimated date and time

ACTUAL

Actual date and time.

x-parsed-md-ESTIMATED

Estimated date and time

x-parsed-md-ACTUAL

Actual date and time.

shipment_idinteger(int32)

The id of the Shipment.

date_timeobject(EventDateAndTime)

The date and time of this event.

locationobject(Location)

The location of this event.

curl -i -X PUT \
  'https://api-cargosoft.redocly.app/_mock/2024.2/openapi/cargosoft/shipment/{shipmentId}/event/{id}?type=ACTUAL' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "event": "PICKUP",
    "type": "ACTUAL",
    "shipment_id": 327410,
    "date_time": {
      "date": "2025-10-01",
      "time": "12:00:00",
      "zone_offset": "+02:00"
    },
    "location": {
      "codes": [
        {
          "type": "UNLOC",
          "code": "DEBRE"
        }
      ],
      "name": "BREMEN",
      "latitude": null,
      "longitude": null
    }
  }'

Responses

The event has been updated successfully.

Bodyapplication/json
eventstring(ShipmentEventQualifier)

The event code of this shipment event. The code describes the functional meaning of the event date and time.

Enum ValueDescription
GATE_OUT

TBD.

TRANSSHIPMENT

The goods are at the transshipment port (seafreight only).

LOADING_START

The goods will be loaded into the vessel / airplane.

LOADING_END

The goods are loaded into the vessel airplane.

POL_ARRIVAL

The goods arrived the port of loading.

CUSTOMS_CLEARANCE

The goods are cleared by customs.

POD_DEPARTURE

TBD.

POL_DEPARTURE

The goods are departured (ETD and ATD).

POL_DEPARTURE_REVISED

The goods are departured (revised Date).

POD_ARRIVAL_REVISED

The goods arrived at the port of discharge (revised Date).

typestring(EventType)

The event type of this shipment event. The event type describes if the event date and time is estimated or actual.

Enum ValueDescription
ESTIMATED

Estimated date and time

ACTUAL

Actual date and time.

x-parsed-md-ESTIMATED

Estimated date and time

x-parsed-md-ACTUAL

Actual date and time.

shipment_idinteger(int32)

The id of the Shipment.

date_timeobject(EventDateAndTime)

The date and time of this event.

locationobject(Location)

The location of this event.

Response
application/json

TBD

{ "event": "PICKUP", "type": "ACTUAL", "shipment_id": 327410, "date_time": { "date": "2025-10-01", "time": "12:00:00", "zone_offset": "+02:00" }, "location": { "codes": [], "name": "BREMEN", "latitude": null, "longitude": null } }

Authorization

Operations