Skip to main content
Solved

Prorated Refund Event Not Received When Upgrading Subscription

  • February 26, 2025
  • 4 replies
  • 65 views

Forum|alt.badge.img

Hi everyone,

I am implementing in-app subscriptions on iOS using RevenueCat and testing in the sandbox environment. I have a subscription group with two products:

  • Monthly 1
  • Monthly 2

If a customer subscribes to Monthly 1 and later upgrades to Monthly 2 mid-cycle, Apple is supposed to issue a prorated refund for the unused period of Monthly 1 (as per Apple's documentation). However, I am not receiving any refund-related event in RevenueCat.

I have a few questions regarding this:

  1. Does RevenueCat detect and provide an event for refund transactions related to subscription upgrades within the same group?
  2. Is there any way to determine how much Apple has refunded to the customer through RevenueCat, or would I need to fetch this information elsewhere?

I would appreciate any insights from the community or if someone has encountered a similar issue during sandbox testing.

Thanks!

Best answer by Greenie Cheng

Hi there, I’m back from my time off :-) 

 

When a customer upgrades from Monthly 1 to Monthly 2, are both the PRODUCT_CHANGE and RENEWAL events sent immediately, or does the RENEWAL event only come at the next billing cycle?

 

Both PRODUCT_CHANGE and RENEWAL events are sent immediately.

 

In the RENEWAL event triggered after an upgrade, does the price field reflect:

  • The full price of the new subscription (Monthly 2)?
  • The actual amount charged after applying the prorated discount from the previous subscription?

 

RENEWAL event contains the actual amount charged after applying the prorated discount from the previous subscription. 

 

  • A user subscribes to Monthly 1 at $10/month on March 1.
  • On March 15, they upgrade to Monthly 2 at $20/month.
  • The user has 15 unused days of Monthly 1, worth $5 (since $10 covers 30 days).
  • That $5 is applied as a discount toward Monthly 2’s first payment.
  • The user only pays $15 for the first month of Monthly 2.
  • From April 15 onward, they are charged $20 per month.

 

That is correct. 

View original
Did this post help you find an answer to your question?
This post has been closed for comments

4 replies

Forum|alt.badge.img+3
  • RevenueCat Staff
  • 44 replies
  • February 26, 2025

Hi there, for product changes where the unused portion of the subscription is refunded, the refund is not actually provided to the user directly and is instead used to offset the next purchase. So we don’t technically consider this a refund. 

So in the scenario you indicated, the Monthly 2 purchase would not be charged a full price. Instead it would be the full price minus the refund from the unused portion of Monthly 1. 

  1. RevenueCat sends refund events for transactions that were refunded not from product changes but only from actual revocation of the purchase. For example when a user requests a refund from Apple directly. 
  2. RevenueCat calculates the prorated amount based on the unused duration however the exact amount may be slightly different. 

Hope this helps.

 

 


Forum|alt.badge.img
  • Author
  • New Member
  • 2 replies
  • February 27, 2025

Hi ​@Greenie Cheng 

Thanks for the previous clarification regarding subscription upgrades and prorated amounts! I now have some additional questions regarding the timing and pricing details of the events RevenueCat sends during an upgrade:

  1. When a customer upgrades from Monthly 1 to Monthly 2, are both the PRODUCT_CHANGE and RENEWAL events sent immediately, or does the RENEWAL event only come at the next billing cycle?
  2. In the RENEWAL event triggered after an upgrade, does the price field reflect:
    • The full price of the new subscription (Monthly 2)?
    • The actual amount charged after applying the prorated discount from the previous subscription?

I want to ensure that I correctly handle and display subscription upgrades in my app. 

Best regards,


Forum|alt.badge.img

Hi,

Could you help confirm my understanding on how the proration works when upgrading an Apple subscription? Thank you so much.

Example Scenario

  • A user subscribes to Monthly 1 at $10/month on March 1.
  • On March 15, they upgrade to Monthly 2 at $20/month.
  • The user has 15 unused days of Monthly 1, worth $5 (since $10 covers 30 days).
  • That $5 is applied as a discount toward Monthly 2’s first payment.
  • The user only pays $15 for the first month of Monthly 2.
  • From April 15 onward, they are charged $20 per month.

Forum|alt.badge.img+3
  • RevenueCat Staff
  • 44 replies
  • Answer
  • March 6, 2025

Hi there, I’m back from my time off :-) 

 

When a customer upgrades from Monthly 1 to Monthly 2, are both the PRODUCT_CHANGE and RENEWAL events sent immediately, or does the RENEWAL event only come at the next billing cycle?

 

Both PRODUCT_CHANGE and RENEWAL events are sent immediately.

 

In the RENEWAL event triggered after an upgrade, does the price field reflect:

  • The full price of the new subscription (Monthly 2)?
  • The actual amount charged after applying the prorated discount from the previous subscription?

 

RENEWAL event contains the actual amount charged after applying the prorated discount from the previous subscription. 

 

  • A user subscribes to Monthly 1 at $10/month on March 1.
  • On March 15, they upgrade to Monthly 2 at $20/month.
  • The user has 15 unused days of Monthly 1, worth $5 (since $10 covers 30 days).
  • That $5 is applied as a discount toward Monthly 2’s first payment.
  • The user only pays $15 for the first month of Monthly 2.
  • From April 15 onward, they are charged $20 per month.

 

That is correct. 


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings