Create an Ocean Shipment
Use the Project44 API to register an ocean shipment in the network and begin receiving tracking data. This guide walks you through creating a shipment with or without additional metadata such as attributes or container IDs. You can then view and subscribe to the tracking data via APIs, Movement UI or Webhooks.
Basic Shipment Creation
To initiate tracking of an ocean shipment in Project44's network, you must provide at least one shipment identifier along with exactly one Carrier SCAC.
Prerequisites
Ensure you have the following:
- One shipment identifier:
BILL_OF_LADING
orBOOKING_NUMBER
. - One valid
CARRIER_SCAC
. View SCACs for in-network Ocean carriers.
BILL_OF_LADING
or BOOKING_NUMBER
is a unique identifier given to you by the Ocean carrier. It often contains multiple containers (each with their own Container ID) allowing you to track multiple containers with a single identifier. Workflow
Complete these steps:
- Send a
POST
request to /api/v4/shipments/tracking. - Include the identifiers in the request payload:
{ "identifiers": [ { "type": "BILL_OF_LADING", "value": "MEDUAB12345" }, { "type": "CARRIER_SCAC", "value": "MSCU" } ] }
- Submit the request.
Successful Response
A successful response will return a 200 OK
status with the following structure:
{ "id": "93294f58-f87a-48e0-9f68-7d3f6e0aaa2f", "identifiers": [ { "type": "BILL_OF_LADING", "value": "MEDUAB12345" }, { "type": "CARRIER_SCAC", "value": "MSCU" } ] }
The response includes the same identifiers provided in the request—such as BILL_OF_LADING
, BOOKING_NUMBER
, along with the CARRIER_SCAC
. It also returns a unique shipment identifier (id) and any associated container CONTAINER_IDs and their corresponding IDs. Once the shipment is registered in project44’s system, related shipments are automatically identified. These will appear in the relatedShipments
array when you retrieve shipment details via a GET request.
ℹ️ Note: This is a sample response. Fields with null values are omitted. For a complete list of fields and possible values, refer to the reference documentation.
Create Shipment with Attributes
Please refer to the guide on Managing Shipment Attributes for more details.
Create an Ocean Shipment using only a Container ID
⚠️ Use this method only if you do not have a BILL_OF_LADING
or BOOKING_NUMBER
.
CONTAINER_ID
. Prerequisites
Ensure you have the following:
- One
CONTAINER_ID
. - One
CARRIER_SCAC
. View SCACs for in-network Ocean carriers.
Workflow
Complete these steps:
- Prepare a
POST
request to /api/v4/shipments/tracking. - Add the
CONTAINER_ID
to the identifier array in the request schema.
{ "identifiers": [ { "type": "CONTAINER_ID", "value": "XYZA4743198" }, { "type": "CARRIER_SCAC", "value": "MAEU" } ] }
- Submit the request.
Successful Response
A successful response will return a 200 OK
status with the following structure:
{ "id": "53294f58-f87a-48e0-9f68-7d3f6e0aaa3g", "identifiers": [ { "type": "CONTAINER_ID", "value": "XYZA4743198" }, { "type": "CARRIER_SCAC", "value": "MAEU" } ] }
You will receive the shipment ID, identifiers in the response.
- This is an example of what could be returned in the response. Null fields will not show up in the response. Please refer to the reference data for more information on required and potential null fields.
- Save the id. You’ll need it to retrieve tracking updates for this shipment.
Create an Ocean Shipment and Track Specific Containers
Only use this workflow if you want to track specific containers related to your shipment instead of all containers related to your shipment.
Prerequisites
Have the following information available:
- One of the following shipment Identifiers:
BILL_OF_LADING
orBOOKING_NUMBER
. - Exactly one
CARRIER_SCAC
. View SCACs for in-network Ocean carriers. - One or more
CONTAINER_ID
for related containers.
Workflow
Complete these steps:
- Prepare a
POST
request to /api/v4/shipments/tracking. - Add the shipment identifiers to the identifiers array in the request schema.
- Add the
CONTAINER_ID
s for each related container to the identifiers array in the request schema. The completed request schema should look like this:
{ "identifiers": [ { "type": "BILL_OF_LADING", "value": "123456789" }, { "type": "CARRIER_SCAC", "value": "MSCU" }, { "type": "CONTAINER_ID", "value": "PQRS7027376" }, { "type": "CONTAINER_ID", "value": "GHJI7027376" } ] }
- Submit the request.
Successful Response
A successful response will return a 200 OK
status with the following structure:
{ "id": "45294f58-f87a-48e0-9f68-7d3f6e0aaa5j", "identifiers": [ { "type": "BILL_OF_LADING", "value": "123456789" }, { "type": "CARRIER_SCAC", "value": "MSCU" }, { "type": "CONTAINER_ID", "value": "PQRS7027376" }, { "type": "CONTAINER_ID", "value": "GHJI7027376" } ] }
The system asynchronously creates a related shipment for each container ID provided in the request. Once the related shipments are created, their details will be included in the relatedShipments
array in the response. Example Response:
{ "id": "45294f58-f87a-48e0-9f68-7d3f6e0aaa5j", "identifiers": [ { "type": "BILL_OF_LADING", "value": "123456789" }, { "type": "CARRIER_SCAC", "value": "MSCU" }, { "type": "CONTAINER_ID", "value": "PQRS7027376" }, { "type": "CONTAINER_ID", "value": "LMNO7027376" } ] "relatedShipments": [ { "id": "609f4d0e-e75e-4eb8-ad7d-fd7e25f6f0a6", "identifiers": [ { "type": "CONTAINER_ID", "value": "PQRS7027376" }, { "type": "BILL_OF_LADING", "value": "123456789" }, { "type": "CARRIER_SCAC", "value": "MSCU" } ] }, { "id": "3dfaeff7-a92f-42e7-9bb9-6fb1e80059bb", "identifiers": [ { "type": "CONTAINER_ID", "value": "LMNO7027376" }, { "type": "BILL_OF_LADING", "value": "123456789" }, { "type": "CARRIER_SCAC", "value": "MSCU" } ] } ] }
In this response you receive the identifiers used in the request (BILL_OF_LADING
or BOOKING_NUMBER
and CARRIER_SCAC
) together with the Master Shipment ID (id
) and all specified related container CONTAINER_ID
s and id
s.
This is an example of what could be returned in the response. Null fields will not show up in the response. Please refer to the reference data for more information on required and potential null fields.
Create Ocean Shipment via EDI
You can also create ocean shipments through Electronic Data Interchange (EDI). Project44 maintains robust EDI connectivity with leading ocean carriers, enabling shipment creation and milestone tracking via standardized formats such as EDIFACT and ANSI X12. To set up EDI integration with project44, please contact our Support Team.
Errors
If there was a problem with your request, you will receive one of the following error codes:
400 Invalid request
401 Invalid or missing credentials
403 User not authorized to perform this operation
See Error Response Codes in the Appendix for more information on the meaning of these error codes.