Context
For subscriptions, we have both
- A Node.js webhook that updates subscription info for a user in our database.
- iOS code fetching the latest purchase info with the revenue cat API. This code checks the user’s expiration date on start up.
- Ideally, we can remove the iOS code and just rely on the webhook, but this is not acceptable as explained below...
Problem
It seems that the event data have incorrect subscription expiration dates. In contrast, the API is giving us the right date. We saw this issue while looking at the dashboard events.
- This user’s last received a “PRODUCT_CHANGE” event. They switched from a monthly to annual subscription using a promotion code, giving them a month trial ending on Sep 12, 2021.
- This event instead had "expiration_at_ms": 1628876655000, which is Aug 13, 2021. Also, the event didn’t have any promotion code data.
- However, the API gave us the correct date of Sep 12, 2021.
- The customer’s entitlements section also has the correct date, noting “Trial converts on 2021-09-12”.
Question
Shouldn’t the webhook event reflect the actual expiration date of Sep 12, 2021? Are we using the webhook correctly, or should we be syncing the data to our database differently?