Skip to main content

I’m developing a subscription-based app where users only need to pay on one device (including Android, iOS, and web) to use it on all devices.

From previous attempts, I’ve learned that using only Stripe webhooks, when I create a subscription in Stripe (in ), if there is no subscription data for that customer in RevenueCat, it will not send the customer data and the billing record to RevenueCat (I hope I’m understanding this correctly). Therefore, I decided to additionally use the API (not sure if this is the best approach, if there are other suggestions please let me know, thank you).

After creating a subscription in Stripe (real mode not test mode), I sent the information to RevenueCat using the API v1 /receipts/, and the transaction with that ID does appear in Recent Transactions. However, when I receive customer information via the API or in Unity, this subscription information does not appear in the customerinfo. Also, on the web, this transaction has not been assigned an entitlement (I’m sure I’ve linked Stripe with the product).

What am I missing? What should I do? Thank you sm!

Hi @Preteeth AI,

First, using the API for initial Stripe purchases is exactly how you should use the API, so that is all good.

You might not be seeing the purchase on Unity due to the cache. If you close the app and wait 5 minutes, does the Stripe purchase show up?

And for the Stripe purchase that is not unlocking the entitlement, can you share a screenshot of the transaction this is happening for?


@sharif Could you please let me know if there are any updates? I appreciate your time and assistance. Thank you.


Hi @Preteeth AI,

Apologies for the delay. I’ve looked into the user you provided a screenshot for and I found that there are two instances of that user ID, both identical but one has a blank tab character at the end, which is causing our system to think it is two separate user IDs. I recommend looking at your code and ensuring you don’t allow any spaces, tabs, new lines, etc when creating the user ID. Looking through other user IDs in your app, I noticed that several of them have these characters in them which is causing issues.


@shar

Hi @Preteeth AI,

First, using the API for initial Stripe purchases is exactly how you should use the API, so that is all good.

You might not be seeing the purchase on Unity due to the cache. If you close the app and wait 5 minutes, does the Stripe purchase show up?

And for the Stripe purchase that is not unlocking the entitlement, can you share a screenshot of the transaction this is happening for?

Hello, thank you for your reply! Below are the screenshots regarding the lack of entitlement creation.

This is the customer profile of someone who has already started a Stripe subscription. You can see that the entitlement field is empty.


But I have already set up this Stripe product in the entitlement of the project.


And the following are the details I received from Unity after five days of purchase (debugged using Xcode).

_receiveCustomerInfo 
{"customerInfo":
{"firstSeen":"2024-07-10T05:10:29Z",
"requestDateMillis":1721021788405,
"latestExpirationDate":null,
"originalPurchaseDate":null,
"allPurchaseDates":{},
"firstSeenMillis":1720588229000,
"nonSubscriptionTransactions"::],
"entitlements":{"all":{},"active":{},
"verification":"NOT_REQUESTED"},
"managementURL":null,
"activeSubscriptions"::],
"allPurchasedProductIdentifiers"::],
"requestDate":"2024-07-15T05:36:28Z",
"allPurchaseDatesMillis":{},
"originalPurchaseDateMillis":null,
"latestExpirationDateMillis":null,
"originalAppUserId":"NGX-------------",
"allExpirationDates":{},
"allExpirationDatesMillis":{},
"originalApplicationVersion":null}}
Purchases:_receiveCustomerInfo(String)

The Stripe purchase record still does not appear :(
(I am certain that the Stripe subscription is active, and I can update the subscription via webhook.)