Naar inhoud gaan
supastack
Blader door de docs
WebNext.js

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-task

Verifië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.

Veelgestelde vragen

14 vragen

Wat is supastack?

supastack is een modulair fundament voor het bouwen van SaaS-producten met AI. Het brengt gemeenschappelijke infrastructuur samen zodat jij je kunt richten op productspecifieke functies.

Ondersteunt het web en mobiel?

Ja. supastack bevat Next.js- en Expo-apps als startpunten voor web- en mobiele ervaringen.

Welke authenticatie is inbegrepen?

Better Auth dekt e-mail/wachtwoord, OTP en sociale login. Persoonlijke workspaces worden bij het account geprovisioneerd zodat productrecords vanaf dag één afgebakend blijven.

Hoe ondersteunt het AI?

supastack bevat configureerbare multi-provider AI, usage-tracking, budgetten en versleutelde bring-your-own-key-ondersteuning.

Hoe worden abonnementen afgehandeld?

Voor producten op de kit vormen Stripe-billing, abonnementen en entitlements het fundament voor betaalde toegang. Providersecrets blijven server-only.

Waar leeft mijn productspecifieke code?

Productspecifieke functies blijven in een aparte codebase terwijl het product de fundamentmodules van supastack configureert en integreert.

Hoe werkt de prijs van supastack?

De kit is een eenmalige aankoop met lifetime updates: One Framework voor $249 (tijdelijke lanceringsprijs — $100 korting op de normale prijs van $349) of All Frameworks (Next.js, iOS, Android) voor $499 (tijdelijke lanceringsprijs — $100 korting op de normale prijs van $599), plus $75 per extra developer seat. Geen kit-abonnement. Checkout op deze site levert je licentiesleutel per e-mail, met repositorytoegang via een GitHub-uitnodiging.

Hoe bakens workspaces mijn data af?

Records van gebruikers worden afgebakend per workspaceId. Identiteit, entitlements, AI-gebruik, billing-events en auditentries blijven binnen de grens van de persoonlijke workspace.

Hoe werken achtergrondjobs?

Trigger.dev is de expliciete jobruntime. Het JobRunner-contract belooft alleen enqueue, status en cancel — workflowsemantiek blijft Trigger.dev-specifiek en expliciet.

Hoe verschilt e-mail van outreach?

Transactionele e-mail dekt productworkflows zoals voltooiingsnotices. Koude outreach en campagnes zijn productzaken buiten de e-mailmodule van deze kit.

Hoe werken mobiele aankopen?

Mobiel bevat native aankopen en herstel via RevenueCat, met toegang die je server verifieert. Configureer de winkelaccounts en rond apparaattests af vóór publicatie. Webfacturatie blijft afzonderlijk.

Waar leven de AI-providerkeys?

Bring-your-own-key-credentials zijn versleuteld en blijven server-only. Keys worden uit logs gefilterd; gebruik en budgetten blijven zichtbaar op workspaceniveau.

Welke betaalmethoden accepteert de checkout?

De door Stripe gehoste checkout accepteert kaarten en kan ook Alipay en WeChat Pay aanbieden zodra die wallets op het Stripe-account zijn geactiveerd — handig voor kopers in China. Wallet-autorisaties worden asynchroon bevestigd, dus de licentiepagina wordt bijgewerkt zodra de betaling is afgerond.

Kan ik een terugbetaling krijgen?

Zodra je toegang hebt gekregen tot de repository, is supastack voor altijd van jou en kan er dus geen terugbetaling plaatsvinden. Maar wees gerust: je krijgt de volledige broncode met levenslange updates om onbeperkt producten voor jezelf of je klanten te bouwen en te lanceren. Je mag de code alleen niet doorverkopen of de repository herdistribueren als starterkit of template.

NL
Thema