Cash on delivery remittance and your cash
Cash on delivery remains a meaningful share of Malaysian ecommerce, particularly outside the major cities and for first-time buyers who would rather see a parcel before paying for it.
Operationally it is a delivery arrangement. Financially it is something else entirely: your courier is collecting payments on your behalf and remitting them later, which makes it a payment provider with all the reconciliation that implies.
Why it behaves like a settlement stream
The parallels are exact, and treating it as a delivery matter rather than a payments matter is what causes the problems.
The courier holds your money between collection from the customer and remittance to you. That is float, exactly as a gateway holds funds between capture and payout.
Remittance is periodic, on the courier's cycle rather than per parcel.
It arrives net. The courier deducts its delivery charge and a cash-handling fee before remitting, so the credit in your bank is not the sum of what customers paid.
It needs decomposing. One remittance covers many deliveries and the arithmetic has to close — the same exercise as decomposing a gateway payout — see decomposing a payout line by line.
So a store offering cash on delivery has an additional settlement stream, with its own timing, its own fee structure and its own report, arriving in the same bank account as everything else — see reconciling two gateways into one bank account.
The costs specific to it
Four, and together they make it the most expensive way to be paid.
The cash-handling fee, charged per collection, on top of the delivery charge.
The float. Money collected and not yet remitted, sitting outside your control for the length of the cycle. On a store with a high cash-on-delivery share this is a persistent working capital drag that grows with volume — see settlement timing and your cash forecast.
Refusal at the door. The customer declines to accept and pay. You have paid the outbound delivery, you pay the return, and you have the goods back — see failed deliveries and what they cost.
Higher return rates generally. A buyer who has not paid yet has less commitment than one who has, and the difference in refusal and return rates between prepaid and cash-on-delivery orders is real and measurable on your own data.
That last point is the one worth quantifying rather than assuming, because it varies substantially by product category and by customer type.
The states an order moves through
More than a prepaid order, and each needs representing.
Shipped, not delivered. No money collected, goods with the courier.
Delivered and collected. The customer paid; the courier holds the money. This is the state most often modelled wrongly, because the order looks complete and the cash has not arrived.
Remitted. The money reached your bank, less deductions.
Refused or undelivered. No collection, goods returning, two delivery charges incurred.
A system with only paid and unpaid cannot represent the second state, which is where a meaningful amount of money sits at any moment. The order is delivered, the revenue is earned, and the cash is a receivable from your courier — not from your customer.
That reframing is the useful one. Once collected, the debtor is the courier. Ageing that receivable is how a delayed or missing remittance becomes visible.
Reconciling it
Four steps, and it mirrors gateway reconciliation closely.
Match each remittance to the deliveries inside it, using the consignment notes — which is another reason to capture them against orders — see capturing the consignment note against the order.
Decompose the remittance. Collections, less delivery charges, less handling fees, equals the credit received. It should close exactly.
Age the outstanding collections. Anything delivered and collected but not remitted beyond the normal cycle is an exception worth raising promptly.
Reconcile refusals separately. A refused delivery is not a collection failure to be chased; it is a returned order with two delivery charges attached and stock coming back — see returns on your own store and what they cost.
The measure of health is the same as anywhere else: collected but not yet remitted should be a small figure clearing on a predictable rhythm. Growth in it means either the courier's cycle has slipped or something is not being remitted at all.
Whether to offer it
A commercial question with a measurable answer, and the answer differs by store.
It expands your market. Customers who will not or cannot pay online are reachable no other way, and that is a real segment in Malaysia rather than a marginal one.
It costs more per order — handling fee, higher refusal rate, two delivery charges on refusals, and the float.
It is worth comparing directly. Contribution per order on cash-on-delivery against prepaid, from your own data, including refused deliveries in the cash-on-delivery figure. Most stores have never made that comparison.
The common finding is that it works on higher-value orders and in regions where online payment adoption is lower, and loses money on small baskets where the handling fee and refusal risk exceed the margin. That suggests a minimum order value for the option rather than switching it off — which is a decision the data supports and intuition usually does not — see the real margin on a Shopify order.
Common questions
Why is cash on delivery a settlement stream rather than a delivery option?
Because the courier collects payment from your customer and holds it until a periodic remittance, deducting its delivery charge and a cash-handling fee first. That is the same structure as a payment gateway holding funds between capture and payout, so it needs the same decomposition, ageing and reconciliation.
Who is the debtor once a cash-on-delivery parcel is delivered?
The courier. The customer has paid, the revenue is earned, and the money sits with the carrier until remittance, which makes it a receivable from the courier rather than from the customer. Ageing that receivable is how a delayed or missing remittance becomes visible rather than being noticed months later.
What makes cash on delivery more expensive than prepaid?
A cash-handling fee per collection on top of delivery, the float while the courier holds your money, refused deliveries that cost an outbound and a return charge with the goods coming back, and generally higher refusal and return rates because a buyer who has not paid has less commitment than one who has.
Should a store offer cash on delivery?
It depends on the numbers, which most stores have never compared. Contribution per order on cash-on-delivery against prepaid — including refused deliveries in the first figure — typically shows it working on higher-value orders and in regions with lower online payment adoption, and losing money on small baskets. That points to a minimum order value for the option rather than removing it.
Related: managing cash on delivery · decomposing a payout line by line · failed deliveries and what they cost
Read next
See what you could build
Start a free trial and describe what your business needs in plain language — SmartB Studio builds the module for you.
Start free trial