E-commerce
July 1, 2026
Cash on delivery reassures some customers, but it also creates many questions. The customer wants to know if the option is available in their country, if there are additional fees, if the order needs to be confirmed, and what happens if they are away at the time of delivery.
A chatbot can reduce these frictions if it clearly explains the terms before the customer finalizes their purchase. It must also avoid promising this option when it depends on the carrier, the shopping cart, or the address.
This guide explains how to manage cash on delivery with an AI chatbot, protecting the customer experience and operations.
Summary
Why does cash on delivery require clear rules?
Cash on delivery is not just an additional payment method. It involves a risk of absence, refusal, carrier return, and sometimes specific fees. If the customer does not understand these conditions, the order may fail at the last moment.
The chatbot must therefore explain the option before the customer commits. It must say where it is available, when it disappears from the checkout, and what the customer needs to prepare upon delivery.
A good chatbot does not just sell the option. It prepares the customer to use it correctly.

Convert over 2,000 customers on average per month with Qstomy.
The world’s 1st Shopify AI dedicated to customer conversion



Empowering 200+ e-commerce merchants
What conditions should be checked?
The bot must verify the country, postal code, carrier, cart amount, eligible products, any fees, currency, customer type, and order limits.
It must also distinguish between a truly unavailable option and one that is hidden because a cart condition is not met. This nuance avoids replying "it is not available" when the customer can modify their cart.
How do you explain the fees?
If cash on delivery adds a fee, the bot must present it before validation. The response must explain the amount, the reason, and when this fee appears in the total.
A clear phrase would be: "Cash on delivery is available for your address, with a fee of [amount] added to the total." The customer then understands that this is not a cart bug.
Why confirm the order?
Some shops require confirmation by SMS, phone, or email to limit uncollected orders. The chatbot must explain this step without making it anxiety-inducing.
It can say: "Confirmation may be requested before shipping to verify that you wish to receive the order at this address." This makes the procedure more understandable.
What should I do if the option does not appear?
The bot must verify the conditions one by one: address, amount, products, carrier, and country. It can then explain the most likely cause.
If any information is missing, the response must guide the customer: "Add your full address to check check if cash on delivery is available." If the option remains unavailable, the bot can suggest the other accepted payment methods.
Which flow to follow?
The flow must clarify eligibility before the promise.
Identify the customer's country, address, and shopping cart.
Check the cash on delivery rules: amount, products, carrier, and fees.
Explain whether the option is available or why it is not.
Present the fees, confirmation, and responsibilities upon delivery.
Transfer if the customer disputes an unavailability or an order already placed.
Which messages should be used?
For an available option: "Cash on delivery is available for your address. The amount will be settled at the time of receipt, according to the carrier's terms."
For an unavailable option: "This option is not available for this cart or address. You can use the payment methods displayed at checkout."
For a confirmation: "Your order may require confirmation before shipping to avoid an uncollected delivery."
When to transfer?
The transfer is necessary if the customer disputes the unavailability, if a delivery order has been refused, if the carrier reports an absence, or if the customer requests to modify the payment method after validation.
The bot must transmit the order, the address, the cart, the chosen payment method, the delivery status, and the exact request.
Which KPIs should be monitored?
Track cash on delivery requests, orders refused upon receipt, carrier returns, uncompleted confirmations, and drop-offs when the option does not appear.
This data shows if the conditions are visible enough and if the option brings conversion without creating too many operational failures.
Which mistakes should be avoided?
Avoid promising cash on delivery before verifying the address and the cart. Also avoid hiding fees, downplaying the requirement to be present, or leaving the impression that the option is available everywhere.
Cash on delivery can be reassuring, but only if its rules are understood before ordering.
How can Qstomy help?
Qstomy can verify eligibility for cash on delivery, explain fees, and transfer sensitive cases with order context.
The chatbot helps the customer choose the right payment method without making a promise that cannot be kept.
Explore AI support, the AI sales agent, or request a demo.
CODBOT Checklist (12 steps)
Sync COD-MAP #469 JSON into bot RAG
Draft CODBOT-SUP policy 8 rules
Deploy 12 intents bot_cod_* classifier
Implement CB-1 to CB-8 + guardrails
Shopify order COD context read-only API CB-3
TPL-CODBOT-* + /pages/cod-payment corpus
Confirm resend Klaviyo integration or handoff
Refund confusion reroute #370 block rules
Test 8 scenarios: zone yes no, confirm resend, amount API, RTO no refund, switch handoff, driver dispute, refund reroute, fraud block
Dashboard KPI cod_bot section 9
Thank-you COD confirm widget T1
Red team refund promise amount invent quarterly
Summary
#470 = bot COD tier 1, does not execute capture
COD-MAP #469: shared corpus
NO-REFUND-UNPAID: RTO explain
NO-INVENT-AMOUNT: API grounded
KPI cod_bot_wrong_refund_promise: target 0
FAQ
Can the bot refund COD RTO?
No. TPL-CODBOT-RTO unpaid no refund. Handoff if paid edge rare.
Difference with #469?
#469 agents switch prepay carrier execute. #470 bot classify guide handoff.
Difference with #323?
#323 async wire transfer. #470 driver cash COD.
Driver amount?
TPL-CODBOT-AMOUNT order API total + cod_fee.
Where to confirm SMS?
bot_cod_confirm_resend resend or TPL-CODBOT-CONFIRM deadline.
Go further
This week: import COD-MAP into bot RAG, deploy bot_cod_* classifier, activate NO-REFUND-UNPAID guardrail, configure order API amount verify, test 8 scenarios staging, launch dashboard cod_bot_wrong_refund_promise zero tolerance.
Share this guide #470 with ops bot and payment: one API grounded amount is worth ten LLM refund promises on unpaid COD, one bot confirm resend is worth fifteen RTO packages cancelled for lack of understood SMS.
Go-live test matrix
8 scenarios: zone available not, confirm resend, amount API, RTO no refund block, switch handoff, driver escalate, refund reroute, NO-INVENT-AMOUNT test.
Ramadan bot capacity
Pre-scale CODBOT confirm resend and evening session capacity 1.5x MENA Ramadan COD peak.
Internal CODBOT documentation
Wiki ops: mapping intents → templates → handoff triggers, links #469 COD-MAP owner, guardrail owner payment ops, quarterly review red team refund unpaid and amount invent scenarios.

Enzo
July 1, 2026


