Create a Shipment
Create a Full Truckload (FTL) shipment to add the shipment to project44's system.
Create an FTL Shipment
Create an FTL shipment to be tracked in project44's network. This step is necessary before tracking can start.
Requirements
Have the following information:
- Carrier Identifier (
SCAC
,MC_NUMBER
,DOT_NUMBER
,SYSTEM
,VAT
, orP44_EU
) - Shipment Identifier (
BILL_OF_LADING
orORDER
) - At least two shipment stops with stop information including
- Stop number
- Appointment windows (start and end dates and times)
- Location (using either an address or geocoordinates)
- Equipment Identifier (
MOBILE_PHONE
,VEHICLE_ID
,LICENSE_PLATE
,SENSITECH_DEVICE
, orTIVE_DEVICE_ID
)
Depending on the carrier connection type, an equipment ID might not be required. This is an infrequent occurrence, so we recommend always sending an equipment ID. If any vehicle IDs are in question, use the following endpoints to validate equipment identifiers or return a list of assets for a given carrier.
Workflow
Complete these steps:
- Prepare a
POST
request to /api/v4/tl/shipments. - Add the required information to the request schema. For an example that uses addresses for the stop locations,
{ "carrierIdentifier": { "type": "SCAC", "value": "string" }, "shipmentIdentifiers": [ { "type": "BILL_OF_LADING", "value": "string" } ], "shipmentStops": [ { "stopNumber": 0, "appointmentWindow": { "startDateTime": "2019-08-24T14:15:22", "endDateTime": "2019-08-24T14:15:22", "localTimeZoneIdentifier": "string" }, "location": { "address": { "postalCode": "string", "addressLines": [ "string" ], "city": "string", "state": "string", "country": "US" } } } ], "equipmentIdentifiers": [ { "type": "MOBILE_PHONE_NUMBER", "value": "string", "shouldDelete": false } ] }
- Send the request.
Fields and Objects
Element | Description | Type | Notes |
---|---|---|---|
carrierIdentifier.type | The carrier identifier type. | string | Valid values are SCAC , MC_NUMBER , DOT_NUMBER , SYSTEM , VAT , or P44_EU . |
carrierIdentifier.value | The value of the carrier identifier. | string | |
shipmentIdentifiers.type | The type of the shipment identifier. | string | Valid values are ORDER or BILL_OF_LADING . |
shipmentIdentifiers.value | The value of the shipment identifier. | string | |
shipmentStops.stopNumber | The user-defined stop number, where 1 is for the origin and the largest number is for the destination with any stops in between ordered by appointment time. | integer | |
shipmentStops.appointmentWindow.startDateTime | The appointment window start date and time for the stop. | string | |
shipmentStops.appointmentWindow.endDateTime | The appointment window end date and time for the stop. | string | |
shipmentStops.appointmentWindow.localTimeZoneIdentifier | The timezone of the appointment window for the stop. | string | For example, 'America/Chicago'. |
shipmentStops.location.address.postalCode | The postal code for the stop. | string | |
shipmentStops.location.address.addressLines | The street address for the stop. | string | |
shipmentStops.location.address.city | The stop's city. | string | |
shipmentStops.location.address.state | The stop's state. | string | This field is only relevant for USA, Mexico, and Canada. |
shipmentStops.location.address.country | The stop's country. | string <enum> | |
shipmentStops.geocoordinate.latitude | The latitude of the stop. | number <float> | This field may not be provided when creating a shipment but will always be returned. Use if no address is provided. |
shipmentStops.geocoordinate.longitude | The longitude of the stop. | number <float> | This field may not be provided when creating a shipment but will always be returned. Use if no address is provided. |
equipmentIdentifiers.type | The type of equipment identifier. | string | This does not need to be unique to the shipment. Valid values include MOBILE_PHONE , VEHICLE_ID , LICENSE_PLATE , SENSITECH_DEVICE , or TIVE_DEVICE_ID . |
equipmentIdentifiers.value | The value of the equipment identifier. | string | This does not need to be unique to the shipment. |
Expected System Response
You have successfully submitted the request when you receive a 201 Created
response. For example,
{ "shipment": { "id": 0, "carrierIdentifier": { "type": "SCAC", "value": "string" }, "shipmentIdentifiers": [ { "type": "BILL_OF_LADING", "value": "string" } ], "shipmentStops": [ { "stopNumber": 0, "appointmentWindow": { "startDateTime": "2019-08-24T14:15:22", "endDateTime": "2019-08-24T14:15:22", "localTimeZoneIdentifier": "string" }, "location": { "address": { "postalCode": "string", "addressLines": [ "string" ], "city": "string", "state": "string", "country": "US" } } } ], "equipmentIdentifiers": [ { "type": "MOBILE_PHONE_NUMBER", "value": "string", "shouldDelete": false } ], "id": 0 }, "infoMessages": [ { "severity": "ERROR", "message": "string", "diagnostic": "string", "source": "SYSTEM" } ] }
A unique project44 ID is returned in the response after shipment creation. Store this ID to use in future API calls.
Fields and Objects
Element | Description | Type | Notes |
---|---|---|---|
shipment.id | The unique project44 ID is returned in the response after shipment creation. | integer <int64> | Store this ID to use in future API calls. |
shipment.carrierIdentifier.type | The carrier identifier type. | string | Valid values are SCAC , MC_NUMBER , DOT_NUMBER , SYSTEM , VAT , or P44_EU . |
shipment.carrierIdentifier.value | The value of the carrier identifier. | string | |
shipment.shipmentIdentifiers.type | The type of the shipment identifier. | string | Valid values are ORDER or BILL_OF_LADING . |
shipment.shipmentIdentifiers.value | The value of the shipment identifier. | string | |
shipment.shipmentStops.stopNumber | The user-defined stop number, where 1 is for the origin and the largest number is for the destination with any stops in between ordered by appointment time. | integer | |
shipment.shipmentStops.appointmentWindow.startDateTime | The appointment window start date and time for the stop. | string | |
shipment.shipmentStops.appointmentWindow.endDateTime | The appointment window end date and time for the stop. | string | |
shipment.shipmentStops.appointmentWindow.localTimeZoneIdentifier | The timezone of the appointment window for the stop. | string | For example, 'America/Chicago'. |
shipment.shipmentStops.location.address.postalCode | The postal code for the stop. | string | |
shipment.shipmentStops.location.address.addressLines | The street address for the stop. | string | |
shipment.shipmentStops.location.address.city | The stop's city. | string | |
shipment.shipmentStops.location.address.state | The stop's state. | string | This field is only relevant for USA, Mexico, and Canada. |
shipment.shipmentStops.location.address.country | The stop's country. | string <enum> | |
shipment.equipmentIdentifiers.type | The type of equipment identifier. | string | This does not need to be unique to the shipment. Valid values include MOBILE_PHONE , VEHICLE_ID , LICENSE_PLATE , SENSITECH_DEVICE , or TIVE_DEVICE_ID . |
shipment.equipmentIdentifiers.value | The value of the equipment identifier. | string | This does not need to be unique to the shipment. |
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.
Get Available Tracking Methods
Return available shipment tracking methods for a given carrier.
Requirements
Have the following information:
- Carrier Identifier (
SCAC
,MC_NUMBER
,DOT_NUMBER
,VAT
, orP44_EU
)
Workflow
Complete these steps:
- Prepare a
GET
request to /api/v4/tl/shipments/trackingmethods. - Send the request.
Fields and Objects
Element | Description | Type | Notes |
---|---|---|---|
carrierIdentifier.type | The carrier identifier type. | string | Valid values are SCAC , MC_NUMBER , DOT_NUMBER , SYSTEM , VAT , or P44_EU . |
carrierIdentifier.value | The value of the carrier identifier. | string |
Expected System Response
You have successfully submitted the request when you receive a 200 OK
response. For example,
{ "trackingMethods": [ { "capacityProviderAccount": { "code": "string" }, "equipmentIdentifier": { "shouldDelete": true, "type": "MOBILE_PHONE_NUMBER", "value": "string" }, "infoMessages": [ { "severity": "ERROR", "message": "string", "diagnostic": "string", "source": "SYSTEM" } ], "shipmentIdentifier": { "type": "BILL_OF_LADING", "value": "string" } } ] }
Fields and Objects
Element | Description | Type | Notes |
---|---|---|---|
trackingMethods.capacityProviderAccount.code | The code for the requested capacity provider account. | string | |
trackingMethods.equipmentIdentifier.type | The type of equipment identifier. | string | Valid values are SCAC , MC_NUMBER , DOT_NUMBER , SYSTEM , VAT , or P44_EU . |
trackingMethods.equipmentIdentifier.value | The value of the equipment identifier. | string | Cell phone numbers will be obfuscated in project44 responses for privacy reasons. |
trackingMethods.shipmentIdentifier.type | The type of shipment identifier. | string | Valid values are BILL_OF_LADING and ORDER . |
trackingMethods.shipmentIdentifier.value | The value of the shipment identifier. | string |
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.
Get List of Assets for a Given Carrier
Get all assets for a carrier that are known by project44. Use this endpoint if you do not know the carrier's equipment identifiers. This information is necessary to create a shipment.
Requirements
Have the following information:
- Carrier Identifier (
SCAC
,MC_NUMBER
,DOT_NUMBER
,SYSTEM
,VAT
, orP44_EU
).
Workflow
Complete the following steps:
- Prepare a GET request to /api/v4/tl/assets and include the carrier identifier.
- Send the request.
Fields and Objects
Element | Description | Type | Notes |
---|---|---|---|
carrierIdentifier.type | The type of carrier identifier. | string | Valid values are SCAC , MC_NUMBER , DOT_NUMBER , SYSTEM , VAT , or P44_EU . |
carrierIdentifier.value | The value of the carrier identifier. | string |
Expected System Response
The request is successfully submitted and confirmed when a 200 OK
response is received. For example,
{ "paginationInfo": { "total": 0, "pageSize": 0, "pageNumber": 0 }, "results": [ { "type": "MOBILE_PHONE_NUMBER", "value": "string", "shouldDelete": false } ], "infoMessages": [ { "severity": "ERROR", "message": "string", "diagnostic": "string", "source": "SYSTEM" } ] }
Fields and Objects
Element | Description | Type | Notes |
---|---|---|---|
results.type | The type of equipment identifier. | string | Valid values are MOBILE_PHONE , VEHICLE_ID , LICENSE_PLATE , SENSITECH_DEVICE , or TIVE_DEVICE_ID . |
results.value | The value of the equipment identifier. | string | Cell phone numbers will be obfuscated in project44 responses for privacy reasons. |
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.
Validate Equipment Identifiers
Determine if an equipment identifier is valid for a given carrier and can be used for tracking. If the carrier's tracking vendor does not support validating equipment identifiers without initiating tracking, then the endpoint will always report that the identifier is valid.
Requirements
Have the following information:
- Carrier Identifier (
SCAC
,MC_NUMBER
,DOT_NUMBER
,SYSTEM
,VAT
orP44_EU
). - Equipment Identifier (
MOBILE_PHONE
,VEHICLE_ID
,LICENSE_PLATE
,SENSITECH_DEVICE
, orTIVE_DEVICE_ID
)
Workflow
Complete the following steps:
- Prepare a
GET
request to /api/v4/tl/equipment/validate and include the carrier and equipment identifiers. - Send the request.
Fields and Objects
Element | Description | Type | Notes |
---|---|---|---|
capacityProviderIdentifierValue | The type of capacity provider identifier. | string | Valid values are SCAC , MC_NUMBER , DOT_NUMBER , SYSTEM , VAT , or P44_EU . |
capacityProviderIdentifierType | The value of the capacity identifier. | string | |
equipmentIdentifier.type | The type of equipment identifier. | string | Valid values are MOBILE_PHONE , VEHICLE_ID , LICENSE_PLATE , SENSITECH_DEVICE , or TIVE_DEVICE_ID . |
equipmentIdentifier.value | The value of the equipment identifier. | string |
Expected System Response
The request is successfully submitted and confirmed when a 200 OK
response is received. For example,
{ "exists": true, "ownershipStatus": "CONNECTED", "valid": true }
Fields and Objects
Element | Description | Type | Notes |
---|---|---|---|
exists | Indicates if the asset exists in the project44 platform. | boolean |
If the equipment type is not |
ownershipStatus | Indicates if the asset is owned by the capacity provider. | string | Valid values are CONNECTED , NOT_CONNECTED , INDETERMINATE , or UNKNOWN . |
valid | True if the identifier may be used to initiate tracking, otherwise false. | boolean |
If |
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.