Alternatives to cash on delivery in Morocco: card prepayment, cash at an agency and deposits
Alternatives to cash on delivery in Morocco: card prepayment, cash at an agency before shipping, deposits for risky orders, customer messages, a gradual plan.
Alternatives to cash on delivery in Morocco are not about dropping it overnight: they give each customer a way to pay before shipping that genuinely suits them. Four levers are enough, switched on one at a time: card prepayment, offered as soon as the order is confirmed; a cash reference paid at an agency before dispatch, for customers without a card; a deposit for orders you consider risky; and mandatory prepayment on certain products. For each one: how to set it up, the messages to send and how to measure your own results, comparing your own weeks rather than a national rate.
Why reduce cash on delivery rather than drop it
Cash on delivery is neither forbidden nor outdated. For some of your customers (people discovering your store, people whose card is not open to online payments) it is still the most reassuring way to order. Removing it overnight means risking those sales. Keeping it as the only option means accepting that an order is paid only when the parcel arrives, and sometimes not at all.
The sensible path lies in between: offer, then encourage, then require payment before shipping where it makes the most sense, and keep cash on delivery where it is still useful. What this payment method really costs (refused parcels, return shipping, tied-up cash) is covered on our reference page on e-commerce payments in Morocco; we do not repeat it here.
The tools described below are ChariPay's. ChariPay is a Moroccan payment platform, a PSP operated by Chari Money, a payment institution licensed by Bank Al-Maghrib. The levers themselves work whatever your sales channel.
| Lever | For which customers | What the customer does | When you ship |
|---|---|---|---|
| Card prepayment | Those whose card is open to online payments | Pays on a hosted page and confirms with their bank | At "paid" status |
| Cash reference | Those without a card, or who prefer not to use it online | Pays a reference at an agency of the Chari network | At "paid" status, once the deposit is confirmed |
| Deposit | Orders you consider risky | Pays part up front, the rest on delivery | Once the deposit is received |
| Mandatory prepayment | Certain products, announced as such | Pays the full amount up front, by card or in cash | At "paid" status |
Lever 1: offer card prepayment
The simplest lever: attach a way to pay to every order confirmation, using one of these two tools.
The payment link. A payment link is an amount and a description; the customer pays on a page hosted by ChariPay. It is shared as a link, a QR code, a printable PDF poster, by email or WhatsApp. For an order received by message, by phone or on a store without built-in payment, you create a single-use link for the exact amount and send it with the confirmation. Our product page covers payment links in detail.
The checkout session. On a site connected through the API, an order becomes a session: you create the session server-side, redirect the buyer to the hosted checkout — card with 3-D Secure — and receive the result through a signed webhook. Prepayment then becomes an option in your checkout flow, next to cash on delivery.
To reassure a hesitant customer, tell them what will happen: card payments go through 3-D Secure authentication, the cardholder confirms with their bank, which protects the merchant against most unpaid charges and disputes. Your customer never gives you their card number: they enter it on the hosted page.
An incentive can help people take the step, and the choice is yours: priority shipping, a small gift in the parcel, special packaging. Pick something you can sustain. On the cash-flow side, the difference shows right away: as soon as a payment succeeds, the amount is available in your ChariPay payment account and usable right away, with no waiting for a courier to hand over collected cash.
Before you change your habits, look at what your customer will receive. Start in test mode: three fields (name, work email, company), an activation link received by email to choose your password, then the portal, where you create your first link (and, if you integrate through the API, your test key, after re-authenticating). Pay that link with the test card 4918 9141 0719 5005, CVV 123, any future expiry date, 3-D Secure code 555: only this card is accepted. It is free, with no time limit and no approval to wait for; no real money moves, and a real cash deposit at an agency is not simulated.
Lever 2: a cash reference, paid before shipping
Some of your customers choose cash on delivery because they pay in cash. This lever keeps the cash but moves it before dispatch. On the page of a single-use payment link, your customer chooses cash, receives a reference, pays it at an agency of the Chari network, and you are notified as soon as the network confirms the deposit. Cash payment at an agency always relies on a single-use link — one reference per deposit.
ChariPay is the only payment gateway in Morocco that also collects cash at agencies.
Three practical rules:
- One single-use link per order. A checkout session created through the API only collects card payments, and a reusable link collects by card only. To offer cash, send a single-use link: the customer picks card or cash on the page. On the hosted storefront, the buyer chooses at checkout to pay by card — on the hosted payment page, with 3-D Secure — or in cash: they then receive a reference to pay at an agency of the Chari network.
- No expiry on a cash link. In the portal, turning on "Agency payment" on a link disables its expiry: the link stays payable with no time limit. A link with an expiry date is therefore presented as a link to be paid by card; for a customer who pays in cash, create a link with "Agency payment", without an expiry. Plan an "awaiting deposit" state in your own tracking.
- Ship only at "paid" status. As soon as the network confirms the deposit, the link turns "Paid" and you are notified in the portal. Do not prepare the parcel before then: a reference sent is not a reference paid.
The customer journey, traceability and points to watch are covered in our guide to collecting cash at an agency.
Lever 3: a deposit for risky orders
Between all and nothing sits the deposit: the customer pays part of the order before shipping, through a single-use link, and the balance on delivery. A refused parcel no longer leaves you empty-handed, and a customer who has already paid part has every reason to be there when the courier arrives.
What counts as a "risky order" is up to you, based on your experience: a first order from an unknown customer, a basket well above your usual one, a personalized product you cannot resell, an address you have never delivered to. Set the deposit share according to your margin and shipping costs, and write the rule into your terms of sale rather than deciding case by case.
The setup (one link for the deposit, then the balance, and how to tie the two together in your tracking) is covered in our guide to collecting a deposit.
Lever 4: mandatory prepayment for certain products
Some products should never ship unpaid: made-to-order pieces, personalized items, high-value goods. For those, prepayment becomes the rule, by card, or in cash at an agency for customers without a card. Two conditions make the rule acceptable: announce it before the order, on the product page or in your first message, and apply it to every customer, with no negotiated exceptions.
If a customer cancels after a card prepayment, the exit is clean. Refund a customer, in full or partially, from the portal or through the API. Refunds are free; the amount is deducted from your available balance, and if the balance is not enough, the operation is blocked rather than creating an overdraft. A refund is not instantaneous on the bank side: tell the customer when you trigger it.
The messages to send your customers
Four short templates, to adapt to your tone and channel: WhatsApp, Instagram, email or a text message you send yourself.
1. Order confirmation, with the link.
Hi Salma, thank you for your order #1042 (2 items, MAD 349). You can pay for it right now by card, on a secure page: (payment link). As soon as the payment is confirmed, we will prepare your parcel.
2. Reminder before the card payment link expires.
Hi Salma, a quick reminder: the payment link for your order #1042 is valid until tomorrow evening. Any question before you pay? Just reply to this message.
3. Sending a cash reference.
Hi Youssef, you would rather pay in cash: open this link, choose cash and note the reference shown (payment link). Pay it at an agency of the Chari network; we ship as soon as the payment is confirmed.
4. Payment received, then shipping.
Payment received for your order #1042, thank you! It is being prepared, and we will send you the tracking details as soon as it ships.
Keep a courteous tone, with no pressure or artificial countdown, and promise only the timelines that depend on you. The full method for selling in messaging apps is in our guide to selling on Instagram and WhatsApp.
Measuring your own refused parcels
We quote no benchmark refusal rate: the useful comparison is between your own weeks. A table kept every week is enough.
| Week | Confirmed orders | Paid before shipping | Paid on delivery | Refused parcels |
|---|---|---|---|---|
| Week 1 | Every accepted order | Links and orders at "paid" status | Parcels paid to the courier | Parcels returned unpaid |
| Week 2 | … | … | … | … |
The "Paid before shipping" column comes from the portal: every link has a status (active, paid, canceled, expired) and the export keeps the references of your sales. The other columns come from your own order tracking and your courier. Two ratios are enough: the share of orders paid before shipping, and the share of refused parcels among those sent cash on delivery. If they move the right way when you switch on a lever, keep it; if not, change levers rather than insisting.
A gradual plan, over several weeks
Do not change everything on the same day. Move in stages, at your own pace, checking your table between each one.
- 1Offer. Card prepayment and the cash reference appear in every confirmation, next to cash on delivery, with no obligation.
- 2Encourage. Add the incentive you chose for customers who pay when they order.
- 3Require, where it is justified. A deposit for risky orders, mandatory prepayment for personalized or high-value products.
- 4Keep cash on delivery where it helps. For loyal customers or products where it costs you nothing extra, it can stay an option.
Each stage holds as long as your numbers support it. If you are just starting out and still laying the foundations of your store, begin with our guide to starting an online store in Morocco.
Frequently asked questions
What can replace cash on delivery?
Rather than replacing it overnight, add alternatives next to it: card prepayment through a payment link or at checkout, a cash reference paid at an agency before shipping for customers without a card, and a deposit for risky orders. Keep cash on delivery where it is still useful, and measure week after week what changes in your own orders.
How do I reduce cash on delivery gradually?
In stages: first offer prepayment in every order confirmation, then encourage it with an incentive you choose, then require it only for certain products or orders. Between two stages, look at the share of your orders paid before shipping and the share of refused parcels, and move forward only when your own numbers justify it.
Can a customer without a card pay before shipping?
Yes. Send them a single-use payment link: on the page, they choose cash, receive a reference and pay it at an agency of the Chari network. As soon as the network confirms the deposit, the link turns "Paid" and you are notified in the portal. One reference covers one deposit; a reusable link only collects card payments.
How do I convince a customer to pay when they order?
Explain what will happen: a hosted payment page, a confirmation with their bank thanks to 3-D Secure, and their card number never passed to the merchant. Add an incentive you can sustain, such as priority shipping, and offer cash at an agency to those without a card. A clear, courteous message works better than pressure.
Can I ask for a deposit and collect the rest on delivery?
Yes. You send a single-use payment link for the deposit, payable by card or in cash at an agency, and the customer pays the balance on delivery. You decide the deposit share and which orders it applies to, such as a first order, a large basket or a personalized product, and you state it in your terms of sale rather than case by case.
When should I ship an order paid in cash at an agency?
When the link has turned "Paid": that is the sign the network has confirmed the deposit, and you are notified in the portal. Before that, a reference sent to the customer is only an intention to pay. So plan a waiting state in your tracking between sending the reference and the deposit, and prepare the parcel only once the payment is confirmed.
What if a customer cancels after a card prepayment?
Refund them from the portal or through the API, in full or partially depending on your cancellation policy. Refunds are free and the amount is deducted from your available balance; if the balance is not enough, the operation is blocked rather than creating an overdraft. Tell the customer that a refund is not instantaneous on the bank side, to avoid a worried follow-up.
How do I measure the share of my refused orders?
Keep a weekly table: confirmed orders, paid before shipping, paid on delivery, refused parcels. Payments before shipping are read in the portal, through each link's status and in the export; refusals come from your courier and your own tracking. Compare your weeks with each other: that is the benchmark that counts for your store.
Next step
Choose one product category, switch on a single lever there (card prepayment is the simplest) and measure for a few weeks before extending it. To see the message and page your customer will receive: Start in test mode. Then add the cash reference with our guide to collecting cash at an agency, followed by the deposit for your risky orders.
Written by ChariPay team.