Last updated

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, or P44_EU)
  • Shipment Identifier (BILL_OF_LADING or ORDER)
  • 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, or TIVE_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:

  1. Prepare a POST request to /api/v4/tl/shipments.
  2. 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
    }
  ]
}

This only shows the minimum required request schema. For the full request schema and descriptions for all fields and objects, please see our reference documentation.

  1. Send the request.

Fields and Objects

ElementDescriptionTypeNotes
carrierIdentifier.typeThe carrier identifier type.stringValid values are SCAC, MC_NUMBER, DOT_NUMBER, SYSTEM, VAT, or P44_EU.
carrierIdentifier.valueThe value of the carrier identifier.string
shipmentIdentifiers.typeThe type of the shipment identifier.stringValid values are ORDER or BILL_OF_LADING.
shipmentIdentifiers.valueThe value of the shipment identifier.string
shipmentStops.stopNumberThe 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.startDateTimeThe appointment window start date and time for the stop.string
shipmentStops.appointmentWindow.endDateTimeThe appointment window end date and time for the stop.string
shipmentStops.appointmentWindow.localTimeZoneIdentifierThe timezone of the appointment window for the stop.stringFor example, 'America/Chicago'.
shipmentStops.location.address.postalCodeThe postal code for the stop.string
shipmentStops.location.address.addressLinesThe street address for the stop.string
shipmentStops.location.address.cityThe stop's city.string
shipmentStops.location.address.stateThe stop's state.stringThis field is only relevant for USA, Mexico, and Canada.
shipmentStops.location.address.countryThe stop's country.string <enum>
shipmentStops.geocoordinate.latitudeThe 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.longitudeThe 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.typeThe type of equipment identifier.stringThis 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.valueThe value of the equipment identifier.stringThis 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"
        }
    ]
}

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.

A unique project44 ID is returned in the response after shipment creation. Store this ID to use in future API calls.

Fields and Objects

ElementDescriptionTypeNotes
shipment.idThe unique project44 ID is returned in the response after shipment creation.integer <int64>Store this ID to use in future API calls.
shipment.carrierIdentifier.typeThe carrier identifier type.stringValid values are SCAC, MC_NUMBER, DOT_NUMBER, SYSTEM, VAT, or P44_EU.
shipment.carrierIdentifier.valueThe value of the carrier identifier.string
shipment.shipmentIdentifiers.typeThe type of the shipment identifier.stringValid values are ORDER or BILL_OF_LADING.
shipment.shipmentIdentifiers.valueThe value of the shipment identifier.string
shipment.shipmentStops.stopNumberThe 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.startDateTimeThe appointment window start date and time for the stop.string
shipment.shipmentStops.appointmentWindow.endDateTimeThe appointment window end date and time for the stop.string
shipment.shipmentStops.appointmentWindow.localTimeZoneIdentifierThe timezone of the appointment window for the stop.stringFor example, 'America/Chicago'.
shipment.shipmentStops.location.address.postalCodeThe postal code for the stop.string
shipment.shipmentStops.location.address.addressLinesThe street address for the stop.string
shipment.shipmentStops.location.address.cityThe stop's city.string
shipment.shipmentStops.location.address.stateThe stop's state.stringThis field is only relevant for USA, Mexico, and Canada.
shipment.shipmentStops.location.address.countryThe stop's country.string <enum>
shipment.equipmentIdentifiers.typeThe type of equipment identifier.stringThis 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.valueThe value of the equipment identifier.stringThis 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, or P44_EU)

Workflow

Complete these steps:

  1. Prepare a GET request to /api/v4/tl/shipments/trackingmethods.
  2. Send the request.

Fields and Objects

ElementDescriptionTypeNotes
carrierIdentifier.typeThe carrier identifier type.stringValid values are SCAC, MC_NUMBER, DOT_NUMBER, SYSTEM, VAT, or P44_EU.
carrierIdentifier.valueThe 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"
      }
    }
  ]
}

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.

Fields and Objects

ElementDescriptionTypeNotes
trackingMethods.capacityProviderAccount.codeThe code for the requested capacity provider account.string
trackingMethods.equipmentIdentifier.typeThe type of equipment identifier.stringValid values are SCAC, MC_NUMBER, DOT_NUMBER, SYSTEM, VAT, or P44_EU.
trackingMethods.equipmentIdentifier.valueThe value of the equipment identifier.stringCell phone numbers will be obfuscated in project44 responses for privacy reasons.
trackingMethods.shipmentIdentifier.typeThe type of shipment identifier.stringValid values are BILL_OF_LADING and ORDER.
trackingMethods.shipmentIdentifier.valueThe 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, or P44_EU).

Workflow

Complete the following steps:

  1. Prepare a GET request to /api/v4/tl/assets and include the carrier identifier.
  2. Send the request.

Fields and Objects

ElementDescriptionTypeNotes
carrierIdentifier.typeThe type of carrier identifier.stringValid values are SCAC, MC_NUMBER, DOT_NUMBER, SYSTEM, VAT, or P44_EU.
carrierIdentifier.valueThe 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

ElementDescriptionTypeNotes
results.typeThe type of equipment identifier.stringValid values are MOBILE_PHONE, VEHICLE_ID, LICENSE_PLATE, SENSITECH_DEVICE, or TIVE_DEVICE_ID.
results.valueThe value of the equipment identifier.stringCell 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.

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 or P44_EU).
  • Equipment Identifier (MOBILE_PHONE, VEHICLE_ID, LICENSE_PLATE, SENSITECH_DEVICE, or TIVE_DEVICE_ID)

Workflow

Complete the following steps:

  1. Prepare a GET request to /api/v4/tl/equipment/validate and include the carrier and equipment identifiers.
  2. Send the request.

Fields and Objects

ElementDescriptionTypeNotes
capacityProviderIdentifierValueThe type of capacity provider identifier.stringValid values are SCAC, MC_NUMBER, DOT_NUMBER, SYSTEM, VAT, or P44_EU.
capacityProviderIdentifierTypeThe value of the capacity identifier.string
equipmentIdentifier.typeThe type of equipment identifier.stringValid values are MOBILE_PHONE, VEHICLE_ID, LICENSE_PLATE, SENSITECH_DEVICE, or TIVE_DEVICE_ID.
equipmentIdentifier.valueThe 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

ElementDescriptionTypeNotes
existsIndicates if the asset exists in the project44 platform.boolean

true if the asset exists in the project44 platform. Otherwise, false.

If the equipment type is not MOBILE_PHONE_NUMBER or LICENSE_PLATE, the capacity provider must be the owner of the equipment (ownershipStatus is true).

ownershipStatusIndicates if the asset is owned by the capacity provider.stringValid values are CONNECTED, NOT_CONNECTED, INDETERMINATE, or UNKNOWN.
validTrue if the identifier may be used to initiate tracking, otherwise false.boolean

true if the equipment identifier is connected to the project44 platform.

If false, use the Expand Carrier Network workflow to invite the capacity provider to join the project44 platform.

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.