ProfitBox360ProfitBox360
Indian Ecommerce research
India · Ecommerce

COD and RTO Charges in India: Shiprocket vs Direct Courier Contracts

Rajesh Kumar, Ecommerce Operations Analyst9 min read

What we found

Direct courier contracts charge less than aggregators such as Shiprocket on every line. Before 18% GST, a 500 g parcel costs ₹44 against ₹55, an RTO return ₹48.50 against ₹61, and the minimum COD charge ₹19 against ₹27.50. Direct contracts also pay COD cash in 3 days rather than 5.5, but usually need 5,000 shipments a month. Below that, stay on an aggregator: its network reaches 95% of Indian pin codes, and 79% have reverse pickup.

How do Shiprocket and direct courier charges compare?#

A direct courier contract is cheaper on every line: ₹11 less per 500 g parcel, ₹12.50 less per RTO return and ₹8.50 less on the minimum COD charge, all before GST. These benchmarks come from ProfitBox360 research, 2025 (client data and shopper surveys).

Charge (before GST)Aggregator such as ShiprocketDirect courier contract
Forward freight, 500 g parcel₹55₹44
COD charge, share of COD order value1.6%1.1%
Minimum COD charge per order₹27.50₹19
RTO charge, return leg only₹61₹48.50
COD remittance, days after delivery5.53

The aggregator figures are averages across aggregator rate cards, not Shiprocket's own card. Direct courier rates are negotiated, so get a written rate card from each courier before you compare.

Shiprocket takes either a fixed COD charge or a percentage of the order value, whichever is higher. The minimum COD charges in the table work the same way. When a parcel comes back as RTO, the seller pays the return cost.

Add 18% GST before you compare#

Add 18% to every charge in the table, because courier services carry 18% GST. The rate stayed at 18% after the GST rate changes of 22 September 2025.

Charge with 18% GSTAggregatorDirect contract
Forward freight, 500 g parcel₹64.90₹51.92
Minimum COD charge per order₹32.45₹22.42
RTO charge, return leg only₹71.98₹57.23

Indian brands pay about ₹61.50 per shipment on average, including GST. That sits between the two forward rates.

A GST-registered brand can claim this GST as input tax credit when it uses the courier for its business. Conditions apply, such as holding a valid tax invoice. If you can't claim it, the GST is a real cost.

Negotiate the COD minimum first#

On a typical COD order, you pay the minimum COD charge, not the percentage. The average COD order in India is ₹850:

  • Aggregator: 1.6% × ₹850 = ₹13.60, below the ₹27.50 minimum, so you pay ₹27.50
  • Direct contract: 1.1% × ₹850 = ₹9.35, below the ₹19 minimum, so you pay ₹19

That makes the real COD charge on an ₹850 order 3.2% through the aggregator and 2.2% direct, before GST. The percentage only takes over above about ₹1,700 (₹27.50 ÷ 1.6% = ₹1,718.75 and ₹19 ÷ 1.1% = ₹1,727.27).

How fast COD cash comes back#

Direct contracts pay COD cash about 3 days after delivery, against about 5.5 days through aggregators.

Shiprocket's standard cycle is slower than that average. It pays COD three times a week, on Mondays, Wednesdays and Fridays, 8 working days after delivery. Its Early COD plans pay faster, typically 2 to 4 days after delivery, for a fee. You'll find them under Settings > COD Payments > Early COD.

How much does a direct contract save each month?#

A direct contract saves roughly ₹20 per shipment, including GST, at the benchmark rates and payment mix.

Illustrative example: a brand ships 8,000 orders a month.

  • COD share: 62.5%, so 5,000 COD orders at the ₹850 average COD order and 3,000 prepaid orders
  • RTO: 24.3% of COD shipments (1,215) and 2.8% of prepaid shipments (84), so 1,299 return legs
  • Delivered COD orders: 5,000 − 1,215 = 3,785
  • Forward freight is paid on every shipment, including those that come back
  • All charges include 18% GST
  • Assumption: every parcel weighs up to 500 g
  • Assumption: the COD charge applies only to delivered COD orders, as on Shiprocket, and the direct contract matches that
  • Assumption: a 30-day month with deliveries spread evenly
  • Not included: Shiprocket plan fees, weight disputes, packaging and your own handling costs
Charge, with GSTQuantityAggregatorDirect contract
Forward freight8,000 shipments₹5,19,200₹4,15,360
COD charge at the minimum3,785 delivered COD orders₹1,22,823.25₹84,859.70
RTO return leg1,299 RTO shipments₹93,502.02₹74,341.77
Total—₹7,35,525.27₹5,74,561.47

The direct contract costs ₹1,60,963.80 less a month, or ₹20.12 per shipment. That's 21.9% less than the aggregator. Before GST the gap is ₹1,36,410, and GST adds the other ₹24,553.80.

COD RTO drives most of the return cost. Its 1,215 return legs cost ₹87,455.70 a month through the aggregator and ₹69,534.45 direct.

The cash-flow difference#

Faster remittance frees up cash once, rather than every month. Delivered COD orders bring in 3,785 × ₹850 = ₹32,17,250 a month. The COD cash waiting with the courier at any time is:

Cash waiting = monthly COD collections × remittance days ÷ 30

  • Aggregator: ₹32,17,250 × 5.5 ÷ 30 = ₹5,89,829.17
  • Direct contract: ₹32,17,250 × 3 ÷ 30 = ₹3,21,725

Moving to a direct contract releases ₹2,68,104.17 of working capital. On Shiprocket's standard 8-working-day cycle, the wait and the gap would both be longer.

Below 5,000 shipments a month#

Stay on an aggregator until you're close to 5,000 shipments a month. Couriers typically ask for that volume before offering a direct contract.

At the example's gap of ₹20.12 per shipment, a brand shipping 5,000 orders a month would save about ₹1,00,600. A brand shipping 2,000 would save about ₹40,240, but it usually can't get the contract.

Weigh what you take on before switching. You'd do the aggregator's work yourself: connecting each courier to your store, choosing a courier for each pin code, reconciling COD remittances, and raising weight disputes and lost-parcel claims. A single courier also reaches fewer pin codes than an aggregator's combined network.

Below the minimum, cut costs this way:

  1. Move up a Shiprocket plan once your volume clears its fee-refund target.
  2. Pick the courier for each order on cost and delivery record. Shiprocket's courier recommendation engine compares couriers on cost, estimated pickup time, service quality and delivery performance.
  3. Pay for Early COD only if slow COD cash is holding back stock purchases.
  4. Cut COD RTO, because every RTO costs a return leg on any contract.

Which couriers serve my pin codes, including reverse pickup?#

Start with an aggregator such as Shiprocket: aggregator networks reach about 95% of Indian pin codes, and 79% have reverse pickup. Only 79 ÷ 95 = 83.2% of the pin codes they deliver to have reverse pickup, so about one in six can't get a return picked up. Check each pin code twice: once for delivery and COD, and once for reverse pickup.

Check delivery and COD on Shiprocket#

Shiprocket says it ships to 19,000+ pin codes. To check one, enter your pickup and delivery pin codes in the rate calculator or when you create a shipment. You can also download Shiprocket's complete pin code serviceability sheet.

Check reverse pickup separately#

Shiprocket handles returns as reverse shipments, and the pickup depends on courier availability at the customer's address.

  • To create a return from a delivered order, go to Orders > All Orders, filter by Delivered and choose "Create Return". You can also use "Add Return Order" in the Returns tab.
  • To switch couriers for a scheduled return, open the Return Pickup Scheduled tab and click "Re-Assign Courier" to compare the available courier partners. This works only before the return is "Out for Pickup".

Check a courier directly#

Before signing a direct contract, ask the courier for its serviceable pin code list, with prepaid, COD and reverse pickup marked for each pin code.

Delhivery's Pin-code Serviceability API returns every pin code Delhivery serves, with flags showing whether prepaid and COD parcels can go there. Blue Dart's Location Finder lets you search by pin code and lists the services available at each location.

Match coverage to your own orders#

  1. Export the last three to six months of orders with pin code, payment method and delivery outcome.
  2. Rank pin codes by order count, so you check the ones that matter most first.
  3. For each pin code, record which couriers offer prepaid delivery, COD and reverse pickup.
  4. Where no courier offers reverse pickup, set a return method before you sell there.
  5. Where COD isn't available, tell shoppers before checkout rather than at the last step.

FAQ#

Does Shiprocket charge a monthly fee?#

Only on its paid plans: Shiprocket's Lite plan is free. Business costs ₹199 a month, Advanced ₹499 and Pro ₹799, and each shows a lower average shipment cost. Business, Advanced and Pro refund their fee once you reach 100, 500 and 1,000 shipments in a month respectively.

Is the COD charge refunded when an order comes back as RTO?#

On Shiprocket, yes: the passbook shows a "COD Charge Reversed" credit when a shipment goes to RTO. You still pay the forward freight and the return leg, so the RTO still costs money. A direct courier may handle COD charges differently, so ask for the same reversal in writing before signing.

Can a brand use a direct contract and an aggregator together?#

Yes, running both works well once you pass about 5,000 shipments a month. Give the direct courier the pin codes it serves best. Keep the aggregator for the rest, and for reverse pickups the courier can't cover. Check that the direct courier still gets the monthly volume its rates depend on.

What if a customer's pin code has no reverse pickup?#

When no courier offers reverse pickup in a pin code, set the return route before selling there. The simplest option is asking the customer to post the item back, then refunding the postage with the order value. State this in your returns policy, so customers know before they order.

Why is the RTO charge lower than the full cost of an RTO?#

An RTO charge covers only the return leg. An RTO also wastes the forward freight and adds handling, so a full RTO costs brands about ₹172.50. Through an aggregator, freight alone is ₹64.90 forward plus ₹71.98 back, or ₹136.88 with GST. On a direct contract, it's ₹51.92 plus ₹57.23, or ₹109.15.

Does parcel weight change the comparison?#

Yes, because the benchmark rates are for a 500 g parcel, and freight and RTO charges rise with weight and distance. Shiprocket says heavier items and farther zones mean higher RTO charges. Ask each courier or aggregator for rates in the weight slabs and zones you actually ship, then rerun the monthly comparison.

Rajesh Kumar

Ecommerce Operations Analyst, ProfitBox360

Rajesh writes about Indian ecommerce operations, including cash on delivery, shipping, returns and fulfilment. His articles explain how delivery processes and operating costs affect customer experience and business margins.

How this research is checked, and corrected

More research

Want these numbers read against your own?