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?
@tina great answer! Do you know how we can access the original transaction ID? We need that to extend the renewal date.