Skip to main content
All articles
Guide13 min read

WhatsApp payment link in Morocco: sell on Instagram and WhatsApp, get paid before you ship

Use a WhatsApp payment link in Morocco: send it in the chat, wait for the Paid status, then ship. Card or cash at an agency, never a screenshot as proof.

A WhatsApp payment link in Morocco works in one move: you paste a payment link into the chat, your customer opens it and pays on a page hosted by ChariPay — by card with 3-D Secure, or in cash at an agency if the link is single-use — and you ship only once the link turns "Paid". The same move works on Instagram, in a direct message, or with a reusable link in your bio for a best-selling product. This guide walks through the whole flow, from the customer's question to the parcel leaving: which link to use, what to offer customers without a card, why a screenshot proves nothing, and how to follow up.

On WhatsApp as on Instagram, the sale already closes inside the conversation: the customer asks for a price, a size, a delivery date, and the decision happens in the thread. A payment link brings the payment into that same thread. 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. There is nothing to connect to your WhatsApp or Instagram account: the link is a web address you paste yourself, like any other message.

Behind that link, ChariPay is a Moroccan payment platform, a PSP operated by Chari Money, a payment institution licensed by Bank Al-Maghrib. On the page, your customer pays by card — by default: Visa, Mastercard and Maroc Pay; other methods can be enabled on request to the team, depending on your business. Card payments go through 3-D Secure authentication: the cardholder confirms with their bank, which protects the merchant against most unpaid charges and disputes. On a single-use link, the customer can also choose to pay in cash at an agency; more on that below. The payment links page covers the full offer.

This guide is about the social channel. If your goal is to shrink the share of orders paid at the door across every channel, read the alternatives to cash on delivery; for the big picture of a store that gets paid online, see the guide to e-commerce payments in Morocco.

The direct-message flow, from the customer's question to shipping

Here is a sequence that holds up, whether the conversation started on WhatsApp or in your Instagram direct messages.

  1. 1Confirm the order in writing. Item, size or color, quantity, delivery address, shipping fee: everything that sets the amount is written in the thread before any link goes out. An amount corrected after payment forces you to claim or refund a difference.
  2. 2Create a single-use link for the exact amount. One order, one customer, one amount. Put the item and your order number in the description: that is what the customer reads on the page, and what you will find in the portal. Every setting is covered in our guide to creating a payment link.
  3. 3Paste the link into the thread, with a sentence that repeats the amount and the contents: "Here is the link to pay for your two gift boxes, MAD 480 including delivery." The customer reads the same amount twice, in the message and on the page.
  4. 4Wait for the "Paid" status. When the payment comes in, you are notified in the portal and the link turns "Paid": that is your green light, and the only one.
  5. 5Ship, then say so in the same conversation. A customer who has paid wants to know the parcel is on its way, and the thread keeps the full history, from request to dispatch.

As soon as a payment succeeds — a card authenticated with 3-D Secure or a reference paid in cash at an agency — the amount is available in your ChariPay payment account and usable right away: transfers, bills, top-ups. "Available instantly in the account" does not mean "instant bank transfer": the payout to your bank remains a separate operation.

Sharing remains your move: ChariPay does not send your payment link by SMS or WhatsApp.

The easiest way to get a feel for this flow is to play it once from the customer's side. Test mode opens as soon as your account is activated, with no approval to wait for: 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 own test key after re-authenticating; the full key is shown only once. Create a link, send it to yourself on WhatsApp, and pay with the test card 4918 9141 0719 5005, CVV 123, any future expiry date, 3-D Secure code 555: only this card is accepted, and no real money moves. Your business verification (KYB) runs in parallel and only gates the move to production.

Selling on Instagram: the reusable link in your bio or story

On Instagram, part of your sales never go through a conversation: a best-selling product, always at the same price, that followers buy after seeing a story. For that case, the reusable link — one amount, payable by many customers — is created through the API, with singleUse: false; once created, it shows up in the portal like the others, and you put it in your bio or in a story. Without a developer, to sell several times at the same price, publish a product on your hosted storefront and share its link. Pick the link's expiry to match the offer: never for a permanent product, an exact date for a limited edition or a seasonal offer.

Three rules make it reliable. First, a reusable link takes card payments only: cash at an agency always goes through a single-use link, one reference per deposit. Second, to change the price, cancel the link — a canceled link can no longer be paid — and create a new one, which you put in your bio in place of the old one. Third, since many customers pay the same link, ask each buyer to message you privately with their address, and match each message to a payment notified in the portal before you ship. When that matching gets tedious, it is a sign to go back to single-use links.

Single-use linkReusable link
SituationAn order discussed in a direct messageA best-selling product at a fixed price, in your bio or a story
AmountThe exact total of that orderThe same for every buyer
Number of paymentsOneSeveral, until expiry or cancellation
Accepted payment methodsCard, or cash at an agencyCard only
When to use itAs soon as the address, quantity or fees varyWhen nothing varies from one buyer to the next

Not all of your customers have a card, and many Moroccan cards are closed to online payment by default. For those customers, the single-use link keeps a door open. 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.

Nothing changes in your flow: you send a single-use link, and the customer chooses between card and cash on the page. 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. If you go through the API, paymentMethod: "CASH" preselects cash on the page. As soon as the network confirms the deposit, the link turns "Paid" and you are notified in the portal; on the server side, read the link's state with GET /v1/payment-links/{reference}. The amount is available in your account the moment the deposit is made: you ship exactly as you would after a card payment.

The full mechanics, from the customer's side and from yours, are in our guide to collecting cash at an agency. Above all, remember the reverse rule: the reusable link in your bio never accepts cash. A customer who wants to pay cash for a product seen in a story gets, in a direct message, a single-use link created for their order.

The "Paid" status is the proof, not the screenshot

"I paid, here's the screenshot": that is the most expensive sentence in chat-based selling. A screenshot of a transfer, a receipt or a confirmation page cannot be verified: it can be edited, reused, or forwarded from another conversation. The only proof of a payment made through a link is that link's page in your portal — its "Paid" status and the notification you received when the payment came in. Never ship on the strength of an image alone, not even for a loyal customer, not even for one in a hurry. If the status has not changed, simply reply that the order ships as soon as the payment shows up on your side: a customer acting in good faith understands. The other scenarios, from fake confirmations to refund requests redirected to another method, are covered in our guide to online payment fraud.

A customer who does not pay right away has not necessarily given up: they may be waiting for payday, looking for their card, or hesitating between two sizes. A payment link stays payable until its expiry, which you choose when you create it: 24 hours, 7 days, 30 days, never, or an exact date. While it is active, the simplest follow-up is to send the same link again in the thread, with a short message:

Hello, your order is waiting for you. Here is the link to pay by card, or in cash at an agency if you prefer.

Three rules prevent double payments and confusion:

  • The link has expired? Create a new one for the same amount and send it in place of the old one.
  • The amount has changed? Cancel the old link before sending the new one: a canceled link can no longer be paid, so the customer cannot pay twice.
  • Your customer prefers email? The link can also go out by email; through the API, POST /v1/payment-links/{reference}/send sends it and returns 202.

No reminder goes out on its own: set yourself a simple rule — one reminder, then cancellation at expiry — so that active links do not linger on abandoned orders.

Seeing where your buyers stop before paying

The portal shows the funnel of a link or a session — how many opened the page, how many entered their card, how many completed. For a seller on social media, this view separates situations that look identical in the conversation, where everything boils down to "the customer hasn't paid":

  • Page opens with no card entry: the customer saw the page without starting to pay. They may not have a card that works online: offer them a single-use link and remind them they can pay in cash at an agency.
  • Card entries with no completed payment: the customer tried. They may have dropped out during authentication, or their bank declined. The causes, and what to tell the customer, are in our article on a card declined online.
  • Few page opens: the link is not being read. Check that it stands out in the message, and that the amount written next to it matches the one on the page.

Frequently asked questions

How do I receive a WhatsApp payment in Morocco?

From the ChariPay portal, create a single-use payment link for the exact order amount and paste it into the WhatsApp conversation. Your customer pays on a page hosted by ChariPay, by card with 3-D Secure or in cash at an agency of the Chari network. When the link turns "Paid" and the portal notifies you, the amount is available in your payment account: you can ship.

No. Sharing is your move: you copy the link and paste it into WhatsApp, an Instagram direct message or a text message, from your own phone. The link can, however, go out by email, including through the API with POST /v1/payment-links/{reference}/send. Keeping the conversation on your side has an upside: the customer receives the link from the person they already know.

Can a customer pay cash for an order placed on Instagram?

Yes, as long as you send them a single-use link. On that link's 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. The amount is then available in your payment account, and you ship as you would after a card payment.

No. The link in your bio or a story is a reusable link, paid by many customers for the same amount, and a reusable link takes card payments only. Cash at an agency always relies on a single-use link, with one reference per deposit. When a customer wants to pay cash for a product seen in a story, send them a single-use link created for their order in a direct message.

A customer sends me a payment screenshot: can I ship?

No, not on that basis alone. A screenshot cannot be verified: it can be edited or come from another transaction. Open the link's page in your portal: if its status is "Paid" and you received the payment notification, ship; otherwise, wait. Tell the customer that the order ships as soon as the payment shows up on your side, which a customer acting in good faith will understand.

Follow up by sending the same link again while it is active, with a short message that repeats the amount. If it has expired, create a new one; for a customer who will pay in cash, create it with "Agency payment", without an expiry. If the amount changes, cancel the old link before sending the new one, because a canceled link can no longer be paid. No reminder goes out automatically: you set the pace.

Which cards can my customers use?

By default: Visa, Mastercard and Maroc Pay. Other methods can be enabled on request to the team, depending on your business. Every card payment goes through 3-D Secure authentication, with the cardholder confirming with their bank. If a customer cannot manage to pay online, offer them a single-use link: they will be able to choose to pay in cash at an agency of the Chari network.

Next step

In test mode, create a link for the amount of a real order, send it to yourself in a WhatsApp conversation, pay it with the test card and watch the status turn "Paid" in the portal: Start in test mode. Then go through every setting with our guide to creating a payment link, and keep the payment links page handy for the full offer.

Written by ChariPay team.

Read next

Ready to try it yourself?

Create your account and take test-mode payments today: it is free, with no approval to wait for. A question? Our team supports merchants and developers alike.

  • Free, no commitment
  • Test mode from sign-up
  • No approval to wait for