Question

Entitlement purchase date not updating

  • 11 November 2021
  • 6 replies
  • 152 views

Badge +4

The entitlement identifier shows an purchase date of:

While the user bought a new subscription at:

It seems that the latest purchase date of the active entitlement is also returning the 2021-07-27 date from what I can see in the logs.

My question is:

Why isn’t the active entitlement date updating to the latest purchase?

For full context: This user purchased a non-renewing IAP last year and now purchased my newest auto-renewing IAP.


6 replies

Userlevel 5
Badge +9

Non-renewing IAPs (e.g. one time purchases) unlock lifetime entitlement access. When lifetime access to rocketsim_pro is purchased, that “Entitlements” card will show the purchase date, since there’s no expiration - this would also override the display of any future subscription purchase, since the lifetime access is still active.

However, the latest purchase date for the entitlement through the REST API / SDK should be updating. Can you make a GET /subscribers call and confirm?

Badge +4

Ah yeah, that must be it! Though, wouldn’t you expect the entitlement to return the actual `latestPurchaseDate`? In other words; shouldn’t the renewing subscription overwrite the non-renewing one since it’s newer?

I’ll look into `GET /subscribers`, though, I should likely built in a hard-coded check using `activeSubscriptions` don’t you think?

Userlevel 5
Badge +9

Though, wouldn’t you expect the entitlement to return the actual `latestPurchaseDate`? In other words; shouldn’t the renewing subscription overwrite the non-renewing one since it’s newer?

Yes, it should. Can you make a GET /subscribers call for this customer and confirm? 

Badge +4

> Yes, it should. Can you make a GET /subscribers call for this customer and confirm? 

I wonder how I would do that w/o an app update, that’s not really possible, is it? Or do I miss some context here?

Userlevel 5
Badge +9

Oh sorry! As long as you have their App User ID, you can make the request through our REST API: https://docs.revenuecat.com/reference#subscribers

For authentication you can use the same API key you’ve embedded in your app. This is the same endpoint the SDK calls to check subscription status, so it can be used to confirm what behavior the device is seeing.

Badge +4

Thanks, Ryan, that helped!

However, the latest purchase date for the entitlement through the REST API / SDK should be updating. Can you make a GET /subscribers call and confirm?

 

This is not the case, unfortunately:

{
"request_date": "2021-11-14T13:36:26Z",
"request_date_ms": 1636896986009,
"subscriber": {
"entitlements": {
"rocketsim_pro": {
"expires_date": null,
"grace_period_expires_date": null,
"product_identifier": "com.rocketsim.yearly.subscription",
"purchase_date": "2020-10-22T14:12:58Z"
}
},
"first_seen": "2020-10-22T14:11:28Z",
"last_seen": "2021-11-14T13:34:43Z",
"management_url": "itms-apps://apps.apple.com/account/subscriptions",
"non_subscriptions": {
"com.rocketsim.yearly.subscription": [{
"id": "XXX",
"is_sandbox": false,
"original_purchase_date": "2020-10-22T14:12:58Z",
"purchase_date": "2020-10-22T14:12:58Z",
"store": "app_store"
}]
},
"original_app_user_id": "XXX",
"original_application_version": "3.0.1",
"original_purchase_date": "2020-10-22T14:10:43Z",
"other_purchases": {
"com.rocketsim.yearly.subscription": {
"purchase_date": "2020-10-22T14:12:58Z"
}
},
"subscriptions": {
"com.rocketsim.yearly.renewing.subscription": {
"billing_issues_detected_at": null,
"expires_date": "2022-11-10T14:56:42Z",
"grace_period_expires_date": null,
"is_sandbox": false,
"original_purchase_date": "2021-11-10T14:56:43Z",
"ownership_type": "PURCHASED",
"period_type": "normal",
"purchase_date": "2021-11-10T14:56:42Z",
"store": "app_store",
"unsubscribe_detected_at": null
}
}
}
}

In this response, my expectation would be that the entitlement latestExpiryDate would be set to the `subscriptions.expires_date`, does that make sense?

Reply