iOSRefund defenseApp Store Refund Defense for Apple Apps
Every app store refund request gives you 12 hours to share your side with Apple. Refund Sensor prepares that reply from the real purchase data in your account, so Apple can weigh the facts instead of relying only on the buyer's explanation.
- Verified Apple notifications
- No code changes
- Free plan available

From CONSUMPTION_REQUEST to revenue you keep
How an App Store refund really gets decided
For a customer, asking for their money back takes about a minute. They open reportaproblem.apple.com, or a request sheet inside your app, pick a reason, and send it. Most hear back within two days. In between, Apple sends your server a CONSUMPTION_REQUEST with a simple question: was the item delivered, and how much has the customer used? The same question comes for every product type, from coin packs and lifetime unlocks to an Apple subscription refund. You have 12 hours to answer. If you stay silent, Apple decides with only the customer's side of the story.
We answer each of those questions on time, using what's recorded with the original purchase. We also log every Apple refund granted without a question to you, the losses that rarely make it into a team's reports. Seeing both side by side shows which products leak the most revenue, and why.
App Store refund defense that runs in the background
Every notification verified
Apple signs each server notification it sends. We check that signature against Apple's certificate chain before anything is stored, so a forged or altered message never reaches your records.
Replies sent automatically
When Apple asks about a purchase, we fill in its short response through the App Store Server API. The reply covers whether the item was delivered, how much was used, whether a free trial or sample came first, and the outcome you'd prefer. Decline is the default, and you can change it. Each reply goes out well inside the 12-hour limit. Apple accepts this data only for customers who agreed to share it, so ask for that consent early in your app.
A complete refund history
Every event is saved against its original order: approved refunds, declined requests, reversals, and Family Sharing members who lose access. Apple settles most of these on its own, so we record them rather than contest them. No app purchase refund slips by unnoticed.
iOS and Android together
Apple and Google Play cases share one dashboard, with the same timelines, win-rate charts, and revenue-saved totals.
Nothing added to your app
Setup lives entirely in App Store Connect and Apple's server APIs. No SDK, no code change, and no new build waiting on review.
A key with one narrow job
Your App Store Connect key is encrypted in storage and used for two things only: confirming notifications and sending replies. We never collect your customers' personal details.
What you'll need first
The right App Store Connect role
A role that can create API keys and edit the app's server notification settings.
An In-App Purchase key (.p8)
Plus its Issuer ID and Key ID. If you don't have one yet, creating it takes about a minute.
About five minutes
That covers the whole setup. No engineer, and no new release.
Live in roughly five minutes
Three steps happen in Refund Sensor. The other two need a quick stop in App Store Connect.
- 1
Add your app
Open the setup wizard and choose App Store. Paste your app's store link and the details fill in on their own, or enter them by hand.
- 2
Upload your key
In App Store Connect, go to Users and Access, then Integrations, and create an In-App Purchase key. Upload the .p8 file here with its Issuer ID and Key ID. It's stored with AES-256 encryption as soon as it arrives.
- 3
Connect Apple's notifications
Copy the webhook address from your dashboard. In App Store Connect, open your app's App Information page, find App Store Server Notifications, paste the address into the Version 2 production field, and save.
- 4
Send a test
Click "Send test notification" in App Store Connect. Once we receive it and verify Apple's signature, your status changes to Connected.
- 5
Let it run
From now on, each new case from Apple gets a reply within seconds, and every other event appears on your dashboard. It keeps working overnight, on weekends, and through holidays.
Common questions, answered
No. Apple created the CONSUMPTION_REQUEST so developers would answer it. Sending usage details and a preferred outcome follows the process Apple designed, step for step.
No. Anyone with the right App Store Connect role can finish in about five minutes: create a key, paste one address, and send a test. There's no code and no new build.
We answer every case where Apple asks for your input before deciding. That covers subscriptions, one-time unlocks, and an Apple in app purchase refund on consumables like coins or gems. Some cases Apple settles without asking, such as a refund it has already paid out. Those are logged for your reports, so you still see everything.
Yes. Connect an app and start replying without entering card details. If your volume grows, the pricing page explains when a paid plan makes sense.
Right after setup. The test notification confirms the connection within minutes, and replies go out automatically from the first real case. Apple allows 12 hours, but nobody on your team has to watch the clock.
Each one is added to your log. These quiet Apple refund approvals are the losses most teams miss. With them on record, you can see which products lose the most money, even where there was nothing to contest.
The .p8 file is stored with AES-256-GCM encryption and used only to verify Apple's notifications and send replies. We don't collect personal details about your users.
No. Everything runs between our servers and Apple's. Your app and checkout stay the same, and customers hear Apple's decision as usual. The one thing to handle on your side is consent: Apple wants usage data shared only for customers who agreed to it, which most apps cover with a simple opt-in.

Keep more of what your iOS app earns
Connect your app and let Refund Sensor answer every App Store refund case as soon as it arrives. It's free to start, needs no credit card, and doesn't touch your code. Most of the setup is a few minutes in App Store Connect.