App StoreiOS refund defenseRefund defense for the Apple App Store.
Refund Sensor answers every Apple CONSUMPTION_REQUEST inside the 12-hour window with real transaction evidence, so App Store refunds you'd normally lose by default get decided on the facts.
- Signed webhooks
- No code changes
- Free to start

From CONSUMPTION_REQUEST to defended revenue
On the App Store, Apple asks you before it decides
Apple is unusually generous with refunds, and most of them go through with no chance for you to weigh in. But on a consumption request, Apple pauses and asks whether the refund is warranted, sending a signed notification and waiting for your response. Miss that window and the refund is granted by default. Answer it well and you keep revenue you earned.
Refund Sensor never misses that window. It also keeps a record of the refunds Apple decides on its own, which is the part most teams have no visibility into at all, so you can finally see where iOS revenue is going and which products it leaks from.
Everything you need for App Store refund defense
Signed notification verification
Every App Store Server Notification V2 is JWS-verified against Apple's certificate chain before it touches your data, so nothing spoofed slips through.
Automatic consumption decline
When Apple opens a consumption request, we submit a consumption response with your decline preference through the App Store Server API, inside Apple's window, with no manual step.
Full refund lifecycle tracking
Refunds, declines, reversals, and revokes are all captured and reconciled against the transaction, so silent background refunds no longer slip past you. Apple decides these on its own, so they are recorded rather than contested.
One dashboard for both stores
App Store cases sit alongside your Google Play cases with the same timelines, success-rate analytics, and revenue-protected reporting.
No code changes
Everything runs through App Store Connect and Apple's server APIs. There is nothing to add to your app and no build to resubmit for review.
Encrypted, least-privilege access
Your App Store Connect key is encrypted at rest and used only to verify notifications and respond to refund requests. No user personal data is collected.
Before you start
App Store Connect access
Permission to manage keys and server notifications for the app.
An in-app purchase .p8 key
Together with its issuer id and key id.
Five minutes in Apple's console
That is the whole integration effort.
From connect to first defended refund in about 5 minutes
Five steps, and only two of them happen in Apple's console.
- 1
Add your app
From the connect wizard, choose App Store. Paste your App Store URL to auto-fill the app details, or enter them manually.
- 2
Upload your App Store Connect key
Generate an in-app purchase .p8 key in App Store Connect under Users and Access, Integrations, then upload it here with the issuer id and key id. It is stored AES-256 encrypted.
- 3
Paste your webhook URL
Copy the webhook URL we show you into App Store Connect under App Information, App Store Server Notifications, Version 2, then save.
- 4
Send a test notification
Use App Store Connect's "Send test notification" to confirm the connection. Once we receive and verify it, the integration flips to Connected.
- 5
Refunds start defending automatically
From then on, every consumption request is answered with a decline preference in real time, and every other refund event is tracked in your dashboard.
App Store refund questions
No. A consumption request is a notification Apple built for exactly this moment: it asks for your input and waits for your reply. Sending a decline preference follows Apple's own workflow, it doesn't work around it.
No. It's about five minutes in App Store Connect: generate a .p8 key, paste one webhook URL, send a test notification. There's no code to write and no build to resubmit for review.
It defends consumption requests, the refunds Apple pauses on and asks you about. Everything else, like a refund Apple already granted or a revoke, is Apple's own call, so we record it for your reporting rather than contest it. Either way, nothing slips past you unseen.
Yes. You can connect an app and start answering refund requests with no card. Paid plans come in as your volume grows, and the pricing page has the details.
As soon as you connect. The test notification confirms the link the same day, and from your first real consumption request, replies go out in real time. Apple leaves only about 12 hours, and you never have to be awake for it.
We record every one, the silent background refunds most teams never see. You finally get a single view of where iOS revenue is going and which products it leaks from, even for the refunds you can't contest.
Yes. Your .p8 key is encrypted at rest with AES-256-GCM encryption and used only to verify notifications and answer refund requests. We don't collect your users' personal data.
No. Everything happens server to server between Refund Sensor and Apple. Your app is untouched, the purchase flow doesn't change, and your customer just sees Apple's decision the way they always have.

Defend your App Store revenue
Connect your app and start answering iOS refund requests in real time. Free to start, no credit card, no code changes.

