R
Replai
All posts

Product

Two days of chasing unpaid orders on WhatsApp, and what came back

We switched order recovery on for our own shop on a Friday. By Sunday it had chased six unpaid orders, three had paid, and the recovered total had covered the plan it runs on.

By Clement, founder of ReplaiPublished 3 min read

Quick answer

On 13 September we switched on WhatsApp messages for failed and pending payments on our own WooCommerce store. In two days it chased six unpaid orders and three of them paid, worth MYR 554. The three paid 2, 17 and 55 minutes after the message arrived, which is the part worth paying attention to.

  • Six unpaid orders chased in two days, three paid, MYR 554 recovered.
  • The three payments landed 2, 17 and 55 minutes after the message.
  • Only three of the ten order statuses were switched on. Fewer messages, not more.
  • Recovered revenue counts orders paid within 7 days of being chased, which is correlation and is treated as such.

We run Replai on our own shop. On Friday 13 September we switched on the part that chases unpaid orders, and left it alone.

This is what two days produced. It is a small sample and it is our own store, so read it as one data point rather than a benchmark.

The numbers

Six unpaid orders were chased. Three paid.

OrderWhy it was chasedMessage sentPaidGap
1Payment failed13 Sep, 04:59not paid
2Payment failed13 Sep, 13:05not paid
3Payment failed13 Sep, 15:19not paid
4Payment failed14 Sep, 05:5806:5255 min
5Payment failed14 Sep, 08:4609:0317 min
6Awaiting payment14 Sep, 14:1514:172 min

MYR 217, MYR 218 and MYR 119. MYR 554 in total, which is comfortably more than the plan the feature runs on.

A two-day timeline of six WhatsApp recovery messages. The three sent on Friday for failed payments are still unpaid. The three sent on Saturday were each paid shortly after the message arrived: 55 minutes, 17 minutes and 2 minutes, totalling MYR 554.
Three of the six are still unpaid and will not be chased again. The three that paid did so while the message was still on screen.

The gaps are the interesting part, not the total

A recovered total on its own proves very little. Any tool can count orders that were chased and later paid, and quietly take credit for the ones that were always going to be paid.

The timings are harder to dismiss. Those three orders had been sitting unpaid. Then a message arrived, and they were paid 2, 17 and 55 minutes later. Someone who had already decided to pay does not cluster that tightly around a notification they did not know was coming.

The two-minute one is the clearest. That customer was almost certainly still holding their phone.

What it actually sends

Nothing clever. The failed-payment message is four lines: what happened, which order, a link to pay, and an invitation to reply if something is wrong.

Hi there, your order #425050 could not be processed successfully.

If you would like to continue, tap PAY on the order below.

The invitation to reply matters more than it looks. A failed payment is often a question in disguise: the card was declined, the bank blocked it, they want to pay a different way. Those replies land in the same inbox and the assistant answers them with the order already in front of it.

Three statuses, not ten

There are ten order statuses available. We have three switched on: failed payment, pending payment and on hold.

That is deliberate. The statuses that recover money are the ones where the customer meant to buy and something got in the way. Announcing every internal state change is how a shop teaches people to mute its number, and then the message that mattered does not arrive either.

What we are not claiming

Three of the six did not pay. A 50% rate on six orders is not a rate, it is a coincidence waiting to regress. Ask again at sixty.

Recovered revenue is correlation. The number counts orders paid within seven days of being chased. We chose seven rather than thirty precisely because a long window flatters the total, but it is still not proof.

Those three will not be chased again. One reminder is a service. A second is a nudge. A third is the reason people block a number, and it is the same number our actual customers write to.

If you want to try the same thing

The setup is a WooCommerce or Shopify connection and then picking which statuses are worth a message. Sending is off and test mode is on when you connect, so every message goes to your own phone with a [TEST] tag until you decide otherwise.

Two guides cover it end to end: connecting the store and setting up the messages, including the abandoned cart and unpaid order side that this post is about.

We will publish the same numbers again at thirty days, including the months where it recovers nothing.

Frequently asked questions

How is recovered revenue calculated?

An order counts when it was chased and then reached a paid status within seven days. The window is deliberately short, because a long one would credit recovery for orders that were always going to be paid. It is still correlation rather than proof, which is why the time between the message and the payment matters more than the total.

Does a message really change whether someone pays?

On this evidence it moves the timing at least. Three orders paid 2, 17 and 55 minutes after the message arrived, having sat unpaid before it. A customer who was going to pay anyway would not cluster that tightly around a notification.

Which order statuses should I switch on?

Fewer than you think. We run three of the ten: failed payment, pending payment and on hold. Every extra message is a chance for someone to mute the number, and the statuses that recover money are the ones where the customer meant to buy and something got in the way.

What about customers who simply changed their mind?

They ignore it, and that is a fine outcome. Three of the six we chased have not paid and will not be chased again. One message is a reminder, three is pestering, and the number sending them is the same number your real customers use.

Does this need the WhatsApp Business API?

No. The messages go from the shop's own WhatsApp number as a linked device, the same way WhatsApp Web works, so there is no Meta application, no template approval and no per-message fee. The trade-off is that the number has to be treated carefully, which is why the pacing and the opt-out handling are not optional.

Sources

  1. WhatsApp Business Platform pricing, Meta for Developers, 2025-07-01

Keep reading

See it answer your own customers.

Pair your number, paste in what you know, and message it from another phone. Ten minutes, no card.

Start free trial