How it works
What we watch, and what happens when something breaks
Three detection rules, one alert per problem, and reporting built on what the payments actually did.
The gap
Two records that people assume are one
Your platform keeps a refund — the commercial fact that you decided to pay someone back. The money itself moves under a separate payment transaction, which can sit pending, or come back as a failure, hours later and silently.
Most of the time they agree, which is exactly why nobody checks. When they disagree, the order still says refunded, your books still say refunded, and the money is still in your account.
Detection
Three ways a refund quietly doesn’t happen
| What goes wrong | When you hear about it | Severity |
|---|---|---|
| The refund failed outright The gateway returned a failure or an error — declined card, insufficient balance, a closed account. | Immediately | Critical |
| The refund is stuck pending Accepted but never completed. The most common silent failure, because nothing ever reports an error. | After 2 hours critical at 24 |
Warning |
| No money ever moved A refund exists on the order with no payment transaction behind it at all. Rare, and almost impossible to spot by hand. | After 30 minutes | Warning |
Thresholds are yours to set. Every alert ends with the same sentence: the amount your customer has not received.
Alerting
One alert per problem. Not one per check.
Monitoring tools earn their reputation for noise by re-announcing the same fault every few minutes. Each broken refund gets an identity and a lifecycle, and only real changes reach you.
Failures page you, delays email you
A failed refund goes to email and to your own systems at once. A refund that is merely slow lands in an inbox and waits.
Say “I’m on it” and it goes quiet
Acknowledging stops the alerts while the dashboard keeps tracking severity. No one gets pinged about a problem someone already owns.
Getting worse is news, staying broken isn’t
A pending refund crossing your critical threshold alerts once more. Sitting in the same state does not.
You get told when it recovers
Some refunds come good on their own. When the money finally moves, the alert closes itself and says so.
Refunded another way? It stays closed
Paid by bank transfer and closed it by hand? The transaction stays failed forever, but we never reopen your decision.
Send it wherever you work
Email out of the box, plus a signed webhook for Slack, Teams, PagerDuty, n8n or your own back office.
Reporting
Numbers a refund report cannot produce
Every analytics tool can tell you how much you refunded. Only something reading the payment underneath can tell you how much of it arrived.
Recovery rate
The share of finished refunds that actually reached the customer. A tool that counts refunds counts the failures as successes.
Gateway reliability
Which payment provider fails to return money, and how often. Something you can take to them, or act on by moving.
Time to money
How long refunds really take to reach a customer, per gateway. Not how long they took to record.
The ordinary things too
Refunded value per currency, most-refunded products, and daily trend — without adding another app.
See it against your own orders
Everything described here runs on the free plan. The difference between reading about it and knowing is one install.