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:
Does RevenueCat detect and provide an event for refund transactions related to subscription upgrades within the same group?
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.
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.
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.
RevenueCat calculates the prorated amount based on the unused duration however the exact amount may be slightly different.
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:
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?
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.
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.
We use 3 different kinds of cookies. You can choose which cookies you want to accept. We need basic cookies to make this site work, therefore these are the minimum you can select. Learn more about our cookies.