Last updated

Send Tracking Updates

Push a status update for an initialized Parcel shipment.

The estimatedTimeOfArrival field will be honored ONLY when it is sent with an ETA event type. When estimatedTimeOfArrival is sent with other event types, it will be ignored.

Once a valid time is sent for estimatedTimeOfArrival, it is preserved until estimatedTimeOfArrival is sent as NULL. Project44 does not automatically clear the estimatedTimeOfArrival once it is set.

Send a Position Update, Out for Delivery, Arrived at Stop, or Departed Stop Event Update

Requirements

Have the following information:

  • Carrier Identifier (SCAC, DOT_NUMBER, or MC_NUMBER)
  • Shipment Identifier (TRACKING_NUMBER)
  • Location Information (city, state, postal code, and country)
  • Timestamp
  • Event Type (OUT_FOR_DELIVERY,ARRIVED_AT_STOP, DEPARTED_STOP, POSITION_UPDATE)

Workflow

  1. Prepare POST request to api/v4/capacityproviders/parcel/shipments/statusupdates. For example,
{
    "carrierIdentifier": {
        "type": "SCAC",
        "value": "FXFE"
    },
    "shipmentIdentifier": [
        {
            "type": "TRACKING_NUMBER",
            "value": "1234567890"
        }
    ],
    "location": {
        "address": {
            "country": "US",
            "postalCode": "60654",
            "addressLines": [
                "222 W Merchandise Mart Plaza"
            ],
            "city": "Chicago",
            "state": "IL"
        },
        "geoCoordinates": {
            "latitude": 41.88837,
            "longitude": -87.63536
        }
    },
    "timestamp": "2020-07-10T01:30:00-0500",
    "eventType": "POSITION_UPDATE",
    "statusDescription": "XYZ"
}
  1. Send the request.

Fields and Objects

ElementDescriptionTypeNotes
carrierIdentifier.typeThe Carrier identifier type.stringRequired. Valid values are SCAC, DOT_NUMBER, MC_NUMBER.
carrierIdentifier.valueThe value of the Carrier identifier.stringRequired.
shipmentIdentifier.typeThe type of shipment identifierstringRequired. Valid value is TRACKING_NUMBER.
shipmentIdentifier.valueThe value of the shipment identifierstringRequired.
location.address.countryThe country of the current shipment location.stringRequired.
location.address.postalCodeThe postal code of the current shipment location.stringRequired.
location.address.addressThe street address of the current shipment location.string arrayRequired.
location.address.cityThe city of the current shipment location.stringRequired.
location.address.stateThe state of the current shipment location.stringRequired.
location.geoCoordinates.latitudeThe approximate geographic latitude of the current shipment location.number <float>Valid values are [-90...90].
location.geoCoordinates.longitudeThe approximate geographic longitude of the current shipment location.number <float>Valid values are [-180...180].
timestampThe at which the status update event occurred.stringRequired. The timezone format is ISO 8601. A timezone offset (Z) must be provided: yyyy-MM-dd'T'HH:mm:ssZ. For example, 2019-11-14T12:30:00-0500.
eventTypeThe event for this status update.stringRequired. Valid values are OUT_FOR_DELIVERY,ARRIVED_AT_STOP, DEPARTED_STOP, POSITION_UPDATE. See the Appendix for event descriptions.
statusDescriptionAdditional details for the shipment status update.string

Expected System Response

The request is successfully submitted and confirmed when a 202 ACCEPTED response is received.

{
    "carrierIdentifier": {
        "type": "SCAC",
        "value": "FXFE"
    },
    "shipmentIdentifier": [
        {
            "type": "TRACKING_NUMBER",
            "value": "1234567890"
        }
    ],
    "location": {
        "address": {
            "country": "US",
            "postalCode": "60654",
            "addressLines": [
            "222 W Merchandise Mart Plaza"
            ],
            "city": "Chicago",
            "state": "IL"
        },
        "geoCoordinates": {
            "latitude": 41.88837,
            "longitude": -87.63536
        }
    },
    "timestamp": "2020-07-10T01:30:00-0500",
    "eventType": "POSITION_UPDATE",
    "statusDescription": "XYZ"
}

Fields and Objects

ElementDescriptionTypeNotes
carrierIdentifier.typeThe Carrier identifier type.stringValid values are SCAC, DOT_NUMBER, MC_NUMBER.
carrierIdentifier.valueThe value of the Carrier identifier.string
shipmentIdentifier.typeThe type of shipment identifierstringValid value is TRACKING_NUMBER.
shipmentIdentifier.valueThe value of the shipment identifierstring
location.address.countryThe country of the current shipment location.string
location.address.postalCodeThe postal code of the current shipment location.string
location.address.addressThe street address of the current shipment location.string array
location.address.cityThe city of the current shipment location.string
location.address.stateThe state of the current shipment location.string
location.geoCoordinates.latitudeThe approximate geographic latitude of the current shipment location.number <float>Valid values are [-90...90].
location.geoCoordinates.longitudeThe approximate geographic longitude of the current shipment location.number <float>Valid values are [-180...180].
timestampThe at which the status update event occurred.stringThe timezone format is ISO 8601: yyyy-MM-dd'T'HH:mm:ssZ. Z is the timezone offset. For example, 2019-11-14T12:30:00-0500.
eventTypeThe event for this status update.stringValid values are OUT_FOR_DELIVERY,ARRIVED_AT_STOP, DEPARTED_STOP, or POSITION_UPDATE. See the Appendix event descriptions
statusDescriptionAdditional details for the shipment status update.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.

Send an ETA Event Update

Requirements

Have the following information:

  • Carrier Identifier (SCAC, DOT_NUMBER, or MC_NUMBER)
  • Shipment Identifier (TRACKING_NUMBER)
  • Timestamp
  • Estimated Time of Arrival
  • Event Type (ETA)

Workflow

  1. Prepare POST request to api/v4/capacityproviders/parcel/shipments/statusupdates. For example,
{
    "carrierIdentifier": {
        "type": "SCAC",
        "value": "FXFE"
    },
    "shipmentIdentifier": [
        {
            "type": "TRACKING_NUMBER",
            "value": "1234567890"
        }
    ],
    "timestamp": "2020-07-10T01:30:00-0500",
    "eventType": "ETA",
    "estimatedTimeOfArrival": "2020-07-10T01:30:00-0500"
}
  1. Send the request.

Fields and Objects

ElementDescriptionTypeNotes
carrierIdentifier.typeThe Carrier identifier type.stringRequired. Valid values are SCAC, DOT_NUMBER, MC_NUMBER.
carrierIdentifier.valueThe value of the Carrier identifier.stringRequired.
shipmentIdentifier.typeThe type of shipment identifierstringRequired. Valid value is TRACKING_NUMBER.
shipmentIdentifier.valueThe value of the shipment identifierstringRequired.
timestampThe at which the status update event occurred.stringRequired. The timezone format is ISO 8601. A timezone offset (Z) must be provided: yyyy-MM-dd'T'HH:mm:ssZ. For example, 2019-11-14T12:30:00-0500.
estimatedTimeOfArrivalThe estimated time of shipment delivery at the destination stop.string (Accepts NULL)Required. The timezone format is ISO 8601. A timezone offset (Z) must be provided: yyyy-MM-dd'T'HH:mm:ssZ. For example, 2019-11-14T12:30:00-0500. Use NULL to clear the value that is set.
eventTypeThe event for this status update.stringRequired. Valid value is ETA. See the Appendix for the event description.

Expected System Response

The request is successfully submitted and confirmed when a 202 ACCEPTED response is received.

{
    "carrierIdentifier": {
        "type": "SCAC",
        "value": "FXFE"
    },
    "shipmentIdentifier": {
        "type": "TRACKING_NUMBER",
        "value": "1234567890"
    },
    "timestamp": "2020-07-10T01:30:00-0500",
    "eventType": "ETA",
    "estimatedTimeOfArrival": "2020-07-10T01:30:00-0500"
}

Fields and Objects

ElementDescriptionTypeNotes
carrierIdentifier.typeThe Carrier identifier type.stringValid values are SCAC, DOT_NUMBER, MC_NUMBER.
carrierIdentifier.valueThe value of the Carrier identifier.string
shipmentIdentifier.typeThe type of shipment identifierstringValid value is TRACKING_NUMBER.
shipmentIdentifier.valueThe value of the shipment identifierstring
timestampThe at which the status update event occurred.stringThe timezone format is ISO 8601: yyyy-MM-dd'T'HH:mm:ssZ. Z is the timezone offset. For example, 2019-11-14T12:30:00-0500.
estimatedTimeOfArrivalThe estimated time of shipment delivery at the destination stop.stringThe timezone format is ISO 8601: yyyy-MM-dd'T'HH:mm:ssZ. Z is the timezone offset. For example, 2019-11-14T12:30:00-0500.
eventTypeThe event for this status update.stringValid value is ETA. See the Appendix for the event description.

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.

Send Any Other Event Update

Requirements

Have the following information:

  • Carrier Identifier (SCAC, DOT_NUMBER, or MC_NUMBER)
  • Shipment Identifier (TRACKING_NUMBER)
  • Timestamp
  • Event Type (DELAYED, HELD, EXCEPTION, DELIVERY_MISSED, LOADED_FOR_DELIVERY, RETURN_TO_SENDER, SHIPMENT_RECEIVED, SHIPMENT_CREATED, AVAILABLE_FOR_PICKUP, PICKED_UP, DELIVERED, CANCELLED)

Workflow

  1. Prepare POST request to api/v4/capacityproviders/parcel/shipments/statusupdates. For example,
{
    "carrierIdentifier": {
        "type": "SCAC",
        "value": "FXFE"
    },
    "shipmentIdentifier": [
        {
            "type": "TRACKING_NUMBER",
            "value": "1234567890"
        }
    ],
    "timestamp": "2020-07-10T01:30:00-0500",
    "eventType": "POSITION_UPDATE"
}
  1. Send the request.

Fields and Objects

ElementDescriptionTypeNotes
carrierIdentifier.typeThe Carrier identifier type.stringRequired. Valid values are SCAC, DOT_NUMBER, MC_NUMBER.
carrierIdentifier.valueThe value of the Carrier identifier.stringRequired.
shipmentIdentifier.typeThe type of shipment identifierstringRequired. Valid value is TRACKING_NUMBER.
shipmentIdentifier.valueThe value of the shipment identifierstringRequired.
location.address.countryThe country of the current shipment location.stringSuggested for EXCEPTION, LOADED_FOR_DELIVERY, AVAILABLE_FOR_PICKUP, and PICKED_UP event types.
location.address.postalCodeThe postal code of the current shipment location.stringSuggested for EXCEPTION, LOADED_FOR_DELIVERY, AVAILABLE_FOR_PICKUP, and PICKED_UP event types.
location.address.addressThe street address of the current shipment location.string arraySuggested for EXCEPTION, LOADED_FOR_DELIVERY, AVAILABLE_FOR_PICKUP, and PICKED_UP event types.
location.address.cityThe city of the current shipment location.stringSuggested for EXCEPTION, LOADED_FOR_DELIVERY, AVAILABLE_FOR_PICKUP, and PICKED_UP event types.
location.address.stateThe state of the current shipment location.stringSuggested for EXCEPTION, LOADED_FOR_DELIVERY, AVAILABLE_FOR_PICKUP, and PICKED_UP event types.
timestampThe at which the status update event occurred.stringRequired. The timezone format is ISO 8601. A timezone offset (Z) must be provided: yyyy-MM-dd'T'HH:mm:ssZ. For example, 2019-11-14T12:30:00-0500.
eventTypeThe event for this status update.stringRequired. Valid values are EXCEPTION, LOADED_FOR_DELIVERY, AVAILABLE_FOR_PICKUP, and PICKED_UP. See the Appendix for event descriptions.
statusDescriptionAdditional details for the shipment status update.string

Expected System Response

The request is successfully submitted and confirmed when a 202 ACCEPTED response is received.

{
    "carrierIdentifier": {
        "type": "SCAC",
        "value": "FXFE"
    },
    "shipmentIdentifier": [
        {
            "type": "TRACKING_NUMBER",
            "value": "1234567890"
        }
    ],
    "timestamp": "2020-07-10T01:30:00-0500",
    "eventType": "POSITION_UPDATE"
}

Fields and Objects

ElementDescriptionTypeNotes
carrierIdentifier.typeThe Carrier identifier type.string
carrierIdentifier.valueThe value of the Carrier identifier.string
shipmentIdentifier.typeThe type of shipment identifierstring
shipmentIdentifier.valueThe value of the shipment identifierstring
timestampThe at which the status update event occurred.stringThe timezone format is ISO 8601: yyyy-MM-dd'T'HH:mm:ssZ. Z is the timezone offset. For example, 2019-11-14T12:30:00-0500.
eventTypeThe event for this status update.stringValid values are EXCEPTION, LOADED_FOR_DELIVERY, AVAILABLE_FOR_PICKUP, and PICKED_UP. See the Appendix for event descriptions.
statusDescriptionAdditional details for the shipment status update.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.