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_NUMBER, 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_NUMBER, 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_NUMBER, 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.