Unfortunately, this feature is not supported on mobile devices. For the best experience, please use a computer.

project44 REST API (4.0.0)

Version 4.0.0 of project44's API

Download OpenAPI description
Languages
Servers
Mock server
https://developers.project44.com/_mock/guides/carriers/visibility/ltl/api/
API endpoint for project44 tenants created in NA region
https://na12.api.project44.com/
API endpoint for project44 tenants created in EU region
https://eu12.api.project44.com/
API endpoint for project44 tenants created in the Sandbox environment
https://na12.api.sandbox.p-44.com/

Manage Client Applications

Operations

Generate Tokens

Operations

LTL: Push Tracking

Operations

Upsert shipment details.

Request

Required Fields

  • customerAccount:
    • accountIdentifier
  • carrierIdentifier:
    • type
    • value
  • shipmentIdentifiers:
    • type
    • value
    • primaryForType (if more than one shipment identifier of the same type)
Bodyrequired

shipment

carrierIdentifierobject(CapacityProviderIdentifier)

A capacity provider identifier object.

customerAccountobject(CustomerAccount)
shipmentIdentifiersArray of objects(LtlShipmentIdentifier)

A list of shipment identifiers that, with the exception of the EXTERNAL type, can be used to track the shipment. At least one identifier of type 'PRO' must be included in the list. The source field cannot be provided in this API.

shipmentStopsArray of objects(LtlTrackedShipmentStop)

A list of the shipment stops for the shipment. When stop data is provided, there must be at least two stops -- one of type 'ORIGIN' and one of type 'DESTINATION'. 'ORIGIN' and 'DESTINATION' stops must have location address information including addressLines, city, state, country, postalCode and location contact information including companyName. Stops of type 'TERMINAL' (service center) may be included or added as the shipment is tracked and they are discovered. 'TERMINAL' stops must have location address information including city, state, country, postalCode and location contact information including companyName. 'TERMINAL' stops must also have terminalCode. All stop types require a stop number. The stop number represents the order for which the stops will be visited. Besides 'ORIGIN' always being stopNumber: 1, stopNumber may change as 'TERMINAL's are discovered throughout tracking (i.e. initially there may only be two known stops; 'ORIGIN' with stopNumber 1 and 'DESTINATION' with stopNumber 2. Once a 'TERMINAL' stop is discovered, the 'DESTINATION' stop will now have stopNumber 3. Stop objects contain an object called 'appointmentWindow'. These appointment windows are the requested appointment windows found on the bill of lading. If the stop type is 'ORIGIN', it is a requested pickup appointment window and if the stop type is 'DESTINATION', it is a requested delivery appointment window.

sourceTypestring

The original type of data source for where this shipment originated from. (default: API)

Enum"API""EDI"
transitDaysinteger(int32)

The number of days it will take to deliver the load after pickup.

curl -i -X PUT \
  https://developers.project44.com/_mock/guides/carriers/visibility/ltl/api/api/v4/capacityproviders/ltl/shipments \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "carrierIdentifier": {
      "type": "SCAC",
      "value": "string"
    },
    "customerAccount": {
      "accountIdentifier": "string"
    },
    "shipmentIdentifiers": [
      {
        "type": "PRO",
        "value": "string",
        "primaryForType": true,
        "source": "CUSTOMER"
      }
    ],
    "shipmentStops": [
      {
        "additionalAppointmentWindows": [
          {
            "type": "STRATEGIC",
            "appointmentWindow": {
              "startDateTime": "2019-08-24T14:15:22Z",
              "endDateTime": "2019-08-24T14:15:22Z",
              "localTimeZoneIdentifier": "string"
            },
            "appointmentStatus": "PENDING",
            "identifiers": [
              {
                "type": "DOCK",
                "value": "string"
              }
            ]
          }
        ],
        "appointmentWindow": {
          "startDateTime": "2019-08-24T14:15:22Z",
          "endDateTime": "2019-08-24T14:15:22Z",
          "localTimeZoneIdentifier": "string"
        },
        "geoCoordinates": {
          "latitude": -90,
          "longitude": -180
        },
        "id": 0,
        "involvedParties": [
          {
            "partyIdentifiers": [
              {
                "type": "ACCOUNT",
                "value": "string"
              }
            ]
          }
        ],
        "location": {
          "address": {
            "postalCode": "string",
            "addressLines": [
              "str"
            ],
            "city": "string",
            "state": "string",
            "country": "US"
          },
          "contact": {
            "companyName": "string",
            "contactName": "string",
            "phoneNumber": "string",
            "phoneNumberCountryCode": "string",
            "phoneNumber2": "string",
            "phoneNumber2CountryCode": "string",
            "email": "string",
            "faxNumber": "string",
            "faxNumberCountryCode": "string"
          }
        },
        "locationIdentifiers": [
          {
            "type": "EXTERNAL",
            "value": "string"
          }
        ],
        "stopDescription": "string",
        "stopName": "string",
        "stopNumber": 0,
        "stopType": "ORIGIN",
        "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"
      }
    ],
    "sourceType": "API",
    "transitDays": 0
  }'

Responses

Accepted

Body
Response
{ "httpStatusCode": 0, "httpMessage": "string", "errorMessage": "string", "errors": [ {} ], "supportReferenceId": "string" }

Create status updates for a shipment.

Request

Required Fields

  • customerAccount:
    • accountIdentifier
  • carrierIdentifier:
    • type
    • value
  • shipmentIdentifiers:
    • type
    • value
    • primaryForType (if more than one shipment identifier of the same type)
  • statusCode
  • location: (if statusCode is 'ARRIVED_AT_TERMINAL' or 'DEPARTED_TERMINAL')
    • address: (if location provided)
      • city (if location provided)
      • state (if location provided and country is US)
      • country (if location provided and country is not US. Default: US)
  • deliveryAppointmentWindow: (if statusCode is 'UPDATED_DELIVERY_APPT')
  • timestamp
Bodyrequired

statusUpdate

arrivalEstimateobject(LtlCapacityProviderPushShipmentArrivalEstimate)
carrierIdentifierobject(CapacityProviderIdentifier)

A capacity provider identifier object.

customerAccountobject(CustomerAccount)
deliveryAppointmentWindowobject(OffsetDateTimeWindow)

A date and time range, with time zone offset.

geoCoordinatesobject(GeoCoordinates)
locationobject(Location)

A physical location.

proIdentifierobject(LtlShipmentIdentifier)
shipmentIdentifiersArray of objects(LtlShipmentIdentifier)

A list of shipment identifiers that, with the exception of the EXTERNAL type, can be used to track the shipment. At least one identifier of type 'PRO' must be included in the list. The source field cannot be provided in this API.

sourceTypestring

The original type of data source for where this status update originated from. (default: API)

Enum"API""EDI"
statusCodestring

The project44 status code for this status update. This field must always be populated.

Enum"READY_FOR_PICKUP""UPDATED_PICKUP_APPT""EXCEPTION""PICKED_UP""ARRIVED_AT_TERMINAL""REWEIGHT_RECLASS""INFO""UPDATED_DELIVERY_APPT""DEPARTED_TERMINAL""OUT_FOR_DELIVERY""DELIVERED"
statusReasonobject(LtlCapacityProviderPushStatusReason)
stopNumberinteger(int32)

The stop number, where '1' is the origin and the destination has the largest number, with any stops in between ordered by appointment time.

stopTypestring

The type of the shipment stop to which this status update corresponds, if any. For example, a status update with code 'AT_STOP' will typically have this field populated with the stop type the vehicle is at.

Enum"ORIGIN""DESTINATION""TERMINAL"
terminalCodestring

The service center's code. For example, the capacity provider's service center in Miami may have a code like 'MIA-123' or 'MIA'. This should match a stop code of one of the shipment stop's stop codes.

timestampstring

The timestamp of this status update in the time zone of the location (format: yyyy-MM-dd'T'HH:mm:ssZ). If this status update has no location, the time zone should be UTC.

curl -i -X POST \
  https://developers.project44.com/_mock/guides/carriers/visibility/ltl/api/api/v4/capacityproviders/ltl/shipments/statusupdates \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "arrivalEstimate": {
      "estimatedArrivalWindow": {
        "startDateTime": "2019-08-24T14:15:22Z",
        "endDateTime": "2019-08-24T14:15:22Z"
      }
    },
    "carrierIdentifier": {
      "type": "SCAC",
      "value": "string"
    },
    "customerAccount": {
      "accountIdentifier": "string"
    },
    "deliveryAppointmentWindow": {
      "startDateTime": "2019-08-24T14:15:22Z",
      "endDateTime": "2019-08-24T14:15:22Z"
    },
    "geoCoordinates": {
      "latitude": -90,
      "longitude": -180
    },
    "location": {
      "address": {
        "postalCode": "string",
        "addressLines": [
          "str"
        ],
        "city": "string",
        "state": "string",
        "country": "US"
      },
      "contact": {
        "companyName": "string",
        "contactName": "string",
        "phoneNumber": "string",
        "phoneNumberCountryCode": "string",
        "phoneNumber2": "string",
        "phoneNumber2CountryCode": "string",
        "email": "string",
        "faxNumber": "string",
        "faxNumberCountryCode": "string"
      }
    },
    "proIdentifier": {
      "type": "PRO",
      "value": "string",
      "primaryForType": true,
      "source": "CUSTOMER"
    },
    "shipmentIdentifiers": [
      {
        "type": "PRO",
        "value": "string",
        "primaryForType": true,
        "source": "CUSTOMER"
      }
    ],
    "sourceType": "API",
    "statusCode": "READY_FOR_PICKUP",
    "statusReason": {
      "description": "string",
      "reasonDetailCode": "APPOINTMENT_SET",
      "reasonSummaryCode": "APPOINTMENT_ISSUE"
    },
    "stopNumber": 0,
    "stopType": "ORIGIN",
    "terminalCode": "string",
    "timestamp": "string"
  }'

Responses

Accepted

Body
Response
{ "httpStatusCode": 0, "httpMessage": "string", "errorMessage": "string", "errors": [ {} ], "supportReferenceId": "string" }

Unified Shipment Tracking

Operations

Deprecated LTL Modal Tracking

Operations