Last updated

Appendix

Exception Codes

project44 Exception Codes

The table below lists project44’s Reason Summary and Detail Code for shipment exceptions during tracking.

reasonSummaryCodereasonDetailCode
APPOINTMENT_ISSUEAPPOINTMENT_SET
APPOINTMENT_ISSUEPERMANENT_APPOINTMENT_REQUIRED
APPOINTMENT_ISSUEDELIVERY_ATTEMPTED_REAR_LOAD
APPOINTMENT_ISSUEDELIVERY_ATTEMPTED_APPOINTMENT
BILLING_ISSUECREDIT_HOLD
BILLING_ISSUENO_PAYMENT_AVAILABLE_AT_DELIVERY
DELIVERY_ISSUECONSIGNEE_CLOSED
DELIVERY_ISSUEDELIVERY_ATTEMPTED_NO_DOCK_SPACE
DELIVERY_ISSUELIMITED_ACCESS_LOCATIONS
DELIVERY_ISSUEINCORRECT_ADDRESS_PROVIDED
DELIVERY_ISSUEREFUSED_NO_RETURN_AUTHORIZATION
DELIVERY_ISSUECONSIGNEE_CANCELLED_ORDER
DELIVERY_ISSUEDELIVERY_REQUIRES_SPECIAL_EQUIPMENT
DELIVERY_ISSUECONSIGNEE_DISPUTES_CHARGES
DELIVERY_ISSUECONS_CLOSED_FOR_HOLIDAY
DELIVERY_ISSUERECONSIGNED_TO_NEW_CONSIGNEE
DELIVERY_ISSUEREFUSED_BY_CONS_CANNOT_RECEIVE_ON_DELIVERY_DATE
DELIVERY_ISSUECANNOT_REACH_CONSIGNEE
DELIVERY_ISSUECANNOT_FIND_CONSIGNEE_ADDRESS
OTHER_EXCEPTIONGENERAL_EXCEPTION
PAPERWORK_ISSUEINVALID_OR_MISSING_PURCHASE_ORDER_NUMBER
PAPERWORK_ISSUEMISSING_PACKING_LIST
SHIPMENT_ISSUEOVERAGE
SHIPMENT_ISSUESHORTAGE
SHIPMENT_ISSUECONS_DID_NOT_ORDER_FREIGHT
SHIPMENT_ISSUEWRONG_PRODUCT_SHIPPED
SHIPMENT_ISSUEDUPLICATE_SHIPMENT
SHIPMENT_ISSUEPROTECTIVE_SERVICE_REQUIRED
SHIPMENT_ISSUEDAMAGED_ON_DELIVERY
SHIPMENT_ISSUEHAZARDOUS_MATERIAL
SHIPMENT_ISSUEDAMAGED
SPOT_SHIPMENTSPOT_MARKET_SHIPMENT
STAFFING_ISSUEWORK_STOPPAGE
TRANSIT_ISSUESHIPMENT_TENDERED_LATE
TRANSIT_ISSUEWAITING_INSTRUCTIONS
TRANSIT_ISSUEEMERGENCY_DELAY_IN_TRANSIT
TRANSIT_ISSUESHIPMENT_ALASKA_OR_HAWAII
VEHICLE_ISSUESHIP_WHEN_CAPACITY_AVAILABLE
WEATHER_ISSUEWEATHER_DELAY_CLEARED
WEATHER_ISSUEWEATHER_DELAY
INFO_MESSAGE

Exception Code Payload Examples

Below are examples of how to use exception codes in the POST Send Tracking Data payload.

Using project44’s exception code:

JSON
  "statusCode": "OUT_FOR_DELIVERY",
  "statusReason": {
    "reasonSummaryCode": "APPOINTMENT_ISSUE",
    "reasonDetailCode": "DELIVERY_ATTEMPTED_APPOINTMENT",
    "description": "string"
  }

Using project44’s exception code:

JSON
  "statusCode": "DELIVERED",
  "statusReason": {
    "reasonSummaryCode": "SHIPMENT_ISSUE",
    "reasonDetailCode": "DAMAGED_ON_DELIVERY",
    "description": "string"
  }

Using project44’s exception code with additional explanation in the description field:

JSON
  "statusCode": "DELIVERED",
  "statusReason": {
    "reasonSummaryCode": "SHIPMENT_ISSUE",
    "reasonDetailCode": "DAMAGED_ON_DELIVERY",
    "description": "package number 002 is slightly damaged"
  }

Using an exception code that does not match or cannot be mapped to one of project44’s exception codes:

JSON
  "statusCode": "INFO",
  "statusReason": {
    "reasonSummaryCode": "INFO_MESSAGE",
    "description": "string"
  }

Using an exception code that does not match or cannot be mapped to one of project44’s exception codes:

JSON
  "statusCode": "DELIVERED",
  "statusReason": {
    "reasonSummaryCode": "INFO_MESSAGE",
    "description": "string"
  }

Error Response Codes

This Appendix describes the schema and fields of the standard project44 API Error Response.

Below, find the API Error Response Schema:

400 Invalid Request

{
  "httpStatusCode": 400,
  "httpMessage": "string",
  "errorMessage": "string",
  "errors": [
    {
      "severity": "ERROR",
      "message": "string",
      "diagnostic": "string",
      "source": "SYSTEM"
    }
  ],
  "supportReferenceId": "string"
}

401 Invalid or missing credentials

{
  "httpStatusCode": 401,
  "httpMessage": "string",
  "errorMessage": "string",
  "errors": [
    {
      "severity": "ERROR",
      "message": "string",
      "diagnostic": "string",
      "source": "SYSTEM"
    }
  ],
  "supportReferenceId": "string"
}

403 User not authorized to perform this operation

{
  "httpStatusCode": 403,
  "httpMessage": "string",
  "errorMessage": "string",
  "errors": [
    {
      "severity": "ERROR",
      "message": "string",
      "diagnostic": "string",
      "source": "SYSTEM"
    }
  ],
  "supportReferenceId": "string"
}

The table below describes each field of the API Error Response:

Error Response FieldDescription
httpStatusCodeThe value of the HTTP status code. Possible values are: 400, 401, or403
httpMessageA brief description of the HTTP status code. Possible values are: Invalid request (httpStatusCode = 400), Invalid or missing credentials (httpStatusCode = 401), User not authorized to perform this operation (httpStatusCode = 403)
errorMessageA detailed description of the error. For example: "errorMessage": "Text '2022-03-23T18:38:00Z' could not be parsed, unparsed text found at index 19"
errorsThis array contains more details about the error
errors.severityThe severity of this message. Possible values are: ERROR, WARNING, INFO
error.messageMore information about the error.  For example: Appointment in the Past
error.diagnosticDiagnostic information from project44 (The System) or from the Capacity Provider/Carrier. NOTE: In a Capacity Provider/Carrier integration, it would come only from project44.
error.sourceThe originator of the error message. NOTE: In a Capacity Provider/Carrier integration, the originator will always be SYSTEM. Possible values are: SYSTEM (project44 error) or CAPACITY PROVIDER (Capacity Provider or Carrier error).
supportReferenceId A reference identifier used by project44 support to assist with certain error messages.