Skip to main content
Solved

Best way to extend a subscription?

  • January 17, 2022
  • 8 replies
  • 1231 views

Forum|alt.badge.img+5

What would be the best way to give the user a free month if they are already had a subscription? We want to implement a referral reward system in our app and the user can redeem multiple free months separately so we would want them to stack if possible.

I’ve seen that both iOS and Androids have Promo Codes we could give to users but those seem to be for new users:

https://docs.revenuecat.com/docs/ios-subscription-offers

https://docs.revenuecat.com/docs/android-promo-codes

I did see that RevenueCat has an API to extend this as well, but wasn’t sure how that would work. Is RevenueCat that one that tells Apple or Google to charge for the subscription again? If not does it tell Apple or Google to not charge until a certain time? Do they stack? Here is the url to the API:

https://docs.revenuecat.com/reference/grant-a-promotional-entitlement

Thanks for the help!

Asher

Best answer by tina

Hi @Asher 

The Promotional Entitlement API endpoint that you linked actually does not extend subscription status. That is a RevenueCat specific feature and works independently of App Store or Play Store billing and will never: charge a user, issue a refund, or convert to a paid subscription. 

For Android, the recommended approach is to defer the renewal of a Google subscription to a later date. API docs for reference: https://docs.revenuecat.com/reference/defer-a-google-subscription This endpoint will call Google’s Purchases.subscriptions:defer from the Google Play Developer API. You can read more about this in the Billing Library documentation. 

As for Apple, there isn’t an easy way to do this. iOS Offer Codes and Promo Codes are fairly limiting in terms of how many you can generate per product and the number of codes a customer can redeem. For example Apple mentions: "Customers can redeem only one code per active offer, but may be eligible to redeem multiple different offer codes for a single subscription, depending on your configuration choices." Promo Codes are typically not recommended by our team since you are limited in the number of codes you can generate. Apple docs on Promo Codes for reference: https://help.apple.com/app-store-connect/#/dev50869de4a 

Referrals for iOS customers isn't really something that we support. Apple does have an endpoint to extend a renewal date, however, you are only able to move the renewal date for a subscription twice a year per customer. A workaround would be to have the customer cancel their subscription, then you can tack on the RevenueCat promotional entitlement. The downside to this is the customer will have to reenable the subscription once the promotional entitlement is over. Another option is to listen to RevenueCat webhooks and when you receive an EXPIRATION event, you can apply the promotional entitlement so they will continue to have access for X months. 

I haven't heard of any huge success stories from implementing a referral program unless you have massive scale and a super loyal customer base. There's usually lower hanging fruit to capture 1-2% more subscribers through improved onboarding, paywalls, pricing, etc. Maybe start with a simple referral link (with no rewards) and see how much it is shared among your customers?

 

View original
Did this post help you find an answer to your question?

8 replies

tina
RevenueCat Staff
Forum|alt.badge.img+10
  • RevenueCat Staff
  • 338 replies
  • Answer
  • January 22, 2022

Hi @Asher 

The Promotional Entitlement API endpoint that you linked actually does not extend subscription status. That is a RevenueCat specific feature and works independently of App Store or Play Store billing and will never: charge a user, issue a refund, or convert to a paid subscription. 

For Android, the recommended approach is to defer the renewal of a Google subscription to a later date. API docs for reference: https://docs.revenuecat.com/reference/defer-a-google-subscription This endpoint will call Google’s Purchases.subscriptions:defer from the Google Play Developer API. You can read more about this in the Billing Library documentation. 

As for Apple, there isn’t an easy way to do this. iOS Offer Codes and Promo Codes are fairly limiting in terms of how many you can generate per product and the number of codes a customer can redeem. For example Apple mentions: "Customers can redeem only one code per active offer, but may be eligible to redeem multiple different offer codes for a single subscription, depending on your configuration choices." Promo Codes are typically not recommended by our team since you are limited in the number of codes you can generate. Apple docs on Promo Codes for reference: https://help.apple.com/app-store-connect/#/dev50869de4a 

Referrals for iOS customers isn't really something that we support. Apple does have an endpoint to extend a renewal date, however, you are only able to move the renewal date for a subscription twice a year per customer. A workaround would be to have the customer cancel their subscription, then you can tack on the RevenueCat promotional entitlement. The downside to this is the customer will have to reenable the subscription once the promotional entitlement is over. Another option is to listen to RevenueCat webhooks and when you receive an EXPIRATION event, you can apply the promotional entitlement so they will continue to have access for X months. 

I haven't heard of any huge success stories from implementing a referral program unless you have massive scale and a super loyal customer base. There's usually lower hanging fruit to capture 1-2% more subscribers through improved onboarding, paywalls, pricing, etc. Maybe start with a simple referral link (with no rewards) and see how much it is shared among your customers?

 


Forum|alt.badge.img+4

@tina great answer! Do you know how we can access the original transaction ID? We need that to extend the renewal date. 


Forum|alt.badge.img+4
  • Member
  • 6 replies
  • February 21, 2025

@tina is this response still applicable? Does RevenueCat now support the Apple App Store Server API for subscription extensions? Likewise for Google 

https://developer.apple.com/documentation/appstoreserverapi/extendreasoncode
https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.subscriptions/defer

Thanks 


jeffrey_bunn
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • 277 replies
  • February 24, 2025

Hi ​@Kim! We don’t yet support Apple’s extension API, but we do support Google’s V3 defer subscriptions endpoint in our API here.


Okay, so RC doesn’t support Apple Extensions API, but if I were to have that implemented outside of RC, would RC handle it properly?


jeffrey_bunn
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • 277 replies
  • March 4, 2025

@KinTheRanger Yes, when we receive the updated receipt from Apple we will update our data accordingly. Just be sure you’ve enabled App Store Server Notifications.


Forum|alt.badge.img+3
  • New Member
  • 1 reply
  • March 12, 2025

@jeffrey_bunn is the implication that you plan to support the Apple Extensions API in the future? If so, do you have a rough timeline for this?

jeffrey_bunn wrote:

Hi ​@Kim! We don’t yet support Apple’s extension API, but we do support Google’s V3 defer subscriptions endpoint in our API here.

 


kaitlin
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • 383 replies
  • March 13, 2025

Hi ​@RunKaizen

We’re hopeful to support it but we don’t have a concrete roadmap or ETA at this time.


Reply


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