Chart · Churn and refunds

App Store Refund Requests: Outcomes of Apple Refund Requests

Refund Request Outcomes counts the App Store refund requests RevenueDot received in each period and sorts them by outcome: granted, declined, reversed or no resolution yet. A request with no grant after 2 days counts as declined. The chart covers Apple only, because Google sends no refund requests.

Shape

What happened during each period

API name

refund_request

Measures

Refund Granted (Count), Refund Declined (Count), Refund Reversed (Count), No Resolution (Count)

Filter and segment by

App, Store, Country

The shape of the Refund Request Outcomes chart, drawn for illustration. Your dashboard shows your own data.

Definition

How RevenueDot calculates Refund Request Outcomes

When a customer asks Apple for a refund, Apple can send your server a CONSUMPTION_REQUEST notification, and RevenueDot records it as a request. Later Apple sends the result: a refund (granted), a declined refund, or a reversal of a granted refund. RevenueDot matches each result to its request by transaction and counts the request in the period it was received.

The outcome is the latest one for the request. Granted then reversed is reversed. Granted is granted. A declined notice, or no grant after 2 days, is declined. A request under 2 days old with no outcome is no resolution. The chart also keeps the number of requests and the price of the purchases they were about.

The chart only knows about requests Apple sends to the App Store Server Notifications URL set up for your app. RevenueDot's Refund Control feature is what answers the request with consumption information, and nothing is sent without your project's customer-consent confirmation. Filters and segments: app, store and country. You can open it in the dashboard under Charts or fetch it with GET /v2/projects/{project_id}/charts/refund_request. The response has the same shape as RevenueCat's Charts API, so scripts written for that API keep working. The secret key needs the charts_metrics:charts:read permission. The Charts guide lists every parameter.

Worked example

Refund Request Outcomes, step by step

Fifty requests received in one week.

OutcomeRequests
Refund granted20
Refund declined (or no grant after 2 days)22
Refund reversed3
No resolution yet (under 2 days old)5

The four outcomes add up to the 50 total requests.

Why it matters

What Refund Request Outcomes tells you

A refund request is the moment you can still influence the result. Apple decides, but the consumption data you send is part of its decision. Watching granted against declined shows whether your answers help, and a change after you edit your Refund Control policies is the proof.

The amount behind the requests tells you the money at stake. A week with few requests and a high grant rate on annual plans can matter more than many small requests.

How to read it

  • Do not read the last 2 days as final. They show up as no resolution until Apple answers or 2 days pass.
  • If the chart is empty, check that the App Store Server Notifications URL is set and that Refund Control is on. Without notifications there are no requests to count.
  • Compare it with Refunds. Granted requests become refunds on the date Apple refunds them.
  • Segment by country when one storefront has an unusual number of requests.
  • Android refunds do not appear here. Google sends no refund request that RevenueDot can see.

API

Get Refund Request Outcomes from the Charts API

Same path and response shape as RevenueCat's Charts API, so existing scripts keep working.

Requestshell
curl "https://api.revenuedot.app/v2/projects/$PROJECT_ID/charts/refund_request?resolution=day" \
  -H "Authorization: Bearer $SECRET_KEY"   # sk_... with charts_metrics:charts:read

Reference: Charts guide · REST API v2

FAQ

Refund Request Outcomes: questions people ask

What is an App Store refund request?

It is a customer asking Apple to refund a purchase. Apple can notify your server with a CONSUMPTION_REQUEST so that you can send usage data before it decides.

Why is my refund request chart empty?

RevenueDot only counts requests Apple sends to your App Store Server Notifications URL. Check the URL and that Refund Control is set up.

Does the chart cover Google Play?

No. Google sends no refund requests that RevenueDot can see, so the chart covers Apple only.

When does a request count as declined?

When Apple reports a decline, or when no grant arrives within 2 days of the request.

Get started

See your Refund Request Outcomes in minutes.

Connect your app to RevenueDot Cloud, free up to $10,000 a month in tracked revenue, and all 43 charts fill from your store history after import.

Already have an account? Sign in · Prefer your own servers? Self-host free