Get help with webhooks, third-party integrations, and attribution providers.
Recently active
I followed all the steps in the documents and I am in the testing phase and I am testing on a real device with Android 12 and I get this error In-app billing API version 3 is not supported on this device.W/[Purchases] - WARN(25864): 🤖‼️ Billing is not available in this device. DebugMessage: Google Play In-app Billing API version is less than 3. ErrorCode: BILLING_UNAVAILABLE.
I’ve properly installed RevenueCat in Flutter and connected Play Store and App Store properly in the dashboard. I’m still getting these error.D/[Purchases] - DEBUG( 6650): ℹ️ Debug logging enabledD/[Purchases] - DEBUG( 6650): ℹ️ SDK Version - 4.6.0D/[Purchases] - DEBUG( 6650): 👤 Initial App User ID - nullD/[Purchases] - DEBUG( 6650): 👤 Identifying App User ID: $RCAnonymousID:538da561a80b40f4a23aa08aa6709f83D/[Purchases] - DEBUG( 6650): ℹ️ Deleting old synced subscriber attributes that don't belong to $RCAnonymousID:538da561a80b40f4a23aa08aa6709f83D/[Purchases] - DEBUG( 6650): ℹ️ App foregroundedD/[Purchases] - DEBUG( 6650): ℹ️ PurchaserInfo cache is stale, updating from network in foreground.D/[Purchases] - DEBUG( 6650): ℹ️ Offerings cache is stale, updating from network in foregroundD/[Purchases] - DEBUG( 6650): 😻 Offerings updated from network.D/[Purchases] - DEBUG( 6650): ℹ️ Skipping updating pending purchase queue since BillingClient is not connected yet.D/[Purchases] - DEBUG( 6
Hello,Despite deleting everything and trying it twice from scratch following this doc, we keep getting this error:Your Google service account credentials do not have permission to create a Google Cloud Pub/Sub topic. We have done everything by the books, I have no idea, why this doesn’t work. Any ideas, please?Thanks,
Hi there,I wanted to check how can revenuecat help my situation. The billing method I am thinking about is getting my user to pay a one time fee to unlock features, and also having consumables that they can purchase quarterly. How can revenuecat sends the revenue amount or knowledge that the user had paid for the feature or consumables to supabase which is my backend, and so that when my user login to the system, they can get full access to all their features they have paid for?
I’ve been reading docs for hours and hours. I’ve read this post: https://www.revenuecat.com/docs/stripe To accept stripe payments I can use a Stripe Checkout (https://stripe.com/payments/checkout) It’s a stripe payment page hosted by stripe which prevents me from having to set up my own payment server. Here’s where I’m lost. After I receive a payment, I have to “Send Stripe tokens to RevenueCat”. How do I do that? I can’t figure out how to initiate a POST request from Stripe Checkout that sends the required info to Revenuecat. Here’s what I have to sent to Revenuecat… curl -X POST \ https://api.revenuecat.com/v1/receipts \ -H 'Content-Type: application/json' \ -H 'X-Platform: stripe' \ -H 'Authorization: Bearer YOUR_REVENUECAT_STRIPE_APP_PUBLIC_API_KEY' \ -d '{ "app_user_id": "my_app_user_id", "fetch_token": "sub_xxxxxxxxxx" }' Any help would be greatly appreciated. Chris
Hi everyone,I am afraid the answer to this question is No but in case this ever changes in the future I am still asking it.Is it possible to export/integrate RevenueCat collected data into Google Firebase Analytics?Thanks in advance for your reply.
Hi,Im trying to keep my database in sync with each users current state.WebhooksFirst I tried to use web hooks data but I ran into multiple issues:The basic event from the documentation (above all other examples like initial purchase) has way more fields like a real promo code event. Im not sure what user ids to compare. original_app_user_id, app_user_id especially with use cases like “restore subscription”. The documentation calls for comparing original_app_user_id but isn't it wrong in cases of restore and to prevent to be both users entitled here? “expiration_at_ms” is not under entitlement_ids like in the REST API, is this not the entitlement expiration date? Thats because another event for the same app_user_id returns a not migrated state but just for example for the new purchase and I have to store all events right?I think there should be a way simpler web hook.RevenueCat detect a new event but instead of sending it, it checks the user state, do all the work and send the current s
Hi team, Is there an example of a Revenuecat webhook endpoint that we can use in our backend php to fetch events data? we d'ont find a kind of information on documentation.We need a sample like this one (used on stripe) bellow : <?php// webhook.php \Stripe\Stripe::setApiKey('Your_Key'); $endpoint_secret = 'whsec_...'; $payload = @file_get_contents('php://input');$sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];$event = null; try { $event = \Stripe\Webhook::constructEvent( $payload, $sig_header, $endpoint_secret );} catch(\UnexpectedValueException $e) { // Invalid payload echo '⚠️ Webhook error while parsing basic request.'; http_response_code(400); exit();} catch(\Stripe\Exception\SignatureVerificationException $e) { // Invalid signature echo '⚠️ Webhook error while validating signature.'; http_response_code(400); exit();} // Handle the eventswitch ($event->type) { case 'customer.subscription.created': // What to do break; case 'customer.subscriptio
Hey guys,I’ve followed the docs on how to integrate Stripe with RC, however something doesn’t seem to be working.I’m receiving the webhook from Stripe for the purchase (customer.subscription event).I’m trying to use the https://api.revenuecat.com/v1/receipts endpoint in order to sync Stripe and RC, however I keep getting {"code":7103,"message":"The receipt is not valid."}I’ve went over each and every ID field on Stripe’s webhook, and got the same message for all of them.What am I missing here?Thanks!
This is a technical question for the revenue cat suppourt team.Please have a look into my account. I configured the webhook in my dashboard and verified that the test webhook is working which it does.Beyond that no, webhook events are sent to my server at all. I configured the sandbox testing in google which works well. The events are properly shown in the customer profile. But the webhooks are just not triggered.Here an example for an event that never triggered a webhook: { "app_id": "appbf2ba432f2", "app_user_id": "e54178d1-0ba0-4f52-b768-8b16da7ec516", "country_code": "DE", "currency": "EUR", "entitlement_ids": null, "environment": "SANDBOX", "event_timestamp_ms": 1660003974081, "expiration_at_ms": 1660004387520, "is_family_share": false, "is_trial_conversion": false, "offer_code": null, "price": 8.130577688229488, "price_in_purchased_currency": 7.99, "product_id": "pro_monthly", "purchased_at_ms": 1660004087520, "store": "PLAY_STORE", "takehome_percentage": 0.85,
Hello Team,Is there any possible way to test revenueCat’s webhook events in my local envirement ?I mean something like stripe CLI tool or any way to see the events on my local machine without need to deploy a test server or directly test in production Thank you!
My app backend needs to add balance to my user’s account for each new subscription purchase, what is the delay before a new subscription is sent to my configured webhook?
We’d like to implement per-seat Stripe subscriptions with RevenueCat. I saw the documentation on the topic and I have a few questions. Our goal is to create a per-seat billing system similar to what you would find on Figma or Loom. The system would imply that:users are able to create teams and add members to the team using emails when adding a new seat/user in the team, the admin’s subscription will be billed accordingly (price x number of seats/users) members of the team would appear as paid subscribers in the Stripe SDK Revenue is counted only onceA few questions:What would be the best setup to integrate this with RevenueCat? I saw the Stripe Integration page, but it seems to imply a user-to-subscription link. Would a workaround be to link multiple users to a single Stripe subscription?
Hi guysI using Revunuecat to integrate subscription purchasing and daily payment functions.It works on iphone but not on android.Please look at my code section.Which product_id should be the same as the one currently in the rectangular region?Please let me know what I should set the product_id to in my code.Thanks
I’ve successfully, it seems, integrate revenue cat with my firebase auth backend. Now I’m wondering what is the recommended customer journey in terms of what they do first? Should I ensure that my users first authenticate with firebase, before allowing them to purchase an in-app subscription?What would happen if they first purchased the subscription and then authenticated on firebase after?Thanks for any help or suggestions.
I am launching an app with a subscription offering. I currently have an e-commerce site built using Shopify. I am selling subscriptions on the Shopify site using the Bold Subscriptions Add-On, with Shopify Payments as the gateway.Bold offers webhooks for subscription events. I was thinking that I could pass these webhooks through my backend to the RC API...but...I don’t see RC endpoints for subscription events like cancel, so maybe this is not a viable solution?Is it possible to integrate the subscriptions sold on the Shopify site with RevenueCat? Am I missing a simpler solution here? Thanks!
The docs say the following:Cancellations in Stripe are automatically detected by RevenueCat the same way as subscriptions from the app stores. This means there may be up to a two-hour delay between when the subscription is cancelled in Stripe and when the cancellation is reflected in the RevenueCat backend.I cancelled a subscription with Stripe over two hours ago, and the cancellation hasn’t appeared in RevenueCat. Is this information still accurate? Is there anything I need to do to make this work aside from the connection with Stripe? Do I need to forward webhooks from Stripe to RevenueCat or something aside from the initial receipt creation? Thanks!
How can I get raw data about my receipts?
Hello, I’m getting credentials issue with google play store in my flutter app. I created them about 5 days ago so more than 36h has passed. Also I creted other credentials but couldnt get it to work neither. DEBUG(19728): ℹ️ API request started: POST /receiptsD/[Purchases] - DEBUG(19728): ℹ️ API request completed with status: POST /receipts 503E/[Purchases] - ERROR(19728): 🤖‼️ There was a credentials issue. Check the underlying error for more details.I/flutter (19728): ERRORI/flutter (19728): PlatformException(11, There was a credentials issue. Check the underlying error for more details., {code: 11, message: There was a credentials issue. Check the underlying error for more details., readableErrorCode: InvalidCredentialsError, readable_error_code: InvalidCredentialsError, underlyingErrorMessage: Invalid Play Store credentials., userCancelled: false}, null)
I’m trying to synchronize a users subscriptions to my backend. I have a user with a sandbox subscriptions, I’m i’m trying to get information on their subscription status via:curl --request GET \ --url https://api.revenuecat.com/v2/projects/xxxxxxxx/customers/xxxx04c3-9caa-456f-9afc-f84cea6f2bf6/subscriptions \ --header 'Authorization: Bearer sk_xxxxxxxxxxxxxxxxxx'I get a 200 OK, but the items array is empty.{ "items": [], "next_page": null, "object": "list", "url": "https://api.revenuecat.com/v2/projects/xxxxxxx/customers/xxxxxxx-9caa-456f-9afc-f84cea6f2bf6/subscriptions"}Both the RC dashboard and SDK show me that the user has an active entitlement.The endpoint has an optional query parameter “environment” which can be set to “sandbox” (doesn’t make a difference) but at least it tells me it should work for sandbox? What am I missing here? Is there a secret query parameter similar to V1 that I need to set to get the sandbox purchases included here as well?
Here is the situation I’d like help with:User is on iOS 14.5+ User does NOT accept ATT prompt - i.e. IDFA is not provided. The goal: Run facebook ads to maximize the number of purchasing users or to maximize the value of users subscribing to the app.If the user does not accept the ATT prompt, in that case facebook uses Apple’s SKAdnetwork for attribution.Does the Facebook Ads Integration in Revenuecat work for users who do not accept the ATT prompt - i.e. will Facebook be able to attribute purchase events to the correct campaign? I don’t think this would work, since I believe SKAdnetwork only works with local events in the app, not server to server events such as this Facebook Ads Integration. I believe that in order to be able to optimize Facebook ads for this use case, we need to track the events we want to optimize for (i.e. start trial / purchase events) locally in the app, then correctly configure the conversion values for SKAdnetwork and not send server to server events such as v
Hi RevenueCat Support Team,I’ve recently integrated the Meta Ads integration as per your documentation and triggered several purchase events while running the app in development mode. However, I’m not seeing any indication that these events are being sent to Meta—neither in the RevenueCat dashboard nor on Meta’s side.A few additional details: I haven’t implemented the ATT prompt yet, so users have not granted tracking permission. From the docs, it appears that the IDFA is optional and RevenueCat should still be able to forward events without it. The app is using RevenueCat’s anonymous ID and I’ve verified that purchases are correctly being tracked in the RevenueCat dashboard.Could you help clarify:Are events from development builds or sandbox purchases forwarded to Meta Ads? Is ATT permission mandatory for Meta Ads event forwarding in practice, even if IDFA is optional? Are there any known limitations or delays when viewing these events in the dashboard or Meta Events Manager?Let me kn
Hi all, looking to use the Revenue Cat API to dynamically set the price of a subscription within my app - looking at the API docs I’m struggling to find a way to make a GET request with either a UserId or SubscriptionId to get the price of a subscription. Is there a way to do this currently, and if so - how?
Hi, I recently moved away from Stripe on the web, the main reason being that Stripe is not a merchant of record. I think Lemon Squeezy is the most popular alternative that is a merchant of record.Are there any plans of adding support for Lemon Squeezy as a payment alternative for the web?
Great job on getting API V2 to work RC team! 😻 I confirmed that the endpoints I wanted to use (e.g. /subscriptions) are working as intended and sharing more helpful info than V1.I was wondering if there is any chance to add a add an endpoint to get the list of all payments (i.e. activities) of a customer? Currently, it’s shown in the dashboard under Customer History box.Checking on the Network tab of my browser, it seems like the data is coming from api.revenuecat.com/internal/v1/developers/me/projects/:project_id/subscribers/:customer_id/activity which is an internal endpoint. So, the data and the formatting is there–It’s just a matter of exposing it as the external API.Is there any chance that it will happen anytime soon? Is this against the rules and Terms of Service to call that internal endpoint programmatically (and occasionally) to get the data for our own internal dashboard?Thanks,--Aideen.
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.