
NDR in eCommerce: What It Means, Why Deliveries Fail, and How Auto Calling Reduces It
An NDR means a delivery attempt failed, not that the order is lost. Here is what each reason code means and how to save the order
Read More
An NDR is raised when a courier attempts a delivery and fails. It is not a return, and it is not a lost parcel — it is a warning, with a short deadline attached. From the moment an NDR appears, you usually have a day or two to fix whatever went wrong before the shipment turns around and starts travelling back to you.
Most sellers find out too late. The reason code sits in a report nobody opens until the weekly review, by which point the parcel is already an RTO and the money is already gone.
This guide covers what NDR means, what each reason code is actually telling you, what to do inside the window, and how automated calling changes the odds.
NDR stands for non-delivery report. It is the record a courier creates when a delivery attempt fails, and it always carries a reason code explaining why — customer unavailable, address incomplete, phone unreachable, refused, cash not ready.
The full form is the same across logistics in India: non-delivery report. Some couriers and platforms call it a delivery exception or a failed attempt. The meaning does not change.
Two things are worth understanding immediately.
An NDR is not a failure you have lost. It is a delivery that has not succeeded yet. The parcel is still in the destination city, usually at the local hub, and a re-attempt is normally possible. The order is recoverable.
An NDR has an expiry. Couriers make a limited number of attempts — commonly two or three, though it varies by partner and service level, and some services attempt only once. Once those attempts are used up, the shipment is marked RTO initiated and starts its journey back. Everything you can do, you have to do before that point.
That gap is the entire subject of this article.
These get used interchangeably in conversation and they describe completely different events.
|
Term |
What it means |
Where the parcel is |
Can you still act? |
|
NPR (non-pickup report) |
The courier failed to collect the shipment from you |
Still in your warehouse |
Yes — reschedule the pickup |
|
NDR (non-delivery report) |
A delivery attempt to your customer failed |
At the destination hub, near your customer |
Yes — this is your window |
|
RTO (return to origin) |
Attempts are exhausted; the parcel is coming back |
In transit, heading to you |
Rarely |
NPR sits at the start of the journey and NDR sits at the end, which is why confusing the two wastes time. An NPR means your parcel never left — check whether the pickup was scheduled, whether anyone was at your dispatch point, and whether the manifest was generated. An NDR means the parcel travelled all the way and failed at the last step.
And an NDR that nobody answers becomes an RTO. If you want the full picture of what happens after that. read our guide to reducing RTO in ecommerce.
What Happens After an NDR Is Raised
The sequence is predictable, which is useful — it means you always know where you are.
Out for delivery. The parcel is with a delivery agent.
Attempt fails. The agent cannot complete the delivery.
NDR raised. A reason code is logged against the shipment.
Your window opens. Typically a day or two, sometimes less.
Re-attempt. The courier tries again — automatically with some partners, only on request with others.
Attempts exhausted. The shipment is marked RTO initiated and turns around.
Step 5 is where sellers lose money without realising it. Many assume every courier automatically re-attempts three times. Several do not. Some services attempt once and return. With some partners a second attempt has to be requested through the dashboard or it simply never happens.
Confirm the attempt policy with every courier you ship with, in writing. That single number tells you exactly how long your window is, and it is different for each partner.
This is the part most guides skip. A reason code is not a description of what happened — it is the delivery agent's summary of what happened, entered quickly on a handheld device, and it often needs translating.
Exact code wording varies by courier, so treat this as a map rather than a rulebook. Match it against the codes your own partners use.
|
Reason code |
What it usually means |
What to do within 24 hours |
Worth challenging? |
|
Customer not available |
Nobody answered the door, or the agent could not reach the customer by phone |
Contact the customer, confirm a time, request a re-attempt with a note on the preferred slot |
Yes, if the customer says no call was received |
|
Customer not contactable |
The phone was switched off, unreachable or wrong |
Get an alternate number and update it against the shipment before the next attempt |
Sometimes |
|
Address incomplete / incorrect |
The agent could not locate the address |
Get the corrected address with a landmark, update it, then request a re-attempt |
No — this one is yours to fix |
|
Customer refused delivery |
The buyer declined the parcel at the door |
Call and find out why. Wrong expectation, duplicate order, or changed mind all need different responses |
No |
|
COD amount not ready |
The buyer could not pay the cash on delivery amount |
Offer a prepaid payment link, or confirm a date when cash will be available |
No |
|
Future delivery requested |
The customer asked for a later date |
Schedule the re-attempt for that date rather than letting the clock run out |
No |
|
Premises closed |
Office or shop was shut, usually a weekend or holiday attempt |
Confirm working hours and request a weekday or specific-slot attempt |
Sometimes |
|
Out of delivery area / non-serviceable |
The pin code is outside the courier's reach for that service |
Check serviceability before re-attempting. This order may need a different courier entirely |
No — but fix it upstream |
|
Shipment damaged |
The parcel was damaged in transit |
Photograph on return, raise the claim inside the courier's window, ship a replacement |
Yes — this is a claim, not an NDR |
|
Self-collection requested |
The customer wants to pick it up from the hub |
Confirm with the customer and share the hub details |
No |
Three patterns to look for once you have a month of these logged.
Codes that cluster by pin code usually mean an address format problem or a genuine serviceability gap, not a customer problem.
Codes that cluster by courier for the same destinations mean the courier is the variable. Same pin code, same category, two partners, very different NDR rates — that is attempt discipline, not geography.
Codes that cluster by payment mode point at COD. "COD amount not ready" and "customer refused" concentrated on cash orders means your problem starts before dispatch, not at the door.
Treat an NDR as a task with a deadline rather than a line in a report. Here is what belongs in each stage.
The customer still remembers the missed delivery. This is when a message gets answered.
Reach out with the order details, the reason the delivery failed, and a single clear ask — confirm the address, share an alternate number, or pick a time. Include a way to reschedule and a working tracking link. Put your brand name in the message, because a customer who does not recognise the sender ignores it.
If the reason code is "address incorrect" or "not contactable", getting the corrected detail now is the entire job. Everything else follows from it.
Update the shipment with whatever the customer gave you, and request the re-attempt explicitly rather than assuming one is scheduled.
If the customer has not responded, try a different channel. A WhatsApp message that goes unread is not the same as a customer who does not want the parcel.
If the reason code looks wrong — the customer says they were home all day and no call came — raise it with the courier now, while the shipment is still local and a same-day or next-day re-attempt is realistic.
This is your decision point, and it deserves a deliberate answer rather than a default.
If the customer is reachable and wants the order, push for the final attempt with a specific time window. If they are unreachable after repeated tries, or they have refused, let it return rather than paying for an attempt that will fail — and on a COD order, consider offering a prepaid link so the reorder is risk-free for you.
The worst outcome is the one where nobody decided. The attempt window closed, the parcel turned around, and the first anyone noticed was the return arriving three weeks later.
An NDR does not get its own tracking number. It sits on the same AWB or consignment number as the original shipment, so you track it exactly as you tracked the outbound parcel — the status simply changes to reflect the failed attempt and the reason code.
What matters is where you are looking. If you ship through several couriers, each one has its own portal, its own status wording and its own login. Checking four portals daily is how NDRs get missed, and it is the single most common operational reason a recoverable order becomes a return. This is the practical argument for shipping through one multi-courier platform rather than several separate accounts.
Two things make this manageable:
One view for every courier. All shipments in one dashboard, with failed attempts surfacing alongside everything else instead of hiding in a portal you only open when something goes wrong.
A push, not a pull. Waiting for someone to check a report means the NDR is found when someone happens to look. An alert that reaches you the moment an attempt fails means the clock starts when the event happens, not when you notice it.
If a shipment shows no movement at all and no NDR has appeared, that is a different problem — see what to do when a shipment stalls in transit.
Not every failed attempt is real. A shipment marked "customer not available" for a customer who was home all day, with no missed call on their phone, is not a delivery failure — it is a delivery that was never attempted.
This happens for ordinary reasons rather than sinister ones. Agents carry more parcels than they can deliver, distant addresses are expensive in time, and closing a shipment as attempted is faster than driving to it.
Here is how to tell:
Ask the customer directly whether they received a call. Do this in your first message after the NDR, and keep the answers.
Watch the timing. Several attempts marked failed within minutes of each other, or attempts logged outside normal delivery hours, are worth questioning.
Compare couriers on the same pin code. If one partner produces "customer not available" at a much higher rate than another for the same destinations and the same category, the destination is not the variable.
Keep the evidence. Ask the customer in writing whether anyone called or visited, and keep their reply against the order. A customer's written confirmation that no contact was made is what turns a complaint into a challenge the courier will actually act on.
Challenge the codes that look wrong. Not to win an argument, but because a courier that knows you audit reason codes behaves differently from one that knows you never look.
The gap between a failed attempt and a resolved one is almost always a conversation that did not happen fast enough. Someone had to notice the NDR, open the order, find the number, call, and log what was said. At fifty NDRs a day, that does not happen.
Automated calling closes the gap by making the first contact immediate and unconditional.
What it does. When an attempt fails, an automated voice call can go out to the customer straight away rather than waiting for someone to work through a queue the next morning. The call establishes why the delivery failed and what needs to happen next. At the same time, a WhatsApp alert can be sent to your team so the clock starts for you at the same moment it starts for the parcel. Both of these are features you switch on and pay for per use, so set them up before you need them rather than during a bad week.
Why that matters more than it sounds. The reason code tells you what the agent said. The call tells you what the customer said. When those two disagree — the agent says unavailable, the customer says no call came — you have a discrepancy worth raising with the courier, and you have it while the parcel is still local.
What it does not do. It does not decide anything. It gathers the reason and puts it in front of you; updating the address, requesting the re-attempt, offering a prepaid link or letting the parcel return are all still your calls. Automation shortens the response time. It does not replace the response.
That distinction is worth being honest about, because no tool removes NDRs. Some deliveries fail for reasons no system can fix — a customer who has changed their mind, a building with no access, a genuine wrong address that nobody can correct. What automation changes is how many of the recoverable ones you actually recover.
Resolving NDRs faster is the second-best outcome. Preventing them is the first. Six changes, roughly in order of how much they return:
Fix address quality at checkout. Validate the pin code and auto-fill city and state so mismatches are caught immediately. Require a house or flat number separately, and add a landmark field — in much of India the landmark is what actually gets the agent to the door. Our guide to the correct courier address format covers what a delivery-ready address needs.
Verify the phone number before dispatch. An OTP at checkout turns a recoverable failed attempt into an avoidable one. "Customer not contactable" is the reason code that most often has no fix once the parcel is moving.
Confirm risky COD orders before the label is printed. First-time buyers, high values, addresses that look too short, repeat orders to one number in a day. A one-tap confirm-or-cancel message catches the orders that were never going to be accepted — which matters most if cash on delivery is a large share of your orders.
Confirm the address after the order, not just at checkout. Sending the customer their own delivery address to check, with an edit option, catches a share of what the form missed — while the parcel is still on your shelf.
Set delivery expectations clearly. Confirm the order immediately, notify on dispatch, remind the day before. A customer expecting a parcel answers the door; one who has forgotten does not.
Give NDRs a named owner. Not a shared inbox, not a weekly review — a person, with a one-day response target. Unowned NDR queues are the single biggest reason recoverable orders become returns.
If your NDRs are already turning into returns at a rate you can measure, the deeper work sits in understanding how to calculate the rate and diagnose the cause.
"Track your NDRs" is advice you will read everywhere without a single number attached. These four are the ones that tell you something.
NDR rate. (NDR shipments ÷ total shipments dispatched) × 100. Your baseline. Split it by courier and by pin code before you conclude anything — a blended number hides exactly the pattern you need.
First response time. Hours between the NDR being raised and your first contact with the customer. This is the metric that most directly predicts whether the order survives. Measure it in hours, not days.
NDR resolution rate. (NDRs that eventually delivered ÷ total NDRs) × 100. The honest measure of whether your process works. If your NDR rate is flat but your resolution rate is climbing, you are winning.
Re-attempt success rate. Of the shipments re-attempted, how many delivered. A low number here usually means the re-attempt went out without fixing the underlying reason — same address, same phone, same outcome.
Review them weekly, take one action per review, and watch which changes actually moved the number.
BlitzShipz gives Indian sellers access to several courier networks through one account and dashboard. On NDR specifically, four things are relevant.
Everything sits in one view. Real-time tracking across every shipment and courier partner means failed attempts surface in one place instead of across several courier portals. You can filter by courier, status, reason and date, and the customer-facing tracking page can carry your own logo, colours and contact details.
Your team can be alerted the moment an order enters NDR. With NDR Alerts switched on, a WhatsApp message goes to the team numbers you add, either to everyone at once or rotating between them, so the response can start the same day rather than the next morning.
The customer can be called automatically. AI Call's NDR follow-up places an automated voice call to the customer after a failed delivery, to establish the reason and what needs to happen next — which gives you the customer's version alongside the agent's reason code.
Risky orders can be checked before they ship. COD orders can be verified by an automated call or a WhatsApp message with a one-tap confirm or cancel, and address confirmation can be added on top of that, while the parcel is still with you.
NDR alerts, automated calls and COD confirmation are optional features you switch on in your communication settings and pay for per use, so it is worth setting them up before a busy period rather than during one. For the shipments that do come back despite all of this, RTO and return management runs from the same dashboard.
What the platform does not do is make the decisions. Updating an address, requesting a re-attempt, offering a prepaid link or letting a parcel return are choices you make on each order. Checkout design, phone verification at signup and what you promise on the product page are changes on your own store — and a meaningful share of NDRs are prevented there, before any of this applies.
Support runs Monday to Saturday, 9:30 AM to 6:30 PM.
Pick the smallest version of this that you can actually sustain.
Confirm the attempt policy with each of your courier partners, so you know how long your window really is. Give NDRs a named owner with a one-day response target. Log every reason code for a month, then look at how they cluster — by pin code, by courier, by payment mode. That single view usually tells you whether your NDRs are an address problem, a courier problem or a COD problem, and each one has a different fix.
Sellers who get this right are rarely doing anything clever. They just answer the report on the day it appears.
Want the setup that makes this easier to run? Talk to the BlitzShipz team about automated COD verification, address confirmation and same-day NDR alerts on your own orders — plus serviceability and rates for the routes you ship most. Request a quote · Call 0120 510 6784, Mon–Sat, 9:30 AM – 6:30 PM · info@blitzshipz.com