E-commerce
July 1, 2026
“Cash on delivery available for my zip code?” “The delivery person didn't have change, package went back.” “I chose COD by mistake, can I pay by card before shipping?” Three tickets where customer support mixes up area availability, order confirmation, RTO delivery refusal, and non-existent refund.
The e-commerce cash on delivery customer support covers COD eligibility by zone, order fees and limits, confirmation before shipping, delivery person change disputes, cancellation and switching to prepaid, distinct from declined card payments or bank transfers.
This guide #469 covers policy COD-SUP, flow COD-FLOW, and KPI cod. First dedicated COD content. Distinct from declined card and transfer (#322): here, cash on delivery customer support playbook: availability, terms, risks, and special cases.
Summary
Why does cash on delivery generate specific customer service tickets?
A COD (cash on delivery) ticket is created when the customer chooses or wishes to pay the courier upon receipt, with zone, confirmation, and RTO rules that card payment does not cover.
Five typical COD pressure points
Ineligible zone: COD missing during checkout for customer's postal code
Missed confirmation: order automatically cancelled without an SMS reply
RTO delivery refusal: customer absent or refuses to pay
Courier change issues: exact change dispute at the doorstep
Switch prepay: wants to pay by card before shipping
McKinsey estimates that COD accounts for 40 to 60% of e-commerce orders in certain MENA and South Asian markets, with RTO rates of 15 to 30% if confirmation is weak (McKinsey, retail payments 2025). Shopify documents COD via payment customization and carrier apps depending on the market (Shopify, cash on delivery 2026).
Angle #469 vs related content
Card declined: payment declined. #469 = deferred payment upon delivery.
Bank transfer #322: bank transfer pending. #469 = courier cash, not bank transfer.
Local delivery #429: LOCAL-FLOW zone. #469 = payment method, not logistics alone.
Refund status #370: remboursement pending. #469 = unpaid, therefore no standard refund.
Future Bot #470: automated COD AI. #469 = agents' playbook.
DTC MENA expansion example
EU + UAE KSA fashion, 82 COD tickets/month, 28% RTO without confirmation. Without COD-SUP: cod_fcr 55%, cod_rto_rate 24%. After COD-MAP + flow: cod_confirmation_rate 91%, cod_rto_rate 14%, cod_csat 4.2/5.
COD is not deferred card payment
COD-FLOW rule 1: COD order financial_status is pending or authorized, not paid until delivery capture.
Ramadan COD volume spike
MENA markets COD orders 1.5x during Ramadan evening delivery: pre-scale confirm SMS capacity and carrier collect reconciliation.
First-time COD buyer education
40% cod_eligibility tickets first order COD market: preload /pages/cod-payment checkout thank-you banner.
How does COD-SUP differ from other payment methods?
Cash on delivery, card declined, wire transfer, and installment payments: four distinct payment CS processes.
Payment method u2192 process matrix
#469 COD-FLOW: zone fee confirm RTO switch prepay
Payment declined: 3DS retry other card
#322 WIRE: wire transfer proof reconciliation
Installment: Klarna split
#234 NET-TERMS: B2B net terms
Four COD-TYPE journeys
cod_pre_checkout: zone fee ceiling eligibility
cod_pending_confirm: SMS app confirm before ship
cod_in_transit: WISMO exact amount courier
cod_post_rto: delivery refusal warehouse return
Promise #469
COD-SUP policy, COD-MAP zone matrix, 12 cod_* typologies, COD-FLOW CD-1 to CD-8 flow, COD-* macros, cod_* KPIs.
COD ops stack
Shopify COD payment method, carrier COD API Aramex/DHL/local, Klavyio SMS confirmation, COD-MAP JSON, Gorgias cod_* tags, fraud RTO blocklist.
45-minute agent training
Module 1: COD vs prepay vs wire transfer. Module 2: COD-MAP walkthrough. Module 3: switch prepay live demo. 85% quiz before cod queue.
COD vs collect on delivery carrier term
Document COD-MAP carrier terminology collect vs cash: agents use same customer-facing u00ab cash on delivery u00bb wording consistently.
Which cod_* typologies should be mapped?
Twelve cash on delivery payment ticket typologies for consistent helpdesk routing.
Twelve COD scenarios
cod_eligibility_zone: COD available my zip code city
cod_fee_question: how much COD fee checkout
cod_order_limit: COD amount limit exceeded
cod_confirm_sms: confirm order SMS before shipping
cod_switch_prepay: pay card before shipping
cod_cancel_before_ship: cancel pending COD order
cod_exact_change: exact change driver dispute
cod_refused_delivery: customer refuses package RTO
cod_driver_no_collect: driver leaves without collecting cash
cod_wismo_pending: where is package amount due
cod_duplicate_order: double COD abuse same address
cod_partial_payment_dispute: different amount at door
Helpdesk tags
cod, cod_confirm, cod_rto, cod_switch, cod_zone, payment_method cross-tag.
Prioritization
P1: cod_switch_prepay before fulfillment cutoff. P2: cod_confirm_sms deadline. P3: cod_eligibility_zone FAQ.
Mining COD verbatims
90-day export "cash on delivery", "COD", "cash on delivery", "pay driver", "change", "confirm SMS".
Intake data CD-1
order_id, cod_flag Y/N, ship_zip country, order_total, cod_fee, confirmation_status, fulfillment_status, rto_flag, payment_method.
WhatsApp confirm channel
Markets using WhatsApp confirm: COD-MAP confirmation_channel row distinct SMS macro COD-CONFIRM-WA.
COD + partial fulfillment
Split shipment COD: COD-AMOUNT-DELIVERY cites partial total shipped lines only not full order if split fulfill policy.
How to structure the COD-MAP matrix?
The COD-MAP matrix encodes eligible zones, fees, caps, and confirmation rules per market.
Lookup COD-MAP fields
country_region zip: cod_enabled Y/N
cod_fee_flat_or_pct: fees displayed at checkout
order_max_cod: eligible amount cap
confirmation_required: SMS app Y/N SLA hours
switch_prepay_window: hours before ship to allow card
carrier_cod_support: carrier list for cash collection
Example COD-MAP rows
UAE Dubai zip range: cod_enabled Y, fee 15 AED flat, max 2000 AED, confirm SMS 4 h, switch prepay 12 h before ship.
FR mainland: cod_enabled N, macro COD-NOT-AVAILABLE redirect card Klarna.
RTO policy row
cod_refused_delivery: customer pays return shipping N if no-show 2 attempts per COD-MAP rto_policy.
Auth before COD action
Switch prepay cancel: auth #122 L1 email order match.
Fraud duplicate row
cod_duplicate_order: same address 3 COD pending 7 d block per COD-MAP fraud_threshold.
Carrier remittance reconciliation
COD-MAP documents carrier remittance SLA days: finance does not support, explains cash collection delay to merchant, not customer refund.
SKU exclusion row
COD-MAP high_value_sku_exclude: luxury items above threshold COD disabled, redirect to prepay only.
How to write the COD-SUP policy in eight rules?
The COD-SUP cash on delivery policy governs confirmation, switch prepay, and RTO disputes.
Eight COD-SUP rules
COD-MAP grounded: eligibility fee cap from map, not agent invented
Confirm before ship: unfulfilled COD pending confirmation SLA COD-MAP
Switch prepay window: card payment before cutoff if policy allows
No refund COD unpaid: RTO unpaid order cancellation, not refund process
Exact amount cited: order total + cod_fee grounded in order API
Driver dispute escalate ops: cod_driver_no_collect carrier ticket, not agent refund
Cancel unfulfilled only: shipped COD cannot switch to standard prepay
Fraud RTO block: repeat RTO address flagged before new COD approval
Forbidden for agents
Promising COD for regions outside map. Refunding COD never paid as a standard refund. Waiving cod_fee ad hoc without policy. Confirming shipment without customer SMS if required.
Switch prepay execution
cod_switch_prepay: send Shopify payment link or draft cancel reorder card within switch_prepay_window.
Link disputes
Chargeback N/A for unpaid COD. Disputes #communication for paid capture edge cases only.
COD fee transparency checkout
PREFCUR-style: cod_fee visible line item at checkout reduces cod_fee_question tickets post-purchase.
Manager cod_fee waive exception
Single documented goodwill cod_fee waiver per customer within 12 months max: tag cod_fee_waived for finance audit, not default agent habit.
How to apply the COD-FLOW in eight steps?
The COD-FLOW CD-1 to CD-8 flow structures the processing of cash on delivery payment tickets.
Eight steps CD-1 to CD-8
CD-1 Intake: cod_* classify, order_id optional, zip country
CD-2 Auth: email order match if post-order action
CD-3 Order lookup: cod_flag financial_status fulfillment confirm_status
CD-4 COD-MAP lookup: zone fee max confirm switch window
CD-5 Explain: macro COD-* grounded CD-3 CD-4
CD-6 Branch: guide checkout | resend confirm | switch prepay | cancel | carrier escalate | RTO explain
CD-7 Execute: payment link | cancel order | carrier ticket | SMS resend
CD-8 Document: tags cod_*, confirmation_timestamp, rto_reason
CD-6 cod_eligibility_zone
COD-MAP lookup zip: COD-AVAILABLE or COD-NOT-AVAILABLE macro link /pages/cod-payment.
CD-6 cod_confirm_sms
Resend Klaviyo confirm link. Deadline COD-MAP hours. Auto-cancel explain if expired.
CD-6 cod_switch_prepay
Within switch_prepay_window unfulfilled: COD-SWITCH-PREPAY payment link. Past cutoff deny grounded.
CD-6 cod_refused_delivery RTO
COD-RTO-EXPLAIN return process no refund unpaid. Reorder prepay suggest if fraud flag clear.
CD-6 cod_wismo_pending
Tracking + exact amount order total + cod_fee. Not paid until delivery capture.
CD-3 confirm_status field
Shopify metafield cod_confirm_status pending confirmed expired: CD-5 macro branch grounded not agent guess.
SLA cod_switch_prepay P1
Payment link sent within 2 h business if fulfillment cutoff under 6 h same day ship.
Which COD-* macros should be used?
Eight cash on delivery macros for consistent, grounded COD-MAP responses.
COD-AVAILABLE (eligibility)
"Cash on delivery available in [city/region]. COD fees: [X]. Order ceiling: [Y]. Select "Cash on Delivery" at checkout."
COD-NOT-AVAILABLE
"COD not available in [area]. Accepted payment methods: card, [Klarna/bank transfer]. Details: /pages/cod-payment."
COD-CONFIRM-SMS
"Order #[X] COD: confirm via SMS/app within [4 hours] or automatic cancellation. Link sent: [URL]. Amount to pay driver: [total + fee]."
COD-SWITCH-PREPAY
"Before shipping: pay by card here [link] within [deadline]. COD order cancelled after card capture."
COD-AMOUNT-Delivery
"Upon delivery, please prepare [exact amount] [currency]: products [Z] + COD fees [fee]. Exact change recommended."
COD-RTO-EXPLAIN
"Parcel returned to warehouse: unpaid COD order cancelled. No refund. We recommend prepaying for your next order."
COD-DRIVER-ESCALATE
"Driver change dispute: carrier ticket #[ID] opened. Call back within [SLA]. Do not pay twice."
Page /pages/cod-payment
Eligibility map zones
Fees and ceilings
SMS confirmation process
FAQ change RTO switch prepay
COD-CANCEL-PENDING
"Order #[X] COD not shipped: cancellation confirmed within 2 hours. No charge applied since cash on delivery was not completed."
COD-FRAUD-BLOCK macro
"Address with repeated COD returns: cash on delivery temporarily unavailable. Please use card or bank transfer for this order."
Which RTO, fraud and local delivery cases should be processed?
Special COD cases require COD-MAP extensions or carrier ops escalation.
High RTO address
3+ RTO same address 30 days: COD-MAP fraud block prepay only macro honest.
Local delivery + COD
Same-day local may allow COD cash to driver: link #429 LOCAL POD + COD amount.
Partial payment dispute
cod_partial_payment_dispute: carrier proof collection API before agent credit.
Address change COD pending
Unfulfilled: #183 may reset COD zone re-check COD-MAP.
Cancel after ship
In transit COD: refuse delivery RTO path not cancel API standard.
Paid capture edge
Rare carrier pre-report paid: finance reconcile not COD-RTO macro.
Installment confusion
Customer confuses COD with Klarna: route installment not COD.
International COD rare
Cross-border COD usually N: COD-NOT-AVAILABLE redirect #100 prepay.
Gift COD to family
COD ship different address gift: link #205 message + COD amount recipient prepares cash.
Alternative payments bot reroute
Customer asks COD but zone N: mention alternative payments bot prepay options not COD promise.
Which COD KPIs should be measured?
Cash on delivery KPIs link confirmation, RTO, and prepay switch success.
Eight key metrics
cod_ticket_rate: tickets cod / 100 payment tickets
cod_confirmation_rate: confirmed before ship / cod orders
cod_rto_rate: return unpaid / cod delivered attempts
cod_switch_prepay_success: card switch before ship / requests
cod_fcr: resolved without recontact / tickets
cod_driver_dispute_rate: change no collect / cod deliveries
cod_fraud_block_rate: addresses blocked repeat RTO
cod_csat: satisfaction post COD resolution
Benchmark DTC COD markets
cod_confirmation_rate > 85 %, cod_rto_rate < 18 %, cod_fcr > 78 %, cod_driver_dispute_rate declining QoQ.
Dashboard finance-ops
Zone breakdown, confirm SLA breach, switch prepay funnel, RTO reason taxonomy.
Checkout UX feedback
cod_eligibility_zone tickets feed COD-MAP expansion zip requests product.
cod_auto_cancel_rate
Track orders auto-cancelled confirm timeout : high rate signals SMS deliverability or deadline too short UX review.
cod_to_prepay_conversion rate
Measure switch prepay success vs cod orders : optimize payment link UX and window length.
Which COD anti-patterns should be avoided?
Twelve COD support anti-patterns to ban for customer service and ops.
1. Refund COD unpaid RTO
Rule 4 COD-RTO-EXPLAIN no refund.
2. Promise COD out of area
Rule 1 COD-MAP grounded.
3. Ship without confirm
Rule 2 confirm SLA mandatory.
4. Switch prepay after ship
Rule 7 shipped cannot switch standard.
5. Invent cod_fee amount
Rule 5 order API exact.
6. Agent refund driver dispute
Rule 6 carrier escalate.
7. Waive fee ad hoc
Policy exception manager only documented.
8. Confuse payment declined
Route card declined not COD macro.
9. Skip fraud RTO check
Rule 8 block repeat RTO.
10. Route #370 refund status
COD pending unpaid not refund pending.
11. Double COD same address
COD-MAP fraud_threshold enforce.
12. Skip /pages/cod-payment
Self-service eligibility first reply.
13. Treat COD as paid for refund
Agent error: COD pending is not paid. Route COD-RTO not #370 refund status.
14. Resend confirm after auto-cancel
Expired confirm: new order required not revive cancelled COD order silently agent workaround.
How does Qstomy qualify COD tickets?
Qstomy on Shopify classifies cod_* intents, looks up COD-MAP zip zone, cites order total cod_fee API, routes confirm switch prepay RTO branches, hands off carrier payload.
Qstomy cod capabilities
cod_intent_classifier: 12 typologies section 3
cod_map_lookup: zone fee max confirm window
order_cod_context: financial_status confirm fulfillment
switch_prepay_gate: window unfulfilled check
carrier_handoff_cod: driver dispute ticket payload
Pipeline #469 #470 #322 #429
#469 playbook COD agents. #470 bot automate tier 1. #322 distinct transfer. #429 local delivery overlap.
Quantified DTC scenario
MENA expansion, 82 cod tickets/month, 24% RTO baseline.
After COD-SUP + Qstomy: cod_confirmation_rate 92%, cod_rto_rate 13%, cod_fcr 81%, cod_csat 4.3/5.
Explore customer support and request a demo.
Sync bot #470 corpus
COD-MAP JSON + COD-* macros feed future bot COD tier 1 eligibility confirm.
Weekly cod QA sample
Review 10 closed cod tickets: exact amount, no wrongful refund promise, confirm SLA cited.
COD confirm SMS deliverability
Monitor cod_auto_cancel_rate vs SMS bounce: ops, not support, fixes Klaviyo sender when confirm fail spike.
What is the checklist for deploying COD-SUP?
COD-SUP Checklist (12 steps)
Document COD-MAP areas max fee confirm switch window
Draft COD-SUP policy 8 rules
Configure Shopify COD payment + carrier collect API
SMS confirmation Klaviyo flow deadline auto-cancel
Publish /pages/cod-payment FAQ areas
Create 8 COD-* macros + cod_* tags
Train COD-FLOW agents 45 min CD-6 branches
Process switch prepay payment link window
Test 8 scenarios: eligibility, confirm SMS, switch prepay, cancel, WISMO amount, RTO, driver dispute, fraud block
Dashboard KPI cod section 9
RTO reason taxonomy carrier sync
Sync COD-MAP → bot #470 corpus
In brief
#469 = first COD playbook delivery driver payment
Confirm before ship: SMS SLA COD-MAP
RTO unpaid = no refund: COD-RTO-EXPLAIN
Switch prepay window: before fulfillment
KPI cod_confirmation_rate: target > 85 %
FAQ
COD available in my ZIP?
COD-MAP lookup zip. Macro COD-AVAILABLE or NOT-AVAILABLE.
Pay by card before shipping?
cod_switch_prepay if within switch_prepay_window unfulfilled.
Refused parcel refund?
COD unpaid RTO: no refund. COD-RTO-EXPLAIN.
Difference with declined card?
Payment declined = prepay fail. COD = pay at door.
Exact driver amount?
COD-AMOUNT-DELIVERY order total + cod_fee API.
Further reading
This week: publish COD-MAP JSON top areas, activate SMS confirmation flow, create /pages/cod-payment, COD-CONFIRM COD-SWITCH-PREPAY macros, train CD-6 branches agents, launch cod_confirmation_rate and cod_rto_rate dashboard.
Share this guide #469 with ops and finance: one SMS confirmation before shipping is worth ten unpaid RTO parcels, and a clear /pages/cod-payment page is worth twenty repeated area eligibility tickets.
Go-live test matrix
8 scenarios sign-off : zone yes no, confirm SMS resend, switch prepay link, cancel pending, WISMO amount, RTO explain, driver escalate, fraud block.
MENA launch COD checklist
New market COD go-live : carrier contract collect remittance, COD-MAP row, confirm flow, /pages/cod-payment locale, agent training before marketing push.

Enzo
July 1, 2026





