Returns, NDR & Order Cancellation
Handle failed deliveries, customer returns, RTO, and the full order cancellation cascade — stock, refunds, and courier interception.
Not every delivery goes to plan. Here's how BillionBiz handles failed deliveries, returns, and cancellations — and what happens automatically versus what needs your attention.
Failed delivery — NDR (Non-Delivery Report)
An NDR is raised when a courier agent attempts delivery but can't complete it.
| Reason | What to do |
|---|---|
| Customer unavailable | Re-attempt with a note to call first; provide an alternative contact number |
| Address incorrect | Correct the address in the re-attempt instructions |
| Phone number unreachable | Update the contact number in the re-attempt |
| Customer refused delivery | Contact the customer to understand why; if unresolvable, initiate RTO |
| Business closed / holiday | Re-attempt for a different day |
Find every NDR under the Shipment → NDR Center tab — each entry shows order number, AWB, failure reason, date of the failed attempt, and attempts so far. For each one you can:
- Reattempt Delivery — the courier tries again, with any updated instructions (call before arriving, leave with a neighbour, new phone number) you provide.
- Mark as RTO — Return to Origin. The parcel is sent back from the courier's sorting facility to your warehouse. Use this after multiple failed re-attempts, or if the customer no longer wants the order.
- Email Customer / SMS Customer — send the customer a notification about the failed delivery directly from the row, without leaving the NDR Center.
Tip
Most couriers allow 2–3 delivery attempts before automatically initiating an RTO. Check NDRs daily so you can provide updated instructions before the courier runs out of attempts.
Automating NDR handling
Instead of actioning every NDR by hand, click Edit Auto-Action Rules at the top of the NDR Center. Each failure reason (e.g. "Customer unavailable") has its own rule: a maximum number of attempts before the rule fires, the action to take once that's reached (e.g. auto-RTO), a delay in hours before it fires, and an Active toggle to turn the rule on or off. Adjust the values and click Save Rules — only active rules run automatically; anything you leave off still needs manual handling from the row actions above.
RTO — Return to Origin
When a parcel can't be delivered and either you or the courier initiates an RTO (after exhausting attempts), the parcel travels back to your warehouse. Once BillionBiz receives the RTO confirmation:
What happens automatically
- Inventory is restored — the returned stock is added back to the product variant's count.
- A refund is initiated if the order was prepaid (via Razorpay).
- The order status updates to Returned.
You don't need to take any manual action for inventory or refund — the platform handles both.
Customer returns
A return starts on the customer's side: they open their order on the customer portal, click Request Return on the item(s), choose a reason ("Wrong item received", "Damaged on arrival", "Changed my mind"), and submit. The request appears in your admin dashboard under Shipment → Return Requests — a dedicated tab for customer-initiated requests, separate from the Returns tab described below.
The Return Requests tab
Every request moves through its own state lifecycle, shown as a filter above the list: Requested → Approved/Rejected → Picked Up → In Transit → Delivered Back → Refund Pending → Refunded, with Cancelled possible along the way. Filter the list to any one of these states, or view all.
Click the row's expand chevron to see the returned item's detail (product, quantity, reason). Click Timeline to see the full history of state changes for that request instead — the two views share the same expand row and toggle between each other.
For a request still in Requested or Approved state, click Approve or Reject. Either opens a small dialog with an optional merchant note — for a rejection, use the note to tell the customer why (e.g. "outside the return window", "item shows signs of use").
Approving a return initiates a reverse pickup — the courier collects the item from the customer's address and brings it to your warehouse. You'll see the reverse shipment tracking in the Returns tab.
Confirm receipt
Once the return arrives at your warehouse, confirm receipt in the dashboard.
Inventory restocks
Stock is automatically restocked.
Refund is triggered (prepaid)
If prepaid, a refund is initiated via Razorpay — 5–7 business days to the customer.
Refund is manual (COD)
If COD, there's no Razorpay refund available — coordinate the refund directly with the customer.
Return window
The return window shown to the customer is calculated from the actual delivery date (as recorded by the courier's delivery scan), not the order date. If a courier doesn't send a delivery confirmation, the window may not open at all — make sure your couriers are configured to send delivery confirmation events.
If a customer tries to return an order after the window has closed, the Request Return button disappears from the customer portal. To make an exception, create the return manually from Shipment → Returns → + New Return — manual returns bypass the window check.
Order cancellation — the full cascade
Cancel an order from the Order Detail screen (not from the Shipments tab) and the platform triggers a three-step cascade automatically.
Shipment is cancelled with the courier
If a shipment already exists, the platform sends a cancellation to Shiprocket. If accepted, your wallet balance is refunded for the label cost. If the courier rejects it (parcel already picked up or in transit), you'll see a clear error — the parcel must be intercepted directly by calling the courier. The BillionBiz order can still be cancelled manually.
Variant stock is restored
All items in the cancelled order have their quantities added back to inventory automatically.
Refund is initiated
For prepaid orders, a Razorpay refund is triggered. For COD orders, no refund is needed — the cash was never collected.
Always cancel from Order Detail
Cancelling only the shipment (from the All Shipments tab) does not trigger the stock restore or refund cascade. You need to cancel at the order level for all three steps to fire.
FSM constraint
Orders can only be cancelled while in certain states. Once a shipment is marked Picked Up or In Transit, the cancel option may be disabled — contact Shiprocket to arrange a courier-side interception, then process the stock restore and refund manually from your admin panel.
