All articles
Deep dive7 min read

The refunds you cannot contest: what Apple and Google decide without asking you

Only two refund flows ever ask for your evidence: Apple's consumption request and Google Play's chargeback review. Everything else, the 48-hour Play refund, support refunds, voided purchases, unacknowledged trials, is decided without you. Here is the full map, what you can prevent, and what you can only record.

Key takeaways

  • Across both stores there are exactly two refund flows where the developer gets a say: Apple's CONSUMPTION_REQUEST, with a 12-hour window, and Google Play's chargeback review, with a 24-hour window.
  • Google Play's 48-hour self-service refund is handled by Google under its own policy. There is no developer input, no evidence channel, and no appeal.
  • Refunds granted by Google or Apple support agents are final. Neither store has an appeal channel for a refund that has already been decided.
  • Google automatically refunds and revokes any purchase your app fails to acknowledge within three days. That is an integration failure, not a customer decision, and it is fully preventable server-side.
  • Card chargebacks on the App Store are resolved between the bank and Apple. On Google Play, orders placed after August 3, 2026 shift the purchase price and bank fees of chargebacks onto the developer.
  • A store refund in your ledger is not a lost fight. It is a case that never had a review window. Judge your refund protection by contestable cases only.

When a refund lands against your app, the first question that matters is not why. It is whether anyone ever asked for your side. Across the App Store and Google Play there are exactly two moments where the store pauses, turns to the developer, and requests evidence before deciding. Every other refund is decided without you, no matter how good your integration is. Knowing which is which changes how you read your numbers, because a refund you were never asked about is not a fight you lost.

The only two flows that ask for your side

Apple's channel is the CONSUMPTION_REQUEST. When a customer asks Apple for a refund on a consumable in-app purchase or an auto-renewable subscription, Apple sends your server a notification and waits up to 12 hours for consumption data: was it delivered, how much was used, and whether you would prefer the refund granted or declined. Apple still decides, but your evidence is a documented input to that decision.

Google's channel is newer and narrower. A pendingRefundReviewNotification arrives when a user disputes a purchase, and you get 24 hours to respond through the Review Refund API with delivery state, consumption status, and usage evidence. Google positions this API explicitly as a way to help it identify and contest illegitimate chargebacks on your behalf.

FlowStoreYour windowWhat you send
Consumption requestApple12 hoursDelivery status, usage percentage, refund preference
Chargeback reviewGoogle Play24 hoursDelivery state, consumption status, usage events

Google refunds that never ask you

The one most developers misread is the 48-hour self-service refund. A customer who bought something less than 48 hours ago can request a refund straight from Google Play, and Google handles it under its own policy, usually deciding within days. The developer is not consulted and is not notified until the refund shows up as a voided purchase. This is store policy working as designed, not a gap in your defenses.

After 48 hours, Google's own help pages direct customers to the developer. Refunds you grant from Play Console at that point are customer service, your call entirely. Refunds Google support grants anyway are final, with no appeal channel.

Then there is the voidedPurchaseNotification, the record-keeping stream. Family manager refunds, Google-initiated revocations for abuse, quantity-based partial refunds, and your own Play Console refunds all arrive there. It is a ledger feed, not a question. Nothing in it can be answered.

The three-day trap: refunds you caused

One class of Google refund deserves its own section because it is not a customer decision at all. If your app does not acknowledge a purchase within three days, Google automatically refunds the user and revokes the purchase. The Play Billing documentation states this plainly, and in production the revocation lands almost exactly at the 72-hour mark.

These show up in the voided stream with the reason unacknowledged_purchase, often on free trials where the user never reopened the app, so the acknowledgement call never fired. The money involved is usually the first billing you never got to collect. You cannot contest these, but you can eliminate them completely: acknowledge purchases server-side the moment the purchase notification arrives, instead of relying on the app being opened. RefundHalt does this automatically when Auto-acknowledge is on.

Apple's silent refunds

Apple decides every App Store refund itself. The consumption request is an input, never a vote, and once Apple issues its verdict the case is closed. A REFUND notification means the money is gone; REFUND_DECLINED means it stayed. There is no appeal endpoint, no escalation path, and no second window.

Two Apple cases never ask for evidence at all. Refunds on purchase types outside the consumption-request flow are decided from the customer's claim and account history alone. And card chargebacks against App Store purchases are resolved entirely between the cardholder's bank and Apple; the developer never sees a case and has no channel into it.

August 3, 2026 raises the stakes on Google

Google announced that for orders placed after August 3, 2026, chargeback costs will be shared: the developer carries the purchase price, minus Play's service fee, plus the bank's chargeback fees, while Google covers only its own service fee. The same announcement points developers at the Review Refund API as the way to fight back, by giving Google the evidence it needs to contest illegitimate disputes.

That makes the one contestable Google flow financially load-bearing. Before this change a lost chargeback was mostly Google's problem. After it, every chargeback you fail to answer with evidence is your revenue and your fees.

Read your dashboard accordingly

The practical takeaway is a bookkeeping rule: split your refunds into contestable and store-issued, and judge your protection only by the first group.

  • Save rate belongs to contestable cases only: consumption requests and chargeback reviews, answered against a deadline.
  • Store refunds belong in a separate ledger. They carry information, which products, which countries, which reasons, but no verdict on your defenses.
  • The only store-side number that demands action is unacknowledged purchases, because those are preventable with server-side acknowledgement.
  • Watch the chargeback column as August 2026 approaches. Evidence quality on that flow is about to have a price tag.

This is exactly how RefundHalt's dashboard is organized: refund requests and chargebacks front and center with their outcomes, and store refunds in their own tab, recorded so your ledger stays complete.

Frequently asked questions

Can I appeal a refund that Google or Apple already granted?
No. Neither store has an appeal channel for a decided refund. Apple's decision after a consumption request is final, and Google support decisions and self-service refunds are final. The only influence you ever have is evidence submitted inside the two review windows, before the decision.
Is Google's 48-hour refund the same as a chargeback?
No. The 48-hour refund is a Play Store policy Google administers itself, with no developer involvement. A chargeback is a dispute the customer raises with their bank. Only the chargeback flow has a developer evidence channel, the 24-hour Review Refund API window.
Why did Google refund a purchase that nobody asked to refund?
Almost always because the purchase was never acknowledged. Google Play automatically refunds and revokes any purchase that is not acknowledged within three days. It is an integration failure, not a customer request, and server-side acknowledgement eliminates it entirely.
Do store refunds in my dashboard mean my refund protection is failing?
No. Store refunds are issued directly by Apple or Google with no review window, so there was never anything to contest. Refund protection applies to consumption requests and chargeback reviews, the two flows with an evidence window and a deadline.
What changes on August 3, 2026?
For Google Play orders placed after that date, chargeback costs are shared: the developer carries the purchase price minus Play's service fee, plus the bank's chargeback fees. Google covers its service fee. Evidence submitted through the Review Refund API becomes the main lever against illegitimate disputes.

Sources and further reading

RefundHalt

The refund autopilot for the App Store and Google Play

Keep reading

The next refund request is already on its way.

Set up RefundHalt in the time it takes to read another support email about a refund you didn't get to contest.