google-playapp-storerevenuecat

Play & App Store Webhooks / Server Side Code on subscription start and cancel


I need to add server side logic when a user buys and cancels a subscription. To me this seems like a basic feature that many apps probably use. However as it turns out it's not that simple to setup up the need webhooks.

My App will be available on android and iOS, so I will need to configure both, which is why I thought about using RevenueCat. But it turns out, this is a paid feature for $110/month, which is way too much for a/my new app. This is probably the biggest time saver for RevenueCat compared to using the official InApp Purchases packages, so I don't see why they would make it a paid feature.

Anyways what the best way to handle webhooks with the Play Store and the App Store? Any Guides and Tipps would be very helpful!


Solution

  • Apple and Google both offer server-to-server notifications that will notify you when a subscriber cancels.

    Apple guide: Enabling Server-to-Server Notifications

    Google guide: Real-time developer notifications

    If you have your own user Ids, they won't be present in these server notifications so on your server you can save the user Id along with the transaction identifier of their original purchase. That way when a notification comes in you can look up the user from the transaction identifier and flag them as cancelled.

    Alternatively, the RevenueCat API is included on their free plan so you can periodically poll their GET /subscribers endpoint to get the latest subscription status for a user. This obviously won't be real-time, but may be enough for your use-case.