Payment Gateways
Live payment keys and webhooks
Switch to live credentials for every gateway you use. The exact variable names are the same as local development - only the values change.
Stripe
Set your live secret key in Vercel:
STRIPE_SECRET_KEY=sk_live_...No product or price ID is needed - StudyStudio creates the checkout price dynamically from the plan amount. There is no webhook endpoint to configure: Stripe redirects the user back to the app after payment and the plan is applied there.
PayPal
Create a live app in the PayPal developer dashboard and set:
PAYPAL_API_URL=https://api-m.paypal.com
NEXT_PUBLIC_PAYPAL_CLIENT_ID=your-live-client-id
PAYPAL_CLIENT_SECRET=your-live-secretRazorpay
Use your live key id and secret from the Razorpay dashboard.
NEXT_PUBLIC_RAZORPAY_KEY_ID=rzp_live_...
RAZORPAY_KEY_SECRET=your-live-secretFlutterwave
Use your live public and secret keys from the Flutterwave dashboard.
Verify a Purchase
After deploying, run a real test purchase on a small plan and confirm the user's plan updates. Check webhook logs in each gateway dashboard.