Skip to main content

NDR & Reverse Pickup QC

client.ndr

NDR (Non-Delivery Report)

When a delivery attempt fails, Delhivery raises an NDR. Use client.ndr.update() to instruct the courier on what to do next.

update(params)

NameTypeRequiredDescription
waybillstringYesWaybill number
actionNDRActionYesAction to take
reattempt_datestringConditionalRe-attempt date (YYYY-MM-DD) for re-attempt/reschedule
updated_addressstringConditionalNew address for address-update
updated_contactstringConditionalNew phone for phone-update
seller_notestringNoMessage to courier

NDR actions

ActionDescription
re-attemptSchedule another delivery attempt
returnReturn the package to sender
confirmConfirm the customer wants delivery
address-updateUpdate delivery address
phone-updateUpdate customer phone
rescheduleReschedule to a specific date

Example

// Re-attempt delivery tomorrow
await client.ndr.update({
waybill: "1234567890",
action: "re-attempt",
reattempt_date: "2024-06-12",
seller_note: "Customer will be home after 6pm",
});

// Return to sender
await client.ndr.update({
waybill: "9876543210",
action: "return",
});

rvpQC(params)

Submit QC for a reverse pickup shipment upon collection from the customer.

NameTypeRequiredDescription
waybillstringYesWaybill number
qc_status"Pass" | "Fail"YesQC outcome
remarksstringNoReason for failure
otpstringNoOTP from customer

Example

await client.ndr.rvpQC({
waybill: "1234567890",
qc_status: "Pass",
otp: "456789",
});