Skip to content
Apple App StoreApp StoreiOS refund defense

Refund 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
Apple App Store
Live · iOS
The pipeline

From CONSUMPTION_REQUEST to defended revenue

1
Notification received
Consumption, refund or revoke
2
Transaction hydrated
Product, price, storefront
3
Decline submitted
On consumption requests
4
Outcome tracked
Live in your dashboard
Why it matters

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.

Capabilities

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.

Prerequisites

Before you start

1

App Store Connect access

Permission to manage keys and server notifications for the app.

2

An in-app purchase .p8 key

Together with its issuer id and key id.

3

Five minutes in Apple's console

That is the whole integration effort.

How it works

From connect to first defended refund in about 5 minutes

Five steps, and only two of them happen in Apple's console.

  1. 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. 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. 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. 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. 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.

FAQ

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.

Apple App Store

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.