Skip to main content
Solved

Active Entitlements lookup with TestFlight from Sandbox purchase

  • February 19, 2026
  • 2 replies
  • 79 views

Forum|alt.badge.img+8

We are having an issue from Sandbox webhook events, where the lookup on API for active_entitlements is [], instead of active.

The request body to the webhook looks like (note environment :SANDBOX):

{
"api_version": "1.0",
"event": {
"aliases": [
"my_user_id"
],
"app_id": "app_id",
"app_user_id": "my_user_id",
"commission_percentage": 0.15,
"country_code": "US",
"currency": "USD",
"entitlement_id": null,
"entitlement_ids": null,
"environment": "SANDBOX",
"event_timestamp_ms": 1771460315227,
"expiration_at_ms": 1771542723000,
"id": "1653F954-2771-4656-8265-B13A9371F9D5",
"is_family_share": false,
"metadata": null,
"offer_code": null,
"original_app_user_id": "my_user_id",
"original_transaction_id": "2000001123561347",
"period_type": "NORMAL",
"presented_offering_id": null,
"price": 20,
"price_in_purchased_currency": 20,
"product_id": "ios_monthly_dancer_2000",
"purchased_at_ms": 1771456323000,
"renewal_number": 1,
"store": "APP_STORE",
"subscriber_attributes": {
"$attConsentStatus": {
"updated_at_ms": 1771460314809,
"value": "notDetermined"
}
},
"takehome_percentage": 0.85,
"tax_percentage": 0,
"transaction_id": "2000001123561347",
"type": "INITIAL_PURCHASE"
}
}

But when we then query the Rest API

curl -H "Authorization: Bearer sk_*****************************" "https://api.revenuecat/. com/v2/projects/{id}/customers/{cust_id}/active_entitlements" , nothing is found. It was suggested to use the optional header - -H "X-Is-Sandbox: true" - , but this doesn’t seem to make a difference.

Even querying just the customer or /subscriptions also doesn’t work

SO, how can I correctly capture & find the event from Sandbox in the active entitlements?

Best answer by matt-heaney

Hey ​@lucksp,

Matt from RevenueCat here! Thanks for the message.

I’ve taken a look at your account and have found the cause behind this.

For the user you provided in the question, their entitlements are currently correctly empty despite their purchase.

This is because, for your project, the iOS items are not currently attached to any entitlements. This means a user can successfully make a purchase, but receive no entitlements from it. This is indicated by your entitlements for these items not being listed, and instead showing as “Attach”.

 

You can see that the user does not have an entitlement by going to their customer profile (by clicking the user ID in your RevenueCat dashboard). You’ll need to toggle on sandbox data in this case, but under “Entitlements” you’ll see that the products are unattached. This means a purchase occurred, but no entitlements were granted.

 

To resolve this, head to your Product Catalog, find the relevant items, and attach them to an entitlement. Once this is done, when a user purchases one of those items (including in Sandbox), they’ll be granted the entitlement and the active entitlements array will be correctly populated when querying the API.

Let me know if you have any questions!

This post has been closed for comments

2 replies

matt-heaney
RevenueCat Staff
Forum|alt.badge.img+3
  • RevenueCat Staff
  • Answer
  • February 19, 2026

Hey ​@lucksp,

Matt from RevenueCat here! Thanks for the message.

I’ve taken a look at your account and have found the cause behind this.

For the user you provided in the question, their entitlements are currently correctly empty despite their purchase.

This is because, for your project, the iOS items are not currently attached to any entitlements. This means a user can successfully make a purchase, but receive no entitlements from it. This is indicated by your entitlements for these items not being listed, and instead showing as “Attach”.

 

You can see that the user does not have an entitlement by going to their customer profile (by clicking the user ID in your RevenueCat dashboard). You’ll need to toggle on sandbox data in this case, but under “Entitlements” you’ll see that the products are unattached. This means a purchase occurred, but no entitlements were granted.

 

To resolve this, head to your Product Catalog, find the relevant items, and attach them to an entitlement. Once this is done, when a user purchases one of those items (including in Sandbox), they’ll be granted the entitlement and the active entitlements array will be correctly populated when querying the API.

Let me know if you have any questions!


Forum|alt.badge.img+8
  • Author
  • Helper
  • February 19, 2026

OMG, i can’t believe i missed this.