Refunds, disputes and fraud

Play this lesson

An email from a parent

Two weeks after launch, the studio gets this email: "There is a $4.99 charge from Superintelligent Game Studios on my card. I didn't buy anything!"

Maybe their child bought Hyper Shards without asking. Maybe they don't recognise the name on their statement. Or maybe a criminal really did use their card. Each case needs a different answer, and the wrong one can cost far more than $4.99. Real studios plan for refunds, disputes and fraud before launch.

Refund or dispute?

There are two very different ways money goes back to a buyer:

Fee maths

dispute.txt
Hyper Shards sale                $4.99Dispute fee (US, example)       $15.00We decide not to contestStudio loses (before card fee)    ???

A buyer disputes this $4.99 sale and we do not contest it. How much does the studio lose, not counting the original card fee?

  1. $4.99
  2. $15.00
  3. $19.99
  4. $34.99
Show the answer

$19.99

The bank takes back the $4.99 and Stripe charges the $15.00 dispute fee: $19.99 in total. A refund would have cost only $4.99, which is why answering emails fast and refunding fairly beats a dispute.

Why people dispute

When a cardholder disputes, their bank records a reason. Common ones are fraudulent (I didn't make this payment), unrecognized, product not received, duplicate (charged twice) and subscription cancelled.

Many "fraud" disputes are really friendly fraud: the real cardholder forgot, or a child used a parent's card without asking. A clear statement descriptor, the short name on the bank statement, helps a lot. "LEVELUP HYPERSHARDS" is easy to recognise. "LUS LLC 8821" is not.

Fighting a dispute with evidence

Stripe shows each dispute in the dashboard with a deadline, often one to three weeks away. To contest it, we send evidence to the bank through Stripe:

The card's bank decides, which can take weeks or months. Contest only when the evidence is strong.

Quick check

A buyer disputes a Hyper Shards purchase as "product not received". Which evidence helps most?

  1. A screenshot of our best player review
  2. Our records showing their account unlocked the game and played it for 6 hours
  3. A note saying the game is great value
Show the answer

Our records showing their account unlocked the game and played it for 6 hours

The bank wants proof about this exact payment. Records that the buyer's own account received and used the game answer "not received" directly. Reviews and opinions do not.

Stolen cards and card testing

Criminals buy lists of stolen card numbers, but they don't know which cards still work. So they run card testing: a bot makes hundreds of tiny purchases on a website to see which cards go through. A cheap item and an unprotected checkout make an easy target.

The real cardholders later spot the charges and dispute them, so each fake sale can turn into a $15 fee. Card networks like Visa and Mastercard watch every seller's dispute rate, the share of payments that become disputes. Above 0.75% counts as too high. Sellers with too many can be fined or lose their account.

Stripe Radar and 3D Secure

Stripe Radar is Stripe's fraud filter. It uses machine learning trained on payments across millions of businesses. It checks signals like: does the card's country match where the buyer is? How many cards has this device tried in the last hour? Then it blocks the riskiest payments. At the time of writing, the basic plan, Radar Lite, is free. Paid plans add a risk score and our own rules, like "block if the security code is wrong".

3D Secure asks the buyer to confirm in their banking app. If a confirmed payment is later disputed as fraud, the card's bank usually takes the loss, not us.

Spot the attack

tips-log.txt
10:02  $0.99  declined   card ...482110:02  $0.99  declined   card ...117710:02  $0.99  succeeded  card ...903410:02  $0.99  declined   card ...551210:03  $0.99  declined   card ...2290... 212 more tries in 10 minutes

Remy opens the payment log for the $0.99 tip button on our website. What is happening, and what should the team do?

  1. A great day for tips, so celebrate
  2. Card testing: make sure Radar's card testing protection is on, add a bot check like a CAPTCHA, and refund the tries that went through
  3. A Stripe bug, so wait for it to stop by itself
Show the answer

Card testing: make sure Radar's card testing protection is on, add a bot check like a CAPTCHA, and refund the tries that went through

Hundreds of tiny tries from different cards in minutes, mostly declined, is card testing. Blocking the bot stops new tries, and refunding the ones that succeeded, before the real owners dispute them, avoids $15 fees.

A clear refund policy

Most disputes can be prevented. Our refund policy is short and shown before anyone pays, for example: "Not happy? Email us within 14 days for a full refund." We reply quickly, and we refund when a parent tells us a child bought something by mistake. A $4.99 refund costs far less than a $19.99 dispute, and keeps our dispute rate low.

Consumer laws in some places give buyers extra rights, so check the rules where our players live. The team writes the policy together, and a parent agrees to it for the company.

Bolt says: Next lesson: pricing our games, putting everything in this stage together.

Fact-checked 9 October 2026