Services Marketplace Work Hosting About
Start a projectSign in

How Shiprocket Gets the Right COD Amount

Last updated 14 September 2026

This is the part most advance payment plugins miss. The buyer pays ₹2,000 online, but the courier still asks for ₹25,000 at the door, the buyer refuses, and the parcel comes back anyway. COD Protection prevents that.

How it works

  1. The order records the advance as real order data. The advance is saved as a line "Advance paid online" of minus ₹2,000, and the order total becomes the balance, ₹23,000. The payment method stays Cash on delivery.
  2. Unpaid orders are held back. Shiprocket's WooCommerce channel receives new orders through WooCommerce webhooks. While an order is waiting for its advance, COD Protection stops those webhooks for Shiprocket addresses, so the order never appears in your Shiprocket panel.
  3. Paid orders are announced. As soon as the advance is confirmed, the order moves to Processing and COD Protection sends Shiprocket the order with payment method COD and total ₹23,000.

Why displaying a smaller total is not enough

Couriers read the order through the WooCommerce REST API, which uses the stored order total. Plugins that only change the total shown on the page leave the stored total untouched, and the courier sees the full amount. COD Protection changes the stored order, so every system that reads it agrees.

Check it on your store

  1. Place a test order with cash on delivery and pay the advance.
  2. In Shiprocket, open the order before assigning a courier and check that payment mode is COD and the collectable amount is the balance.
  3. Cancel the test order in Shiprocket before an AWB is assigned.

Requirements and notes

  • Your Shiprocket channel must be connected to WooCommerce with its standard webhooks (SR Order Created and SR Order Updated in WooCommerce, Settings, Advanced, Webhooks).
  • Keep Shiprocket's payment mapping for the WooCommerce Cash on delivery method set to COD.
  • If you refund the advance, the advance line is removed and the order total returns to the full amount. Update the order in Shiprocket if it was already synced.
  • Other couriers that read WooCommerce orders see the same balance, because it is the order's real total.