Delivery Attempts & NDR

NDR Reason Codes & Diagnostics

Standardized Non-Delivery Report (NDR) tracking and failure diagnostic classification across Indian delivery partners.

The delivery_attempts Object

ClearTrack parses unstructured carrier descriptions to extract the number of delivery attempts and map failures to canonical reason codes:

JSON (Illustrative Example) delivery_attempts
{
  "count": 1,
  "attempts": [
    {
      "at": "2026-10-08T16:20:00.000Z",
      "outcome": "failed",
      "reason_code": "customer_unavailable",
      "reason_text": "Door Closed / Customer Not Available"
    }
  ]
}

Normalized Reason Code Enum (reason_code)

Every failed attempt contains a standardized reason_code imported directly from our event classification engine:

Code Value Diagnostic Category Meaning Recommended Action
customer_unavailable Customer Unavailable Recipient was not available at delivery address or phone was unreachable. Send automated WhatsApp/SMS message to confirm recipient availability for re-attempt.
address_issue Address Issue Incomplete address, missing landmark, incorrect house number, or invalid pin code. Trigger immediate address confirmation link to customer before the parcel is sent to RTO.
refused Customer Refused Recipient refused to accept the package or rejected COD verification. Alert support team to confirm cancellation reason before the package returns to origin.
premises_closed Premises Closed Office, storefront, or residential premises were closed or locked at the time of delivery. Confirm business operating hours or alternate contact number with the recipient.
cod_not_ready COD Payment Not Ready Cash on Delivery payment was not ready or digital payment collection failed at doorstep. Send payment link or alert customer with exact cash amount required for next delivery attempt.
other Operational Exception Logistics partner operational constraint, route delay, or weather hold. Monitor package for automated re-attempt on next operating business day.

Automating Customer Outreach

By monitoring delivery_attempts.attempts for failed outcomes, fulfillment backends can trigger targeted customer communication before the courier initiates Return to Origin (RTO).

For practical code examples in Node.js and Python, read our developer guide: Handling Failed Delivery Attempts with Webhooks or explore the NDR Reason Codes Solution Page.