Free Shopify store auditSpeed, SEO and conversion leaks — no cost, no obligation.
Claim it
Thriftizer Solutions LLPShopify Select Partner
Book a Growth Audit
Shopify Oct 17, 2026 12 min read

COD on Shopify in the UAE: Fees, Aramex Reconciliation and Refusals

COD in the UAE costs AED 25–45 per order once you count courier handling, refusals and a three-week remittance lag. Here's how to price it, fence it and reconcile it on Shopify.

COD on Shopify in the UAE: Fees, Aramex Reconciliation and Refusals

Cash on delivery on a Shopify store in the UAE costs between AED 25 and AED 45 per order once you add the courier's handling fee, the collected-value percentage, the forward and return legs on refused parcels and the three weeks your money sits with the carrier. That number is the whole argument. If your average order is AED 220 at 42% margin, COD is survivable. If it's AED 89, every COD order you accept is a donation. The job is not to kill COD, it's to price it and then fence it off from the orders where it loses money.

Here's how we set it up for the UAE brands we build for, including the parts Shopify can't do natively.

What COD actually costs per order

Run the arithmetic on 100 COD orders before you argue about it. Use your own rate card, but these are the shapes we see on a mid-size Dubai store shipping domestically with Aramex or a local same-day courier.

  • Average order value: AED 220, gross margin 42% (so COGS AED 127.60)
  • Forward delivery leg: AED 18
  • COD handling: AED 10 flat plus 1% of the collected amount
  • Return leg on a refused parcel: AED 15, plus AED 6 of packaging and handling you won't recover
  • Refusal rate: 12%

88 orders get delivered. Revenue AED 19,360, COGS AED 11,229, gross profit AED 8,131. Now subtract logistics: 100 forward legs at AED 18 is AED 1,800, because you pay to ship the refused ones too. Returns cost 12 × AED 21 = AED 252. COD handling on the 88 delivered is 88 × AED 12.20 = AED 1,074. Total AED 3,126.

Contribution: AED 5,006, or AED 50 per order placed.

Same 100 orders prepaid, at a 2.75% gateway rate and no refusals: gross profit AED 9,240, minus AED 605 in processing and AED 1,800 in shipping, leaves AED 6,835. AED 68 per order. The gap is about AED 18. That's your COD fee, give or take, and it's why a AED 15–20 surcharge or prepaid discount is not greedy — it's break-even.

Now the AED 89 order. Gross profit AED 37.40. COD handling AED 10.89, shipping AED 18. If it delivers, you keep AED 8.51. If it's refused you're out AED 39. At 12% refusal the expected value is about AED 2.80 per order, before anyone on your team answers a single WhatsApp message about it. That order should not be allowed to choose COD.

Turning on cash on delivery in a UAE Shopify store

Settings → Payments → Manual payment methods → Cash on Delivery (COD). Shopify ships this as a manual method, which means the order lands with a financial status of Pending and nothing is captured, authorised or screened. Two consequences worth knowing before you flip it on:

  • Shopify's fraud analysis is built around card data. A COD order carries almost no signal, so the risk flags you rely on for prepaid orders are mostly blank. Your filter has to be your own rules, not Shopify's.
  • The order stays unpaid in your reports until you mark it paid by hand. Do that at the wrong moment and your revenue reporting drifts from your bank balance for weeks. More on that below.

Write the customer-facing instructions in both English and Arabic, and say exactly what the driver will accept. "Cash only, exact change appreciated" prevents a surprising number of doorstep arguments. If your courier's driver carries a card terminal, say so — a meaningful share of "COD" customers in Dubai will tap a card at the door if offered, and that converts a collection risk into a settled payment.

One more thing on the UAE: Shopify Payments isn't available here, so your prepaid rail is Checkout.com, Network International, Telr, PayTabs or Stripe depending on your licence and bank. Get that live and fast before you optimise COD, because every point of prepaid share you win is worth more than any COD tweak.

COD fee setup in Shopify checkout: what's possible on your plan

This is where most merchants hit a wall. Shopify's checkout does not let you add a surcharge when the shopper picks a payment method, unless you're on Plus. Cart Transform and payment customization functions, which are how a COD fee line gets added or COD gets hidden, are Plus-only features. On Basic or Grow you cannot change the order total after the payment method is selected. Any app promising otherwise is either doing it at the cart stage before checkout, or converting the order to a draft and emailing it, which costs you more conversions than the fee recovers.

So on non-Plus plans, invert it. Don't charge a COD penalty. Offer a prepaid discount.

An automatic discount of AED 15 on prepaid orders, surfaced on the cart page as "Pay online and save AED 15", is economically identical to a AED 15 COD fee and reads much better in Arabic and English alike. You can run it as a discount code auto-applied by payment rail in a few ways, or more simply, as a visible banner plus a code the customer enters. It leaks a bit — some COD-inclined shoppers will use the code and still pick COD — but in practice the shift to prepaid is worth more than the leakage. Free shipping thresholds are the second lever: free delivery on prepaid from AED 150, free on COD from AED 300.

On Plus, do it properly. A payment customization function hides COD below a value floor and above a ceiling, and a cart transform adds a visible COD handling line that your accountant can see and charge 5% VAT on. We build these as small custom functions rather than installing another app; it's a day of work and it doesn't add a script to your checkout. If you want that built, it sits under custom Shopify app and function development.

Limiting COD by order value, city and customer

The rules that earn their keep, in the order we usually deploy them:

  1. A floor. No COD below AED 120–150 depending on your margin. This single rule removes the structurally unprofitable orders.
  2. A ceiling. No COD above AED 1,200–1,500. Drivers don't like carrying that much cash, refusals at high value hurt far more, and it's where the deliberate abuse sits.
  3. Repeat refusers. Tag any customer with two refused COD parcels. Block COD for that tag permanently.
  4. Geography. If your refusal rate in a particular emirate or free-zone labour accommodation is double your average, cap COD value there rather than banning it.
  5. Product rules. Fragile, perishable or made-to-order items go prepaid only. A refused custom order is a total write-off.

Without Plus, you can still enforce the ceiling after the fact. Shopify Flow is available on all plans now. Build a flow that catches COD orders above your threshold, cancels them automatically, and sends an email or WhatsApp with a payment link. It's blunter than hiding the option at checkout and you'll lose some of those orders outright, which is fine, because they were the ones most likely to come back to you unopened.

Aramex COD remittance and the reconciliation nobody budgets for

The courier collects your cash, holds it, and pays it out on a cycle. Depending on your contract that's weekly or fortnightly, settled a few days after the cycle closes. Plan for 7 to 21 days between the driver taking the notes and the money landing in your account.

Price that in working capital terms. A store doing AED 8,000 a day in COD with an 18-day average lag has roughly AED 144,000 sitting in the carrier's float at any moment. During White Friday and the run into DSF, daily volume might triple for ten days, which means a six-figure spike in cash you've earned and cannot spend on restocking. We've seen more UAE brands get into trouble from that gap than from refusals.

The reconciliation itself is a matching job: the COD report arrives as a CSV keyed on AWB number, with a collected amount and a collection date. Your Shopify order carries the AWB as a tracking number on the fulfilment. Match on that, not on customer name, not on amount. Then handle the mismatches, because there are always mismatches:

  • Driver collected a rounded figure. AED 219 shows up against a AED 219.50 order.
  • Partial delivery on a split shipment, where one box was accepted and one refused.
  • An exchange processed at the door that your system knows nothing about.
  • A parcel marked delivered in the tracking feed but never appearing in a remittance file. Chase these inside 30 days or they quietly become losses.

Our rule: mark the Shopify order paid on remittance, not on delivery. Keep a separate "collected, not remitted" figure in a sheet or a small admin-API script. That way your Shopify finance reports reconcile to your bank statement rather than to an optimistic version of reality.

The VAT trap sits right here. Your tax point is the supply, not the day the carrier pays you. You will owe 5% output VAT on COD sales in a quarter where some of that cash is still with Aramex. Budget for it. And when a parcel comes back refused, make sure the cancellation actually reverses the invoice in your records, otherwise you're paying VAT on a sale that never happened.

Reducing the COD refusal rate in Dubai and the Northern Emirates

Refusals are not random. In the stores we manage, they cluster hard: Dubai and Abu Dhabi residential addresses sit at the low end, Sharjah and Ajman run noticeably higher, and anything going to a labour accommodation or an unnumbered villa in the Northern Emirates is where the damage concentrates. Pull your own last 500 COD orders, group by emirate and by area, and you'll find that a handful of postcodes carry most of your loss.

What has actually moved the number for us:

  • Address quality at checkout. Make building name and flat or villa number required fields. Ask for a Makani number in Dubai. A driver who can't find the door marks it refused, and that refusal is yours to pay for.
  • A delivery window the customer picks. Half of UAE refusals are "not at home", not "changed my mind". Letting someone choose evening delivery costs you nothing.
  • One confirmation message, fast. A WhatsApp within 30 minutes of order placement, in the language the customer browsed in, with the item, the amount to keep ready and a one-tap cancel link. Cancellations before dispatch cost you nothing. Refusals cost AED 39.
  • Don't dispatch into the Eid exodus. The last two days before Eid holidays and the first two of the break produce the worst delivery rates of the year. Hold non-urgent COD dispatches or switch those orders to prepaid.
  • Blacklist properly. Tag and block. Most repeat refusals come from a small group of phone numbers.

Order verification before COD dispatch, without strangling the funnel

There's a version of verification that saves money and a version that destroys it. Calling every customer destroys it — you add hours of delay, you reach maybe 60% of people on the first attempt, and some of them use the call as a prompt to cancel an order they'd otherwise have accepted.

Verify by exception. Auto-confirm everything below your risk threshold and dispatch same day. Route for human or OTP confirmation only when an order trips a rule: first-time customer over AED 400, a high-refusal area, more than one unit of the same SKU, a mismatched billing and shipping emirate, or a phone number already linked to a refusal. For that subset, an automated WhatsApp with a confirm button handles most of it and a call handles the rest. Give it a four-hour window, then cancel unconfirmed orders rather than shipping them hopefully.

If verification is delaying your whole dispatch cycle, the threshold is set too low.

COD against Tabby: run the numbers, not the assumption

Tabby and Tamara are close to default checkout options in this market now, and plenty of merchants treat them as expensive compared to COD because the merchant fee is a visible percentage while COD's costs are scattered across six line items. Get your own quote from Tabby — rates are negotiated — but take a mid-single-digit merchant fee as a working number and compare it like for like.

Same AED 220 order, AED 127.60 COGS, AED 18 shipping. At a 6% merchant fee you pay AED 13.20 and keep AED 61.20. Against COD's AED 50 per order placed, split instalments are the cheaper payment method, and you're paid within days instead of weeks, with no refusal exposure and no reconciliation work. The usual counter is that Tabby shoppers return more. Even at an 8% return rate on those orders, the comparison holds.

The practical move isn't choosing one. It's placing Tabby above COD in the checkout order, promoting the instalment price on product pages in AED, and letting the convenience argument for COD erode on its own. A chunk of UAE COD demand is a trust habit rather than a cash constraint, and trust can be bought with a visible return policy, a working phone number and a local address on your contact page.

Cash on delivery in Saudi Arabia is a different problem

Don't copy your Dubai setup into Riyadh. VAT is 15%, so the gross margin on an identical AED-equivalent order is thinner before you start. COD share is higher and so are refusals, distances between Riyadh, Jeddah and Dammam make the return leg more expensive, and your carrier mix is usually different from the one you use in the Emirates. Mada is the dominant card rail and Tamara is strong, so the prepaid alternative is there if you present it in SAR with local payment logos rather than a generic card form.

Price COD separately per market in Shopify Markets, with its own floor, ceiling and fee. The same AED 15 prepaid incentive translated straight into SAR is usually the wrong number. We work through this split in more detail on our Saudi Arabia Shopify and Dubai pages.

Three questions we get every week

Can I charge a COD fee at checkout without Shopify Plus? Not inside checkout. Use a prepaid discount at the cart stage, or differential free-shipping thresholds. Both achieve the same economics.

Should I mark COD orders as paid when the tracking says delivered? No. Mark them paid when the remittance file confirms the cash. Delivered and paid are two different events in the UAE and they're up to three weeks apart.

What refusal rate should I be aiming for? Below 8% on a store with order verification, required address fields and a COD value floor. If you're in the high teens, the fix is almost always address data and a dispatch-day confirmation message, not a new courier.

Where to start this week

Export your last 500 COD orders. Add two columns: delivered or refused, and emirate. Sort by refusal rate and look at the bottom five areas, then look at how many orders fell below AED 150. Those two cuts usually account for most of the money COD is taking off your P&L, and both can be fixed with rules rather than a replatform.

If you'd like us to do that analysis against your store and your courier rate card, our free store audit covers checkout configuration and COD economics alongside the usual speed and SEO checks.

Next post

Ready to scale your D2C brand profitably?

Let's build a growth engine that drives more traffic, more conversions and more profit.

Book a Growth Audit
📅 Free Audit💬 WhatsApp