All articles
Deep dive8 min read

An annual subscription refund can claw a whole year's payment back at once, and each store handles it differently

A monthly plan gives back one month. An annual subscription refund is calculated on the last charge, so on a yearly plan that is the entire year. Here is how Google Play and the App Store each decide it, what you can control, and what a full year reversed really costs.

A twelve-month wall calendar above a desk with a single bank card below it, illustrating an annual subscription refund pulling back a whole year

Key takeaways

  • An annual subscription refund is calculated on the customer's most recent charge. On a yearly plan that charge is the whole year, so a full refund returns twelve months of payment at once, not a single month.
  • On Google Play the developer chooses the refund type. A fullRefund returns 100% of the current billing period, while a proratedRefund returns only the unused portion based on remaining entitlement time. Either one revokes access immediately.
  • On the App Store the developer cannot refund at all. The customer files at reportaproblem.apple.com, only Apple decides, and Apple typically answers within 24 to 48 hours. There is no developer refund API.
  • Within 48 hours of purchase a Google Play buyer can self-serve a refund once per app. Google issues it, revokes access, and deducts it from your payout without asking you.
  • Apple computes an auto-renewable subscription's consumption from elapsed time, so on a yearly plan your only input is the 12-hour consumption request. You never set the refund amount.
  • A refunded annual plan is your largest loss per case, because the compute, storage, and support you already spent across months of use do not come back when the money does.

An annual subscription refund is the largest single reversal most app businesses ever see. A monthly plan that goes wrong gives back one month. A yearly plan can hand back twelve at once, because the refund is calculated on the last charge the customer paid, and on an annual plan that charge is the whole year. When that payment leaves your account, it takes with it a subscriber you already spent real money serving for months.

The two stores handle a yearly refund in almost opposite ways. On Google Play you can often choose how much comes back. On the App Store you choose nothing, because only Apple decides. Here is exactly what each store does with an annual subscription refund, what you can control, and what a full year reversed actually costs you.

A yearly refund is calculated on the last charge, not the calendar

The trap in annual plans is that a refund is not scaled to how long the subscription has run. It is scaled to the most recent order. Google states this plainly for its revocation flow: a user refund is based on the value of the latest order. On a yearly subscription, the latest order is the full annual price, so a full refund granted in month nine still returns the entire year, not the three months left on it.

This is why a single annual refund can dwarf a month of monthly-plan churn. A $99.99 yearly plan refunded in full is a $99.99 hit in one line. The same revenue spread over twelve monthly charges would only ever expose one month at a time. Annual pricing trades a bigger upfront payment for a bigger single point of failure, and the refund is where that failure lands.

How Google Play refunds an annual subscription

Google Play splits an annual refund into two phases, and they are governed by completely different rules.

The 48-hour self-service window returns the whole charge

For the first 48 hours after purchase, a customer can request a refund straight from Google Play. Google's policy allows this once per app, and Google handles it under its own terms. You are not consulted. Google issues the refund, the buyer loses access to the subscription, and the amount is deducted from your payout. On a yearly plan bought two days ago, that is the entire annual charge coming back out, decided without any input from you.

After 48 hours, you choose full or prorated

Once the self-service window closes, a Google Play refund routes to the developer, and here you get a real lever. Using the Play Developer API method purchases.subscriptionsv2.revoke, you pass a revocationContext that names the refund type:

  • fullRefund returns 100% of the current billing period and terminates the subscription. On an annual plan, that is the whole year.
  • proratedRefund returns only the unused portion based on the remaining entitlement time and terminates access immediately. On an annual plan cancelled at the halfway mark, that is roughly half the year's price.

Both actions revoke the subscription right away and both fire a SUBSCRIPTION_REVOKED real-time developer notification, so your server learns the entitlement is gone. The difference is money. On a yearly plan, choosing proratedRefund instead of fullRefund is the difference between giving back the whole year and giving back only the months the customer will not use.

Refund typeAPI fieldWhat comes back on a yearly planWho decides
Self-service, within 48hGoogle, not youThe full annual chargeGoogle, once per app
Full refundfullRefund100% of the year's priceYou, after 48h
Prorated refundproratedRefundOnly the unused portionYou, after 48h
A neat row of twelve identical coins with three at the end sliding out of line, illustrating an annual subscription refund pulling months of payment back out

How the App Store refunds an annual subscription

On Apple there is no phase two, because there is no developer refund at all. A customer who wants money back on a yearly App Store subscription files at reportaproblem.apple.com, and Apple reviews and decides. Apple usually returns an update within 24 to 48 hours. There is no developer refund button, no refund API, and no way for you to set the amount.

Two things trip developers up here. First, canceling a subscription is not the same as refunding one. A customer who cancels an annual plan simply stops the next renewal and keeps access until the year ends. No money moves. A refund is a separate request that Apple judges on its own. Second, Apple does not publish a proration formula for subscription refunds, so you cannot predict whether a customer gets the whole year, part of it, or nothing. It is decided case by case.

Your one point of contact with that decision is the consumption request. When a refund is requested on an auto-renewable subscription, Apple sends a CONSUMPTION_REQUEST notification and gives your server 12 hours to answer through the Send Consumption Information endpoint. For an auto-renewable subscription, Apple computes the consumption itself from elapsed time, so what you send is delivery and account signals plus your refund preference, not a usage percentage. It is an input to Apple's decision, never a veto over it.

What an annual subscription refund actually costs you

The sticker figure is only the start of the bill. A refunded yearly plan reverses the payment, but the cost you already spent to earn and serve that subscriber does not reverse with it.

The money that comes back, and the money that does not

When a yearly plan is refunded in full, the payment returns to the customer and the sale leaves your ledger. What does not return is everything you already spent during the months the subscription was live: the compute for every session the customer ran, the API calls your app made on their behalf, the storage you kept for their account, and any payout you already booked as revenue. On an annual plan those costs stack up for months before the refund lands, which is exactly what makes a yearly refund more expensive than a monthly one. You are not just giving back a payment, you are eating months of delivered service on top of it.

This is where Google's proratedRefund earns its place. If a customer genuinely stops using the product partway through the year, a prorated refund caps your loss to the unused portion instead of the whole charge, while still ending the entitlement. On Apple you have no such control, so an approved annual refund is a full-year reversal you absorb in one piece.

After August 3, 2026, a disputed annual charge on Google Play costs even more

If the customer skips the refund flow and disputes the charge with their bank instead, the math gets worse on Google Play. For orders placed after August 3, 2026, Google shifts chargeback costs onto the developer: you carry the purchase price minus Play's service fee, plus the bank's chargeback fee. Payment-industry sources put that bank fee somewhere around $15 to $25 per dispute, and on a full-year charge it stacks on top of a much larger reversed amount than a monthly plan would ever expose. Google points developers at its 24-hour chargeback review, through the orders.reviewrefund flow, as the way to contest illegitimate disputes.

Exposure per caseMonthly planAnnual plan
Payment reversed by a full refundOne monthThe whole year
Delivered cost already spentAbout one month of useUp to a year of use
Google chargeback after Aug 3, 2026One month, minus service fee, plus bank feeOne year, minus service fee, plus bank fee

The only windows where your evidence counts on a yearly plan

Most annual refunds are decided without you: Google's 48-hour self-service returns, refunds a support agent grants, and any refund Apple approves on its own. Those are store decisions, not fights you lost, and no amount of evidence changes them after the fact. There are exactly two moments where what you send is a documented input before the decision.

  • Apple's consumption request gives you 12 hours to send delivery and account signals plus your refund preference when a subscription refund is requested.
  • Google's chargeback review gives you 24 hours to send evidence through orders.reviewrefund when a buyer disputes a charge with their bank.

On a high-value annual plan, both windows are worth answering every time, because the amount at stake is a full year rather than a single month. Everything outside those two windows is bookkeeping, not a contest.

Where EEA and UK buyers change the math

Consumer law does not stop at the store's policy. In the European Economic Area and the United Kingdom, statutory withdrawal rights give buyers stronger footing to unwind a purchase, and Google Play publishes a separate refund policy for those regions to match. For an annual plan sold to a customer there, assume the refund path can be more generous to the buyer than the standard 48-hour rule, and treat those refunds as store-decided rather than contestable.

How to read an annual refund in your numbers

A yearly refund should not be logged the same way as a monthly one, because the exposure is not the same.

  • Weigh annual refunds by amount, not count. One full-year reversal can outweigh dozens of monthly refunds, so a low refund count on yearly plans can still be a large money leak.
  • On Google Play, default to proratedRefund for genuine mid-year cancellations, and reserve fullRefund for cases where the whole charge really should come back. The choice is money you keep or give away.
  • Separate store-decided refunds from the two contestable windows. Judge your defense only by the consumption requests and chargeback reviews you answered, never by refunds Apple or Google issued on their own.
  • Keep serving evidence fast. On an annual plan the 12-hour and 24-hour clocks are the same length as on any other plan, but the amount riding on them is a full year.

This is how RefundHalt treats yearly plans. High-value consumption requests and chargeback reviews surface first with their deadlines, annual refunds are weighed by amount rather than lumped in by count, and the refunds a store decided without you are recorded separately so your ledger is complete without pretending you could have fought them.

The short version

An annual subscription refund is calculated on the last charge, so on a yearly plan a full refund returns the entire year at once. On Google Play you can choose the outcome after the first 48 hours: fullRefund gives back the whole year, proratedRefund gives back only the unused portion, and both revoke access immediately. On the App Store you choose nothing, because only Apple decides, and your sole input is the 12-hour consumption request. The real cost is bigger than the payment, because the months of compute, storage, and service you already spent do not come back with the money. Weigh yearly refunds by amount, prorate where the case is genuine, and answer every contestable window, because on an annual plan a full year is always what is at stake.

Frequently asked questions

Can I refund an annual subscription myself?
It depends on the store. On Google Play you can, using the Play Developer API method purchases.subscriptionsv2.revoke, and you choose fullRefund or proratedRefund. On the App Store you cannot. There is no developer refund API, so the customer must file at reportaproblem.apple.com and only Apple decides the amount.
Does a full refund on a yearly plan return the whole year?
Yes, when the refund is a full refund. A refund is based on the value of the customer's latest order, and on an annual plan that order is the full year's charge. On Google Play a fullRefund returns 100% of the current billing period, which is the whole year. On the App Store, Apple decides the amount case by case and can return the full year.
What is the difference between fullRefund and proratedRefund on Google Play?
A fullRefund returns 100% of the current billing period and ends the subscription. A proratedRefund returns only the unused portion based on the remaining entitlement time and also ends access immediately. On a yearly plan cancelled halfway through, fullRefund gives back the whole year while proratedRefund gives back roughly the remaining half.
Can I stop Apple from refunding an annual subscription?
No. Only Apple can approve or deny an App Store refund, and there is no way to block one. Your single input is the CONSUMPTION_REQUEST notification, which gives your server 12 hours to send delivery and account signals plus your refund preference through the Send Consumption Information endpoint. Apple treats it as an input, not a veto.
Does canceling an annual subscription refund the unused months?
No. Canceling only stops the next renewal, and the customer keeps access until the current year ends. No money moves. A refund is a separate request. Apple does not publish a proration formula for subscription refunds, so a mid-year cancellation does not automatically return the unused portion.

Sources and further reading

RefundHalt

The refund autopilot for the App Store and Google Play

Keep reading

The next refund request is already on its way.

Set up RefundHalt in the time it takes to read another support email about a refund you didn't get to contest.