Banning a cheater won't stop Apple or Google from refunding them, so plan for the banned player refund before you ban
A ban ends access, but it doesn't end the store's refund process. A banned player refund is still decided by Apple or Google, your evidence has hard limits, and a reversed refund can force you to restore what you took away. Here's what you control and what it costs.

Key takeaways
- Banning a player in your app doesn't cancel their App Store or Google Play purchases. Apple and Google still decide refunds on their own terms, and a banned player can ask either store for their money back like any other customer.
- When an App Store customer asks for a refund, Apple sends a CONSUMPTION_REQUEST and asks you to respond through Send Consumption Information within 12 hours. The request has no field for a ban, a cheating flag or a terms violation.
- Apple rejects consumption data with an HTTP 400 InvalidCustomerConsentedError unless customerConsented is true, so you can only send evidence about a banned player who consented to sharing consumption data.
- Apple's REFUND_REVERSED notification says that if your app revoked content or services because of a refund, it needs to reinstate them, which collides with any policy that bans players for refunding.
- On Google Play, a developer can refund an order and end access at once by calling orders.refund with revoke set to true, but orders older than 3 years can't be refunded and consumed items have to be handled by your own app.
- Google Play asks for your side of a chargeback through orders.reviewrefund within 24 hours, and for orders placed after August 3, 2026 a lost chargeback costs you the purchase price less Play's service fee plus the bank's chargeback fees.
Banning a player ends their access to your game, and it does nothing to their purchases. The banned player refund request usually comes next, and it goes to Apple or Google, not to you. Each store decides it under its own rules, and a cheater who asks for the money back is just another refund request in that queue. Plan the ban around that, because the ban itself is the one part of the dispute you fully control.
A ban and a refund are two separate decisions
Your terms of service govern the account. The store's rules govern the payment. A ban is your call about who gets to play. A refund is Apple's or Google's call about whether the money goes back. Neither decision cancels the other, and the store never asks whether you banned someone before it decides.
Large publishers say so in plain terms. Riot's support page for Wild Rift tells players that the nature of third-party app marketplaces means it can't issue a store refund itself, and that if Apple, Google or Samsung deny the refund, there's nothing more Riot can do. That's the position every mobile developer is in. You can shape the store's decision in only two places, and only when the store asks.
| Refund path | Who decides | Can you send evidence | Your window |
|---|---|---|---|
| App Store refund request | Apple | Yes, through Send Consumption Information after a CONSUMPTION_REQUEST | 12 hours |
| Google Play refund in the first 48 hours | No | None | |
| Google Play refund after 48 hours | You, under your own policy and local law | Not applicable | Not applicable |
| Google Play chargeback that needs developer review | Google, then the bank | Yes, through orders.reviewrefund | 24 hours |
| Card chargeback on an App Store purchase | Apple and the bank | No | None |
What you can tell Apple about a banned player
Apple sends a CONSUMPTION_REQUEST notification when a customer asks for a refund on any product type, from consumables to auto-renewable subscriptions. You get 12 hours to answer with Send Consumption Information. Apple says it uses that information to inform its decision, alongside other factors, and that your refundPreference is one of them.
The request body is small. It carries customerConsented, consumptionPercentage, deliveryStatus, refundPreference and sampleContentProvided. That's it. Nothing in it describes the player's behavior, so you can't tell Apple the account was banned for cheating. What you can tell Apple is how much of the purchase was used and whether you'd prefer the refund declined.
There's no deliveryStatus for "banned"
Apple defines deliveryStatus as whether the app delivered an In-App Purchase that works properly. The values are DELIVERED, UNDELIVERED_QUALITY_ISSUE, UNDELIVERED_WRONG_ITEM, UNDELIVERED_SERVER_OUTAGE and UNDELIVERED_OTHER. If the status isn't DELIVERED, Apple requires consumptionPercentage to be 0, or the request fails. Think before you report a banned player's purchase as undelivered. You'd be telling Apple the customer got nothing, which is the strongest possible case for a refund.
Consent decides whether you can answer at all
Apple's server rejects a ConsumptionRequest with an HTTP 400 InvalidCustomerConsentedError when customerConsented is anything other than true. Apple's documentation also describes what a consent request should include, such as clear language that the customer's data goes to Apple for refund review and that they can withdraw consent. A player who never consented, or withdrew consent, leaves you with nothing to send. Collect consent at sign-up, not after the ban.
What happens if Apple reverses the refund
Apple's REFUND_REVERSED notification means the App Store reversed a refund it had granted, because of a dispute the customer raised. Apple's documentation is specific: if your app revoked content or services because of the refund, it needs to reinstate them. A rule that bans every refunder therefore needs an undo path. Tie the ban to the refund event, so a reversal can lift it cleanly.

What you can do on Google Play
Google's own refund page tells buyers they may get a refund within 48 hours of an in-app purchase, depending on the details, and that after 48 hours they should contact the developer. It also says an item can only be returned for a refund once, and that a refunded item is removed from the buyer. So a banned player who asks Google in the first 48 hours gets Google's decision. After that, the request lands with you.
Refund and revoke a purchase yourself
Google's orders.refund method refunds a subscription or in-app order. Set revoke to true and access to the item ends immediately, and a recurring subscription stops renewing. Google adds two limits. Orders older than 3 years can't be refunded, and consumed in-app items have to be handled by your app, because Google can't take back currency the player already spent. If you decide to refund a banned player to close the matter, revoke in the same call so they don't keep the item.
Turn away purchases from a banned account right away
A banned player who buys again is a real risk if your client still shows the store. Google's billing guide says that if a purchase fails your eligibility, fraud or abuse checks, you shouldn't grant it and shouldn't acknowledge it. Waiting out the three-day acknowledgement window technically refunds the order, but Google says not to rely on it. Revoke and refund through the API instead: purchases.subscriptionsv2.revoke with a full refund for subscriptions, or orders.refund with revoke set to true for one-time products.
Answer the chargeback review within 24 hours
When a Google Play chargeback needs developer review, Google sends a PendingRefundReviewNotification and gives you 24 hours to call orders.reviewrefund. Google records only your first call. The body takes a refundPreference of DECLINE, APPROVE or NEUTRAL, a sampleContentProvided flag, an optional consumptionPercentageMilliunits value, and up to 1,000 consumptionUsageEvents, each of which can include your obfuscatedAccountId, a consumption time and a description of what was used. Usage events logged before the ban are the evidence. Events logged after it don't exist, so keep the history when you close the account.
What a banned player refund costs in money
The ban costs you nothing by itself. The refund that follows can cost you three ways. First, the proceeds you earned on the purchase come back out of a later payout. Second, the costs that purchase already ran up stay paid. Third, on Google Play a lost chargeback now carries the bank's fee on top.
- Compute: every match, session and server-side simulation the player ran on the refunded purchase is capacity you already paid for.
- API calls: anti-cheat checks, matchmaking calls and any third-party services billed per request were consumed before the ban.
- Storage: inventories, replays and logs you keep as ban evidence keep costing money for as long as you retain them.
- Payouts: if the player's purchases funded prizes, creator revenue shares or affiliate commissions, that money has already left your account and doesn't come back with the refund.
Should you ban a player for asking for a refund?
Plenty of games do something like it. Riot's support pages tell Wild Rift players who end up banned after reaching a negative balance to follow its chargeback steps to get back in the game. Locking out spending that was reversed is defensible. Banning every refunder outright is harder to defend, and consumer regulators have noticed.
In July 2017 the Korea Consumer Agency asked Niantic to revise Pokémon GO terms it found unfair, including terminating accounts without refunds. The agency said that practice could violate the consumer's legal right to cancel purchases. That's one regulator and one case, but it's a clear signal that "we banned you, so you lose everything" can be challenged.
A ban checklist that holds up when the refund request arrives
- Log consumption per purchase, with timestamps, before you need it. Apple and Google both ask about usage, not conduct.
- Collect consumption-data consent at sign-up, so a banned player's CONSUMPTION_REQUEST is one you're allowed to answer.
- Report deliveryStatus honestly. Don't call a delivered item undelivered because you banned the account later.
- Keep the banned account's purchase and usage history instead of deleting it with the account.
- Block new store purchases from banned accounts, and refund and revoke any that slip through.
- Link ban records to refund events, so a REFUND_REVERSED can restore exactly what the refund took away.
Frequently asked questions
- Can a banned player still get a refund from Apple or Google?
- Yes. A ban in your app doesn't change the player's standing with the store. Apple decides App Store refunds, Google decides Play refunds requested within 48 hours, and the player can also dispute the charge with their bank. You only get a say when Apple sends a CONSUMPTION_REQUEST or Google asks for a chargeback review.
- Can I tell Apple that I banned the player for cheating?
- No. Apple's ConsumptionRequest has five fields: customerConsented, consumptionPercentage, deliveryStatus, refundPreference and sampleContentProvided. None of them describe player behavior. You can report how much of the purchase was used and set refundPreference to DECLINE, and Apple treats that preference as one factor among several.
- Should I refund a banned player myself on Google Play?
- You can, and if you do, call orders.refund with revoke set to true so the refund and the loss of access happen together. Google won't refund orders older than 3 years, and currency the player already consumed has to be handled by your app, since Google can't take it back.
- What happens to a ban if Apple reverses the refund?
- Apple sends a REFUND_REVERSED notification and says your app needs to reinstate any content or services it revoked because of the refund. If the refund was your only reason for restricting the account, lift that restriction. A ban for cheating stands on its own and isn't tied to the refund.
- Is it legal to ban players who request refunds?
- It depends on where your players are, and it's riskier than it looks. In 2017 the Korea Consumer Agency said terminating Pokémon GO accounts without refunds could violate consumers' legal right to cancel purchases. Revoking refunded items is common practice. Punishing the refund request itself invites that kind of challenge.
Sources and further reading
- App Store Server API: Send Consumption Information
- App Store Server API: ConsumptionRequest
- App Store Server Notifications: notificationType
- Google Play Developer API: orders.refund
- Google Play Developer API: orders.reviewrefund
- Google Play Billing: Integrate the library, handle rejected or unfulfilled purchases
- Google Play Help: Apps, games, and in-app purchases refund policies
- Play Console Help: Updates to refund protection and chargeback cost responsibility
- Riot Games Support: Cash refunds in Wild Rift
- Korea JoongAng Daily: Pokemon Go panned for unfair refunds policy (July 3, 2017)
RefundHalt
The refund autopilot for the App Store and Google Play
Keep reading
Excessive refund requests can cost you more than the refunds, because both app stores treat them as a quality signal
Apple's Guideline 5.6.4 names excessive refund requests as a sign an app isn't meeting quality standards, and Google's Distribution Agreement lets it remove new developers' apps on refund rates. Here's what each store says, what removal costs, and how to stay clear.
Verify App Store server notifications before you act on a refund, because anyone can post to your webhook URL
A refund notification is just an HTTPS request until you check its signature. Here's how to verify App Store server notifications and Google Play RTDN messages, what each store signs, and what a forged or wrongly rejected refund costs you.