For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /nl/docs/mobile/revenuecat.md (or send Accept: text/markdown).
RevenueCat-aankopen instellen
Maak een RevenueCat-project, koppel uw App Store- en Play-producten en verbind de SDK-sleutels plus servergeheimen die aankopen verifiëren.
Walkthrough voor beginners
Waarom dit bestaat: Apple en Google vereisen dat digitale aankopen in een app via hun eigen billing lopen — nooit via Stripe Checkout — en de kit dwingt die grens af. RevenueCat ligt bovenop beide stores zodat één integratie iOS en Android dekt: het volgt bonnen, abonnementen en herstellen, en uw server vraagt RevenueCat of een workspace heeft betaald.
Vereisten: de Apple Developer Program- ($99 per jaar) en Google Play Console- ($25 eenmalig) accounts uit de mobiele-accountgids — storeproducten moeten bestaan voordat RevenueCat ze kan koppelen — plus een EAS-ontwikkelingsbuild om daadwerkelijk te testen, want Expo Go kan de native aankoopmodule helemaal niet draaien. RevenueCat's gratis tier dekt testen; niets hiervan brengt kosten in rekening voordat producten live zijn.
Snelle begrippen: een RevenueCat-project bevat uw aan stores gekoppelde apps. Producten zijn de store-items die in RevenueCat worden gespiegeld. Een entitlement is de vlag die RevenueCat verleent terwijl een abonnement actief is — standaard pro. Een offering bundelt producten in de paywall die de app presenteert. De publieke SDK-sleutels gaan in de mobiele env; een geheime API-sleutel en webhook-autorisatie blijven server-side.
Wat u aanmaakt: één project, twee aan stores gekoppelde apps, producten, één entitlement, één offering — ongeveer een uur, meestal wachten op de setup van storeproducten.
Het RevenueCat-account en -project aanmaken
1. Open app.revenuecat.com → meld u aan en maak een project met de naam van uw product.
Verwacht: een leeg projectdashboard met tabbladen voor Apps, Products, Entitlements, Offerings en API keys — de volgende secties vullen ze op volgorde in.
Maak de storeproducten aan en koppel daarna beide apps
Store-side producten moeten bestaan voordat RevenueCat ze kan refereren. iOS: appstoreconnect.apple.com → My Apps → maak het app-record met uw ios.bundleIdentifier → In-App Purchases of Subscriptions → maak de abonnementsproducten die u van plan bent te verkopen (ze mogen als draft blijven staan terwijl u test). Android: play.google.com/console → maak de app → Monetize → Products → Subscriptions (of in-app-producten).
Koppel daarna beide binnen RevenueCat: Apps → New app. Kies voor iOS App Store, voer de bundle-id in en lever de App Store Connect-credentials die het formulier vraagt — het linkt naar RevenueCat's eigen setupdocs voor elk veld. Kies voor Android Play Store, voer de pakketnaam in en upload de Play-service-account-JSON — de gelinkte docs lopen het aanmaken ervan in Google Cloud door.
Verwacht: beide apps vermeld onder het project, en de storeconsoles tonen dat uw producten bestaan — draft-status is prima in dit stadium.
Producten, entitlement, offering
1. Products → New: maak één RevenueCat-product per storeproduct en koppel het bijbehorende App Store- of Play-product-id — de id's moeten exact overeenkomen met de consoles.
2. Entitlements → New: geef het een naam die past bij REVENUECAT_ENTITLEMENT_ID — de standaard van de kit is pro — en koppel de producten die het verlenen.
3. Offerings → New: maak een offering, voeg packages toe die naar uw producten wijzen en markeer het als Current — de app leest offerings.current bij het renderen van de paywall.
Houd REVENUECAT_ENTITLEMENT_KEY op de standaard ai.reference-task: dat is de interne ledgersleutel van de kit — dezelfde sleutel die de meegeleverde webplannen verlenen — en RevenueCat-toegang wordt eronder geschreven. Hernoem het pas wanneer de plansleutel van uw product verandert.
De sleutels kopiëren en de webhook registreren
Project → API keys toont de drie soorten hieronder. De publieke per-platform SDK-sleutels (appl_… voor iOS, goog_… voor Android) gaan in apps/mobile/.env.local — ze identificeren de app, dragen geen uitgavenbevoegdheid en het EXPO_PUBLIC_-voorvoegsel is correct voor hen.
De geheime API-sleutel (sk_…, de v1-sleutel) en de webhook-autorisatie zijn server-only in apps/web/.env.local — nooit EXPO_PUBLIC_, nooit gecommit. De server roept RevenueCat's subscriber-API aan met de geheime sleutel om de aankoopstatus van elke workspace te verifiëren.
Webhook: RevenueCat → Integrations → Webhooks → stel de URL in op {APP_URL}/api/billing/webhook/revenuecat en een Authorization-headerwaarde — elke lange willekeurige string die u verzint — en zet vervolgens exact dezelfde string in REVENUECAT_WEBHOOK_AUTHORIZATION. De kit vergelijkt de header letterlijk en weigert al het andere, zodat verlengingen, annuleringen en terugbetalingen de server bereiken zonder op de volgende app-lancering te wachten.
Sandbox-aankopen worden buiten productie automatisch geaccepteerd; REVENUECAT_ALLOW_SANDBOX=true in een productie-env wordt bij het opstarten geweigerd, dus laat het unset zodra u live bent.
# apps/mobile/.env.local
EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER=revenuecat
EXPO_PUBLIC_REVENUECAT_IOS_API_KEY=appl_…
EXPO_PUBLIC_REVENUECAT_ANDROID_API_KEY=goog_…
# apps/web/.env.local — server side
MOBILE_PURCHASES_PROVIDER=revenuecat
REVENUECAT_SECRET_API_KEY=sk_…
REVENUECAT_WEBHOOK_AUTHORIZATION=<the exact Authorization value set on the webhook>
REVENUECAT_ENTITLEMENT_ID=pro
REVENUECAT_ENTITLEMENT_KEY=ai.reference-taskVerifiëren met een sandbox-aankoop
Aankopen draaien alleen binnen een ontwikkel- of productiebuild — Expo Go mist de native module volledig, dus deze stap veronderstelt dat eas build --profile development een dev-client heeft geproduceerd (de EAS-gids bouwt die).
1. Installeer de dev-build op een apparaat of simulator die is ingelogd op een sandbox-account: App Store Connect → Users and Access → Sandbox Testers voor iOS; Play Console → license testing voor Android.
2. Open in de app de paywall en koop met het sandbox-account. Verwacht: de aankoop voltooit in sandbox — geen echte kosten — Aankopen herstellen werkt, en de entitlement van de workspace toont actief, server-side geregistreerd onder de ai.reference-task-sleutel.
Veelvoorkomende mislukkingen: een lege paywall betekent dat de offering niet Current is of dat producten niet gekoppeld zijn; een falende apparaataankoop betekent dat het storeproduct nog in draft staat of dat het verkeerde sandbox-account is ingelogd; een entitlement die nooit flipt betekent dat MOBILE_PURCHASES_PROVIDER/EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER uit staan of dat de webhook-Authorization mismatched — RevenueCat's dashboard toont de status van elke webhook-levering.
Wil je verdergaan met de configuratie? Lees Builds en apparaatverificatie.